From owner-xfs@oss.sgi.com Wed Oct 1 00:31:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m917Vibj011431 for ; Wed, 1 Oct 2008 00:31:45 -0700 X-ASG-Debug-ID: 1222846399-7609011e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail2.varieddelivery.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id AF4A94A0B69 for ; Wed, 1 Oct 2008 00:33:19 -0700 (PDT) Received: from mail2.varieddelivery.net (mail2.varieddelivery.com [74.53.234.95]) by cuda.sgi.com with SMTP id H9zA19ILCrl3j6zX for ; Wed, 01 Oct 2008 00:33:19 -0700 (PDT) To: "xfs" From: "WinMax Video" Reply-To: X-ASG-Orig-Subj: "Media Marketing" The New Age of Growth! Subject: "Media Marketing" The New Age of Growth! Date: 1 Oct 2008 03:27:42 -0400 MIME-Version: 1.0 X-Barracuda-Connect: mail2.varieddelivery.com[74.53.234.95] X-Barracuda-Start-Time: 1222846400 Message-Id: <20081001073319.AF4A94A0B69@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.6390 1.0000 0.9545 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.96 X-Barracuda-Spam-Status: No, SCORE=0.96 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.6963 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 182 This message is a HTML message, you can not read this message correctly. Please allow HTML to be displayed to see this message in the entirety. [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 1 06:32:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91DWvPr006788 for ; Wed, 1 Oct 2008 06:32:57 -0700 X-ASG-Debug-ID: 1222868072-26cf01250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3262F7A8BC2 for ; Wed, 1 Oct 2008 06:34:33 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id A3ziJQHzekKYmHcZ for ; Wed, 01 Oct 2008 06:34:33 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m91DYVIF018768 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 1 Oct 2008 15:34:31 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m91DYVVJ018766 for xfs@oss.sgi.com; Wed, 1 Oct 2008 15:34:31 +0200 Date: Wed, 1 Oct 2008 15:34:31 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] Remove restricted_chown parameter Subject: Re: [PATCH 2/3] Remove restricted_chown parameter Message-ID: <20081001133431.GA18672@lst.de> References: <20080929215325.GB30363@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080929215325.GB30363@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1222868074 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.6978 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Sep 29, 2008 at 11:53:25PM +0200, Christoph Hellwig wrote: > From: Tim Shimmin > > On Linux all filesystems are supposed to be operating under > Posix' restricted chown. Restricted chown means it restricts > chown to the owner unless you have CAP_FOWNER. > > [hch: forward-ported to the current tree] > > Signed-off-by: Tim Shimmin > Signed-off-by: Christoph Hellwig And here's a version that also updates Documentation/filesystems/xfs.txt about the sysctl removal. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-10-01 13:43:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-10-01 13:43:24.000000000 +0200 @@ -26,7 +26,6 @@ */ xfs_param_t xfs_params = { /* MIN DFLT MAX */ - .restrict_chown = { 0, 1, 1 }, .sgid_inherit = { 0, 0, 1 }, .symlink_mode = { 0, 0, 1 }, .panic_mask = { 0, 0, 255 }, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-01 13:39:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-01 13:43:24.000000000 +0200 @@ -112,7 +112,6 @@ #define HAVE_DMAPI #endif -#define restricted_chown xfs_params.restrict_chown.val #define irix_sgid_inherit xfs_params.sgid_inherit.val #define irix_symlink_mode xfs_params.symlink_mode.val #define xfs_panic_mask xfs_params.panic_mask.val Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-01 13:39:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-01 13:43:24.000000000 +0200 @@ -56,17 +56,6 @@ xfs_stats_clear_proc_handler( static ctl_table xfs_table[] = { { - .ctl_name = XFS_RESTRICT_CHOWN, - .procname = "restrict_chown", - .data = &xfs_params.restrict_chown.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec_minmax, - .strategy = &sysctl_intvec, - .extra1 = &xfs_params.restrict_chown.min, - .extra2 = &xfs_params.restrict_chown.max - }, - { .ctl_name = XFS_SGID_INHERIT, .procname = "irix_sgid_inherit", .data = &xfs_params.sgid_inherit.val, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-01 13:39:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-01 13:43:24.000000000 +0200 @@ -31,7 +31,6 @@ typedef struct xfs_sysctl_val { } xfs_sysctl_val_t; typedef struct xfs_param { - xfs_sysctl_val_t restrict_chown;/* Root/non-root can give away files.*/ xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is * not a member of parent dir GID. */ xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ @@ -68,7 +67,7 @@ typedef struct xfs_param { enum { /* XFS_REFCACHE_SIZE = 1 */ /* XFS_REFCACHE_PURGE = 2 */ - XFS_RESTRICT_CHOWN = 3, + /* XFS_RESTRICT_CHOWN = 3 */ XFS_SGID_INHERIT = 4, XFS_SYMLINK_MODE = 5, XFS_PANIC_MASK = 6, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-01 13:43:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-01 13:43:24.000000000 +0200 @@ -1106,10 +1106,6 @@ xfs_ioctl_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & FSX_PROJID) { /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-01 13:43:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-01 13:44:10.000000000 +0200 @@ -210,10 +210,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* @@ -237,9 +233,8 @@ xfs_setattr( * shall be equal to either the group ID or one of the * supplementary group IDs of the calling process. */ - if (restricted_chown && - (iuid != uid || (igid != gid && - !in_group_p((gid_t)gid))) && + if ((iuid != uid || + (igid != gid && !in_group_p((gid_t)gid))) && !capable(CAP_CHOWN)) { code = XFS_ERROR(EPERM); goto error_return; @@ -433,10 +428,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* Index: linux-2.6-xfs/Documentation/filesystems/xfs.txt =================================================================== --- linux-2.6-xfs.orig/Documentation/filesystems/xfs.txt 2008-10-01 13:44:18.000000000 +0200 +++ linux-2.6-xfs/Documentation/filesystems/xfs.txt 2008-10-01 13:44:35.000000000 +0200 @@ -229,10 +229,6 @@ The following sysctls are available for ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl is set. - fs.xfs.restrict_chown (Min: 0 Default: 1 Max: 1) - 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 xfs_io(8) chattr command on a directory to be From owner-xfs@oss.sgi.com Wed Oct 1 08:21:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_63,J_CHICKENPOX_65,J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91FL6lX017232 for ; Wed, 1 Oct 2008 08:21:07 -0700 X-ASG-Debug-ID: 1222874559-095600f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC9B47A948C for ; Wed, 1 Oct 2008 08:22:40 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id QIDtYXAFNl86MK5j for ; Wed, 01 Oct 2008 08:22:40 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m91FMcIF023976 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 1 Oct 2008 17:22:38 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m91FMc80023974 for xfs@oss.sgi.com; Wed, 1 Oct 2008 17:22:38 +0200 Date: Wed, 1 Oct 2008 17:22:38 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/6] always use struct xfs_btree_block instead of short / longform structures Subject: Re: [PATCH 5/6] always use struct xfs_btree_block instead of short / longform structures Message-ID: <20081001152238.GA23917@lst.de> References: <20080922110640.GF26007@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080922110640.GF26007@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1222874562 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.6986 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Sep 22, 2008 at 01:06:40PM +0200, Christoph Hellwig wrote: > Always use the generic xfs_btree_block type instead of the short / long > structures. Add XFS_BTREE_SBLOCK_LEN / XFS_BTREE_LBLOCK_LEN defines for > the length of a short / long form block. The rationale for this is that > we will grow more btree block header variants to support CRCs and other > RAS information, and always accessing them through the same datatype > with unions for the short / long form pointers makes implementing this > much easier. > > > Signed-off-by: Christoph Hellwig Updated version to apply ontop of the header changes from Barry: Index: linux-2.6-xfs/fs/xfs/xfs_alloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_alloc.c 2008-10-01 13:42:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_alloc.c 2008-10-01 13:44:56.000000000 +0200 @@ -380,21 +380,20 @@ xfs_alloc_fixup_trees( return error; XFS_WANT_CORRUPTED_RETURN(i == 1); } + #ifdef DEBUG - { - xfs_alloc_block_t *bnoblock; - xfs_alloc_block_t *cntblock; + if (bno_cur->bc_nlevels == 1 && cnt_cur->bc_nlevels == 1) { + struct xfs_btree_block *bnoblock; + struct xfs_btree_block *cntblock; - if (bno_cur->bc_nlevels == 1 && - cnt_cur->bc_nlevels == 1) { - bnoblock = XFS_BUF_TO_ALLOC_BLOCK(bno_cur->bc_bufs[0]); - cntblock = XFS_BUF_TO_ALLOC_BLOCK(cnt_cur->bc_bufs[0]); - XFS_WANT_CORRUPTED_RETURN( - be16_to_cpu(bnoblock->bb_numrecs) == - be16_to_cpu(cntblock->bb_numrecs)); - } + bnoblock = XFS_BUF_TO_BLOCK(bno_cur->bc_bufs[0]); + cntblock = XFS_BUF_TO_BLOCK(cnt_cur->bc_bufs[0]); + + XFS_WANT_CORRUPTED_RETURN( + bnoblock->bb_numrecs == cntblock->bb_numrecs); } #endif + /* * Deal with all four cases: the allocated record is contained * within the freespace record, so we can have new freespace Index: linux-2.6-xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_alloc_btree.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_alloc_btree.c 2008-10-01 13:44:56.000000000 +0200 @@ -490,7 +490,7 @@ xfs_allocbt_maxrecs( int blocklen, int leaf) { - blocklen -= sizeof(struct xfs_btree_sblock); + blocklen -= XFS_ALLOC_BLOCK_LEN(mp); if (leaf) return blocklen / sizeof(xfs_alloc_rec_t); Index: linux-2.6-xfs/fs/xfs/xfs_alloc_btree.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_alloc_btree.h 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_alloc_btree.h 2008-10-01 13:44:56.000000000 +0200 @@ -24,7 +24,6 @@ struct xfs_buf; struct xfs_btree_cur; -struct xfs_btree_sblock; struct xfs_mount; /* @@ -50,10 +49,6 @@ typedef struct xfs_alloc_rec_incore { /* btree pointer type */ typedef __be32 xfs_alloc_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_sblock xfs_alloc_block_t; - -#define XFS_BUF_TO_ALLOC_BLOCK(bp) ((xfs_alloc_block_t *)XFS_BUF_PTR(bp)) /* * Minimum and maximum blocksize and sectorsize. @@ -77,6 +72,13 @@ typedef struct xfs_btree_sblock xfs_allo #define XFS_CNT_BLOCK(mp) ((xfs_agblock_t)(XFS_BNO_BLOCK(mp) + 1)) /* + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) + */ +#define XFS_ALLOC_BLOCK_LEN(mp) XFS_BTREE_SBLOCK_LEN + +/* * Record, key, and pointer address macros for btree blocks. * * (note that some of these may appear unused, but they are used in userspace) @@ -84,19 +86,19 @@ typedef struct xfs_btree_sblock xfs_allo #define XFS_ALLOC_REC_ADDR(mp, block, index) \ ((xfs_alloc_rec_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ (((index) - 1) * sizeof(xfs_alloc_rec_t)))) #define XFS_ALLOC_KEY_ADDR(mp, block, index) \ ((xfs_alloc_key_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ ((index) - 1) * sizeof(xfs_alloc_key_t))) #define XFS_ALLOC_PTR_ADDR(mp, block, index, maxrecs) \ ((xfs_alloc_ptr_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ (maxrecs) * sizeof(xfs_alloc_key_t) + \ ((index) - 1) * sizeof(xfs_alloc_ptr_t))) Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c 2008-10-01 13:44:56.000000000 +0200 @@ -394,7 +394,7 @@ xfs_bmap_count_leaves( STATIC void xfs_bmap_disk_count_leaves( struct xfs_mount *mp, - xfs_bmbt_block_t *block, + struct xfs_btree_block *block, int numrecs, int *count); @@ -3042,14 +3042,14 @@ xfs_bmap_btree_to_extents( int whichfork) /* data or attr fork */ { /* REFERENCED */ - xfs_bmbt_block_t *cblock;/* child btree block */ + struct xfs_btree_block *cblock;/* child btree block */ xfs_fsblock_t cbno; /* child block number */ xfs_buf_t *cbp; /* child block's buffer */ int error; /* error return value */ xfs_ifork_t *ifp; /* inode fork data */ xfs_mount_t *mp; /* mount point structure */ __be64 *pp; /* ptr to block address */ - xfs_bmbt_block_t *rblock;/* root btree block */ + struct xfs_btree_block *rblock;/* root btree block */ mp = ip->i_mount; ifp = XFS_IFORK_PTR(ip, whichfork); @@ -3069,8 +3069,8 @@ xfs_bmap_btree_to_extents( if ((error = xfs_btree_read_bufl(mp, tp, cbno, 0, &cbp, XFS_BMAP_BTREE_REF))) return error; - cblock = XFS_BUF_TO_BMBT_BLOCK(cbp); - if ((error = xfs_btree_check_lblock(cur, cblock, 0, cbp))) + cblock = XFS_BUF_TO_BLOCK(cbp); + if ((error = xfs_btree_check_block(cur, cblock, 0, cbp))) return error; xfs_bmap_add_free(cbno, 1, cur->bc_private.b.flist, mp); ip->i_d.di_nblocks--; @@ -3450,11 +3450,11 @@ xfs_bmap_extents_to_btree( int *logflagsp, /* inode logging flags */ int whichfork) /* data or attr fork */ { - xfs_bmbt_block_t *ablock; /* allocated (child) bt block */ + struct xfs_btree_block *ablock; /* allocated (child) bt block */ xfs_buf_t *abp; /* buffer for ablock */ xfs_alloc_arg_t args; /* allocation arguments */ xfs_bmbt_rec_t *arp; /* child record pointer */ - xfs_bmbt_block_t *block; /* btree root block */ + struct xfs_btree_block *block; /* btree root block */ xfs_btree_cur_t *cur; /* bmap btree cursor */ xfs_bmbt_rec_host_t *ep; /* extent record pointer */ int error; /* error return value */ @@ -3474,6 +3474,7 @@ xfs_bmap_extents_to_btree( */ xfs_iroot_realloc(ip, 1, whichfork); ifp->if_flags |= XFS_IFBROOT; + /* * Fill in the root. */ @@ -3481,8 +3482,9 @@ xfs_bmap_extents_to_btree( block->bb_magic = cpu_to_be32(XFS_BMAP_MAGIC); block->bb_level = cpu_to_be16(1); block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be64(NULLDFSBNO); - block->bb_rightsib = cpu_to_be64(NULLDFSBNO); + block->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + block->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); + /* * Need a cursor. Can't allocate until bb_level is filled in. */ @@ -3534,11 +3536,11 @@ xfs_bmap_extents_to_btree( /* * Fill in the child block. */ - ablock = XFS_BUF_TO_BMBT_BLOCK(abp); + ablock = XFS_BUF_TO_BLOCK(abp); ablock->bb_magic = cpu_to_be32(XFS_BMAP_MAGIC); ablock->bb_level = 0; - ablock->bb_leftsib = cpu_to_be64(NULLDFSBNO); - ablock->bb_rightsib = cpu_to_be64(NULLDFSBNO); + ablock->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + ablock->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); arp = XFS_BMBT_REC_ADDR(mp, ablock, 1); nextents = ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t); for (cnt = i = 0; i < nextents; i++) { @@ -3550,7 +3552,8 @@ xfs_bmap_extents_to_btree( } } ASSERT(cnt == XFS_IFORK_NEXTENTS(ip, whichfork)); - ablock->bb_numrecs = cpu_to_be16(cnt); + xfs_btree_set_numrecs(ablock, cnt); + /* * Fill in the root key and pointer. */ @@ -4533,7 +4536,7 @@ xfs_bmap_read_extents( xfs_inode_t *ip, /* incore inode */ int whichfork) /* data or attr fork */ { - xfs_bmbt_block_t *block; /* current btree block */ + struct xfs_btree_block *block; /* current btree block */ xfs_fsblock_t bno; /* block # of "block" */ xfs_buf_t *bp; /* buffer for "block" */ int error; /* error return value */ @@ -4570,7 +4573,7 @@ xfs_bmap_read_extents( if ((error = xfs_btree_read_bufl(mp, tp, bno, 0, &bp, XFS_BMAP_BTREE_REF))) return error; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); XFS_WANT_CORRUPTED_GOTO( XFS_BMAP_SANITY_CHECK(mp, block, level), error0); @@ -4596,7 +4599,7 @@ xfs_bmap_read_extents( xfs_extnum_t start; - num_recs = be16_to_cpu(block->bb_numrecs); + num_recs = xfs_btree_get_numrecs(block); if (unlikely(i + num_recs > room)) { ASSERT(i + num_recs <= room); xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, @@ -4613,7 +4616,7 @@ xfs_bmap_read_extents( /* * Read-ahead the next leaf block, if any. */ - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); if (nextbno != NULLFSBLOCK) xfs_btree_reada_bufl(mp, nextbno, 1); /* @@ -4650,7 +4653,7 @@ xfs_bmap_read_extents( if ((error = xfs_btree_read_bufl(mp, tp, bno, 0, &bp, XFS_BMAP_BTREE_REF))) return error; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); } ASSERT(i == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))); ASSERT(i == XFS_IFORK_NEXTENTS(ip, whichfork)); @@ -6175,7 +6178,7 @@ xfs_bmap_get_bp( void xfs_check_block( - xfs_bmbt_block_t *block, + struct xfs_btree_block *block, xfs_mount_t *mp, int root, short sz) @@ -6187,7 +6190,7 @@ xfs_check_block( ASSERT(be16_to_cpu(block->bb_level) > 0); prevp = NULL; - for( i = 1; i <= be16_to_cpu(block->bb_numrecs); i++) { + for( i = 1; i <= xfs_btree_get_numrecs(block); i++) { dmxr = mp->m_bmap_dmxr[0]; keyp = XFS_BMBT_KEY_ADDR(mp, block, i); @@ -6232,7 +6235,7 @@ xfs_bmap_check_leaf_extents( xfs_inode_t *ip, /* incore inode pointer */ int whichfork) /* data or attr fork */ { - xfs_bmbt_block_t *block; /* current btree block */ + struct xfs_btree_block *block; /* current btree block */ xfs_fsblock_t bno; /* block # of "block" */ xfs_buf_t *bp; /* buffer for "block" */ int error; /* error return value */ @@ -6282,7 +6285,7 @@ xfs_bmap_check_leaf_extents( if (!bp && (error = xfs_btree_read_bufl(mp, NULL, bno, 0, &bp, XFS_BMAP_BTREE_REF))) goto error_norelse; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); XFS_WANT_CORRUPTED_GOTO( XFS_BMAP_SANITY_CHECK(mp, block, level), error0); @@ -6317,13 +6320,13 @@ xfs_bmap_check_leaf_extents( xfs_extnum_t num_recs; - num_recs = be16_to_cpu(block->bb_numrecs); + num_recs = xfs_btree_get_numrecs(block); /* * Read-ahead the next leaf block, if any. */ - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); /* * Check all the extents to make sure they are OK. @@ -6367,7 +6370,7 @@ xfs_bmap_check_leaf_extents( if (!bp && (error = xfs_btree_read_bufl(mp, NULL, bno, 0, &bp, XFS_BMAP_BTREE_REF))) goto error_norelse; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); } if (bp_release) { bp_release = 0; @@ -6397,7 +6400,7 @@ xfs_bmap_count_blocks( int whichfork, /* data or attr fork */ int *count) /* out: count of blocks */ { - xfs_bmbt_block_t *block; /* current btree block */ + struct xfs_btree_block *block; /* current btree block */ xfs_fsblock_t bno; /* block # of "block" */ xfs_ifork_t *ifp; /* fork structure */ int level; /* btree level, for checking */ @@ -6454,24 +6457,24 @@ xfs_bmap_count_tree( __be64 *pp; xfs_fsblock_t bno = blockno; xfs_fsblock_t nextbno; - xfs_bmbt_block_t *block, *nextblock; + struct xfs_btree_block *block, *nextblock; int numrecs; if ((error = xfs_btree_read_bufl(mp, tp, bno, 0, &bp, XFS_BMAP_BTREE_REF))) return error; *count += 1; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); if (--level) { /* Not at node above leafs, count this level of nodes */ - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); while (nextbno != NULLFSBLOCK) { if ((error = xfs_btree_read_bufl(mp, tp, nextbno, 0, &nbp, XFS_BMAP_BTREE_REF))) return error; *count += 1; - nextblock = XFS_BUF_TO_BMBT_BLOCK(nbp); - nextbno = be64_to_cpu(nextblock->bb_rightsib); + nextblock = XFS_BUF_TO_BLOCK(nbp); + nextbno = be64_to_cpu(nextblock->bb_u.l.bb_rightsib); xfs_trans_brelse(tp, nbp); } @@ -6489,7 +6492,7 @@ xfs_bmap_count_tree( } else { /* count all level 1 nodes and their leaves */ for (;;) { - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); numrecs = be16_to_cpu(block->bb_numrecs); xfs_bmap_disk_count_leaves(mp, block, numrecs, count); xfs_trans_brelse(tp, bp); @@ -6500,7 +6503,7 @@ xfs_bmap_count_tree( XFS_BMAP_BTREE_REF))) return error; *count += 1; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); } } return 0; @@ -6531,7 +6534,7 @@ xfs_bmap_count_leaves( STATIC void xfs_bmap_disk_count_leaves( struct xfs_mount *mp, - xfs_bmbt_block_t *block, + struct xfs_btree_block *block, int numrecs, int *count) { Index: linux-2.6-xfs/fs/xfs/xfs_bmap_btree.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap_btree.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_bmap_btree.c 2008-10-01 13:44:56.000000000 +0200 @@ -68,7 +68,7 @@ xfs_bmdr_to_bmbt( struct xfs_mount *mp, xfs_bmdr_block_t *dblock, int dblocklen, - xfs_bmbt_block_t *rblock, + struct xfs_btree_block *rblock, int rblocklen) { int dmxr; @@ -81,8 +81,8 @@ xfs_bmdr_to_bmbt( rblock->bb_level = dblock->bb_level; ASSERT(be16_to_cpu(rblock->bb_level) > 0); rblock->bb_numrecs = dblock->bb_numrecs; - rblock->bb_leftsib = cpu_to_be64(NULLDFSBNO); - rblock->bb_rightsib = cpu_to_be64(NULLDFSBNO); + rblock->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + rblock->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); dmxr = xfs_bmdr_maxrecs(mp, dblocklen, 0); fkp = XFS_BMDR_KEY_ADDR(dblock, 1); tkp = XFS_BMBT_KEY_ADDR(mp, rblock, 1); @@ -429,7 +429,7 @@ xfs_bmbt_set_state( void xfs_bmbt_to_bmdr( struct xfs_mount *mp, - xfs_bmbt_block_t *rblock, + struct xfs_btree_block *rblock, int rblocklen, xfs_bmdr_block_t *dblock, int dblocklen) @@ -441,8 +441,8 @@ xfs_bmbt_to_bmdr( __be64 *tpp; ASSERT(be32_to_cpu(rblock->bb_magic) == XFS_BMAP_MAGIC); - ASSERT(be64_to_cpu(rblock->bb_leftsib) == NULLDFSBNO); - ASSERT(be64_to_cpu(rblock->bb_rightsib) == NULLDFSBNO); + ASSERT(be64_to_cpu(rblock->bb_u.l.bb_leftsib) == NULLDFSBNO); + ASSERT(be64_to_cpu(rblock->bb_u.l.bb_rightsib) == NULLDFSBNO); ASSERT(be16_to_cpu(rblock->bb_level) > 0); dblock->bb_level = rblock->bb_level; dblock->bb_numrecs = rblock->bb_numrecs; @@ -906,7 +906,7 @@ xfs_bmbt_maxrecs( int blocklen, int leaf) { - blocklen -= sizeof(struct xfs_btree_lblock); + blocklen -= XFS_BMBT_BLOCK_LEN(mp); if (leaf) return blocklen / sizeof(xfs_bmbt_rec_t); Index: linux-2.6-xfs/fs/xfs/xfs_bmap_btree.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap_btree.h 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_bmap_btree.h 2008-10-01 13:44:56.000000000 +0200 @@ -22,7 +22,6 @@ struct xfs_btree_cur; struct xfs_btree_block; -struct xfs_btree_lblock; struct xfs_mount; struct xfs_inode; struct xfs_trans; @@ -147,27 +146,29 @@ typedef struct xfs_bmbt_key { /* btree pointer type */ typedef __be64 xfs_bmbt_ptr_t, xfs_bmdr_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_lblock xfs_bmbt_block_t; - -#define XFS_BUF_TO_BMBT_BLOCK(bp) ((xfs_bmbt_block_t *)XFS_BUF_PTR(bp)) +/* + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) + */ +#define XFS_BMBT_BLOCK_LEN(mp) XFS_BTREE_LBLOCK_LEN #define XFS_BMBT_REC_ADDR(mp, block, index) \ ((xfs_bmbt_rec_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_lblock) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ ((index) - 1) * sizeof(xfs_bmbt_rec_t))) #define XFS_BMBT_KEY_ADDR(mp, block, index) \ ((xfs_bmbt_key_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_lblock) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ ((index) - 1) * sizeof(xfs_bmbt_key_t))) #define XFS_BMBT_PTR_ADDR(mp, block, index, maxrecs) \ ((xfs_bmbt_ptr_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_lblock) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ (maxrecs) * sizeof(xfs_bmbt_key_t) + \ ((index) - 1) * sizeof(xfs_bmbt_ptr_t))) @@ -198,7 +199,7 @@ typedef struct xfs_btree_lblock xfs_bmbt XFS_BMBT_PTR_ADDR(mp, bb, i, xfs_bmbt_maxrecs(mp, sz, 0)) #define XFS_BMAP_BROOT_SPACE_CALC(nrecs) \ - (int)(sizeof(xfs_bmbt_block_t) + \ + (int)(XFS_BTREE_LBLOCK_LEN + \ ((nrecs) * (sizeof(xfs_bmbt_key_t) + sizeof(xfs_bmbt_ptr_t)))) #define XFS_BMAP_BROOT_SPACE(bb) \ @@ -223,7 +224,7 @@ typedef struct xfs_btree_lblock xfs_bmbt * Prototypes for xfs_bmap.c to call. */ extern void xfs_bmdr_to_bmbt(struct xfs_mount *, xfs_bmdr_block_t *, int, - xfs_bmbt_block_t *, int); + struct xfs_btree_block *, int); extern void xfs_bmbt_get_all(xfs_bmbt_rec_host_t *r, xfs_bmbt_irec_t *s); extern xfs_filblks_t xfs_bmbt_get_blockcount(xfs_bmbt_rec_host_t *r); extern xfs_fsblock_t xfs_bmbt_get_startblock(xfs_bmbt_rec_host_t *r); @@ -246,7 +247,7 @@ extern void xfs_bmbt_disk_set_all(xfs_bm extern void xfs_bmbt_disk_set_allf(xfs_bmbt_rec_t *r, xfs_fileoff_t o, xfs_fsblock_t b, xfs_filblks_t c, xfs_exntst_t v); -extern void xfs_bmbt_to_bmdr(struct xfs_mount *, xfs_bmbt_block_t *, int, +extern void xfs_bmbt_to_bmdr(struct xfs_mount *, struct xfs_btree_block *, int, xfs_bmdr_block_t *, int); extern int xfs_bmbt_get_maxrecs(struct xfs_btree_cur *, int level); Index: linux-2.6-xfs/fs/xfs/xfs_btree.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_btree.c 2008-10-01 13:42:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_btree.c 2008-10-01 13:44:56.000000000 +0200 @@ -53,10 +53,10 @@ const __uint32_t xfs_magics[XFS_BTNUM_MA }; -int /* error (0 or EFSCORRUPTED) */ +STATIC int /* error (0 or EFSCORRUPTED) */ xfs_btree_check_lblock( struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_lblock *block, /* btree long form block pointer */ + struct xfs_btree_block *block, /* btree long form block pointer */ int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer for block, if any */ { @@ -69,12 +69,14 @@ xfs_btree_check_lblock( be16_to_cpu(block->bb_level) == level && be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && - block->bb_leftsib && - (be64_to_cpu(block->bb_leftsib) == NULLDFSBNO || - XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_leftsib))) && - block->bb_rightsib && - (be64_to_cpu(block->bb_rightsib) == NULLDFSBNO || - XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_rightsib))); + block->bb_u.l.bb_leftsib && + (be64_to_cpu(block->bb_u.l.bb_leftsib) == NULLDFSBNO || + XFS_FSB_SANITY_CHECK(mp, + be64_to_cpu(block->bb_u.l.bb_leftsib))) && + block->bb_u.l.bb_rightsib && + (be64_to_cpu(block->bb_u.l.bb_rightsib) == NULLDFSBNO || + XFS_FSB_SANITY_CHECK(mp, + be64_to_cpu(block->bb_u.l.bb_rightsib))); if (unlikely(XFS_TEST_ERROR(!lblock_ok, mp, XFS_ERRTAG_BTREE_CHECK_LBLOCK, XFS_RANDOM_BTREE_CHECK_LBLOCK))) { @@ -90,7 +92,7 @@ xfs_btree_check_lblock( STATIC int /* error (0 or EFSCORRUPTED) */ xfs_btree_check_sblock( struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_sblock *block, /* btree short form block pointer */ + struct xfs_btree_block *block, /* btree short form block pointer */ int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer containing block */ { @@ -107,12 +109,12 @@ xfs_btree_check_sblock( be16_to_cpu(block->bb_level) == level && be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && - (be32_to_cpu(block->bb_leftsib) == NULLAGBLOCK || - be32_to_cpu(block->bb_leftsib) < agflen) && - block->bb_leftsib && - (be32_to_cpu(block->bb_rightsib) == NULLAGBLOCK || - be32_to_cpu(block->bb_rightsib) < agflen) && - block->bb_rightsib; + (be32_to_cpu(block->bb_u.s.bb_leftsib) == NULLAGBLOCK || + be32_to_cpu(block->bb_u.s.bb_leftsib) < agflen) && + block->bb_u.s.bb_leftsib && + (be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK || + be32_to_cpu(block->bb_u.s.bb_rightsib) < agflen) && + block->bb_u.s.bb_rightsib; if (unlikely(XFS_TEST_ERROR(!sblock_ok, cur->bc_mp, XFS_ERRTAG_BTREE_CHECK_SBLOCK, XFS_RANDOM_BTREE_CHECK_SBLOCK))) { @@ -135,13 +137,10 @@ xfs_btree_check_block( int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer containing block, if any */ { - if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { - return xfs_btree_check_lblock(cur, - (struct xfs_btree_lblock *)block, level, bp); - } else { - return xfs_btree_check_sblock(cur, - (struct xfs_btree_sblock *)block, level, bp); - } + if (cur->bc_flags & XFS_BTREE_LONG_PTRS) + return xfs_btree_check_lblock(cur, block, level, bp); + else + return xfs_btree_check_sblock(cur, block, level, bp); } /* @@ -326,8 +325,8 @@ xfs_btree_dup_cursor( static inline size_t xfs_btree_block_len(struct xfs_btree_cur *cur) { return (cur->bc_flags & XFS_BTREE_LONG_PTRS) ? - sizeof(struct xfs_btree_lblock) : - sizeof(struct xfs_btree_sblock); + XFS_BTREE_LBLOCK_LEN : + XFS_BTREE_SBLOCK_LEN; } /* @@ -510,7 +509,7 @@ xfs_btree_islastblock( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to check */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ block = xfs_btree_get_block(cur, level, &bp); @@ -530,7 +529,7 @@ xfs_btree_firstrec( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to change */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ /* @@ -559,7 +558,7 @@ xfs_btree_lastrec( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to change */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ /* @@ -814,7 +813,7 @@ xfs_btree_setbuf( int lev, /* level in btree */ xfs_buf_t *bp) /* new buffer to set */ { - xfs_btree_block_t *b; /* btree block */ + struct xfs_btree_block *b; /* btree block */ xfs_buf_t *obp; /* old buffer pointer */ obp = cur->bc_bufs[lev]; @@ -1252,20 +1251,20 @@ xfs_btree_log_block( int first; /* first byte offset logged */ int last; /* last byte offset logged */ static const short soffsets[] = { /* table of offsets (short) */ - offsetof(struct xfs_btree_sblock, bb_magic), - offsetof(struct xfs_btree_sblock, bb_level), - offsetof(struct xfs_btree_sblock, bb_numrecs), - offsetof(struct xfs_btree_sblock, bb_leftsib), - offsetof(struct xfs_btree_sblock, bb_rightsib), - sizeof(struct xfs_btree_sblock) + offsetof(struct xfs_btree_block, bb_magic), + offsetof(struct xfs_btree_block, bb_level), + offsetof(struct xfs_btree_block, bb_numrecs), + offsetof(struct xfs_btree_block, bb_u.s.bb_leftsib), + offsetof(struct xfs_btree_block, bb_u.s.bb_rightsib), + XFS_BTREE_SBLOCK_LEN }; static const short loffsets[] = { /* table of offsets (long) */ - offsetof(struct xfs_btree_lblock, bb_magic), - offsetof(struct xfs_btree_lblock, bb_level), - offsetof(struct xfs_btree_lblock, bb_numrecs), - offsetof(struct xfs_btree_lblock, bb_leftsib), - offsetof(struct xfs_btree_lblock, bb_rightsib), - sizeof(struct xfs_btree_lblock) + offsetof(struct xfs_btree_block, bb_magic), + offsetof(struct xfs_btree_block, bb_level), + offsetof(struct xfs_btree_block, bb_numrecs), + offsetof(struct xfs_btree_block, bb_u.l.bb_leftsib), + offsetof(struct xfs_btree_block, bb_u.l.bb_rightsib), + XFS_BTREE_LBLOCK_LEN }; XFS_BTREE_TRACE_CURSOR(cur, XBT_ENTRY); @@ -3018,7 +3017,7 @@ xfs_btree_kill_iroot( if (index) { xfs_iroot_realloc(cur->bc_private.b.ip, index, cur->bc_private.b.whichfork); - block = (struct xfs_btree_block *)ifp->if_broot; + block = ifp->if_broot; } be16_add_cpu(&block->bb_numrecs, index); Index: linux-2.6-xfs/fs/xfs/xfs_btree.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_btree.h 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_btree.h 2008-10-01 13:44:56.000000000 +0200 @@ -39,31 +39,16 @@ extern kmem_zone_t *xfs_btree_cur_zone; #define XFS_BTNUM_INO ((xfs_btnum_t)XFS_BTNUM_INOi) /* - * Short form header: space allocation btrees. - */ -typedef struct xfs_btree_sblock { - __be32 bb_magic; /* magic number for block type */ - __be16 bb_level; /* 0 is a leaf */ - __be16 bb_numrecs; /* current # of data records */ - __be32 bb_leftsib; /* left sibling block or NULLAGBLOCK */ - __be32 bb_rightsib; /* right sibling block or NULLAGBLOCK */ -} xfs_btree_sblock_t; - -/* - * Long form header: bmap btrees. - */ -typedef struct xfs_btree_lblock { - __be32 bb_magic; /* magic number for block type */ - __be16 bb_level; /* 0 is a leaf */ - __be16 bb_numrecs; /* current # of data records */ - __be64 bb_leftsib; /* left sibling block or NULLDFSBNO */ - __be64 bb_rightsib; /* right sibling block or NULLDFSBNO */ -} xfs_btree_lblock_t; - -/* - * Combined header and structure, used by common code. + * Generic btree header. + * + * This is a comination of the actual format used on disk for short and long + * format btrees. The first three fields are shared by both format, but + * the pointers are different and should be used with care. + * + * To get the size of the actual short or long form headers please use + * the size macros below. Never use sizeof(xfs_btree_block). */ -typedef struct xfs_btree_block { +struct xfs_btree_block { __be32 bb_magic; /* magic number for block type */ __be16 bb_level; /* 0 is a leaf */ __be16 bb_numrecs; /* current # of data records */ @@ -77,7 +62,11 @@ typedef struct xfs_btree_block { __be64 bb_rightsib; } l; /* long form pointers */ } bb_u; /* rest */ -} xfs_btree_block_t; +}; + +#define XFS_BTREE_SBLOCK_LEN 16 /* size of a short form block */ +#define XFS_BTREE_LBLOCK_LEN 24 /* size of a long form block */ + /* * Generic key, ptr and record wrapper structures. @@ -294,20 +283,8 @@ typedef struct xfs_btree_cur /* * Convert from buffer to btree block header. */ -#define XFS_BUF_TO_BLOCK(bp) ((xfs_btree_block_t *)XFS_BUF_PTR(bp)) -#define XFS_BUF_TO_LBLOCK(bp) ((xfs_btree_lblock_t *)XFS_BUF_PTR(bp)) -#define XFS_BUF_TO_SBLOCK(bp) ((xfs_btree_sblock_t *)XFS_BUF_PTR(bp)) - +#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)XFS_BUF_PTR(bp)) -/* - * Check that long form block header is ok. - */ -int /* error (0 or EFSCORRUPTED) */ -xfs_btree_check_lblock( - struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_lblock *block, /* btree long form block pointer */ - int level, /* level of the btree block */ - struct xfs_buf *bp); /* buffer containing block, if any */ /* * Check that block header is ok. Index: linux-2.6-xfs/fs/xfs/xfs_fsops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fsops.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_fsops.c 2008-10-01 13:44:56.000000000 +0200 @@ -126,7 +126,7 @@ xfs_growfs_data_private( xfs_extlen_t agsize; xfs_extlen_t tmpsize; xfs_alloc_rec_t *arec; - xfs_btree_sblock_t *block; + struct xfs_btree_block *block; xfs_buf_t *bp; int bucket; int dpct; @@ -251,13 +251,13 @@ xfs_growfs_data_private( bp = xfs_buf_get(mp->m_ddev_targp, XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)), BTOBB(mp->m_sb.sb_blocksize), 0); - block = XFS_BUF_TO_SBLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); memset(block, 0, mp->m_sb.sb_blocksize); block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC); block->bb_level = 0; block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); arec = XFS_ALLOC_REC_ADDR(mp, block, 1); arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); arec->ar_blockcount = cpu_to_be32( @@ -272,13 +272,13 @@ xfs_growfs_data_private( bp = xfs_buf_get(mp->m_ddev_targp, XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)), BTOBB(mp->m_sb.sb_blocksize), 0); - block = XFS_BUF_TO_SBLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); memset(block, 0, mp->m_sb.sb_blocksize); block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC); block->bb_level = 0; block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); arec = XFS_ALLOC_REC_ADDR(mp, block, 1); arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); arec->ar_blockcount = cpu_to_be32( @@ -294,13 +294,13 @@ xfs_growfs_data_private( bp = xfs_buf_get(mp->m_ddev_targp, XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)), BTOBB(mp->m_sb.sb_blocksize), 0); - block = XFS_BUF_TO_SBLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); memset(block, 0, mp->m_sb.sb_blocksize); block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); block->bb_level = 0; block->bb_numrecs = 0; - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); error = xfs_bwrite(mp, bp); if (error) { goto error0; Index: linux-2.6-xfs/fs/xfs/xfs_ialloc_btree.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc_btree.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc_btree.c 2008-10-01 13:44:56.000000000 +0200 @@ -375,7 +375,7 @@ xfs_inobt_maxrecs( int blocklen, int leaf) { - blocklen -= sizeof(struct xfs_btree_sblock); + blocklen -= XFS_INOBT_BLOCK_LEN(mp); if (leaf) return blocklen / sizeof(xfs_inobt_rec_t); Index: linux-2.6-xfs/fs/xfs/xfs_ialloc_btree.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc_btree.h 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc_btree.h 2008-10-01 13:44:56.000000000 +0200 @@ -24,7 +24,6 @@ struct xfs_buf; struct xfs_btree_cur; -struct xfs_btree_sblock; struct xfs_mount; /* @@ -70,11 +69,6 @@ typedef struct xfs_inobt_key { /* btree pointer type */ typedef __be32 xfs_inobt_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_sblock xfs_inobt_block_t; - -#define XFS_BUF_TO_INOBT_BLOCK(bp) ((xfs_inobt_block_t *)XFS_BUF_PTR(bp)) - /* * Bit manipulations for ir_free. */ @@ -96,6 +90,13 @@ typedef struct xfs_btree_sblock xfs_inob #define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1)) /* + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) + */ +#define XFS_INOBT_BLOCK_LEN(mp) XFS_BTREE_SBLOCK_LEN + +/* * Record, key, and pointer address macros for btree blocks. * * (note that some of these may appear unused, but they are used in userspace) @@ -103,19 +104,19 @@ typedef struct xfs_btree_sblock xfs_inob #define XFS_INOBT_REC_ADDR(mp, block, index) \ ((xfs_inobt_rec_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ (((index) - 1) * sizeof(xfs_inobt_rec_t)))) #define XFS_INOBT_KEY_ADDR(mp, block, index) \ ((xfs_inobt_key_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ ((index) - 1) * sizeof(xfs_inobt_key_t))) #define XFS_INOBT_PTR_ADDR(mp, block, index, maxrecs) \ ((xfs_inobt_ptr_t *) \ ((char *)(block) + \ - sizeof(struct xfs_btree_sblock) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ (maxrecs) * sizeof(xfs_inobt_key_t) + \ ((index) - 1) * sizeof(xfs_inobt_ptr_t))) Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-01 13:44:56.000000000 +0200 @@ -2352,7 +2352,7 @@ xfs_iroot_realloc( struct xfs_mount *mp = ip->i_mount; int cur_max; xfs_ifork_t *ifp; - xfs_bmbt_block_t *new_broot; + struct xfs_btree_block *new_broot; int new_max; size_t new_size; char *np; @@ -2373,8 +2373,7 @@ xfs_iroot_realloc( */ if (ifp->if_broot_bytes == 0) { new_size = (size_t)XFS_BMAP_BROOT_SPACE_CALC(rec_diff); - ifp->if_broot = (xfs_bmbt_block_t*)kmem_alloc(new_size, - KM_SLEEP); + ifp->if_broot = kmem_alloc(new_size, KM_SLEEP); ifp->if_broot_bytes = (int)new_size; return; } @@ -2388,9 +2387,7 @@ xfs_iroot_realloc( cur_max = xfs_bmbt_maxrecs(mp, ifp->if_broot_bytes, 0); new_max = cur_max + rec_diff; new_size = (size_t)XFS_BMAP_BROOT_SPACE_CALC(new_max); - ifp->if_broot = (xfs_bmbt_block_t *) - kmem_realloc(ifp->if_broot, - new_size, + ifp->if_broot = kmem_realloc(ifp->if_broot, new_size, (size_t)XFS_BMAP_BROOT_SPACE_CALC(cur_max), /* old size */ KM_SLEEP); op = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, ifp->if_broot, 1, @@ -2418,11 +2415,11 @@ xfs_iroot_realloc( else new_size = 0; if (new_size > 0) { - new_broot = (xfs_bmbt_block_t *)kmem_alloc(new_size, KM_SLEEP); + new_broot = kmem_alloc(new_size, KM_SLEEP); /* * First copy over the btree block header. */ - memcpy(new_broot, ifp->if_broot, sizeof(xfs_bmbt_block_t)); + memcpy(new_broot, ifp->if_broot, XFS_BTREE_LBLOCK_LEN); } else { new_broot = NULL; ifp->if_flags &= ~XFS_IFBROOT; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-01 13:43:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-01 13:45:07.000000000 +0200 @@ -63,7 +63,7 @@ typedef struct xfs_ext_irec { typedef struct xfs_ifork { int if_bytes; /* bytes in if_u1 */ int if_real_bytes; /* bytes allocated in if_u1 */ - xfs_bmbt_block_t *if_broot; /* file's incore btree root */ + struct xfs_btree_block *if_broot; /* file's incore btree root */ short if_broot_bytes; /* bytes allocated for root */ unsigned char if_flags; /* per-fork flags */ unsigned char if_ext_max; /* max # of extent records */ @@ -213,7 +213,6 @@ struct ktrace; struct xfs_buf; struct xfs_bmap_free; struct xfs_bmbt_irec; -struct xfs_bmbt_block; struct xfs_inode_log_item; struct xfs_mount; struct xfs_trans; Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-01 13:44:56.000000000 +0200 @@ -2452,8 +2452,8 @@ xlog_recover_do_inode_trans( break; case XFS_ILOG_DBROOT: - xfs_bmbt_to_bmdr(mp, (xfs_bmbt_block_t *)src, len, - &(dip->di_u.di_bmbt), + xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, + &dip->di_u.di_bmbt, XFS_DFORK_DSIZE(dip, mp)); break; @@ -2490,8 +2490,8 @@ xlog_recover_do_inode_trans( case XFS_ILOG_ABROOT: dest = XFS_DFORK_APTR(dip); - xfs_bmbt_to_bmdr(mp, (xfs_bmbt_block_t *)src, len, - (xfs_bmdr_block_t*)dest, + xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, + len, (xfs_bmdr_block_t*)dest, XFS_DFORK_ASIZE(dip, mp)); break; Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-01 13:44:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-01 13:44:56.000000000 +0200 @@ -3078,7 +3078,7 @@ xfsidbg_print_alloc_key(int i, union xfs } static struct xfsidbg_btree xfsidbg_allocbt = { - .block_len = sizeof(struct xfs_btree_sblock), + .block_len = XFS_BTREE_SBLOCK_LEN, .key_len = sizeof(xfs_alloc_key_t), .rec_len = sizeof(xfs_alloc_rec_t), .ptr_len = sizeof(__be32), @@ -3110,7 +3110,7 @@ xfsidbg_print_bmbt_key(int i, union xfs_ } static struct xfsidbg_btree xfsidbg_bmbt = { - .block_len = sizeof(struct xfs_btree_lblock), + .block_len = XFS_BTREE_LBLOCK_LEN, .key_len = sizeof(xfs_bmbt_key_t), .rec_len = sizeof(xfs_bmbt_rec_t), .ptr_len = sizeof(__be64), @@ -3138,7 +3138,7 @@ xfsidbg_print_inobt_key(int i, union xfs } static struct xfsidbg_btree xfsidbg_inobtbt = { - .block_len = sizeof(struct xfs_btree_sblock), + .block_len = XFS_BTREE_SBLOCK_LEN, .key_len = sizeof(xfs_inobt_key_t), .rec_len = sizeof(xfs_inobt_rec_t), .ptr_len = sizeof(__be32), @@ -3162,8 +3162,7 @@ xfs_broot(xfs_inode_t *ip, xfs_ifork_t * return; } - xfs_btblock((struct xfs_btree_block *)f->if_broot, f->if_broot_bytes, - &xfsidbg_bmbt); + xfs_btblock(f->if_broot, f->if_broot_bytes, &xfsidbg_bmbt); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-01 13:44:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-01 13:44:56.000000000 +0200 @@ -165,7 +165,7 @@ typedef enum xfs_dinode_fmt */ #define XFS_LITINO(mp) ((mp)->m_litino) #define XFS_BROOT_SIZE_ADJ \ - (sizeof(xfs_bmbt_block_t) - sizeof(xfs_bmdr_block_t)) + (XFS_BTREE_LBLOCK_LEN - sizeof(xfs_bmdr_block_t)) /* * Inode data & attribute fork sizes, per inode. From owner-xfs@oss.sgi.com Wed Oct 1 10:51:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91HpCK3024881 for ; Wed, 1 Oct 2008 10:51:13 -0700 X-ASG-Debug-ID: 1222883563-2fd000840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpout.eastlink.ca (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8DCC31305EA4 for ; Wed, 1 Oct 2008 10:52:44 -0700 (PDT) Received: from smtpout.eastlink.ca (smtpout.eastlink.ca [24.222.0.30]) by cuda.sgi.com with ESMTP id CN0nCvGaPN3HFpWh for ; Wed, 01 Oct 2008 10:52:44 -0700 (PDT) Received: from ip01.eastlink.ca ([24.222.39.10]) by mta02.eastlink.ca (Sun Java System Messaging Server 6.2-4.03 (built Sep 22 2005)) with ESMTP id <0K8200CEQMZVKVW2@mta02.eastlink.ca> for xfs@oss.sgi.com; Wed, 01 Oct 2008 14:52:43 -0300 (ADT) Received: from unknown (HELO llama.cordes.ca) ([24.222.198.92]) by ip01.eastlink.ca with ESMTP; Wed, 01 Oct 2008 14:32:07 -0300 Received: from peter by llama.cordes.ca with local (Exim 3.36 #1 (Debian)) id 1Kl5sL-0006YW-00 for ; Wed, 01 Oct 2008 14:52:37 -0300 Date: Wed, 01 Oct 2008 14:52:37 -0300 From: Peter Cordes X-ASG-Orig-Subj: RAID5/6 writes Subject: RAID5/6 writes To: xfs@oss.sgi.com Message-id: <20081001175237.GJ32037@cordes.ca> MIME-version: 1.0 Content-type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary=l76fUT7nc3MelDdI Content-disposition: inline X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAFNW40gY3sZc/2dsb2JhbAC+RoFq X-IronPort-AV: E=Sophos;i="4.33,344,1220238000"; d="asc'?scan'208";a="435675237" User-Agent: Mutt/1.5.13 (2006-08-11) X-Barracuda-Connect: smtpout.eastlink.ca[24.222.0.30] X-Barracuda-Start-Time: 1222883569 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.6995 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --l76fUT7nc3MelDdI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable I just had an idea for speeding up writes to parity-based RAIDs (RAID4,5,6).[1] If XFS wants to write sectors 1,2,3, 5,6,7, but it knows that block 4 is free space, it might be better to write sector 4 (with zeros, don't put uninitialized kernel memory on disk!). It's probably only useful to do this if XFS has data in memory to prove that the gap is not part of the filesystem. Doing extra reads probably doesn't make sense except in very special cases. (e.g. repeated writes to the same location with the same hole, so just one read would let them all become full-block or even full-stripe writes.) XFS knows (or should have been told by the admin with mkfs!) what the stripe geometry is: block size and stripe width. So it could apply this optimization only if it would make a write cover more whole blocks or whole stripes. [1] See http://www.acnc.com/04_01_05.html if you need a reminder of what RAID level is what... It has good pictures and explanations. :) I use RAID6 on a Dell PERC 6/e with 8 500GB SATA disks, and I'm still tuning XFS for it... (I'll start another with some tuning questions...) RAID5 write performance has the same limitations as RAID6, and more people know about it, so... RAID5 is ok at sequential writes, but non-full-stripe writes require reading the rest of the data for stripe so the parity stripe(s) can be recalculated and rewritten. (typical block size is 64kiB, and with a 7 disk RAID5, a full stripe is 64kiB*(7-1) =3D 384kiB.) Within a single 64kiB block, small scattered writes are deadly: It's a read-modify-write (or write-read) because the whole 64kiB is needed (along with the data from the other disks with data in this stripe). HW RAID controllers have large e.g. 256MiB caches so they can merge writes, and sometimes avoid the extra reads. --=20 #define X(x,y) x##y Peter Cordes ; e-mail: X(peter@cor , des.ca) "The gods confound the man who first found out how to distinguish the hours! Confound him, too, who in this place set up a sundial, to cut and hack my day so wretchedly into small pieces!" -- Plautus, 200 BC --l76fUT7nc3MelDdI Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iQC1AwUBSOO45QWkmhLkWuRTAQIvPAUArBXL498eNNgWYji/kRmfU90blT5kWHpO efranes2Oin+/JTJyTlxRzvG6tPiUYRK1ygyXWFu2FcXIwWZkAdF+lqDGOLE54Gv 8Sg1pexOQWYjXNysN6xqPYDlJW6w5gSaMEOPw2H4cBrNVpVuIbAjzrTFg2WrzA7h BPjH7NYaTpmMTCpXvxn7R7lIcpVauePznUOqBnR1EBks5dqpdggthw== =nyPc -----END PGP SIGNATURE----- --l76fUT7nc3MelDdI-- From owner-xfs@oss.sgi.com Wed Oct 1 12:34:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91JYdXE002850 for ; Wed, 1 Oct 2008 12:34:41 -0700 X-ASG-Debug-ID: 1222889775-679002c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from one.firstfloor.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ABCF11306B3B for ; Wed, 1 Oct 2008 12:36:16 -0700 (PDT) Received: from one.firstfloor.org (one.firstfloor.org [213.235.205.2]) by cuda.sgi.com with ESMTP id vTZa80mHs1ON3B5e for ; Wed, 01 Oct 2008 12:36:16 -0700 (PDT) Received: from basil.firstfloor.org (f053156026.adsl.alicedsl.de [78.53.156.26]) by one.firstfloor.org (Postfix) with ESMTP id 6DFE51AD0020; Wed, 1 Oct 2008 21:41:51 +0200 (CEST) Received: by basil.firstfloor.org (Postfix, from userid 1000) id 4A13E3E6A07; Wed, 1 Oct 2008 21:36:13 +0200 (CEST) To: Peter Cordes Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: RAID5/6 writes Subject: Re: RAID5/6 writes From: Andi Kleen References: <20081001175237.GJ32037@cordes.ca> Date: Wed, 01 Oct 2008 21:36:13 +0200 In-Reply-To: <20081001175237.GJ32037@cordes.ca> (Peter Cordes's message of "Wed, 01 Oct 2008 14:52:37 -0300") Message-ID: <87k5csp0pe.fsf@basil.nowhere.org> User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: one.firstfloor.org[213.235.205.2] X-Barracuda-Start-Time: 1222889776 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2586 1.0000 -0.5343 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.53 X-Barracuda-Spam-Status: No, SCORE=-0.53 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7003 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Peter Cordes writes: > > XFS knows (or should have been told by the admin with mkfs!) what the > stripe geometry is: block size and stripe width. So it could apply > this optimization only if it would make a write cover more whole > blocks or whole stripes. It's a nice idea, but I don't think XFS knows the actual RAID level, only the stripes. And for 0/1 it wouldn't be a good idea. -Andi From owner-xfs@oss.sgi.com Wed Oct 1 13:12:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91KC0P4004910 for ; Wed, 1 Oct 2008 13:12:00 -0700 X-ASG-Debug-ID: 1222892017-738e032c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpout.eastlink.ca (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0265A134E220 for ; Wed, 1 Oct 2008 13:13:37 -0700 (PDT) Received: from smtpout.eastlink.ca (smtpout.eastlink.ca [24.222.0.30]) by cuda.sgi.com with ESMTP id 6EB6VkjEu037avgb for ; Wed, 01 Oct 2008 13:13:37 -0700 (PDT) Received: from ip02.eastlink.ca ([24.222.39.20]) by mta01.eastlink.ca (Sun Java System Messaging Server 6.2-4.03 (built Sep 22 2005)) with ESMTP id <0K82004T7TIK5031@mta01.eastlink.ca> for xfs@oss.sgi.com; Wed, 01 Oct 2008 17:13:32 -0300 (ADT) Received: from unknown (HELO llama.cordes.ca) ([24.222.198.92]) by ip02.eastlink.ca with ESMTP; Wed, 01 Oct 2008 16:52:14 -0300 Received: from peter by llama.cordes.ca with local (Exim 3.36 #1 (Debian)) id 1Kl84h-0003xe-00; Wed, 01 Oct 2008 17:13:31 -0300 Date: Wed, 01 Oct 2008 17:13:31 -0300 From: Peter Cordes X-ASG-Orig-Subj: Re: RAID5/6 writes Subject: Re: RAID5/6 writes In-reply-to: <87k5csp0pe.fsf@basil.nowhere.org> To: Andi Kleen Cc: xfs@oss.sgi.com Message-id: <20081001201331.GL32037@cordes.ca> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAG9240gY3sZc/2dsb2JhbAC+bIFq X-IronPort-AV: E=Sophos;i="4.33,345,1220238000"; d="scan'208";a="335481827" References: <20081001175237.GJ32037@cordes.ca> <87k5csp0pe.fsf@basil.nowhere.org> User-Agent: Mutt/1.5.13 (2006-08-11) X-Barracuda-Connect: smtpout.eastlink.ca[24.222.0.30] X-Barracuda-Start-Time: 1222892018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0204 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7004 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 01, 2008 at 09:36:13PM +0200, Andi Kleen wrote: > Peter Cordes writes: > > > > XFS knows (or should have been told by the admin with mkfs!) what the > > stripe geometry is: block size and stripe width. So it could apply > > this optimization only if it would make a write cover more whole > > blocks or whole stripes. > > It's a nice idea, but I don't think XFS knows the actual RAID level, > only the stripes. And for 0/1 it wouldn't be a good idea. Yeah, this would have to be a mount option, like stripewrite=1. There are already a few other essential mount options people need to learn about for big RAIDs, e.g. inode64. AFAIK, XFS only knows the stripe geometry (sunit, swidth), not how many parity blocks are part of each stripe, so it can't tell the difference between RAID0 and RAID4,5,6. (let alone RAID60...). XFS on RAID1 will have swidth=0, though. Probably the only sane default is 0, even when swidth!=0, to make sure it doesn't cause problems for anyone or slow down RAID0. Thanks for the CC, since I'm not subscribe to the xfs list. -- #define X(x,y) x##y Peter Cordes ; e-mail: X(peter@cor , des.ca) "The gods confound the man who first found out how to distinguish the hours! Confound him, too, who in this place set up a sundial, to cut and hack my day so wretchedly into small pieces!" -- Plautus, 200 BC From owner-xfs@oss.sgi.com Wed Oct 1 13:17:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91KH9NZ005659 for ; Wed, 1 Oct 2008 13:17:09 -0700 X-ASG-Debug-ID: 1222892310-482300ef0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail3.varieddelivery.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 72AF97AB438 for ; Wed, 1 Oct 2008 13:18:30 -0700 (PDT) Received: from mail3.varieddelivery.com (mail3.varieddelivery.com [74.53.234.86]) by cuda.sgi.com with SMTP id IVP5S7TqONEWHujP for ; Wed, 01 Oct 2008 13:18:30 -0700 (PDT) To: "xfs" From: "StreamlineJets.com" Reply-To: X-ASG-Orig-Subj: Create Personal Wealth From Home Subject: Create Personal Wealth From Home Date: 1 Oct 2008 16:12:45 -0400 MIME-Version: 1.0 X-Barracuda-Connect: mail3.varieddelivery.com[74.53.234.86] X-Barracuda-Start-Time: 1222892317 Message-Id: <20081001201830.72AF97AB438@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7006 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 182 This message is a HTML message, you can not read this message correctly. Please allow HTML to be displayed to see this message in the entirety. [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 1 13:37:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91KbcjK007312 for ; Wed, 1 Oct 2008 13:37:40 -0700 X-ASG-Debug-ID: 1222893555-053903790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from one.firstfloor.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE333134E1F8 for ; Wed, 1 Oct 2008 13:39:15 -0700 (PDT) Received: from one.firstfloor.org (one.firstfloor.org [213.235.205.2]) by cuda.sgi.com with ESMTP id O3szKCEBOFU5haKA for ; Wed, 01 Oct 2008 13:39:15 -0700 (PDT) Received: by one.firstfloor.org (Postfix, from userid 503) id D9B901AD0020; Wed, 1 Oct 2008 22:44:50 +0200 (CEST) Date: Wed, 1 Oct 2008 22:44:50 +0200 From: Andi Kleen To: Peter Cordes Cc: Andi Kleen , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: RAID5/6 writes Subject: Re: RAID5/6 writes Message-ID: <20081001204450.GA25711@one.firstfloor.org> References: <20081001175237.GJ32037@cordes.ca> <87k5csp0pe.fsf@basil.nowhere.org> <20081001201331.GL32037@cordes.ca> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081001201331.GL32037@cordes.ca> User-Agent: Mutt/1.4.2.1i X-Barracuda-Connect: one.firstfloor.org[213.235.205.2] X-Barracuda-Start-Time: 1222893555 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0122 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7006 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 01, 2008 at 05:13:31PM -0300, Peter Cordes wrote: > On Wed, Oct 01, 2008 at 09:36:13PM +0200, Andi Kleen wrote: > > Peter Cordes writes: > > > > > > XFS knows (or should have been told by the admin with mkfs!) what the > > > stripe geometry is: block size and stripe width. So it could apply > > > this optimization only if it would make a write cover more whole > > > blocks or whole stripes. > > > > It's a nice idea, but I don't think XFS knows the actual RAID level, > > only the stripes. And for 0/1 it wouldn't be a good idea. > > Yeah, this would have to be a mount option, like stripewrite=1. > There are already a few other essential mount options people need to > learn about for big RAIDs, e.g. inode64. The other problem I can think of is that determing if something is free data might need more read IO if the free extent tree is not completely cached. -Andi From owner-xfs@oss.sgi.com Wed Oct 1 13:38:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91KcYEI007460 for ; Wed, 1 Oct 2008 13:38:35 -0700 X-ASG-Debug-ID: 1222893610-05b7039b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D569134E545 for ; Wed, 1 Oct 2008 13:40:10 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id G3pYvTgjHpzbC9TN for ; Wed, 01 Oct 2008 13:40:10 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m91Ke9IF004311 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Wed, 1 Oct 2008 22:40:09 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m91Ke99S004309; Wed, 1 Oct 2008 22:40:09 +0200 Date: Wed, 1 Oct 2008 22:40:09 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: XFS status update for September 2008 Subject: XFS status update for September 2008 Message-ID: <20081001204009.GA4259@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1222893611 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7006 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- With Linux 2.6.27 still not released but only making slow progress from 2.6.27-rc5 to 2.6.27-rc8 XFS changes in mainline have been minimal in September with only about half a dozen bug fixes patches. In the meantime the generic btree patch set has been committed to the development tree, but not many other updates yet. On the user space side xfsprogs 2.10.1 has been released on September 5th with a number of important bug fixes. Following the release of xfsprogs 2.10.1 open season for development of the user space code has started. The first full update of the shared kernel / user space code in libxfs since 2005 has been committed. In addition to that the number of headers installed for the regular devel package has been reduced to the required minimum and support for checking the source code for endianess errors using sparse has been added. The patch sets to unify the XFS and Linux inode structures, and rewrite various bits of the sync code have seen various iterations on the XFS list, but haven't been committed yet. A first set of patches implementing CRCs for various metadata structures has been posted to the list. From owner-xfs@oss.sgi.com Wed Oct 1 14:00:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m91L00iI008806 for ; Wed, 1 Oct 2008 14:00:00 -0700 X-ASG-Debug-ID: 1222894897-429002650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpout.eastlink.ca (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 105C6130792D for ; Wed, 1 Oct 2008 14:01:37 -0700 (PDT) Received: from smtpout.eastlink.ca (smtpout.eastlink.ca [24.222.0.30]) by cuda.sgi.com with ESMTP id QxcghxPoAkLXznEX for ; Wed, 01 Oct 2008 14:01:37 -0700 (PDT) Received: from ip04.eastlink.ca ([24.222.39.52]) by mta02.eastlink.ca (Sun Java System Messaging Server 6.2-4.03 (built Sep 22 2005)) with ESMTP id <0K8200ACIVQPAT31@mta02.eastlink.ca> for xfs@oss.sgi.com; Wed, 01 Oct 2008 18:01:37 -0300 (ADT) Received: from unknown (HELO llama.cordes.ca) ([24.222.198.92]) by ip04.eastlink.ca with ESMTP; Wed, 01 Oct 2008 17:40:59 -0300 Received: from peter by llama.cordes.ca with local (Exim 3.36 #1 (Debian)) id 1Kl8pE-0005kp-00; Wed, 01 Oct 2008 18:01:36 -0300 Date: Wed, 01 Oct 2008 18:01:36 -0300 From: Peter Cordes X-ASG-Orig-Subj: Re: RAID5/6 writes Subject: Re: RAID5/6 writes In-reply-to: <20081001204450.GA25711@one.firstfloor.org> To: Andi Kleen Cc: xfs@oss.sgi.com Message-id: <20081001210136.GM32037@cordes.ca> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOqB40gY3sZc/2dsb2JhbAC/QIFq X-IronPort-AV: E=Sophos;i="4.33,346,1220238000"; d="scan'208";a="323612939" References: <20081001175237.GJ32037@cordes.ca> <87k5csp0pe.fsf@basil.nowhere.org> <20081001201331.GL32037@cordes.ca> <20081001204450.GA25711@one.firstfloor.org> User-Agent: Mutt/1.5.13 (2006-08-11) X-Barracuda-Connect: smtpout.eastlink.ca[24.222.0.30] X-Barracuda-Start-Time: 1222894898 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4894 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7007 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 01, 2008 at 10:44:50PM +0200, Andi Kleen wrote: > The other problem I can think of is that determing if something is > free data might need more read IO if the free extent tree is not completely > cached. Yeah, I think I mentioned that in my original suggestion. Unless there are repeated writes with the same hole, it's probably not worth it to read from disk to figure out if a sector is free. XFS could just see what it could do with what it already has in memory. This is just an optimization, so it doesn't have to succeed every time it's possible. -- #define X(x,y) x##y Peter Cordes ; e-mail: X(peter@cor , des.ca) "The gods confound the man who first found out how to distinguish the hours! Confound him, too, who in this place set up a sundial, to cut and hack my day so wretchedly into small pieces!" -- Plautus, 200 BC From owner-xfs@oss.sgi.com Wed Oct 1 17:33:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m920XsQ6026181 for ; Wed, 1 Oct 2008 17:33:55 -0700 X-ASG-Debug-ID: 1222907730-23af022c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 54F0E134F9DA for ; Wed, 1 Oct 2008 17:35:31 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id snvHL7HDvhGyXkH9 for ; Wed, 01 Oct 2008 17:35:31 -0700 (PDT) Received: from ppp121-44-95-54.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.95.54]) by ipmail04.adl2.internode.on.net with ESMTP; 02 Oct 2008 10:03:17 +0930 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KlC7f-0006YE-Lp; Thu, 02 Oct 2008 10:32:51 +1000 Date: Thu, 2 Oct 2008 10:32:51 +1000 From: Dave Chinner To: Peter Cordes Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: RAID5/6 writes Subject: Re: RAID5/6 writes Message-ID: <20081002003251.GA30001@disturbed> Mail-Followup-To: Peter Cordes , xfs@oss.sgi.com References: <20081001175237.GJ32037@cordes.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081001175237.GJ32037@cordes.ca> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1222907732 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 01, 2008 at 02:52:37PM -0300, Peter Cordes wrote: > I just had an idea for speeding up writes to parity-based RAIDs > (RAID4,5,6).[1] If XFS wants to write sectors 1,2,3, 5,6,7, but it > knows that block 4 is free space, it might be better to write sector 4 > (with zeros, don't put uninitialized kernel memory on disk!). How does XFS know that block 4 is free space? Or indeed that this is a single block sized hole in range of blocks mapped to different inodes or filesystem metadata? If you want something like this, you need to have the lower layer discover holes like this and instead of immediately initiating a RMW cycle, it calls back to the filesystem to determine is hole is free space. That works for all filesystems not just XFS. > It's > probably only useful to do this if XFS has data in memory to prove > that the gap is not part of the filesystem. Doing extra reads > probably doesn't make sense except in very special cases. (e.g. > repeated writes to the same location with the same hole, so just one > read would let them all become full-block or even full-stripe writes.) That's the sort of workload the stripe cache is supposed to optimise; every subsequent sparse write to the same stripe line avoids the read part of the RMW cycle. The filesystem is the wrong layer to optimise this type of workload.... FWIW, XFS has it's own problems with writeback triggering RMW cycles - this sort of thing for data could be considered noise compared to the RMW storm that can be caused by inode writeback under memory pressure as XFS has to do RMW cycles itself on the inode cluster buffers. See the Inode Writeback section of this document: http://oss.sgi.com/archives/xfs/2008-09/msg00289.html This can only be fixed at the filesystem level because no amount of tweaking the storage can improve the I/O patterns that XFS is issuing. These RMW cycles in inode writeback can cause the inode flush rate to drop to a few tens of inodes per second. When you have hundreds of thousands of dirty inodes in a system, it can take *hours* to flush the dirty inodes to disk.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 1 17:47:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m920lnvK026995 for ; Wed, 1 Oct 2008 17:47:49 -0700 X-ASG-Debug-ID: 1222908563-3cfd01670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1D1A41090FA8 for ; Wed, 1 Oct 2008 17:49:23 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id nUwxACDmy8CvUu1m for ; Wed, 01 Oct 2008 17:49:23 -0700 (PDT) Received: from ppp121-44-95-54.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.95.54]) by ipmail04.adl2.internode.on.net with ESMTP; 02 Oct 2008 10:15:58 +0930 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KlCKK-0006pY-DU; Thu, 02 Oct 2008 10:45:56 +1000 Date: Thu, 2 Oct 2008 10:45:56 +1000 From: Dave Chinner To: Tobias Frost Cc: linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081002004556.GB30001@disturbed> Mail-Followup-To: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com References: <1222893502.5020.40.camel@moria> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1222893502.5020.40.camel@moria> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1222908566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M Adding xfs@oss.sgi.com to the cc list so all the XFS folk see this. On Wed, Oct 01, 2008 at 10:38:22PM +0200, Tobias Frost wrote: > (Note: Please CC me, as I am NOT on the lkml!!) > > Some time ago, I discovered some problems with xfs. Unfortunatly, I had > no time diving into it. However, some weeks ago some other people > running debian on ARM machines confirmed the problem on their machines > starting at [1], so I think it is appropitate to at least report it. > It has also been seen on 2.6.27-rc4 [2]. > > summary: the xfs partition corrupts almost immediatly after creation. I > had the impression, that the first unlink (rm) causes the corruption, > but this might be just an impression. > > During the tests I made, I conserved a image of the corrupted filesystem > which I can make available on request (it's 26 Mbyte, gzipped). > > Please let me know how I can assist you in finding the problem. > > > [1] http://lists.debian.org/debian-arm/2008/08/msg00155.html > [2] http://lists.debian.org/debian-arm/2008/08/msg00184.html > > Best regards, > Tobias Frost > http://blog.coldtobi.de > > PS: Thank you for your great work! > > Some Logs (copies from the debian mailing list, so you don't have to > follow the whole thread there:) > > -I did test xfs on my Thecus 2100. I could reproduce the fs-corruption > with xfs. > The xfs was created freshly on the partition used to be swap. > The corruption occured after downloading the ltp from source-forge, > untaring it and a attempted make > (The make never completed, therefore I did not run the stress-tests of > ltp) > > Some infos: > > thecus:~/#uname -a > Linux thecus.coldtobi.ip 2.6.26-1-iop32x #1 Fri Aug 8 23:42:37 UTC 2008 > armv5tel GNU/Linux > > thecus:~# dpkg -l xfsprogs > +++-============================================================== > ii xfsprogs 2.9.8-1 Utilities for managing the XFS filesystem > > > hecus:~#xfs_check /dev/md1 2>&1 | tee fsck.log - > ERROR: The filesystem has valuable metadata changes in a log which needs > to > be replayed. Mount the filesystem to replay the log, and unmount it > before > re-running xfs_check. If you are unable to mount the filesystem, then > use > the xfs_repair -L option to destroy the log and attempt a repair. > Note that destroying the log may cause corruption -- please attempt a > mount > of the filesystem before doing this. > ERROR: The filesystem has valuable metadata changes in a log which needs > to > be replayed. Mount the filesystem to replay the log, and unmount it > before > re-running xfs_check. If you are unable to mount the filesystem, then > use > the xfs_repair -L option to destroy the log and attempt a repair. > Note that destroying the log may cause corruption -- please attempt a > mount > of the filesystem before doing this. > > thecus:~# mount -o ro /dev/md1 /tmp/tst/ > thecus:~# dmesg > [43132282.570000] Filesystem "md1": Disabling barriers, not supported by > the underlying device > [43132282.590000] XFS mounting filesystem md1 > [43132283.600000] Starting XFS recovery on filesystem: md1 (logdev: > internal) > [43132283.620000] Filesystem "md1": XFS internal error > xlog_valid_rec_header(1) at line 3471 of file fs/xfs/xfs_log_recover.c. > Caller 0xbf24b298 > [43132283.640000] [] (dump_stack+0x0/0x14) from [] > (xfs_error_report+0x4c/0x5c [xfs]) > [43132283.650000] [] (xfs_error_report+0x0/0x5c [xfs]) from > [] (xlog_valid_rec_header+0x150/0x184 [xfs]) > [43132283.660000] r4:defc0000 > [43132283.660000] [] (xlog_valid_rec_header+0x0/0x184 [xfs]) > from [] (xlog_do_recovery_pass+0x21c/0x824 [xfs]) > [43132283.670000] r5:defbc4a0 r4:00000000 > [43132283.680000] [] (xlog_do_recovery_pass+0x0/0x824 [xfs]) > from [] (xlog_do_log_recovery+0x4c/0x98 [xfs]) > [43132283.690000] [] (xlog_do_log_recovery+0x0/0x98 [xfs]) > from [] (xlog_do_recover+0x20/0x124 [xfs]) > [43132283.700000] r9:00000000 r8:df738400 r6:000008f8 r5:ce0512e0 > r4:000008f8 > [43132283.710000] [] (xlog_do_recover+0x0/0x124 [xfs]) from > [] (xlog_recover+0x94/0xbc [xfs]) > [43132283.720000] r9:00000000 r8:df738400 r6:000008f8 r5:000001f0 > r4:ce0512e0 > [43132283.730000] [] (xlog_recover+0x0/0xbc [xfs]) from > [] (xfs_log_mount+0xe0/0x164 [xfs]) > [43132283.730000] r7:00000000 r6:00000000 r4:001dc860 > [43132283.730000] [] (xfs_log_mount+0x0/0x164 [xfs]) from > [] (xfs_mountfs+0x270/0x664 [xfs]) > [43132283.750000] r8:df738420 r7:df738400 r6:00005000 r5:00000000 > r4:0003b90c > [43132283.760000] [] (xfs_mountfs+0x0/0x664 [xfs]) from > [] (xfs_mount+0x290/0x348 [xfs]) > [43132283.760000] [] (xfs_mount+0x0/0x348 [xfs]) from > [] (xfs_fs_fill_super+0xbc/0x208 [xfs]) > [43132283.780000] [] (xfs_fs_fill_super+0x0/0x208 [xfs]) from > [] (get_sb_bdev+0xf4/0x14c) > [43132283.790000] [] (get_sb_bdev+0x0/0x14c) from [] > (xfs_fs_get_sb+0x24/0x30 [xfs]) > [43132283.800000] [] (xfs_fs_get_sb+0x0/0x30 [xfs]) from > [] (vfs_kern_mount+0xa0/0x140) > [43132283.810000] [] (vfs_kern_mount+0x0/0x140) from > [] (do_kern_mount+0x40/0xdc) > [43132283.820000] [] (do_kern_mount+0x0/0xdc) from > [] (do_new_mount+0x5c/0x8c) > [43132283.830000] r8:00000001 r7:00000040 r6:df0d1ef0 r5:dfe7b000 > r4:00000001 > [43132283.830000] [] (do_new_mount+0x0/0x8c) from [] > (do_mount+0x198/0x1c0) > [43132283.850000] r7:df0d1ef0 r6:00000040 r5:00000001 r4:00000000 > [43132283.850000] [] (do_mount+0x0/0x1c0) from [] > (sys_mount+0x8c/0xd4) > [43132283.860000] [] (sys_mount+0x0/0xd4) from [] > (ret_fast_syscall+0x0/0x3c) > [43132283.860000] r7:00000015 r6:beb295c0 r5:beb29598 r4:00000000 > [43132283.870000] XFS: log mount/recovery failed: error 117 > [43132283.910000] XFS: log mount failed > > thecus:~# xfs_repair /dev/md1 > Phase 1 - find and verify superblock... > Phase 2 - using internal log > - zero log... > ERROR: The filesystem has valuable metadata changes in a log which needs > to > be replayed. Mount the filesystem to replay the log, and unmount it > before > re-running xfs_repair. If you are unable to mount the filesystem, then > use > the -L option to destroy the log and attempt a repair. > Note that destroying the log may cause corruption -- please attempt a > mount > of the filesystem before doing this. > thecus:~# xfs_repair -L /dev/md1 > Phase 1 - find and verify superblock... > Phase 2 - using internal log > - zero log... > ALERT: The filesystem has valuable metadata changes in a log which is > being > destroyed because the -L option was used. > - scan filesystem freespace and inode maps... > - found root inode chunk > Phase 3 - for each AG... > - scan and clear agi unlinked lists... > - process known inodes and perform inode discovery... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > - process newly discovered inodes... > Phase 4 - check for duplicate blocks... > - setting up duplicate extent list... > - check for inodes claiming duplicate blocks... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > Phase 5 - rebuild AG headers and trees... > - reset superblock... > Phase 6 - check inode connectivity... > - resetting contents of realtime bitmap and summary inodes > - traversing filesystem ... > - traversal finished ... > - moving disconnected inodes to lost+found ... > Phase 7 - verify and correct link counts... > done > > thecus:~# xfs_check /dev/md1 2>&1 | tee fsck.log - > thecus:~# mount /dev/md1 /tmp/tst/ > thecus:~# dmesg > [43132552.030000] Filesystem "md1": Disabling barriers, not supported by > the underlying device > [43132552.050000] XFS mounting filesystem md1 > [43132552.190000] Ending clean XFS mount for filesystem: md1 > > thecus:~# cd /tmp/tst > thecus:/tmp/tst# rm -r ltp-full-20080731 > rm: cannot remove directory > `ltp-full-20080731/testcases/kernel/syscalls': Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/ballista/ballista/outfiles': Directory not > empty > rm: cannot remove directory > `ltp-full-20080731/testcases/open_posix_testsuite/conformance/interfaces': Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/network/rpc/rpc-tirpc-full-test-suite': > Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/open_hpi_testsuite/utils/t/epath': > Directory not empty > thecus:/tmp/tst# rm -rf ltp-full-20080731 > rm: cannot remove directory > `ltp-full-20080731/testcases/kernel/syscalls': Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/ballista/ballista/outfiles': Directory not > empty > rm: cannot remove directory > `ltp-full-20080731/testcases/open_posix_testsuite/conformance/interfaces': Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/network/rpc/rpc-tirpc-full-test-suite': > Directory not empty > rm: cannot remove directory > `ltp-full-20080731/testcases/open_hpi_testsuite/utils/t/epath': > Directory not empty > > thecus:~# dmesg > [43132552.190000] Ending clean XFS mount for filesystem: md1 > [43132681.530000] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 07 72 > 10 XFSB..........r. > [43132681.550000] Filesystem "md1": XFS internal error xfs_da_do_buf(2) > at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xbf226cac > [43132681.560000] [] (dump_stack+0x0/0x14) from [] > (xfs_error_report+0x4c/0x5c [xfs]) > [43132681.570000] [] (xfs_error_report+0x0/0x5c [xfs]) from > [] (xfs_corruption_error+0x5c/0x68 [xfs]) > [43132681.580000] r4:def2e400 > [43132681.580000] [] (xfs_corruption_error+0x0/0x68 [xfs]) > from [] (xfs_da_do_buf+0x568/0x688 [xfs]) > [43132681.580000] r6:bf226cac r5:00000000 r4:ce179438 > [43132681.600000] [] (xfs_da_do_buf+0x0/0x688 [xfs]) from > [] (xfs_da_read_buf+0x34/0x3c [xfs]) > [43132681.600000] [] (xfs_da_read_buf+0x0/0x3c [xfs]) from > [] (xfs_dir2_leaf_getdents+0x484/0x8bc [xfs]) > [43132681.620000] [] (xfs_dir2_leaf_getdents+0x0/0x8bc [xfs]) > from [] (xfs_readdir+0xcc/0xe0 [xfs]) > [43132681.620000] [] (xfs_readdir+0x0/0xe0 [xfs]) from > [] (xfs_file_readdir+0x144/0x194 [xfs]) > [43132681.640000] [] (xfs_file_readdir+0x0/0x194 [xfs]) from > [] (vfs_readdir+0x84/0xb8) > [43132681.650000] [] (vfs_readdir+0x0/0xb8) from [] > (sys_getdents64+0x6c/0xc0) > [43132681.650000] [] (sys_getdents64+0x0/0xc0) from > [] (ret_fast_syscall+0x0/0x3c) > [43132681.670000] r7:000000d9 r6:0001ea84 r5:0001ea98 r4:00000000 > [43132682.010000] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 07 72 > 10 XFSB..........r. > [43132682.030000] Filesystem "md1": XFS internal error xfs_da_do_buf(2) > at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xbf226cac > [43132682.040000] [] (dump_stack+0x0/0x14) from [] > (xfs_error_report+0x4c/0x5c [xfs]) > [43132682.050000] [] (xfs_error_report+0x0/0x5c [xfs]) from > [] (xfs_corruption_error+0x5c/0x68 [xfs]) > [43132682.050000] r4:def2e400 > [43132682.050000] [] (xfs_corruption_error+0x0/0x68 [xfs]) > from [] (xfs_da_do_buf+0x568/0x688 [xfs]) > [43132682.080000] r6:bf226cac r5:00000000 r4:ce179438 > [43132682.080000] [] (xfs_da_do_buf+0x0/0x688 [xfs]) from > [] (xfs_da_read_buf+0x34/0x3c [xfs]) > [43132682.090000] [] (xfs_da_read_buf+0x0/0x3c [xfs]) from > [] (xfs_dir2_leaf_getdents+0x484/0x8bc [xfs]) > [43132682.100000] [] (xfs_dir2_leaf_getdents+0x0/0x8bc [xfs]) > from [] (xfs_readdir+0xcc/0xe0 [xfs]) > [43132682.110000] [] (xfs_readdir+0x0/0xe0 [xfs]) from > [] (xfs_file_readdir+0x144/0x194 [xfs]) > [43132682.130000] [] (xfs_file_readdir+0x0/0x194 [xfs]) from > [] (vfs_readdir+0x84/0xb8) > [43132682.140000] [] (vfs_readdir+0x0/0xb8) from [] > (sys_getdents64+0x6c/0xc0) > [43132682.150000] [] (sys_getdents64+0x0/0xc0) from > [] (ret_fast_syscall+0x0/0x3c) > [43132682.150000] r7:000000d9 r6:0001fdc4 r5:0001fdd8 r4:00000000 > [43132683.550000] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 00 07 72 > 10 XFSB..........r. > [43132683.570000] Filesystem "md1": XFS internal error xfs_da_do_buf(2) > at line 2085 of file fs/xfs/xfs_da_btree.c. Caller 0xbf226cac > [43132683.580000] [] (dump_stack+0x0/0x14) from [] > (xfs_error_report+0x4c/0x5c [xfs]) > [43132683.590000] [] (xfs_error_report+0x0/0x5c [xfs]) from > [] (xfs_corruption_error+0x5c/0x68 [xfs]) > [43132683.610000] r4:def2e400 > [43132683.610000] [] (xfs_corruption_error+0x0/0x68 [xfs]) > from [] (xfs_da_do_buf+0x568/0x688 [xfs]) > [43132683.620000] r6:bf226cac r5:00000000 r4:ce179438 > [43132683.620000] [] (xfs_da_do_buf+0x0/0x688 [xfs]) from > [] (xfs_da_read_buf+0x34/0x3c [xfs]) > [43132683.640000] [] (xfs_da_read_buf+0x0/0x3c [xfs]) from > [] (xfs_dir2_leaf_getdents+0x484/0x8bc [xfs]) > [43132683.650000] [] (xfs_dir2_leaf_getdents+0x0/0x8bc [xfs]) > from [] (xfs_readdir+0xcc/0xe0 [xfs]) > [43132683.650000] [] (xfs_readdir+0x0/0xe0 [xfs]) from > [] (xfs_file_readdir+0x144/0x194 [xfs]) > [43132683.670000] [] (xfs_file_readdir+0x0/0x194 [xfs]) from > [] (vfs_readdir+0x84/0xb8) > [43132683.680000] [] (vfs_readdir+0x0/0xb8) from [] > (sys_getdents64+0x6c/0xc0) > [43132683.690000] [] (sys_getdents64+0x0/0xc0) from > [] (ret_fast_syscall+0x0/0x3c) > [43132683.690000] r7:000000d9 r6:0001fe04 r5:0001fe18 r4:00000000 > (..) > Valid signature > > > > > > > > > -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 1 17:54:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m920sbF2027562 for ; Wed, 1 Oct 2008 17:54:37 -0700 X-ASG-Debug-ID: 1222908974-238402e90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A39BB134F695 for ; Wed, 1 Oct 2008 17:56:14 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id iMfH9oZrIeCDlBWb for ; Wed, 01 Oct 2008 17:56:14 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id B0D6BAC3592; Wed, 1 Oct 2008 19:56:13 -0500 (CDT) Message-ID: <48E41C2D.1060409@sandeen.net> Date: Wed, 01 Oct 2008 19:56:13 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> In-Reply-To: <20081002004556.GB30001@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1222908974 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7019 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > Adding xfs@oss.sgi.com to the cc list so all the XFS folk see this. > > On Wed, Oct 01, 2008 at 10:38:22PM +0200, Tobias Frost wrote: >> (Note: Please CC me, as I am NOT on the lkml!!) >> >> Some time ago, I discovered some problems with xfs. Unfortunatly, I had >> no time diving into it. However, some weeks ago some other people >> running debian on ARM machines confirmed the problem on their machines >> starting at [1], so I think it is appropitate to at least report it. >> It has also been seen on 2.6.27-rc4 [2]. >> >> summary: the xfs partition corrupts almost immediatly after creation. I >> had the impression, that the first unlink (rm) causes the corruption, >> but this might be just an impression. >> >> During the tests I made, I conserved a image of the corrupted filesystem >> which I can make available on request (it's 26 Mbyte, gzipped). >> >> Please let me know how I can assist you in finding the problem. >> >> >> [1] http://lists.debian.org/debian-arm/2008/08/msg00155.html >> [2] http://lists.debian.org/debian-arm/2008/08/msg00184.html >> >> Best regards, >> Tobias Frost >> http://blog.coldtobi.de >> >> PS: Thank you for your great work! At one point there were other patches floating around to "fix" arm which were not correct. Are these problems seen on a pristine 2.6.27-rc4 kernel, or with other special arm patches applied? -Eric From owner-xfs@oss.sgi.com Wed Oct 1 18:16:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m921GEJG029201 for ; Wed, 1 Oct 2008 18:16:15 -0700 X-ASG-Debug-ID: 1222910271-0974000b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 01799134FCE0 for ; Wed, 1 Oct 2008 18:17:51 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 6XF5xfiEoPVtdQrI for ; Wed, 01 Oct 2008 18:17:51 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 56766AC3593; Wed, 1 Oct 2008 20:17:51 -0500 (CDT) Message-ID: <48E4213E.9090508@sandeen.net> Date: Wed, 01 Oct 2008 20:17:50 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> In-Reply-To: <20081002004556.GB30001@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1222910272 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7019 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > Adding xfs@oss.sgi.com to the cc list so all the XFS folk see this. > > On Wed, Oct 01, 2008 at 10:38:22PM +0200, Tobias Frost wrote: >> (Note: Please CC me, as I am NOT on the lkml!!) >> >> Some time ago, I discovered some problems with xfs. Unfortunatly, I had >> no time diving into it. However, some weeks ago some other people >> running debian on ARM machines confirmed the problem on their machines >> starting at [1], so I think it is appropitate to at least report it. >> It has also been seen on 2.6.27-rc4 [2]. >> >> summary: the xfs partition corrupts almost immediatly after creation. I >> had the impression, that the first unlink (rm) causes the corruption, >> but this might be just an impression. >> >> During the tests I made, I conserved a image of the corrupted filesystem >> which I can make available on request (it's 26 Mbyte, gzipped). >> >> Please let me know how I can assist you in finding the problem. >> >> >> [1] http://lists.debian.org/debian-arm/2008/08/msg00155.html >> [2] http://lists.debian.org/debian-arm/2008/08/msg00184.html >> >> Best regards, >> Tobias Frost >> http://blog.coldtobi.de You could try undoing this: /* ARM old ABI has some weird alignment/padding */ #if defined(__arm__) && !defined(__ARM_EABI__) #define __arch_pack __attribute__((packed)) #else #define __arch_pack #endif and just define __arch_pack to nothing unconditionally, to see if that's what broke... Or if someone can provide an xfs.ko, or point "pahole" at it yourself, and see if xfs_dir2_sf_hdr, xfs_dir2_sf_entry, and xfs_dir2_sf look more like http://sandeen.net/xfs-diskformat/xfs-oldabi-arm-pahole-structs or http://sandeen.net/xfs-diskformat/xfs-oldabi-fixed-arm-pahole-structs ? otherwise I will give this a whirl in the emulator again... Thanks, -Eric From owner-xfs@oss.sgi.com Wed Oct 1 18:41:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m921fIh3030657 for ; Wed, 1 Oct 2008 18:41:18 -0700 X-ASG-Debug-ID: 1222911775-4a7703470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9D744A2ED5 for ; Wed, 1 Oct 2008 18:42:55 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 1LHU2xoXfCqX03Ir for ; Wed, 01 Oct 2008 18:42:55 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id B615AA9ABFF; Wed, 1 Oct 2008 20:42:54 -0500 (CDT) Message-ID: <48E4271D.1090203@sandeen.net> Date: Wed, 01 Oct 2008 20:42:53 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> In-Reply-To: <20081002004556.GB30001@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1222911775 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7021 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > Adding xfs@oss.sgi.com to the cc list so all the XFS folk see this. > > On Wed, Oct 01, 2008 at 10:38:22PM +0200, Tobias Frost wrote: >> (Note: Please CC me, as I am NOT on the lkml!!) >> >> Some time ago, I discovered some problems with xfs. Unfortunatly, I had >> no time diving into it. However, some weeks ago some other people >> running debian on ARM machines confirmed the problem on their machines >> starting at [1], so I think it is appropitate to at least report it. >> It has also been seen on 2.6.27-rc4 [2]. >> >> summary: the xfs partition corrupts almost immediatly after creation. I >> had the impression, that the first unlink (rm) causes the corruption, >> but this might be just an impression. >> >> During the tests I made, I conserved a image of the corrupted filesystem >> which I can make available on request (it's 26 Mbyte, gzipped). >> >> Please let me know how I can assist you in finding the problem. >> >> >> [1] http://lists.debian.org/debian-arm/2008/08/msg00155.html >> [2] http://lists.debian.org/debian-arm/2008/08/msg00184.html >> >> Best regards, >> Tobias Frost >> http://blog.coldtobi.de >> >> PS: Thank you for your great work! Ok, actually: first - sorry for the scattershot replies. I thought userspace was updated earlier, but: xfsprogs-2.10.1 (5 September 2008)... - Add packed on-disk shortform directory for ARM's old ABI, thanks to Eric Sandeen. and the original kernel change: [XFS] Pack some shortform dir2 structures for the ARM old ABI architecture. ... Note that userspace needs a similar treatment, and any filesystems which were running with the previous rogue "fix" will now see corruption ... So perhaps as a first easy test, can you please re-test with xfsprogs-2.10.1 or newer. Thanks, -Eric From owner-xfs@oss.sgi.com Wed Oct 1 23:33:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m926X6qW020139 for ; Wed, 1 Oct 2008 23:33:06 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 3E5B1304097; Wed, 1 Oct 2008 23:34:38 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA26933; Thu, 2 Oct 2008 16:34:36 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 1161) id 22F7858C52B4; Thu, 2 Oct 2008 16:34:36 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com Cc: xfs@oss.sgi.com Subject: TAKE 987785 - Consolidate btree block handling for xfs_db Message-Id: <20081002063436.22F7858C52B4@chook.melbourne.sgi.com> Date: Thu, 2 Oct 2008 16:34:36 +1000 (EST) From: bnaujok@sgi.com (Barry Naujok) Consolidate btree block handling for xfs_db Currently xfs_db has five different implementations for poking at btree blocks, even duplicating code for btree blocks with entirely identical layout (bmapbta vs bmapbtd and bno vs cnt). Merge all these into a single implementation that uses a table of btree characteristics keyed of their magic number. There's probably a way to further consolidate the magic arrays for the different types, but I don't quite understand xfs_db's table driven command parser for that. Signed-off-by: Christoph Hellwig Date: Thu Oct 2 16:33:59 AEST 2008 Workarea: chook.melbourne.sgi.com:/home/bnaujok/isms/xfs-cmds Inspected by: hch@lst.de The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/xfs-cmds/master-melb Modid: master-melb:xfs-cmds:32248a xfsprogs/db/btblock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/btblock.h xfsprogs/db/btblock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/btblock.c xfsprogs/db/field.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/field.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h xfsprogs/db/cntbt.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/cntbt.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h xfsprogs/db/cntbt.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/cntbt.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h xfsprogs/db/bnobt.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/bnobt.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h xfsprogs/db/bnobt.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/bnobt.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h xfsprogs/db/bmapbt.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/bmapbt.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h xfsprogs/db/bmapbt.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/bmapbt.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h xfsprogs/db/inobt.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/inobt.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h xfsprogs/db/inobt.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/inobt.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h xfsprogs/db/fprint.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/fprint.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h xfsprogs/db/type.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/type.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h xfsprogs/db/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h xfsprogs/db/check.c - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfsprogs/db/check.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h - Consolidate btree block handling for xfs_db From owner-xfs@oss.sgi.com Thu Oct 2 00:59:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_50,SUBJ_ALL_CAPS, UNPARSEABLE_RELAY autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m927xkk4032698 for ; Thu, 2 Oct 2008 00:59:47 -0700 X-ASG-Debug-ID: 1222934481-7259039e0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hugou.org.np (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 23B414A3D9C for ; Thu, 2 Oct 2008 01:01:22 -0700 (PDT) Received: from hugou.org.np (mail.hugou.org.np [202.52.247.202]) by cuda.sgi.com with ESMTP id iOcWTrBasRP3KpG9 for ; Thu, 02 Oct 2008 01:01:22 -0700 (PDT) Received: from WorldClient ([127.0.0.1]) by hugou.org.np ([192.168.100.100]) with SMTP (MDaemon.PRO.v6.5.2.R) for ; Thu, 02 Oct 2008 13:42:18 +0545 Received: from [66.198.41.11] via WorldClient with HTTP; Thu, 02 Oct 2008 13:32:16 +0545 Date: Thu, 02 Oct 2008 13:32:16 +0545 From: "DanidaHUGOU" To: Reply-To: brownloanfinance1@googlemail.com X-ASG-Orig-Subj: LOAN OFFER AT 3% INTEREST RATES... APPLY NOW Subject: LOAN OFFER AT 3% INTEREST RATES... APPLY NOW MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Message-ID: X-Mailer: WorldClient 6.5.2 X-MDRemoteIP: 127.0.0.1 X-Return-Path: hugou@hugou.org.np X-MDaemon-Deliver-To: linux-xfs@oss.sgi.com X-Barracuda-Connect: mail.hugou.org.np[202.52.247.202] X-Barracuda-Start-Time: 1222934484 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7400 1.0000 1.6878 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.69 X-Barracuda-Spam-Status: No, SCORE=1.69 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=TO_CC_NONE, UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7046 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines 0.00 TO_CC_NONE No To: or Cc: header >From The C.E.O's Office, Capital Investment Solution Company, Mansfield Road , Rotherham , South Yorkshire , S60 2EB . Attention: I am Mr kelly brown (CEO) Capital Investment Solution Company, We give out loans to business people/individuals, local and international loans to all over the world for just 3% interest rate. Brown Finance is a leading online provider of finance. If you need a consolidation loan, we have many flexible plans on our lending panel to help you release the equity in your home. We can even help with business finance! What does Brown Loan Finance offer? Loans from Ł1000 - Ł500,000 for any purpose over any term from 1 - 25 years. Wide range of loan products. Quick Service. Friendly and approachable staff. Immediate decision in principle. We want to help. What Do I Do Next? Read about the application procedure. Simply submit a fully completed and accurate application form for an immediate in principle decision. On approval, we will process your application to completion in the shortest possible time. If you are interested in getting a loan from our company, you can contact us right away by email: brownloanfinance1@googlemail.com Regards, Mr Kelly Brown TEL: +447031861485 Chief Executive Officer. From owner-xfs@oss.sgi.com Thu Oct 2 07:09:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92E98Nx030168 for ; Thu, 2 Oct 2008 07:09:09 -0700 X-ASG-Debug-ID: 1222956645-4e29003c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.gmx.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 4BC0C135CDB5 for ; Thu, 2 Oct 2008 07:10:45 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by cuda.sgi.com with SMTP id AQ2QhQSIdeD0xCmx for ; Thu, 02 Oct 2008 07:10:45 -0700 (PDT) Received: (qmail invoked by alias); 02 Oct 2008 14:10:43 -0000 Received: from adsl46-217.ath.forthnet.gr (EHLO Athina) [77.49.77.217] by mail.gmx.net (mp036) with SMTP; 02 Oct 2008 16:10:43 +0200 X-Authenticated: #596265 X-Provags-ID: V01U2FsdGVkX1+XVD1l3m+XbJJDqLOcD6Ie5jJcPMJ8zLckCQdlm5 ppJZefgdFvHd6L From: "Tom" To: X-ASG-Orig-Subj: Which XFS-options for best performance in my case? Subject: Which XFS-options for best performance in my case? Date: Thu, 2 Oct 2008 17:10:33 +0300 Message-ID: <001d01c92498$a4bd7b40$ee3871c0$@net> MIME-Version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AckkmJzREBo6ee9PRUSOpuYdpUFB0w== X-Y-GMX-Trusted: 0 X-FuHaFi: 0.5,0.51 X-Barracuda-Connect: mail.gmx.net[213.165.64.20] X-Barracuda-Start-Time: 1222956646 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7070 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 2122 Hello dear list members, I am setting up a fileserver with the following specs: . Hardware RAID 6 (3Ware 9650SE-12, 8-lane-PCIe) with a stripe size of 64kB, write cache enabled . 12 Harddisks, 1 Terrabyte and 32MB cache each, 7200 RPM . Motherboard: ASUS P5BV-E/4L . CPU: Intel Core2Quad 2,4 GHz (Q6600) . RAM: 2x2 GB DDRII ECC 800MHz . OS: Linux openSUSE 11 - 64 Bit . Kernel: 2.6.25.16-0.1-default . Filesystem of relevant data partition: XFS . Size of relevant data partition: 9 Terrabyte . The data hosted on this partition is going to be served via 4 1-Gigabit-Network-cards to Windows Vista-64-SP1 clients via Samba 3.2.3-0.1 After having fine tuned the RAID-controller and the kernel settings, I am reaching the following results: Read 465 MB/s; Write 296 MB/s, which I benchmarked with "sync; bonnie++ -u 0 -r 4096 -b -d /name_of_the_mounted_partition". These figures are not all to good. I had formatted the partition with the openSUSE installation tool ("YAST"). This uses: - Block size in bytes: auto - Inode size: auto - Percentage of inode space: auto - Inode aligned: auto .. and mounts the partition in the fstab with "defaults, 1, 2" Question: Are there any settings/options/tweaks with which I can increase the XFS-filesystem's performance? The server is connected to a UPS-battery (Uninterruptible power supply). The RAID controller has a own battery pack attached, which keeps any cached writings in the controller's memory, should the system hang or the power be disconnected for any reason (but this battery only lasts for a couple of hours). Above everything else stands SECURITY. I can't afford to lose/corrupt any data on this server. So please tell me if one of the proposed tweaks should be risky, or what the risks are. Thank you for any piece of advice/information! Best regards Tom [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Thu Oct 2 07:27:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92ERExX031466 for ; Thu, 2 Oct 2008 07:27:14 -0700 X-ASG-Debug-ID: 1222957729-174500e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.gmx.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 3EFC24A5A1D for ; Thu, 2 Oct 2008 07:28:49 -0700 (PDT) Received: from mail.gmx.net (mail.gmx.net [213.165.64.20]) by cuda.sgi.com with SMTP id fPWn3qTvcgFSi8tb for ; Thu, 02 Oct 2008 07:28:49 -0700 (PDT) Received: (qmail invoked by alias); 02 Oct 2008 14:28:47 -0000 Received: from adsl46-217.ath.forthnet.gr (EHLO Athina) [77.49.77.217] by mail.gmx.net (mp058) with SMTP; 02 Oct 2008 16:28:47 +0200 X-Authenticated: #596265 X-Provags-ID: V01U2FsdGVkX18CbX8gSn4CgVizADD9hcNFuOUQhKRH2ed+YM7zGj TF8BQFSP18YOXT From: "Tom" To: X-ASG-Orig-Subj: Re: Which XFS-options for best performance in my case? Subject: Re: Which XFS-options for best performance in my case? Date: Thu, 2 Oct 2008 17:28:38 +0300 Message-ID: <002201c9249b$2addf590$8099e0b0$@net> MIME-Version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AckkmJzREBo6ee9PRUSOpuYdpUFB0wAAfeeQ X-Y-GMX-Trusted: 0 X-FuHaFi: 0.46,0.47 X-Barracuda-Connect: mail.gmx.net[213.165.64.20] X-Barracuda-Start-Time: 1222957732 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.0100 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7072 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 2707 Hello again, I forgot one important piece of information: - The fileserver is mainly serving quite huge files (images, mostly 50MB-100MB of size). - The fileserver serves only to the small amount of 3 clients, which read and write these files mostly sequentially (e.g. requesting 50 of those files located in a folder) to the server and mostly only one client at a time. Thank you Tom From: Tom [mailto:T-o-m@gmx.net] Sent: Donnerstag, 2. Oktober 2008 17:11 To: 'xfs@oss.sgi.com' Subject: Which XFS-options for best performance in my case? Hello dear list members, I am setting up a fileserver with the following specs: . Hardware RAID 6 (3Ware 9650SE-12, 8-lane-PCIe) with a stripe size of 64kB, write cache enabled . 12 Harddisks, 1 Terrabyte and 32MB cache each, 7200 RPM . Motherboard: ASUS P5BV-E/4L . CPU: Intel Core2Quad 2,4 GHz (Q6600) . RAM: 2x2 GB DDRII ECC 800MHz . OS: Linux openSUSE 11 - 64 Bit . Kernel: 2.6.25.16-0.1-default . Filesystem of relevant data partition: XFS . Size of relevant data partition: 9 Terrabyte . The data hosted on this partition is going to be served via 4 1-Gigabit-Network-cards to Windows Vista-64-SP1 clients via Samba 3.2.3-0.1 After having fine tuned the RAID-controller and the kernel settings, I am reaching the following results: Read 465 MB/s; Write 296 MB/s, which I benchmarked with "sync; bonnie++ -u 0 -r 4096 -b -d /name_of_the_mounted_partition". These figures are not all to good. I had formatted the partition with the openSUSE installation tool ("YAST"). This uses: - Block size in bytes: auto - Inode size: auto - Percentage of inode space: auto - Inode aligned: auto .. and mounts the partition in the fstab with "defaults, 1, 2" Question: Are there any settings/options/tweaks with which I can increase the XFS-filesystem's performance? The server is connected to a UPS-battery (Uninterruptible power supply). The RAID controller has a own battery pack attached, which keeps any cached writings in the controller's memory, should the system hang or the power be disconnected for any reason (but this battery only lasts for a couple of hours). Above everything else stands SECURITY. I can't afford to lose/corrupt any data on this server. So please tell me if one of the proposed tweaks should be risky, or what the risks are. Thank you for any piece of advice/information! Best regards Tom [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Thu Oct 2 08:53:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92Fr8GV008694 for ; Thu, 2 Oct 2008 08:53:09 -0700 X-ASG-Debug-ID: 1222962886-7f4f00610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8A30D4A682D for ; Thu, 2 Oct 2008 08:54:46 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id WdhNA8BxYKRDh9PJ for ; Thu, 02 Oct 2008 08:54:46 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m92FsewA001451; Thu, 2 Oct 2008 11:54:40 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m92FsdKX028681; Thu, 2 Oct 2008 11:54:40 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m92FsamM012359; Thu, 2 Oct 2008 11:54:37 -0400 Message-ID: <48E4EEBC.70105@sandeen.net> Date: Thu, 02 Oct 2008 10:54:36 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Tom CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Which XFS-options for best performance in my case? Subject: Re: Which XFS-options for best performance in my case? References: <001d01c92498$a4bd7b40$ee3871c0$@net> In-Reply-To: <001d01c92498$a4bd7b40$ee3871c0$@net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1222962886 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0052 1.0000 -1.9869 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.99 X-Barracuda-Spam-Status: No, SCORE=-1.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7078 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Tom wrote: > After having fine tuned the RAID-controller and the kernel settings, I am > reaching the following results: Read 465 MB/s; Write 296 MB/s, which I > benchmarked with "sync; bonnie++ -u 0 -r 4096 -b -d > /name_of_the_mounted_partition". These figures are not all to good. not good based on / compared to what? First I'd start with direct reads & writes from/to your block device, see how fast that goes, before you jump up to benchmarking the filesystem. -Eric From owner-xfs@oss.sgi.com Thu Oct 2 12:06:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92J60fl018944 for ; Thu, 2 Oct 2008 12:06:02 -0700 X-ASG-Debug-ID: 1222974457-3ed100090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail1.g-b.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 713F94A7BBA for ; Thu, 2 Oct 2008 12:07:37 -0700 (PDT) Received: from mail1.g-b.net (mail1.g-b.net [64.191.66.247]) by cuda.sgi.com with ESMTP id 4d8W0DWBX3P0AZDu for ; Thu, 02 Oct 2008 12:07:37 -0700 (PDT) Received: from [192.168.10.1] (agraham [93.97.176.102]) by mail1.g-b.net (8.13.8/8.13.8) with ESMTP id m92J7XqZ000726 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 2 Oct 2008 20:07:35 +0100 Message-ID: <48E51BF5.3080100@g-b.net> Date: Thu, 02 Oct 2008 20:07:33 +0100 From: Albert Graham Reply-To: albert.graham@g-b.net User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: XFS Regression Issue in kernel 2.6.26.3 Subject: XFS Regression Issue in kernel 2.6.26.3 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail1.g-b.net[64.191.66.247] X-Barracuda-Start-Time: 1222974458 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7090 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B Hi Guys, I use Fedora 8 as my MythTV backend server which uses XFS, ISince upgrading from kernel-2.6.25 to kernel-2.6.26 I've been getting the following errors (see below). This occurs on very light load (e.g. rsync from a remove server - via the internet), the only option is to reboot the server as the messages are constantly recursive once it starts. Now, I know my kernel it tainted with the NVIDIA driver and this is not a problem with any previous kernel. Please let me know if there is anything I can do to assist diagnosing this issue. Albert. ======================= XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 Pid: 8025, comm: rsync Tainted: P 2.6.26.3-14.fc8PAE #1 [] xfs_error_report+0x2c/0x2e [xfs] [] xfs_alloc_fixup_trees+0x264/0x273 [xfs] [] ? xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] ? xfs_trans_brelse+0x2a/0xaa [xfs] [] xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] xfs_alloc_ag_vextent+0x30/0xec [xfs] [] xfs_alloc_vextent+0x2e1/0x424 [xfs] [] xfs_bmap_btalloc+0x835/0xa1a [xfs] [] xfs_bmap_alloc+0x8/0xa [xfs] [] xfs_bmapi+0x6ef/0xff1 [xfs] [] ? xfs_log_reserve+0xa0/0xa8 [xfs] [] xfs_iomap_write_allocate+0x21d/0x33c [xfs] [] xfs_iomap+0x276/0x2ec [xfs] [] xfs_map_blocks+0x2b/0x60 [xfs] [] xfs_page_state_convert+0x2f1/0x59a [xfs] [] xfs_vm_writepage+0x97/0xcb [xfs] [] __writepage+0xb/0x25 [] write_cache_pages+0x180/0x287 [] ? __writepage+0x0/0x25 [] generic_writepages+0x1d/0x27 [] xfs_vm_writepages+0x36/0x3b [xfs] [] ? xfs_vm_writepages+0x0/0x3b [xfs] [] do_writepages+0x23/0x34 [] __writeback_siserve+0xa0/0xa8 [xfs] [] xfs_iomap_write_allocate+0x21d/0x33c [xfs] [] xfs_iomap+0x276/0x2ec [xfs] [] xfs_map_blocks+0x2b/0x60 [xfs] [] xfs_page_state_convert+0x2f1/0x59a [xfs] [] xfs_vm_writepage+0x97/0xcb [xfs] [] __writepage+0xb/0x25 [] write_cache_pages+0x180/0x287 [] ? __writepage+0x0/0x25 [] generic_writepages+0x1d/0x27 [] xfs_vm_writepages+0x36/0x3b [xfs] [] ? xfs_vm_writepages+0x0/0x3b [xfs] [] do_writepages+0x23/0x34 [] __writeback_single_inode+0x123/0x22a [] sync_sb_inodes+0x192/0x257 [] writeback_inodes+0x6a/0xb1 [] balance_dirty_pages_ratelimited_nr+0x12f/0x2a4 [] generic_file_buffered_write+0x14f/0x4eb [] ? _spin_unlock_bh+0xe/0x10 [] ? release_sock+0x85/0x8d [] xfs_write+0x43a/0x692 [xfs] [] ? sock_common_recvmsg+0x31/0x4a [] xfs_file_aio_write+0x53/0x5b [xfs] [] do_sync_write+0xab/0xe9 [] ? getnstimeofday+0x3c/0xcb [] ? autoremove_wake_function+0x0/0x33 [] ? security_file_permission+0xf/0x11 [] ? do_sync_write+0x0/0xe9 [] vfs_write+0x8c/0x133 [] sys_write+0x3b/0x60 [] sysenter_past_esp+0x78/0xb1 [] ? cpufreq_cpu_callback+0x13/0x6b ======================= XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 Pid: 8025, comm: rsync Tainted: P 2.6.26.3-14.fc8PAE #1 [] xfs_error_report+0x2c/0x2e [xfs] [] xfs_alloc_fixup_trees+0x264/0x273 [xfs] [] ? xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] ? xfs_trans_brelse+0x2a/0xaa [xfs] [] xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] xfs_alloc_ag_vextent+0x30/0xec [xfs] [] xfs_alloc_vextent+0x2e1/0x424 [xfs] [] xfs_bmap_btalloc+0x835/0xa1a [xfs] [] xfs_bmap_alloc+0x8/0xa [xfs] [] xfs_bmapi+0x6ef/0xff1 [xfs] [] ? xfs_log_reserve+0xa0/0xa8 [xfs] [] xfs_iomap_write_allocate+0x21d/0x33c [xfs] [] xfs_iomap+0x276/0x2ec [xfs] [] xfs_map_blocks+0x2b/0x60 [xfs] [] xfs_page_state_convert+0x2f1/0x59a [xfs] [] xfs_vm_writepage+0x97/0xcb [xfs] [] __writepage+0xb/0x25 [] write_cache_pages+0x180/0x287 [] ? __writepage+0x0/0x25 [] generic_writepages+0x1d/0x27 [] xfs_vm_writepages+0x36/0x3b [xfs] [] ? xfs_vm_writepages+0x0/0x3b [xfs] [] do_writepages+0x23/0x34 [] __writeback_single_inode+0x123/0x22a [] sync_sb_inodes+0x192/0x257 [] writeback_inodes+0x6a/0xb1 [] balance_dirty_pages_ratelimited_nr+0x12f/0x2a4 [] generic_file_buffered_write+0x14f/0x4eb [] ? _spin_unlock_bh+0xe/0x10 [] ? release_sock+0x85/0x8d [] xfs_write+0x43a/0x692 [xfs] [] ? sock_common_recvmsg+0x31/0x4a [] xfs_file_aio_write+0x53/0x5b [xfs] [] do_sync_write+0xab/0xe9 [] ? getnstimeofday+0x3c/0xcb [] ? autoremove_wake_function+0x0/0x33 [] ? security_file_permission+0xf/0x11 [] ? do_sync_write+0x0/0xe9 [] vfs_write+0x8c/0x133 [] sys_write+0x3b/0x60 [] sysenter_past_esp+0x78/0xb1 [] ? cpufreq_cpu_callback+0x13/0x6b ======================= XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 Pid: 8025, comm: rsync Tainted: P 2.6.26.3-14.fc8PAE #1 [] xfs_error_report+0x2c/0x2e [xfs] [] xfs_alloc_fixup_trees+0x264/0x273 [xfs] [] ? xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] ? xfs_trans_brelse+0x2a/0xaa [xfs] [] xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] [] xfs_alloc_ag_vextent+0x30/0xec [xfs] [] xfs_alloc_vextent+0x2e1/0x424 [xfs] [] xfs_bmap_btalloc+0x835/0xa1a [xfs] [] xfs_bmap_alloc+0x8/0xa [xfs] [] xfs_bmapi+0x6ef/0xff1 [xfs] [] ? xfs_log_reserve+0xa0/0xa8 [xfs] [] xfs_iomap_write_allocate+0x21d/0x33c [xfs] [] xfs_iomap+0x276/0x2ec [xfs] [] ? getnstimeofday+0x3c/0xcb [] xfs_map_blocks+0x2b/0x60 [xfs] [] xfs_page_state_convert+0x2f1/0x59a [xfs] [] xfs_vm_writepage+0x97/0xcb [xfs] [] __writepage+0xb/0x25 [] write_cache_pages+0x180/0x287 [] ? __writepage+0x0/0x25 [] generic_writepages+0x1d/0x27 [] xfs_vm_writepages+0x36/0x3b [xfs] [] ? xfs_vm_writepages+0x0/0x3b [xfs] [] do_writepages+0x23/0x34 [] __writeback_single_inode+0x123/0x22a [] sync_sb_inodes+0x192/0x257 [] writeback_inodes+0x6a/0xb1 [] balance_dirty_pages_ratelimited_nr+0x12f/0x2a4 [] generic_file_buffered_write+0x14f/0x4eb [] ? _spin_unlock_bh+0xe/0x10 [] ? release_sock+0x85/0x8d [] xfs_write+0x43a/0x692 [xfs] [] ? sock_common_recvmsg+0x31/0x4a [] xfs_file_aio_write+0x53/0x5b [xfs] [] do_sync_write+0xab/0xe9 [] ? getnstimeofday+0x3c/0xcb [] ? autoremove_wake_function+0x0/0x33 [] ? security_file_permission+0xf/0x11 [] ? do_sync_write+0x0/0xe9 [] vfs_write+0x8c/0x133 [] sys_write+0x3b/0x60 [] sysenter_past_esp+0x78/0xb1 [] ? cpufreq_cpu_callback+0x13/0x6b From owner-xfs@oss.sgi.com Thu Oct 2 13:45:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92Kj1RE001235 for ; Thu, 2 Oct 2008 13:45:01 -0700 X-ASG-Debug-ID: 1222980398-1e5801690000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3454F1095CAE for ; Thu, 2 Oct 2008 13:46:38 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id c67TBXZobMJc9MJy for ; Thu, 02 Oct 2008 13:46:38 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m92KkFHF004944; Thu, 2 Oct 2008 16:46:15 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m92KkExm028779; Thu, 2 Oct 2008 16:46:14 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m92KkCWo028953; Thu, 2 Oct 2008 16:46:13 -0400 Message-ID: <48E53314.5010609@sandeen.net> Date: Thu, 02 Oct 2008 15:46:12 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: albert.graham@g-b.net CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Regression Issue in kernel 2.6.26.3 Subject: Re: XFS Regression Issue in kernel 2.6.26.3 References: <48E51BF5.3080100@g-b.net> In-Reply-To: <48E51BF5.3080100@g-b.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1222980399 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Albert Graham wrote: > Hi Guys, > > I use Fedora 8 as my MythTV backend server which uses XFS, ISince upgrading from kernel-2.6.25 to kernel-2.6.26 I've > been getting the following errors (see below). > > This occurs on very light load (e.g. rsync from a remove server - via the internet), the only option is to reboot the > server as the messages are constantly recursive once it starts. > > Now, I know my kernel it tainted with the NVIDIA driver and this is not a problem with any previous kernel. > > Please let me know if there is anything I can do to assist diagnosing this issue. > > Albert. > > > ======================= > XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 > Pid: 8025, comm: rsync Tainted: P 2.6.26.3-14.fc8PAE #1 > [] xfs_error_report+0x2c/0x2e [xfs] > [] xfs_alloc_fixup_trees+0x264/0x273 [xfs] > [] ? xfs_alloc_ag_vextent_near+0x6e4/0x82b [xfs] Do you know if the filesystem shows any corruption? Try xfs_repair -n to see; if it is, getting an xfs_metadump prior to repairing may help a post-mortem. -Eric From owner-xfs@oss.sgi.com Thu Oct 2 16:50:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m92NoclP014729 for ; Thu, 2 Oct 2008 16:50:39 -0700 X-ASG-Debug-ID: 1222991534-7dd301360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D44C71365A80 for ; Thu, 2 Oct 2008 16:52:15 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id 08FJHoutG1kPiyZX for ; Thu, 02 Oct 2008 16:52:15 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgkDAGf65Eh5LF82iGdsb2JhbACTWgEBARUiqUyBag X-IronPort-AV: E=Sophos;i="4.33,353,1220193000"; d="scan'208";a="219305567" Received: from ppp121-44-95-54.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.95.54]) by ipmail04.adl2.internode.on.net with ESMTP; 03 Oct 2008 09:22:12 +0930 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KlXxr-00038w-Dv; Fri, 03 Oct 2008 09:52:11 +1000 Date: Fri, 3 Oct 2008 09:52:11 +1000 From: Dave Chinner To: Albert Graham Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Regression Issue in kernel 2.6.26.3 Subject: Re: XFS Regression Issue in kernel 2.6.26.3 Message-ID: <20081002235211.GI30001@disturbed> Mail-Followup-To: Albert Graham , xfs@oss.sgi.com References: <48E51BF5.3080100@g-b.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48E51BF5.3080100@g-b.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1222991536 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7110 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 02, 2008 at 08:07:33PM +0100, Albert Graham wrote: > Hi Guys, > > I use Fedora 8 as my MythTV backend server which uses XFS, ISince > upgrading from kernel-2.6.25 to kernel-2.6.26 I've been getting the > following errors (see below). The freespace btrees are getting out of sync for some reason. That is, when we go to allocate an extent, we have to update two free space btrees. This shutdown: > XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 Indicates the extent being allocated was not found in one of the two trees. This corruption could have happened a long time ago in the past, and it may simply be coincidental that you've tripped over this at roughly the same time you upgraded the kernel. Can you run xfs_check on the filesystem to determine if a freespace tree is corrupted (post the output if it is), then run xfs_repair to rebuild them? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 2 20:11:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m933BTXK023582 for ; Thu, 2 Oct 2008 20:11:29 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 0D83E30415F; Thu, 2 Oct 2008 20:13:00 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA01555; Fri, 3 Oct 2008 13:12:58 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7886658C52B4; Fri, 3 Oct 2008 13:12:58 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 957103 - Merge up to 2.6.27-rc8 Message-Id: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> Date: Fri, 3 Oct 2008 13:12:58 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Merge up to 2.6.27-rc8 Date: Fri Oct 3 12:16:52 AEST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-fresh Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32254a fs/xfs/xfs_vnodeops.c - 1.775 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.775&r2=text&tr2=1.774&f=h fs/xfs/xfs_inode.c - 1.525 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.525&r2=text&tr2=1.524&f=h fs/xfs/linux-2.6/xfs_lrw.c - 1.283 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_lrw.c.diff?r1=text&tr1=1.283&r2=text&tr2=1.282&f=h fs/xfs/linux-2.6/xfs_ioctl.c - 1.172 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.172&r2=text&tr2=1.171&f=h fs/xfs/linux-2.6/xfs_linux.h - 1.171 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.171&r2=text&tr2=1.170&f=h fs/xfs/linux-2.6/xfs_super.c - 1.450 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.450&r2=text&tr2=1.449&f=h fs/xfs/linux-2.6/xfs_iops.c - 1.300 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.300&r2=text&tr2=1.299&f=h fs/xfs/linux-2.6/xfs_aops.c - 1.165 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.165&r2=text&tr2=1.164&f=h fs/xfs/linux-2.6/kmem.h - 1.48 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/kmem.h.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h From owner-xfs@oss.sgi.com Thu Oct 2 20:17:49 2008 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m933Hmue024255 for ; Thu, 2 Oct 2008 20:17:48 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 7930F9088C; Thu, 2 Oct 2008 20:19:15 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA01750; Fri, 3 Oct 2008 13:19:13 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id D5B2F58C52B4; Fri, 3 Oct 2008 13:19:12 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 957103 - Merge up to 2.6.27-rc8 Message-Id: <20081003031912.D5B2F58C52B4@chook.melbourne.sgi.com> Date: Fri, 3 Oct 2008 13:19:12 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Merge up to 2.6.27-rc8 Date: Fri Oct 3 12:18:21 AEST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-fresh Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: 2.6.x-xfs-melb:linux:32254b arch/m68knommu/include/asm/m5206sim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m5206sim.h arch/blackfin/mach-bf527/include/mach/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/blackfin.h arch/blackfin/mach-bf527/include/mach/cdefBF522.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/cdefBF522.h virt/kvm/coalesced_mmio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/coalesced_mmio.h Documentation/ABI/testing/sysfs-bus-css - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-bus-css Documentation/ABI/testing/sysfs-class-regulator - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-class-regulator Documentation/ABI/testing/sysfs-dev - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-dev Documentation/ABI/testing/sysfs-devices-memory - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-devices-memory virt/kvm/coalesced_mmio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/coalesced_mmio.c Documentation/ABI/testing/sysfs-firmware-memmap - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-firmware-memmap Documentation/ABI/testing/sysfs-firmware-sgi_uv - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-firmware-sgi_uv Documentation/ABI/testing/sysfs-gpio - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-gpio Documentation/ABI/testing/sysfs-kernel-mm - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-kernel-mm Documentation/ABI/testing/sysfs-kernel-mm-hugepages - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-kernel-mm-hugepages kernel/sched_cpupri.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_cpupri.c kernel/sched_cpupri.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_cpupri.h drivers/usb/musb/tusb6010_omap.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/tusb6010_omap.c kernel/smp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/smp.c drivers/usb/musb/tusb6010.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/tusb6010.h drivers/usb/musb/tusb6010.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/tusb6010.c drivers/usb/musb/omap2430.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/omap2430.h drivers/usb/musb/omap2430.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/omap2430.c drivers/usb/musb/musbhsdma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musbhsdma.c arch/sh/boot/compressed/piggy.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/piggy.S drivers/usb/musb/musb_virthub.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_virthub.c Documentation/DocBook/sh.tmpl - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/sh.tmpl arch/sh/configs/ap325rxa_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/ap325rxa_defconfig drivers/usb/musb/musb_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_regs.h drivers/usb/musb/musb_io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_io.h drivers/usb/musb/musb_host.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_host.h drivers/usb/musb/musb_host.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_host.c drivers/usb/musb/musb_gadget_ep0.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_gadget_ep0.c Documentation/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/Makefile drivers/usb/musb/musb_gadget.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_gadget.h drivers/usb/musb/musb_gadget.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_gadget.c drivers/usb/musb/musb_dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_dma.h drivers/usb/musb/musb_debug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_debug.h drivers/usb/musb/musb_core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_core.h drivers/usb/musb/musb_core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/musb_core.c Documentation/accounting/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/accounting/Makefile drivers/usb/musb/davinci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/davinci.h drivers/usb/musb/davinci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/davinci.c drivers/usb/musb/cppi_dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/cppi_dma.h arch/sh/boards/mach-x3proto/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-x3proto/setup.c arch/sh/boards/mach-x3proto/ilsel.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-x3proto/ilsel.c arch/sh/boards/mach-x3proto/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-x3proto/Makefile drivers/mmc/host/tmio_mmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/tmio_mmc.h drivers/mmc/host/tmio_mmc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/tmio_mmc.c arch/sh/boards/mach-titan/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-titan/setup.c Documentation/auxdisplay/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/auxdisplay/Makefile drivers/mmc/host/sdricoh_cs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/sdricoh_cs.c arch/sh/boards/mach-titan/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-titan/io.c sound/soc/pxa/em-x270.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/em-x270.c Documentation/block/data-integrity.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/block/data-integrity.txt Documentation/bt8xxgpio.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/bt8xxgpio.txt arch/sh/boards/mach-titan/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-titan/Makefile arch/sh/boards/mach-systemh/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-systemh/setup.c Documentation/connector/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/connector/Makefile sound/soc/codecs/wm8990.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8990.h arch/sh/boards/mach-systemh/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-systemh/irq.c drivers/mmc/host/sdhci-pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/sdhci-pci.c drivers/mmc/host/s3cmci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/s3cmci.h drivers/mmc/host/s3cmci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/s3cmci.c arch/sh/boards/mach-systemh/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-systemh/io.c drivers/mmc/host/atmel-mci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/atmel-mci.c sound/soc/codecs/wm8990.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8990.c Documentation/fb/sh7760fb.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/fb/sh7760fb.txt arch/sh/boards/mach-systemh/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-systemh/Makefile drivers/mmc/host/atmel-mci-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/atmel-mci-regs.h arch/sh/boards/mach-snapgear/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-snapgear/setup.c arch/sh/boards/mach-snapgear/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-snapgear/io.c Documentation/filesystems/configfs/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/configfs/Makefile drivers/mmc/core/debugfs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/debugfs.c arch/sh/boards/mach-snapgear/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-snapgear/Makefile Documentation/filesystems/configfs/configfs_example_explicit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/configfs/configfs_example_explicit.c Documentation/filesystems/configfs/configfs_example_macros.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/configfs/configfs_example_macros.c drivers/misc/sgi-xp/xpc_uv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc_uv.c Documentation/filesystems/gfs2-glocks.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/gfs2-glocks.txt sound/soc/codecs/wm8510.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8510.h arch/sh/boards/mach-sh7763rdp/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh7763rdp/setup.c Documentation/filesystems/omfs.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/omfs.txt arch/sh/boards/mach-sh7763rdp/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh7763rdp/irq.c sound/soc/codecs/wm8510.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8510.c drivers/misc/sgi-xp/xpc_sn2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc_sn2.c arch/sh/boards/mach-sh7763rdp/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh7763rdp/Makefile Documentation/filesystems/ubifs.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/ubifs.txt arch/sh/boards/mach-sh03/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh03/setup.c arch/sh/boards/mach-sh03/rtc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh03/rtc.c sound/soc/codecs/uda1380.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/uda1380.h sound/soc/codecs/uda1380.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/uda1380.c sound/soc/codecs/ak4535.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/ak4535.h sound/soc/codecs/ak4535.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/ak4535.c drivers/misc/sgi-xp/xp_uv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xp_uv.c drivers/misc/sgi-xp/xp_sn2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xp_sn2.c drivers/misc/sgi-gru/grutlbpurge.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grutlbpurge.c drivers/misc/sgi-gru/grutables.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grutables.h drivers/misc/sgi-gru/gruprocfs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/gruprocfs.c drivers/misc/sgi-gru/grumain.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grumain.c drivers/misc/sgi-gru/grulib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grulib.h drivers/misc/sgi-gru/grukservices.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grukservices.h drivers/misc/sgi-gru/grukservices.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grukservices.c drivers/misc/sgi-gru/gruhandles.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/gruhandles.h sound/soc/au1x/sample-ac97.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/sample-ac97.c Documentation/i2c/fault-codes - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/fault-codes arch/sh/boards/mach-sh03/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sh03/Makefile Documentation/i2c/upgrading-clients - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/upgrading-clients arch/sh/boards/mach-se/board-se7619.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/board-se7619.c arch/sh/boards/mach-se/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/Makefile arch/sh/boards/mach-se/7780/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7780/setup.c drivers/misc/sgi-gru/grufile.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grufile.c arch/sh/boards/mach-se/7780/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7780/irq.c Documentation/ia64/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ia64/Makefile sound/soc/au1x/psc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/psc.h Documentation/ia64/paravirt_ops.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ia64/paravirt_ops.txt arch/sh/boards/mach-se/7780/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7780/Makefile arch/sh/boards/mach-se/7751/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7751/setup.c arch/sh/boards/mach-se/7751/pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7751/pci.c arch/sh/boards/mach-se/7751/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7751/irq.c arch/sh/boards/mach-se/7751/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7751/io.c arch/sh/boards/mach-se/7751/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7751/Makefile arch/sh/boards/mach-se/7722/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7722/setup.c drivers/misc/sgi-gru/grufault.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/grufault.c drivers/misc/sgi-gru/gru_instructions.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/gru_instructions.h drivers/misc/sgi-gru/gru.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/gru.h arch/sh/boards/mach-se/7722/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7722/irq.c Documentation/isdn/README.mISDN - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/isdn/README.mISDN sound/soc/au1x/psc-i2s.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/psc-i2s.c Documentation/ja_JP/SubmitChecklist - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ja_JP/SubmitChecklist drivers/misc/sgi-gru/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-gru/Makefile arch/sh/boards/mach-se/7722/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7722/Makefile drivers/misc/hpilo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/hpilo.h drivers/misc/hpilo.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/hpilo.c sound/soc/au1x/psc-ac97.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/psc-ac97.c sound/soc/au1x/dbdma2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/dbdma2.c drivers/misc/hp-wmi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/hp-wmi.c sound/soc/au1x/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/Makefile sound/soc/au1x/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/au1x/Kconfig arch/sh/boards/mach-se/7721/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7721/setup.c arch/sh/boards/mach-se/7721/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7721/irq.c Documentation/networking/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/Makefile arch/sh/boards/mach-se/7721/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7721/Makefile sound/soc/at32/playpaq_wm8510.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/playpaq_wm8510.c Documentation/networking/dm9000.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/dm9000.txt arch/sh/boards/mach-se/770x/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/770x/setup.c arch/sh/boards/mach-se/770x/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/770x/irq.c arch/sh/boards/mach-se/770x/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/770x/io.c arch/sh/boards/mach-se/770x/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/770x/Makefile Documentation/networking/mac80211_hwsim/README - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/mac80211_hwsim/README Documentation/networking/mac80211_hwsim/hostapd.conf - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/mac80211_hwsim/hostapd.conf Documentation/networking/mac80211_hwsim/wpa_supplicant.conf - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/mac80211_hwsim/wpa_supplicant.conf sound/soc/at32/at32-ssc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/at32-ssc.h arch/sh/boards/mach-se/7343/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7343/setup.c arch/sh/boards/mach-se/7343/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7343/irq.c sound/soc/at32/at32-ssc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/at32-ssc.c drivers/misc/compal-laptop.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/compal-laptop.c arch/sh/boards/mach-se/7343/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7343/io.c Documentation/pcmcia/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/pcmcia/Makefile arch/sh/boards/mach-se/7343/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7343/Makefile sound/soc/at32/at32-pcm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/at32-pcm.h Documentation/power/apm-acpi.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/apm-acpi.txt sound/soc/at32/at32-pcm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/at32-pcm.c sound/soc/at32/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/Makefile sound/soc/at32/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at32/Kconfig Documentation/power/regulator/consumer.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/regulator/consumer.txt Documentation/power/regulator/machine.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/regulator/machine.txt Documentation/power/regulator/overview.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/regulator/overview.txt Documentation/power/regulator/regulator.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/regulator/regulator.txt arch/sh/boards/mach-se/7206/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7206/setup.c arch/sh/boards/mach-se/7206/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7206/irq.c arch/sh/boards/mach-se/7206/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7206/io.c Documentation/powerpc/bootwrapper.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/bootwrapper.txt Documentation/powerpc/dts-bindings/fsl/board.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/board.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/brg.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/i2c.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/pic.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/cpm/usb.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/gpio.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/gpio.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/network.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/firmware.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/par_io.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/pincfg.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/ucc.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/qe/usb.txt Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/cpm_qe/serial.txt Documentation/powerpc/dts-bindings/fsl/diu.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/diu.txt Documentation/powerpc/dts-bindings/fsl/dma.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/dma.txt Documentation/powerpc/dts-bindings/fsl/gtm.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/gtm.txt Documentation/powerpc/dts-bindings/fsl/guts.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/guts.txt Documentation/powerpc/dts-bindings/fsl/i2c.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/i2c.txt Documentation/powerpc/dts-bindings/fsl/lbc.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/lbc.txt Documentation/powerpc/dts-bindings/fsl/mcu-mpc8349emitx.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/mcu-mpc8349emitx.txt Documentation/powerpc/dts-bindings/fsl/msi-pic.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/msi-pic.txt Documentation/powerpc/dts-bindings/fsl/pmc.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/pmc.txt Documentation/powerpc/dts-bindings/fsl/sata.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/sata.txt Documentation/powerpc/dts-bindings/fsl/sec.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/sec.txt Documentation/powerpc/dts-bindings/fsl/spi.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/spi.txt Documentation/powerpc/dts-bindings/fsl/ssi.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/ssi.txt Documentation/powerpc/dts-bindings/fsl/tsec.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/tsec.txt Documentation/powerpc/dts-bindings/fsl/upm-nand.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/upm-nand.txt Documentation/powerpc/dts-bindings/fsl/usb.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/fsl/usb.txt Documentation/powerpc/dts-bindings/gpio/led.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/dts-bindings/gpio/led.txt arch/sh/boards/mach-se/7206/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-se/7206/Makefile arch/sh/boards/mach-sdk7780/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sdk7780/setup.c drivers/mfd/tc6393xb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/tc6393xb.c arch/sh/boards/mach-sdk7780/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sdk7780/irq.c drivers/mfd/tc6387xb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/tc6387xb.c drivers/mfd/t7l66xb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/t7l66xb.c arch/sh/boards/mach-sdk7780/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sdk7780/Makefile drivers/mfd/mfd-core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/mfd-core.c arch/sh/boards/mach-sdk7780/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-sdk7780/Kconfig arch/sh/boards/mach-r2d/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-r2d/setup.c arch/sh/boards/mach-r2d/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-r2d/irq.c arch/sh/boards/mach-r2d/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-r2d/Makefile arch/sh/boards/mach-r2d/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-r2d/Kconfig arch/sh/boards/mach-migor/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-migor/setup.c arch/sh/boards/mach-migor/lcd_qvga.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-migor/lcd_qvga.c arch/sh/boards/mach-migor/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-migor/Makefile arch/sh/boards/mach-migor/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-migor/Kconfig crypto/rmd320.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/rmd320.c crypto/rmd256.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/rmd256.c crypto/rmd160.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/rmd160.c arch/sh/boards/mach-microdev/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-microdev/setup.c Documentation/spi/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/spi/Makefile crypto/rmd128.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/rmd128.c crypto/ripemd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/ripemd.h arch/sh/boards/mach-microdev/led.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-microdev/led.c arch/sh/boards/mach-microdev/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-microdev/irq.c arch/sh/boards/mach-microdev/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-microdev/io.c arch/sh/boards/mach-microdev/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-microdev/Makefile arch/sh/boards/mach-lboxre2/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-lboxre2/setup.c Documentation/tracers/mmiotrace.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/tracers/mmiotrace.txt drivers/power/palmtx_battery.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/palmtx_battery.c arch/sh/boards/mach-lboxre2/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-lboxre2/irq.c arch/sh/boards/mach-lboxre2/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-lboxre2/Makefile arch/sh/boards/mach-landisk/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-landisk/setup.c crypto/ahash.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/ahash.c arch/sh/boards/mach-landisk/psw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-landisk/psw.c arch/sh/boards/mach-landisk/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-landisk/irq.c arch/sh/boards/mach-landisk/gio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-landisk/gio.c drivers/power/tosa_battery.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/tosa_battery.c drivers/regulator/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/Kconfig block/cmd-filter.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/cmd-filter.c drivers/regulator/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/Makefile Documentation/video4linux/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/Makefile drivers/regulator/bq24022.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/bq24022.c drivers/regulator/core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/core.c drivers/regulator/fixed.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/fixed.c Documentation/video4linux/gspca.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/gspca.txt drivers/mtd/maps/bfin-async-flash.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/bfin-async-flash.c drivers/regulator/virtual.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/regulator/virtual.c Documentation/vm/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/vm/Makefile arch/sh/boards/mach-landisk/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-landisk/Makefile block/blk-integrity.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-integrity.c drivers/acpi/pci_slot.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/pci_slot.c drivers/rtc/rtc-ds1305.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-ds1305.c Documentation/watchdog/src/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/watchdog/src/Makefile Documentation/x86/i386/IO-APIC.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/i386/IO-APIC.txt Documentation/x86/i386/boot.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/i386/boot.txt Documentation/x86/i386/usb-legacy-support.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/i386/usb-legacy-support.txt Documentation/x86/i386/zero-page.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/i386/zero-page.txt Documentation/x86/x86_64/00-INDEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/00-INDEX Documentation/x86/x86_64/boot-options.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/boot-options.txt Documentation/x86/x86_64/cpu-hotplug-spec - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/cpu-hotplug-spec Documentation/x86/x86_64/fake-numa-for-cpusets - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/fake-numa-for-cpusets Documentation/x86/x86_64/kernel-stacks - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/kernel-stacks Documentation/x86/x86_64/machinecheck - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/machinecheck Documentation/x86/x86_64/mm.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/mm.txt Documentation/x86/x86_64/uefi.txt - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86/x86_64/uefi.txt drivers/rtc/rtc-m41t94.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-m41t94.c arch/sh/boards/mach-hp6xx/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-hp6xx/setup.c drivers/rtc/rtc-pl030.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-pl030.c arch/x86/xen/xen-asm_64.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/xen-asm_64.S arch/x86/xen/xen-asm_32.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/xen-asm_32.S arch/x86/xen/suspend.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/suspend.c arch/sh/boards/mach-hp6xx/pm_wakeup.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-hp6xx/pm_wakeup.S include/linux/netfilter_bridge/ebt_ip6.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter_bridge/ebt_ip6.h drivers/acpi/reboot.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/reboot.c arch/sh/boards/mach-hp6xx/pm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-hp6xx/pm.c arch/sh/boards/mach-hp6xx/hp6xx_apm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-hp6xx/hp6xx_apm.c drivers/media/video/videobuf-dma-contig.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videobuf-dma-contig.c arch/sh/boards/mach-hp6xx/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-hp6xx/Makefile arch/sh/boards/mach-highlander/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/setup.c arch/alpha/include/asm/8253pit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/8253pit.h arch/alpha/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/Kbuild arch/alpha/include/asm/a.out-core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/a.out-core.h arch/alpha/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/a.out.h arch/alpha/include/asm/agp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/agp.h arch/alpha/include/asm/agp_backend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/agp_backend.h arch/alpha/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/atomic.h arch/alpha/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/auxvec.h arch/alpha/include/asm/barrier.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/barrier.h arch/alpha/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/bitops.h arch/alpha/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/bug.h arch/alpha/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/bugs.h arch/alpha/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/byteorder.h arch/alpha/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/cache.h arch/alpha/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/cacheflush.h arch/alpha/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/checksum.h arch/alpha/include/asm/compiler.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/compiler.h arch/alpha/include/asm/console.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/console.h arch/alpha/include/asm/core_apecs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_apecs.h arch/alpha/include/asm/core_cia.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_cia.h arch/alpha/include/asm/core_irongate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_irongate.h arch/alpha/include/asm/core_lca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_lca.h arch/alpha/include/asm/core_marvel.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_marvel.h arch/alpha/include/asm/core_mcpcia.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_mcpcia.h arch/alpha/include/asm/core_polaris.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_polaris.h arch/alpha/include/asm/core_t2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_t2.h arch/alpha/include/asm/core_titan.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_titan.h arch/alpha/include/asm/core_tsunami.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_tsunami.h arch/alpha/include/asm/core_wildfire.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/core_wildfire.h arch/alpha/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/cputime.h arch/alpha/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/current.h arch/alpha/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/delay.h arch/alpha/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/device.h arch/alpha/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/div64.h arch/alpha/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/dma-mapping.h arch/alpha/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/dma.h arch/alpha/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/elf.h arch/alpha/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/emergency-restart.h arch/alpha/include/asm/err_common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/err_common.h arch/alpha/include/asm/err_ev6.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/err_ev6.h arch/alpha/include/asm/err_ev7.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/err_ev7.h arch/alpha/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/errno.h arch/alpha/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/fb.h arch/alpha/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/fcntl.h arch/alpha/include/asm/floppy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/floppy.h arch/alpha/include/asm/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/fpu.h arch/alpha/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/futex.h arch/alpha/include/asm/gct.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/gct.h arch/alpha/include/asm/gentrap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/gentrap.h arch/alpha/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/hardirq.h arch/alpha/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/hw_irq.h arch/alpha/include/asm/hwrpb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/hwrpb.h arch/alpha/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/io.h arch/alpha/include/asm/io_trivial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/io_trivial.h arch/alpha/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/ioctl.h arch/alpha/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/ioctls.h arch/alpha/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/ipcbuf.h arch/alpha/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/irq.h arch/alpha/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/irq_regs.h arch/alpha/include/asm/jensen.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/jensen.h arch/alpha/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/kdebug.h arch/alpha/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/kmap_types.h arch/alpha/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/linkage.h arch/alpha/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/local.h arch/alpha/include/asm/machvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/machvec.h arch/alpha/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mc146818rtc.h arch/alpha/include/asm/md.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/md.h arch/alpha/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mman.h arch/alpha/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mmu.h arch/alpha/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mmu_context.h arch/alpha/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mmzone.h arch/alpha/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/module.h arch/alpha/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/msgbuf.h arch/alpha/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/mutex.h arch/alpha/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/page.h arch/alpha/include/asm/pal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/pal.h arch/alpha/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/param.h arch/alpha/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/parport.h arch/alpha/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/pci.h arch/alpha/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/percpu.h arch/alpha/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/pgalloc.h arch/alpha/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/pgtable.h arch/alpha/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/poll.h arch/alpha/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/posix_types.h arch/alpha/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/processor.h arch/alpha/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/ptrace.h arch/alpha/include/asm/reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/reg.h arch/alpha/include/asm/regdef.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/regdef.h arch/alpha/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/resource.h arch/alpha/include/asm/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/rtc.h arch/alpha/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/rwsem.h arch/alpha/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/scatterlist.h arch/alpha/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sections.h arch/alpha/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/segment.h arch/alpha/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sembuf.h arch/alpha/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/serial.h arch/alpha/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/setup.h arch/alpha/include/asm/sfp-machine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sfp-machine.h arch/alpha/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/shmbuf.h arch/alpha/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/shmparam.h arch/alpha/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sigcontext.h arch/alpha/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/siginfo.h arch/alpha/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/signal.h arch/alpha/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/smp.h arch/alpha/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/socket.h arch/alpha/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sockios.h arch/alpha/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/spinlock.h arch/alpha/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/spinlock_types.h arch/alpha/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/stat.h arch/alpha/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/statfs.h arch/alpha/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/string.h arch/alpha/include/asm/suspend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/suspend.h arch/alpha/include/asm/sysinfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/sysinfo.h arch/alpha/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/system.h arch/alpha/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/termbits.h arch/alpha/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/termios.h arch/alpha/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/thread_info.h arch/alpha/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/timex.h arch/alpha/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/tlb.h arch/alpha/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/tlbflush.h arch/alpha/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/topology.h arch/alpha/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/types.h arch/alpha/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/uaccess.h arch/alpha/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/ucontext.h arch/alpha/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/unaligned.h arch/alpha/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/unistd.h arch/alpha/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/user.h arch/alpha/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/vga.h arch/alpha/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/include/asm/xor.h arch/sh/boards/mach-highlander/psw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/psw.c arch/sh/boards/mach-highlander/irq-r7785rp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/irq-r7785rp.c arch/sh/boards/mach-highlander/irq-r7780rp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/irq-r7780rp.c arch/sh/boards/mach-highlander/irq-r7780mp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/irq-r7780mp.c arch/sh/boards/mach-highlander/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/Makefile arch/sh/boards/mach-highlander/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-highlander/Kconfig arch/sh/boards/mach-edosk7705/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-edosk7705/setup.c arch/sh/boards/mach-edosk7705/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-edosk7705/io.c arch/sh/boards/mach-edosk7705/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-edosk7705/Makefile arch/sh/boards/mach-dreamcast/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-dreamcast/setup.c drivers/media/video/v4l2-ioctl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/v4l2-ioctl.c arch/sh/boards/mach-dreamcast/rtc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-dreamcast/rtc.c arch/sh/boards/mach-dreamcast/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-dreamcast/irq.c arch/sh/boards/mach-dreamcast/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-dreamcast/Makefile arch/sh/boards/mach-cayman/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-cayman/setup.c arch/sh/boards/mach-cayman/led.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-cayman/led.c drivers/media/video/v4l2-dev.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/v4l2-dev.c include/linux/nfs_iostat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfs_iostat.h include/linux/of_spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/of_spi.h arch/sh/boards/mach-cayman/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-cayman/irq.c arch/x86/pci/numaq_32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/numaq_32.c drivers/media/video/uvc/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/Kconfig arch/x86/pci/amd_bus.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/amd_bus.c arch/x86/mm/testmmiotrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/testmmiotrace.c arch/arm/configs/ams_delta_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ams_delta_defconfig arch/x86/mm/srat_32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/srat_32.c include/linux/pwm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pwm.h arch/x86/mm/pf_in.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pf_in.h arch/x86/mm/pf_in.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pf_in.c include/linux/pwm_backlight.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pwm_backlight.h arch/x86/mm/mmio-mod.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/mmio-mod.c arch/arm/configs/at91sam9g20ek_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91sam9g20ek_defconfig arch/x86/mm/memtest.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/memtest.c arch/x86/mm/kmmio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/kmmio.c arch/x86/mm/gup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/gup.c include/linux/ratelimit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ratelimit.h include/linux/regulator/bq24022.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/regulator/bq24022.h include/linux/regulator/consumer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/regulator/consumer.h include/linux/regulator/driver.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/regulator/driver.h include/linux/regulator/fixed.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/regulator/fixed.h include/linux/regulator/machine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/regulator/machine.h drivers/pcmcia/pxa2xx_palmtx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_palmtx.c arch/arm/configs/ezx_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ezx_defconfig arch/arm/configs/imx27ads_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/imx27ads_defconfig arch/x86/mach-generic/numaq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-generic/numaq.c drivers/media/video/soc_camera_platform.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/soc_camera_platform.c arch/x86/lib/thunk_32.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/thunk_32.S arch/x86/lib/putuser.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/putuser.S drivers/media/video/sh_mobile_ceu_camera.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/sh_mobile_ceu_camera.c arch/x86/lib/getuser.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/getuser.S arch/x86/lib/delay.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/delay.c include/linux/smc911x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smc911x.h arch/arm/configs/kirkwood_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/kirkwood_defconfig drivers/s390/cio/chsc_sch.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chsc_sch.c arch/arm/configs/loki_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/loki_defconfig include/linux/spi/ds1305.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/ds1305.h include/linux/spi/max7301.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/max7301.h arch/arm/configs/mv78xx0_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/mv78xx0_defconfig arch/arm/configs/mx31ads_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/mx31ads_defconfig arch/arm/configs/mx31litekit_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/mx31litekit_defconfig arch/arm/configs/n770_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/n770_defconfig include/linux/spi/orion_spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/orion_spi.h arch/arm/configs/omap_2430sdp_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_2430sdp_defconfig arch/arm/configs/omap_apollon_2420_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_apollon_2420_defconfig arch/arm/configs/omap_generic_1510_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_generic_1510_defconfig arch/arm/configs/omap_generic_1610_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_generic_1610_defconfig arch/arm/configs/omap_generic_1710_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_generic_1710_defconfig arch/arm/configs/omap_generic_2420_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_generic_2420_defconfig drivers/s390/cio/chsc_sch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chsc_sch.h arch/arm/configs/omap_h4_2420_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_h4_2420_defconfig arch/arm/configs/omap_innovator_1510_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_innovator_1510_defconfig arch/arm/configs/omap_innovator_1610_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_innovator_1610_defconfig drivers/s390/cio/fcx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/fcx.c arch/arm/configs/omap_perseus2_730_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_perseus2_730_defconfig include/linux/swab.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/swab.h drivers/s390/cio/isc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/isc.c arch/arm/configs/palmte_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/palmte_defconfig arch/arm/configs/palmtt_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/palmtt_defconfig arch/arm/configs/palmz71_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/palmz71_defconfig arch/arm/configs/pcm037_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/pcm037_defconfig arch/arm/configs/pcm038_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/pcm038_defconfig drivers/s390/cio/itcw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/itcw.c arch/x86/kernel/visws_quirks.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/visws_quirks.c arch/arm/configs/qil-a9260_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/qil-a9260_defconfig drivers/s390/cio/qdio_debug.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_debug.c arch/x86/kernel/tsc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tsc.c arch/sh/boards/mach-cayman/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/mach-cayman/Makefile drivers/s390/cio/qdio_debug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_debug.h drivers/s390/cio/qdio_main.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_main.c drivers/s390/cio/qdio_perf.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_perf.c arch/arm/configs/sx1_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/sx1_defconfig sound/pci/ak4531_codec.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ak4531_codec.c arch/x86/kernel/tlb_uv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tlb_uv.c arch/arm/configs/usb-a9260_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/usb-a9260_defconfig arch/arm/configs/usb-a9263_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/usb-a9263_defconfig drivers/s390/cio/qdio_perf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_perf.h arch/arm/configs/xm_x270_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/xm_x270_defconfig drivers/s390/cio/qdio_setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_setup.c arch/arm/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/Kbuild arch/arm/include/asm/a.out-core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/a.out-core.h arch/arm/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/a.out.h arch/arm/include/asm/assembler.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/assembler.h arch/arm/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/atomic.h arch/arm/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/auxvec.h arch/arm/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/bitops.h arch/arm/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/bug.h arch/arm/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/bugs.h arch/arm/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/byteorder.h arch/arm/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cache.h arch/arm/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cacheflush.h arch/arm/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/checksum.h arch/arm/include/asm/cpu-multi32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cpu-multi32.h arch/arm/include/asm/cpu-single.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cpu-single.h arch/arm/include/asm/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cpu.h arch/arm/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/cputime.h arch/arm/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/current.h arch/arm/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/delay.h arch/arm/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/device.h arch/arm/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/div64.h arch/arm/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/dma-mapping.h arch/arm/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/dma.h arch/arm/include/asm/domain.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/domain.h arch/arm/include/asm/ecard.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ecard.h arch/arm/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/elf.h arch/arm/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/emergency-restart.h arch/arm/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/errno.h arch/arm/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/fb.h arch/arm/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/fcntl.h arch/arm/include/asm/fiq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/fiq.h arch/arm/include/asm/flat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/flat.h arch/arm/include/asm/floppy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/floppy.h arch/arm/include/asm/fpstate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/fpstate.h arch/arm/include/asm/ftrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ftrace.h arch/arm/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/futex.h arch/arm/include/asm/glue.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/glue.h arch/arm/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/gpio.h arch/arm/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardirq.h arch/arm/include/asm/hardware/arm_timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/arm_timer.h arch/arm/include/asm/hardware/arm_twd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/arm_twd.h arch/arm/include/asm/hardware/cache-l2x0.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/cache-l2x0.h arch/arm/include/asm/hardware/clps7111.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/clps7111.h arch/arm/include/asm/hardware/cs89712.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/cs89712.h arch/arm/include/asm/hardware/debug-8250.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/debug-8250.S arch/arm/include/asm/hardware/debug-pl01x.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/debug-pl01x.S arch/arm/include/asm/hardware/dec21285.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/dec21285.h arch/arm/include/asm/hardware/entry-macro-iomd.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/entry-macro-iomd.S arch/arm/include/asm/hardware/ep7211.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/ep7211.h arch/arm/include/asm/hardware/ep7212.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/ep7212.h arch/arm/include/asm/hardware/gic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/gic.h arch/arm/include/asm/hardware/icst307.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/icst307.h arch/arm/include/asm/hardware/icst525.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/icst525.h arch/arm/include/asm/hardware/ioc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/ioc.h arch/arm/include/asm/hardware/iomd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/iomd.h arch/arm/include/asm/hardware/iop3xx-adma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/iop3xx-adma.h arch/arm/include/asm/hardware/iop3xx-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/iop3xx-gpio.h arch/arm/include/asm/hardware/iop3xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/iop3xx.h arch/arm/include/asm/hardware/iop_adma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/iop_adma.h arch/arm/include/asm/hardware/it8152.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/it8152.h arch/arm/include/asm/hardware/linkup-l1110.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/linkup-l1110.h arch/arm/include/asm/hardware/locomo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/locomo.h arch/arm/include/asm/hardware/memc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/memc.h arch/arm/include/asm/hardware/pci_v3.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/pci_v3.h arch/arm/include/asm/hardware/sa1111.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/sa1111.h arch/arm/include/asm/hardware/scoop.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/scoop.h arch/arm/include/asm/hardware/sharpsl_pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/sharpsl_pm.h arch/arm/include/asm/hardware/ssp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/ssp.h arch/arm/include/asm/hardware/uengine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/uengine.h arch/arm/include/asm/hardware/vic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hardware/vic.h arch/arm/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hw_irq.h arch/arm/include/asm/hwcap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/hwcap.h arch/arm/include/asm/ide.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ide.h arch/arm/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/io.h arch/arm/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ioctl.h arch/arm/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ioctls.h arch/arm/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ipcbuf.h arch/arm/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/irq.h arch/arm/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/irq_regs.h arch/arm/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/irqflags.h arch/arm/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/kdebug.h arch/arm/include/asm/kexec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/kexec.h arch/arm/include/asm/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/kgdb.h arch/arm/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/kmap_types.h arch/arm/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/kprobes.h arch/arm/include/asm/leds.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/leds.h arch/arm/include/asm/limits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/limits.h arch/arm/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/linkage.h arch/arm/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/local.h arch/arm/include/asm/locks.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/locks.h arch/arm/include/asm/mach/arch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/arch.h arch/arm/include/asm/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/dma.h arch/arm/include/asm/mach/flash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/flash.h arch/arm/include/asm/mach/irda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/irda.h arch/arm/include/asm/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/irq.h arch/arm/include/asm/mach/map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/map.h arch/arm/include/asm/mach/mmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/mmc.h arch/arm/include/asm/mach/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/pci.h arch/arm/include/asm/mach/serial_at91.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/serial_at91.h arch/arm/include/asm/mach/serial_sa1100.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/serial_sa1100.h arch/arm/include/asm/mach/sharpsl_param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/sharpsl_param.h arch/arm/include/asm/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/time.h arch/arm/include/asm/mach/udc_pxa2xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mach/udc_pxa2xx.h arch/arm/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mc146818rtc.h arch/arm/include/asm/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/memory.h arch/arm/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mman.h arch/arm/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mmu.h arch/arm/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mmu_context.h arch/arm/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mmzone.h arch/arm/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/module.h arch/arm/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/msgbuf.h arch/arm/include/asm/mtd-xip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mtd-xip.h arch/arm/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/mutex.h arch/arm/include/asm/nwflash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/nwflash.h arch/arm/include/asm/page-nommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/page-nommu.h arch/arm/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/page.h arch/arm/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/param.h arch/arm/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/parport.h arch/arm/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/pci.h arch/arm/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/percpu.h arch/arm/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/pgalloc.h arch/arm/include/asm/pgtable-hwdef.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/pgtable-hwdef.h arch/arm/include/asm/pgtable-nommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/pgtable-nommu.h arch/arm/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/pgtable.h arch/arm/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/poll.h arch/arm/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/posix_types.h arch/arm/include/asm/proc-fns.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/proc-fns.h arch/arm/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/processor.h arch/arm/include/asm/procinfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/procinfo.h arch/arm/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ptrace.h arch/arm/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/resource.h arch/arm/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/scatterlist.h arch/arm/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sections.h arch/arm/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/segment.h arch/arm/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sembuf.h arch/arm/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/serial.h arch/arm/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/setup.h arch/arm/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/shmbuf.h arch/arm/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/shmparam.h arch/arm/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sigcontext.h arch/arm/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/siginfo.h arch/arm/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/signal.h arch/arm/include/asm/sizes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sizes.h arch/arm/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/smp.h arch/arm/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/socket.h arch/arm/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sockios.h arch/arm/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/sparsemem.h arch/arm/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/spinlock.h arch/arm/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/spinlock_types.h arch/arm/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/stat.h arch/arm/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/statfs.h arch/arm/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/string.h arch/arm/include/asm/suspend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/suspend.h arch/arm/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/system.h arch/arm/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/termbits.h arch/arm/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/termios.h arch/arm/include/asm/therm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/therm.h arch/arm/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/thread_info.h arch/arm/include/asm/thread_notify.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/thread_notify.h arch/arm/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/timex.h arch/arm/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/tlb.h arch/arm/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/tlbflush.h arch/arm/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/topology.h arch/arm/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/traps.h arch/arm/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/types.h arch/arm/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/uaccess.h arch/arm/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/ucontext.h arch/arm/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/unaligned.h arch/arm/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/unistd.h arch/arm/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/user.h arch/arm/include/asm/vfp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/vfp.h arch/arm/include/asm/vfpmacros.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/vfpmacros.h arch/arm/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/vga.h arch/arm/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/include/asm/xor.h arch/arm/kernel/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/.gitignore drivers/usb/musb/cppi_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/cppi_dma.c kernel/trace/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/Kconfig drivers/s390/cio/qdio_thinint.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio_thinint.c kernel/trace/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/Makefile drivers/media/video/s2255drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/s2255drv.c drivers/s390/cio/scsw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/scsw.c drivers/usb/musb/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/Makefile kernel/trace/ftrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/ftrace.c include/linux/tracehook.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tracehook.h drivers/usb/musb/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/musb/Kconfig kernel/trace/trace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace.c arch/arm/kernel/ftrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/ftrace.c include/linux/typecheck.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/typecheck.h include/linux/usb/composite.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/composite.h arch/sh/configs/sh7763rdp_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/sh7763rdp_defconfig arch/arm/kernel/kgdb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/kgdb.c include/linux/usb/irda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/irda.h include/linux/usb/musb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/musb.h arch/sh/configs/sh7785lcr_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/sh7785lcr_defconfig arch/sh/drivers/pci/fixups-sh7785lcr.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/fixups-sh7785lcr.c drivers/block/hd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/hd.c arch/x86/kernel/setup_percpu.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/setup_percpu.c drivers/s390/scsi/zfcp_cfdc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_cfdc.c arch/sh/drivers/pci/ops-sh7785lcr.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/ops-sh7785lcr.c arch/sh/include/asm/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/.gitignore drivers/mtd/nand/atmel_nand.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/atmel_nand.c kernel/trace/trace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace.h kernel/trace/trace_functions.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_functions.c kernel/trace/trace_irqsoff.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_irqsoff.c kernel/trace/trace_mmiotrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_mmiotrace.c drivers/mtd/nand/atmel_nand_ecc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/atmel_nand_ecc.h arch/sh/boards/board-shmin.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/board-shmin.c arch/sh/boards/board-sh7785lcr.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/board-sh7785lcr.c arch/sh/boards/board-rsk7203.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/board-rsk7203.c arch/x86/kernel/probe_roms_32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/probe_roms_32.c drivers/s390/scsi/zfcp_fc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_fc.c include/media/sh_mobile_ceu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/sh_mobile_ceu.h arch/arm/mach-aaec2000/include/mach/aaec2000.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/aaec2000.h arch/arm/mach-aaec2000/include/mach/aaed2000.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/aaed2000.h arch/arm/mach-aaec2000/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/debug-macro.S arch/arm/mach-aaec2000/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/dma.h arch/arm/mach-aaec2000/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/entry-macro.S arch/arm/mach-aaec2000/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/hardware.h arch/arm/mach-aaec2000/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/io.h arch/arm/mach-aaec2000/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/irqs.h arch/arm/mach-aaec2000/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/memory.h arch/arm/mach-aaec2000/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/system.h arch/arm/mach-aaec2000/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/timex.h arch/arm/mach-aaec2000/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/uncompress.h arch/arm/mach-aaec2000/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/include/mach/vmalloc.h include/media/soc_camera_platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/soc_camera_platform.h drivers/s390/scsi/zfcp_sysfs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_sysfs.c drivers/mtd/nand/tmio_nand.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/tmio_nand.c include/media/v4l2-ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/v4l2-ioctl.h arch/x86/kernel/nmi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/nmi.c include/media/videobuf-dma-contig.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/videobuf-dma-contig.h arch/x86/kernel/irqinit_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/irqinit_64.c arch/x86/kernel/irqinit_32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/irqinit_32.c include/net/garp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/garp.h arch/x86/kernel/i8259.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/i8259.c arch/x86/kernel/head.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/head.c arch/x86/kernel/ftrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/ftrace.c drivers/scsi/device_handler/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/Kconfig drivers/scsi/device_handler/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/Makefile drivers/scsi/device_handler/scsi_dh.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/scsi_dh.c drivers/scsi/device_handler/scsi_dh_alua.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/scsi_dh_alua.c drivers/scsi/device_handler/scsi_dh_emc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/scsi_dh_emc.c drivers/scsi/device_handler/scsi_dh_hp_sw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/scsi_dh_hp_sw.c sound/mips/sgio2audio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/sgio2audio.c sound/mips/hal2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/hal2.h sound/mips/hal2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/hal2.c drivers/net/8390p.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/8390p.c sound/mips/ad1843.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/ad1843.c drivers/scsi/device_handler/scsi_dh_rdac.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/device_handler/scsi_dh_rdac.c include/net/netfilter/nf_conntrack_acct.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netfilter/nf_conntrack_acct.h arch/x86/kernel/e820.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/e820.c include/net/netns/hash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netns/hash.h include/net/netns/mib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netns/mib.h drivers/scsi/ibmvscsi/ibmvfc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/ibmvfc.c drivers/scsi/ibmvscsi/ibmvfc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/ibmvfc.h include/net/stp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/stp.h arch/x86/kernel/cpu/intel_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/intel_64.c arch/arm/mach-at91/board-qil-a9260.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-qil-a9260.c arch/x86/kernel/cpu/common_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/common_64.c drivers/media/video/gspca/zc3xx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/zc3xx.c drivers/media/video/gspca/zc3xx-reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/zc3xx-reg.h drivers/media/video/gspca/vc032x.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/vc032x.c arch/arm/mach-at91/board-sam9g20ek.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9g20ek.c drivers/media/video/gspca/tv8532.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/tv8532.c arch/arm/mach-at91/board-usb-a9260.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-usb-a9260.c arch/arm/mach-at91/board-usb-a9263.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-usb-a9263.c drivers/media/video/gspca/t613.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/t613.c drivers/media/video/gspca/sunplus.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/sunplus.c drivers/media/video/gspca/stk014.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/stk014.c arch/arm/mach-at91/include/mach/at91_adc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_adc.h arch/arm/mach-at91/include/mach/at91_aic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_aic.h arch/arm/mach-at91/include/mach/at91_dbgu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_dbgu.h arch/arm/mach-at91/include/mach/at91_mci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_mci.h arch/arm/mach-at91/include/mach/at91_pio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_pio.h arch/arm/mach-at91/include/mach/at91_pit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_pit.h arch/arm/mach-at91/include/mach/at91_pmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_pmc.h arch/arm/mach-at91/include/mach/at91_rstc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_rstc.h arch/arm/mach-at91/include/mach/at91_rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_rtc.h arch/arm/mach-at91/include/mach/at91_rtt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_rtt.h arch/arm/mach-at91/include/mach/at91_shdwc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_shdwc.h arch/arm/mach-at91/include/mach/at91_spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_spi.h arch/arm/mach-at91/include/mach/at91_ssc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_ssc.h arch/arm/mach-at91/include/mach/at91_st.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_st.h arch/arm/mach-at91/include/mach/at91_tc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_tc.h arch/arm/mach-at91/include/mach/at91_twi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_twi.h arch/arm/mach-at91/include/mach/at91_wdt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91_wdt.h arch/arm/mach-at91/include/mach/at91cap9.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91cap9.h arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h arch/arm/mach-at91/include/mach/at91cap9_matrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91cap9_matrix.h arch/arm/mach-at91/include/mach/at91rm9200.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91rm9200.h arch/arm/mach-at91/include/mach/at91rm9200_emac.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91rm9200_emac.h arch/arm/mach-at91/include/mach/at91rm9200_mc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91rm9200_mc.h arch/arm/mach-at91/include/mach/at91sam9260.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9260.h arch/arm/mach-at91/include/mach/at91sam9260_matrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h arch/arm/mach-at91/include/mach/at91sam9261.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9261.h arch/arm/mach-at91/include/mach/at91sam9261_matrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h arch/arm/mach-at91/include/mach/at91sam9263.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9263.h arch/arm/mach-at91/include/mach/at91sam9263_matrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9263_matrix.h arch/arm/mach-at91/include/mach/at91sam9_sdramc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h arch/arm/mach-at91/include/mach/at91sam9_smc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9_smc.h arch/arm/mach-at91/include/mach/at91sam9rl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9rl.h arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91sam9rl_matrix.h arch/arm/mach-at91/include/mach/at91x40.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/at91x40.h arch/arm/mach-at91/include/mach/board.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/board.h arch/arm/mach-at91/include/mach/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/cpu.h arch/arm/mach-at91/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/debug-macro.S arch/arm/mach-at91/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/dma.h arch/arm/mach-at91/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/entry-macro.S arch/arm/mach-at91/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/gpio.h arch/arm/mach-at91/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/hardware.h arch/arm/mach-at91/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/io.h arch/arm/mach-at91/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/irqs.h arch/arm/mach-at91/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/memory.h arch/arm/mach-at91/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/system.h arch/arm/mach-at91/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/timex.h arch/arm/mach-at91/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/uncompress.h arch/arm/mach-at91/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/include/mach/vmalloc.h drivers/media/video/gspca/spca561.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca561.c drivers/media/video/gspca/spca508.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca508.c drivers/media/video/gspca/spca506.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca506.c arch/sh/boards/board-magicpanelr2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/board-magicpanelr2.c arch/sh/boards/board-ap325rxa.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/board-ap325rxa.c arch/sh/boards/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/Makefile arch/sh/boards/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/Kconfig arch/sh/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/Kbuild arch/arm/mach-clps711x/include/mach/autcpu12.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/autcpu12.h arch/arm/mach-clps711x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/debug-macro.S arch/arm/mach-clps711x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/dma.h arch/arm/mach-clps711x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/entry-macro.S arch/arm/mach-clps711x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/hardware.h arch/arm/mach-clps711x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/io.h arch/arm/mach-clps711x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/irqs.h arch/arm/mach-clps711x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/memory.h arch/arm/mach-clps711x/include/mach/syspld.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/syspld.h arch/arm/mach-clps711x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/system.h arch/arm/mach-clps711x/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/time.h arch/arm/mach-clps711x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/timex.h arch/arm/mach-clps711x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/uncompress.h arch/arm/mach-clps711x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/include/mach/vmalloc.h kernel/trace/trace_sched_switch.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_sched_switch.c kernel/trace/trace_sched_wakeup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_sched_wakeup.c kernel/trace/trace_selftest.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_selftest.c kernel/trace/trace_selftest_dynamic.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_selftest_dynamic.c kernel/trace/trace_sysprof.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/trace/trace_sysprof.c arch/sh/include/asm/adc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/adc.h arch/arm/mach-clps7500/include/mach/acornfb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/acornfb.h arch/arm/mach-clps7500/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/debug-macro.S arch/arm/mach-clps7500/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/dma.h arch/arm/mach-clps7500/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/entry-macro.S arch/arm/mach-clps7500/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/hardware.h arch/arm/mach-clps7500/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/io.h arch/arm/mach-clps7500/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/irq.h arch/arm/mach-clps7500/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/irqs.h arch/arm/mach-clps7500/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/memory.h arch/arm/mach-clps7500/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/system.h arch/arm/mach-clps7500/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/timex.h arch/arm/mach-clps7500/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/uncompress.h arch/arm/mach-clps7500/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/include/mach/vmalloc.h drivers/media/video/gspca/spca505.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca505.c drivers/media/video/gspca/spca501.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca501.c drivers/media/video/gspca/spca500.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/spca500.c arch/arm/mach-davinci/include/mach/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/clock.h arch/arm/mach-davinci/include/mach/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/common.h arch/arm/mach-davinci/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/debug-macro.S arch/arm/mach-davinci/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/dma.h arch/arm/mach-davinci/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/entry-macro.S arch/arm/mach-davinci/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/gpio.h arch/arm/mach-davinci/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/hardware.h arch/arm/mach-davinci/include/mach/i2c.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/i2c.h arch/arm/mach-davinci/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/io.h arch/arm/mach-davinci/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/irqs.h arch/arm/mach-davinci/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/memory.h arch/arm/mach-davinci/include/mach/mux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/mux.h arch/arm/mach-davinci/include/mach/psc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/psc.h arch/arm/mach-davinci/include/mach/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/serial.h arch/arm/mach-davinci/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/system.h arch/arm/mach-davinci/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/timex.h arch/arm/mach-davinci/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/uncompress.h arch/arm/mach-davinci/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/include/mach/vmalloc.h drivers/media/video/gspca/sonixj.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/sonixj.c drivers/media/video/gspca/sonixb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/sonixb.c drivers/media/video/gspca/pac_common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/pac_common.h drivers/media/video/gspca/pac7311.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/pac7311.c drivers/media/video/gspca/pac207.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/pac207.c drivers/media/video/gspca/ov519.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/ov519.c arch/sh/include/asm/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/addrspace.h arch/arm/mach-ebsa110/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/debug-macro.S arch/arm/mach-ebsa110/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/dma.h arch/arm/mach-ebsa110/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/entry-macro.S arch/arm/mach-ebsa110/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/hardware.h arch/arm/mach-ebsa110/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/io.h arch/arm/mach-ebsa110/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/irqs.h arch/arm/mach-ebsa110/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/memory.h arch/arm/mach-ebsa110/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/system.h arch/arm/mach-ebsa110/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/timex.h arch/arm/mach-ebsa110/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/uncompress.h arch/arm/mach-ebsa110/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/include/mach/vmalloc.h arch/sh/include/asm/atomic-grb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/atomic-grb.h arch/sh/include/asm/atomic-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/atomic-irq.h drivers/media/video/gspca/mars.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/mars.c drivers/media/video/gspca/jpeg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/jpeg.h drivers/media/video/gspca/gspca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/gspca.h drivers/media/video/gspca/gspca.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/gspca.c drivers/media/video/gspca/etoms.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/etoms.c drivers/media/video/gspca/conex.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/conex.c drivers/media/video/gspca/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/Makefile drivers/media/video/gspca/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/gspca/Kconfig arch/x86/kernel/cpu/centaur_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/centaur_64.c arch/x86/kernel/cpu/bugs_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/bugs_64.c drivers/net/atl1e/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/Makefile arch/arm/mach-ep93xx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/debug-macro.S arch/arm/mach-ep93xx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/dma.h arch/arm/mach-ep93xx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/entry-macro.S arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h arch/arm/mach-ep93xx/include/mach/gesbc9312.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/gesbc9312.h arch/arm/mach-ep93xx/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/gpio.h arch/arm/mach-ep93xx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/hardware.h arch/arm/mach-ep93xx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/io.h arch/arm/mach-ep93xx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/irqs.h arch/arm/mach-ep93xx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/memory.h arch/arm/mach-ep93xx/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/platform.h arch/arm/mach-ep93xx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/system.h arch/arm/mach-ep93xx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/timex.h arch/arm/mach-ep93xx/include/mach/ts72xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/ts72xx.h arch/arm/mach-ep93xx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/uncompress.h arch/arm/mach-ep93xx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/include/mach/vmalloc.h drivers/net/atl1e/atl1e.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e.h drivers/net/atl1e/atl1e_ethtool.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e_ethtool.c arch/sh/include/asm/atomic-llsc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/atomic-llsc.h arch/s390/kernel/mem_detect.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/mem_detect.c drivers/net/atl1e/atl1e_hw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e_hw.c drivers/net/atl1e/atl1e_hw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e_hw.h arch/sh/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/atomic.h arch/arm/mach-footbridge/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/debug-macro.S arch/arm/mach-footbridge/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/dma.h arch/arm/mach-footbridge/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/entry-macro.S arch/arm/mach-footbridge/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/hardware.h arch/arm/mach-footbridge/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/io.h arch/arm/mach-footbridge/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/irqs.h arch/arm/mach-footbridge/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/memory.h arch/arm/mach-footbridge/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/system.h arch/arm/mach-footbridge/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/timex.h arch/arm/mach-footbridge/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/uncompress.h arch/arm/mach-footbridge/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/include/mach/vmalloc.h arch/sh/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/auxvec.h arch/sh/include/asm/bitops-grb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/bitops-grb.h drivers/net/atl1e/atl1e_main.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e_main.c drivers/net/atl1e/atl1e_param.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atl1e/atl1e_param.c arch/x86/kernel/cpu/amd_64.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/amd_64.c arch/x86/kernel/bios_uv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/bios_uv.c drivers/scsi/sd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sd.h drivers/net/bnx2x_link.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_link.c arch/arm/mach-h720x/include/mach/boards.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/boards.h arch/arm/mach-h720x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/debug-macro.S arch/arm/mach-h720x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/dma.h arch/arm/mach-h720x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/entry-macro.S arch/arm/mach-h720x/include/mach/h7201-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/h7201-regs.h arch/arm/mach-h720x/include/mach/h7202-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/h7202-regs.h arch/arm/mach-h720x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/hardware.h arch/arm/mach-h720x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/io.h arch/arm/mach-h720x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/irqs.h arch/arm/mach-h720x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/memory.h arch/arm/mach-h720x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/system.h arch/arm/mach-h720x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/timex.h arch/arm/mach-h720x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/uncompress.h arch/arm/mach-h720x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/include/mach/vmalloc.h drivers/net/bnx2x_link.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_link.h arch/arm/mach-imx/clock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/clock.c drivers/net/bnx2x_main.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_main.c drivers/scsi/sd_dif.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sd_dif.c arch/x86/kernel/amd_iommu_init.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/amd_iommu_init.c arch/arm/mach-imx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/debug-macro.S arch/arm/mach-imx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/dma.h arch/arm/mach-imx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/entry-macro.S arch/arm/mach-imx/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/gpio.h arch/arm/mach-imx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/hardware.h arch/arm/mach-imx/include/mach/imx-dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/imx-dma.h arch/arm/mach-imx/include/mach/imx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/imx-regs.h arch/arm/mach-imx/include/mach/imx-uart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/imx-uart.h arch/arm/mach-imx/include/mach/imxfb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/imxfb.h arch/arm/mach-imx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/io.h arch/arm/mach-imx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/irqs.h arch/arm/mach-imx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/memory.h arch/arm/mach-imx/include/mach/mmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/mmc.h arch/arm/mach-imx/include/mach/mx1ads.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/mx1ads.h arch/arm/mach-imx/include/mach/spi_imx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/spi_imx.h arch/arm/mach-imx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/system.h arch/arm/mach-imx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/timex.h arch/arm/mach-imx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/uncompress.h arch/arm/mach-imx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/include/mach/vmalloc.h arch/x86/kernel/amd_iommu.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/amd_iommu.c arch/x86/kdb/kdba_support.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kdb/kdba_support.c include/scsi/scsi_dh.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_dh.h include/sound/ad1843.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/ad1843.h drivers/usb/storage/sierra_ms.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sierra_ms.c arch/s390/include/asm/zcrypt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/zcrypt.h arch/s390/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/xor.h arch/s390/include/asm/vtoc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/vtoc.h arch/arm/mach-integrator/include/mach/bits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/bits.h arch/arm/mach-integrator/include/mach/cm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/cm.h arch/arm/mach-integrator/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/debug-macro.S arch/arm/mach-integrator/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/dma.h arch/arm/mach-integrator/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/entry-macro.S arch/arm/mach-integrator/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/hardware.h arch/arm/mach-integrator/include/mach/impd1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/impd1.h arch/arm/mach-integrator/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/io.h arch/arm/mach-integrator/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/irqs.h arch/arm/mach-integrator/include/mach/lm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/lm.h arch/arm/mach-integrator/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/memory.h arch/arm/mach-integrator/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/platform.h arch/arm/mach-integrator/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/system.h arch/arm/mach-integrator/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/timex.h arch/arm/mach-integrator/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/uncompress.h arch/arm/mach-integrator/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/include/mach/vmalloc.h arch/s390/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/user.h include/video/ili9320.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/ili9320.h arch/s390/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/unistd.h arch/s390/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/unaligned.h arch/s390/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ucontext.h arch/s390/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/uaccess.h arch/arm/mach-iop13xx/include/mach/adma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/adma.h arch/arm/mach-iop13xx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/debug-macro.S arch/arm/mach-iop13xx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/dma.h arch/arm/mach-iop13xx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/entry-macro.S arch/arm/mach-iop13xx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/hardware.h arch/arm/mach-iop13xx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/io.h arch/arm/mach-iop13xx/include/mach/iop13xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/iop13xx.h arch/arm/mach-iop13xx/include/mach/iq81340.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/iq81340.h arch/arm/mach-iop13xx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/irqs.h arch/arm/mach-iop13xx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/memory.h arch/arm/mach-iop13xx/include/mach/msi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/msi.h arch/arm/mach-iop13xx/include/mach/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/pci.h arch/arm/mach-iop13xx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/system.h arch/arm/mach-iop13xx/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/time.h arch/arm/mach-iop13xx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/timex.h arch/arm/mach-iop13xx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/uncompress.h arch/arm/mach-iop13xx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/include/mach/vmalloc.h include/video/platform_lcd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/platform_lcd.h arch/s390/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/types.h arch/s390/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/topology.h arch/s390/include/asm/todclk.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/todclk.h arch/s390/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/tlbflush.h arch/s390/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/tlb.h arch/s390/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/timex.h arch/s390/include/asm/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/timer.h arch/arm/mach-iop32x/include/mach/adma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/adma.h arch/arm/mach-iop32x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/debug-macro.S arch/arm/mach-iop32x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/dma.h arch/arm/mach-iop32x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/entry-macro.S arch/arm/mach-iop32x/include/mach/glantank.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/glantank.h arch/arm/mach-iop32x/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/gpio.h arch/arm/mach-iop32x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/hardware.h arch/arm/mach-iop32x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/io.h arch/arm/mach-iop32x/include/mach/iop32x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/iop32x.h arch/arm/mach-iop32x/include/mach/iq31244.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/iq31244.h arch/arm/mach-iop32x/include/mach/iq80321.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/iq80321.h arch/arm/mach-iop32x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/irqs.h arch/arm/mach-iop32x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/memory.h arch/arm/mach-iop32x/include/mach/n2100.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/n2100.h arch/arm/mach-iop32x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/system.h arch/arm/mach-iop32x/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/time.h arch/arm/mach-iop32x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/timex.h arch/arm/mach-iop32x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/uncompress.h arch/arm/mach-iop32x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/include/mach/vmalloc.h arch/s390/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/thread_info.h arch/s390/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/termios.h arch/s390/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/termbits.h arch/s390/include/asm/tape390.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/tape390.h arch/arm/mach-iop33x/include/mach/adma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/adma.h arch/arm/mach-iop33x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/debug-macro.S arch/arm/mach-iop33x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/dma.h arch/arm/mach-iop33x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/entry-macro.S arch/arm/mach-iop33x/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/gpio.h arch/arm/mach-iop33x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/hardware.h arch/arm/mach-iop33x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/io.h arch/arm/mach-iop33x/include/mach/iop33x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/iop33x.h arch/arm/mach-iop33x/include/mach/iq80331.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/iq80331.h arch/arm/mach-iop33x/include/mach/iq80332.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/iq80332.h arch/arm/mach-iop33x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/irqs.h arch/arm/mach-iop33x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/memory.h arch/arm/mach-iop33x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/system.h arch/arm/mach-iop33x/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/time.h arch/arm/mach-iop33x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/timex.h arch/arm/mach-iop33x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/uncompress.h arch/arm/mach-iop33x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/include/mach/vmalloc.h arch/s390/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/system.h arch/s390/include/asm/sysinfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sysinfo.h arch/s390/include/asm/suspend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/suspend.h arch/s390/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/string.h arch/s390/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/statfs.h arch/s390/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/stat.h arch/arm/mach-ixp2000/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/debug-macro.S arch/arm/mach-ixp2000/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/dma.h arch/arm/mach-ixp2000/include/mach/enp2611.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/enp2611.h arch/arm/mach-ixp2000/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/entry-macro.S arch/arm/mach-ixp2000/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/gpio.h arch/arm/mach-ixp2000/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/hardware.h arch/arm/mach-ixp2000/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/io.h arch/arm/mach-ixp2000/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/irqs.h arch/arm/mach-ixp2000/include/mach/ixdp2x00.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/ixdp2x00.h arch/arm/mach-ixp2000/include/mach/ixdp2x01.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/ixdp2x01.h arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h arch/arm/mach-ixp2000/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/memory.h arch/arm/mach-ixp2000/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/platform.h arch/arm/mach-ixp2000/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/system.h arch/arm/mach-ixp2000/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/timex.h arch/arm/mach-ixp2000/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/uncompress.h arch/arm/mach-ixp2000/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/include/mach/vmalloc.h arch/s390/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/spinlock_types.h arch/s390/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/spinlock.h arch/s390/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sparsemem.h arch/s390/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sockios.h arch/s390/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/socket.h arch/s390/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/smp.h arch/s390/include/asm/sigp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sigp.h arch/arm/mach-ixp23xx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/debug-macro.S arch/arm/mach-ixp23xx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/dma.h arch/arm/mach-ixp23xx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/entry-macro.S arch/arm/mach-ixp23xx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/hardware.h arch/arm/mach-ixp23xx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/io.h arch/arm/mach-ixp23xx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/irqs.h arch/arm/mach-ixp23xx/include/mach/ixdp2351.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/ixdp2351.h arch/arm/mach-ixp23xx/include/mach/ixp23xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/ixp23xx.h arch/arm/mach-ixp23xx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/memory.h arch/arm/mach-ixp23xx/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/platform.h arch/arm/mach-ixp23xx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/system.h arch/arm/mach-ixp23xx/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/time.h arch/arm/mach-ixp23xx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/timex.h arch/arm/mach-ixp23xx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/uncompress.h arch/arm/mach-ixp23xx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/include/mach/vmalloc.h arch/s390/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/signal.h arch/s390/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/siginfo.h arch/s390/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sigcontext.h arch/s390/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/shmparam.h arch/s390/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/shmbuf.h arch/s390/include/asm/sfp-util.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sfp-util.h arch/s390/include/asm/sfp-machine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sfp-machine.h arch/s390/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/setup.h arch/s390/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sembuf.h arch/s390/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/segment.h arch/s390/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sections.h arch/s390/include/asm/sclp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/sclp.h arch/arm/mach-ixp4xx/fsg-pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/fsg-pci.c arch/arm/mach-ixp4xx/fsg-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/fsg-setup.c arch/s390/include/asm/schid.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/schid.h arch/s390/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/scatterlist.h drivers/media/dvb/siano/smsusb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/smsusb.c drivers/media/dvb/siano/smsdvb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/smsdvb.c arch/arm/mach-ixp4xx/include/mach/avila.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/avila.h arch/arm/mach-ixp4xx/include/mach/coyote.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/coyote.h arch/arm/mach-ixp4xx/include/mach/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/cpu.h arch/arm/mach-ixp4xx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/debug-macro.S arch/arm/mach-ixp4xx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/dma.h arch/arm/mach-ixp4xx/include/mach/dsmg600.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/dsmg600.h arch/arm/mach-ixp4xx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/entry-macro.S arch/arm/mach-ixp4xx/include/mach/fsg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/fsg.h arch/arm/mach-ixp4xx/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/gpio.h arch/arm/mach-ixp4xx/include/mach/gtwx5715.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/gtwx5715.h arch/arm/mach-ixp4xx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/hardware.h arch/arm/mach-ixp4xx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/io.h arch/arm/mach-ixp4xx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/irqs.h arch/arm/mach-ixp4xx/include/mach/ixdp425.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/ixdp425.h arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h arch/arm/mach-ixp4xx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/memory.h arch/arm/mach-ixp4xx/include/mach/nas100d.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/nas100d.h arch/arm/mach-ixp4xx/include/mach/npe.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/npe.h arch/arm/mach-ixp4xx/include/mach/nslu2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/nslu2.h arch/arm/mach-ixp4xx/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/platform.h arch/arm/mach-ixp4xx/include/mach/prpmc1100.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/prpmc1100.h arch/arm/mach-ixp4xx/include/mach/qmgr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/qmgr.h arch/arm/mach-ixp4xx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/system.h arch/arm/mach-ixp4xx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/timex.h arch/arm/mach-ixp4xx/include/mach/udc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/udc.h arch/arm/mach-ixp4xx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/uncompress.h arch/arm/mach-ixp4xx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/include/mach/vmalloc.h drivers/media/dvb/siano/smscoreapi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/smscoreapi.h drivers/media/dvb/siano/smscoreapi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/smscoreapi.c drivers/media/dvb/siano/sms-cards.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/sms-cards.h drivers/media/dvb/siano/sms-cards.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/sms-cards.c drivers/media/dvb/siano/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/Makefile drivers/media/dvb/siano/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/siano/Kconfig arch/s390/include/asm/s390_rdev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/s390_rdev.h drivers/media/dvb/frontends/z0194a.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/z0194a.h arch/s390/include/asm/s390_ext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/s390_ext.h arch/arm/mach-kirkwood/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/Kconfig arch/arm/mach-kirkwood/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/Makefile arch/arm/mach-kirkwood/Makefile.boot - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/Makefile.boot arch/arm/mach-kirkwood/addr-map.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/addr-map.c arch/arm/mach-kirkwood/common.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/common.c arch/arm/mach-kirkwood/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/common.h arch/arm/mach-kirkwood/db88f6281-bp-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/db88f6281-bp-setup.c arch/arm/mach-kirkwood/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/debug-macro.S arch/arm/mach-kirkwood/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/dma.h arch/arm/mach-kirkwood/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/entry-macro.S arch/arm/mach-kirkwood/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/hardware.h arch/arm/mach-kirkwood/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/io.h arch/arm/mach-kirkwood/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/irqs.h arch/arm/mach-kirkwood/include/mach/kirkwood.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/kirkwood.h arch/arm/mach-kirkwood/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/memory.h arch/arm/mach-kirkwood/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/system.h arch/arm/mach-kirkwood/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/timex.h arch/arm/mach-kirkwood/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/uncompress.h arch/arm/mach-kirkwood/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/include/mach/vmalloc.h arch/arm/mach-kirkwood/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/irq.c arch/arm/mach-kirkwood/pcie.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/pcie.c arch/arm/mach-kirkwood/rd88f6192-nas-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c arch/arm/mach-kirkwood/rd88f6281-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-kirkwood/rd88f6281-setup.c arch/s390/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/rwsem.h arch/s390/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/resource.h arch/s390/include/asm/reset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/reset.h arch/s390/include/asm/qeth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/qeth.h arch/arm/mach-ks8695/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/debug-macro.S arch/arm/mach-ks8695/include/mach/devices.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/devices.h arch/arm/mach-ks8695/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/dma.h arch/arm/mach-ks8695/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/entry-macro.S arch/arm/mach-ks8695/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/gpio.h arch/arm/mach-ks8695/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/hardware.h arch/arm/mach-ks8695/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/io.h arch/arm/mach-ks8695/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/irqs.h arch/arm/mach-ks8695/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/memory.h arch/arm/mach-ks8695/include/mach/regs-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-gpio.h arch/arm/mach-ks8695/include/mach/regs-hpna.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-hpna.h arch/arm/mach-ks8695/include/mach/regs-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-irq.h arch/arm/mach-ks8695/include/mach/regs-lan.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-lan.h arch/arm/mach-ks8695/include/mach/regs-mem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-mem.h arch/arm/mach-ks8695/include/mach/regs-misc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-misc.h arch/arm/mach-ks8695/include/mach/regs-pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-pci.h arch/arm/mach-ks8695/include/mach/regs-switch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-switch.h arch/arm/mach-ks8695/include/mach/regs-sys.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-sys.h arch/arm/mach-ks8695/include/mach/regs-timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-timer.h arch/arm/mach-ks8695/include/mach/regs-uart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-uart.h arch/arm/mach-ks8695/include/mach/regs-wan.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/regs-wan.h arch/arm/mach-ks8695/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/system.h arch/arm/mach-ks8695/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/timex.h arch/arm/mach-ks8695/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/uncompress.h arch/arm/mach-ks8695/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/include/mach/vmalloc.h arch/s390/include/asm/qdio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/qdio.h arch/s390/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ptrace.h arch/s390/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/processor.h arch/s390/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/posix_types.h arch/s390/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/poll.h arch/arm/mach-l7200/include/mach/aux_reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/aux_reg.h arch/arm/mach-l7200/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/debug-macro.S arch/arm/mach-l7200/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/dma.h arch/arm/mach-l7200/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/entry-macro.S arch/arm/mach-l7200/include/mach/gp_timers.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/gp_timers.h arch/arm/mach-l7200/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/gpio.h arch/arm/mach-l7200/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/hardware.h arch/arm/mach-l7200/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/io.h arch/arm/mach-l7200/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/irqs.h arch/arm/mach-l7200/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/memory.h arch/arm/mach-l7200/include/mach/pmpcon.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/pmpcon.h arch/arm/mach-l7200/include/mach/pmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/pmu.h arch/arm/mach-l7200/include/mach/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/serial.h arch/arm/mach-l7200/include/mach/serial_l7200.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/serial_l7200.h arch/arm/mach-l7200/include/mach/sib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/sib.h arch/arm/mach-l7200/include/mach/sys-clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/sys-clock.h arch/arm/mach-l7200/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/system.h arch/arm/mach-l7200/include/mach/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/time.h arch/arm/mach-l7200/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/timex.h arch/arm/mach-l7200/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/uncompress.h arch/arm/mach-l7200/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/include/mach/vmalloc.h drivers/media/dvb/frontends/drx397xD_fw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/drx397xD_fw.h drivers/media/dvb/frontends/drx397xD.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/drx397xD.h drivers/media/dvb/frontends/drx397xD.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/drx397xD.c arch/s390/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/pgtable.h arch/arm/mach-lh7a40x/include/mach/clocks.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/clocks.h arch/arm/mach-lh7a40x/include/mach/constants.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/constants.h arch/arm/mach-lh7a40x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/debug-macro.S arch/arm/mach-lh7a40x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/dma.h arch/arm/mach-lh7a40x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/entry-macro.S arch/arm/mach-lh7a40x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/hardware.h arch/arm/mach-lh7a40x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/io.h arch/arm/mach-lh7a40x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/irqs.h arch/arm/mach-lh7a40x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/memory.h arch/arm/mach-lh7a40x/include/mach/registers.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/registers.h arch/arm/mach-lh7a40x/include/mach/ssp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/ssp.h arch/arm/mach-lh7a40x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/system.h arch/arm/mach-lh7a40x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/timex.h arch/arm/mach-lh7a40x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/uncompress.h arch/arm/mach-lh7a40x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/include/mach/vmalloc.h include/asm-generic/syscall.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/syscall.h include/asm-x86/amd_iommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/amd_iommu.h include/asm-x86/amd_iommu_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/amd_iommu_types.h arch/s390/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/pgalloc.h arch/s390/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/percpu.h include/asm-x86/ftrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/ftrace.h arch/arm/mach-loki/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/Kconfig arch/arm/mach-loki/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/Makefile arch/arm/mach-loki/Makefile.boot - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/Makefile.boot arch/arm/mach-loki/addr-map.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/addr-map.c arch/arm/mach-loki/common.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/common.c arch/arm/mach-loki/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/common.h arch/arm/mach-loki/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/debug-macro.S arch/arm/mach-loki/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/dma.h arch/arm/mach-loki/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/entry-macro.S arch/arm/mach-loki/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/hardware.h arch/arm/mach-loki/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/io.h arch/arm/mach-loki/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/irqs.h arch/arm/mach-loki/include/mach/loki.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/loki.h arch/arm/mach-loki/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/memory.h arch/arm/mach-loki/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/system.h arch/arm/mach-loki/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/timex.h arch/arm/mach-loki/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/uncompress.h arch/arm/mach-loki/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/include/mach/vmalloc.h arch/arm/mach-loki/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/irq.c arch/arm/mach-loki/lb88rc8480-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-loki/lb88rc8480-setup.c include/asm-x86/irq_vectors.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/irq_vectors.h include/asm-generic/dma-coherent.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/dma-coherent.h drivers/media/dvb/dvb-usb/dw2102.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/dw2102.h drivers/media/dvb/dvb-usb/dw2102.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/dw2102.c arch/arm/mach-msm/include/mach/board.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/board.h arch/arm/mach-msm/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/debug-macro.S arch/arm/mach-msm/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/dma.h arch/arm/mach-msm/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/entry-macro.S arch/arm/mach-msm/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/hardware.h arch/arm/mach-msm/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/io.h arch/arm/mach-msm/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/irqs.h arch/arm/mach-msm/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/memory.h arch/arm/mach-msm/include/mach/msm_iomap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/msm_iomap.h arch/arm/mach-msm/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/system.h arch/arm/mach-msm/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/timex.h arch/arm/mach-msm/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/uncompress.h arch/arm/mach-msm/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/include/mach/vmalloc.h arch/s390/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/pci.h arch/s390/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/param.h arch/s390/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/page.h arch/arm/mach-mv78xx0/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/Kconfig arch/arm/mach-mv78xx0/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/Makefile arch/arm/mach-mv78xx0/Makefile.boot - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/Makefile.boot arch/arm/mach-mv78xx0/addr-map.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/addr-map.c arch/arm/mach-mv78xx0/common.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/common.c arch/arm/mach-mv78xx0/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/common.h arch/arm/mach-mv78xx0/db78x00-bp-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/db78x00-bp-setup.c arch/arm/mach-mv78xx0/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/debug-macro.S arch/arm/mach-mv78xx0/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/dma.h arch/arm/mach-mv78xx0/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/entry-macro.S arch/arm/mach-mv78xx0/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/hardware.h arch/arm/mach-mv78xx0/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/io.h arch/arm/mach-mv78xx0/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/irqs.h arch/arm/mach-mv78xx0/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/memory.h arch/arm/mach-mv78xx0/include/mach/mv78xx0.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/mv78xx0.h arch/arm/mach-mv78xx0/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/system.h arch/arm/mach-mv78xx0/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/timex.h arch/arm/mach-mv78xx0/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/uncompress.h arch/arm/mach-mv78xx0/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/include/mach/vmalloc.h arch/arm/mach-mv78xx0/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/irq.c arch/arm/mach-mv78xx0/pcie.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mv78xx0/pcie.c arch/arm/mach-mx2/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/Kconfig arch/arm/mach-mx2/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/Makefile arch/arm/mach-mx2/Makefile.boot - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/Makefile.boot arch/arm/mach-mx2/clock_imx27.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/clock_imx27.c arch/arm/mach-mx2/cpu_imx27.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/cpu_imx27.c arch/arm/mach-mx2/crm_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/crm_regs.h arch/arm/mach-mx2/devices.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/devices.c arch/arm/mach-mx2/generic.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/generic.c arch/arm/mach-mx2/mx27ads.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/mx27ads.c arch/arm/mach-mx2/pcm038.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/pcm038.c arch/arm/mach-mx2/pcm970-baseboard.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/pcm970-baseboard.c arch/arm/mach-mx2/serial.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/serial.c arch/arm/mach-mx2/system.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx2/system.c arch/s390/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/mutex.h include/asm-x86/mmconfig.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mmconfig.h arch/arm/mach-mx3/clock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/clock.c arch/arm/mach-mx3/crm_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/crm_regs.h arch/arm/mach-mx3/devices.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/devices.c arch/arm/mach-mx3/iomux.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/iomux.c include/asm-x86/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/traps.h drivers/media/dvb/dvb-usb/anysee.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/anysee.h arch/arm/mach-mx3/mx31lite.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/mx31lite.c arch/arm/mach-mx3/pcm037.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/pcm037.c drivers/media/dvb/dvb-usb/anysee.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/anysee.c arch/s390/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/msgbuf.h arch/s390/include/asm/monwriter.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/monwriter.h arch/arm/mach-netx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/debug-macro.S arch/arm/mach-netx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/dma.h arch/arm/mach-netx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/entry-macro.S arch/arm/mach-netx/include/mach/eth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/eth.h arch/arm/mach-netx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/hardware.h arch/arm/mach-netx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/io.h arch/arm/mach-netx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/irqs.h arch/arm/mach-netx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/memory.h arch/arm/mach-netx/include/mach/netx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/netx-regs.h arch/arm/mach-netx/include/mach/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/param.h arch/arm/mach-netx/include/mach/pfifo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/pfifo.h arch/arm/mach-netx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/system.h arch/arm/mach-netx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/timex.h arch/arm/mach-netx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/uncompress.h arch/arm/mach-netx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/vmalloc.h arch/arm/mach-netx/include/mach/xc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/include/mach/xc.h arch/s390/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/module.h arch/s390/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/mmu_context.h arch/s390/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/mmu.h arch/s390/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/mman.h arch/s390/include/asm/mathemu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/mathemu.h arch/s390/include/asm/lowcore.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/lowcore.h arch/s390/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/local.h drivers/serial/s3c2400.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/s3c2400.c drivers/serial/s3c2412.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/s3c2412.c arch/s390/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/linkage.h arch/arm/mach-ns9xxx/include/mach/board.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/board.h arch/arm/mach-ns9xxx/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/debug-macro.S arch/arm/mach-ns9xxx/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/dma.h arch/arm/mach-ns9xxx/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/entry-macro.S arch/arm/mach-ns9xxx/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/gpio.h arch/arm/mach-ns9xxx/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/hardware.h arch/arm/mach-ns9xxx/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/io.h arch/arm/mach-ns9xxx/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/irqs.h arch/arm/mach-ns9xxx/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/memory.h arch/arm/mach-ns9xxx/include/mach/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/module.h arch/arm/mach-ns9xxx/include/mach/processor-ns9360.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/processor-ns9360.h arch/arm/mach-ns9xxx/include/mach/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/processor.h arch/arm/mach-ns9xxx/include/mach/regs-bbu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/regs-bbu.h arch/arm/mach-ns9xxx/include/mach/regs-board-a9m9750dev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/regs-board-a9m9750dev.h arch/arm/mach-ns9xxx/include/mach/regs-mem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/regs-mem.h arch/arm/mach-ns9xxx/include/mach/regs-sys-common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/regs-sys-common.h arch/arm/mach-ns9xxx/include/mach/regs-sys-ns9360.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/regs-sys-ns9360.h arch/arm/mach-ns9xxx/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/system.h arch/arm/mach-ns9xxx/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/timex.h arch/arm/mach-ns9xxx/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/uncompress.h arch/arm/mach-ns9xxx/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/include/mach/vmalloc.h arch/s390/include/asm/kvm_virtio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kvm_virtio.h drivers/serial/s3c2440.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/s3c2440.c arch/s390/include/asm/kvm_para.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kvm_para.h arch/s390/include/asm/kvm_host.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kvm_host.h arch/s390/include/asm/kvm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kvm.h scripts/headers_install.pl - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/headers_install.pl include/asm-x86/uv/bios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uv/bios.h include/asm-x86/uv/uv_bau.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uv/uv_bau.h include/asm-x86/visws/cobalt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/visws/cobalt.h include/asm-x86/visws/lithium.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/visws/lithium.h scripts/headers_check.pl - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/headers_check.pl include/asm-x86/visws/piix4.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/visws/piix4.h scripts/headers.sh - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/headers.sh include/asm-x86/visws/sgivw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/visws/sgivw.h include/asm-x86/xen/interface_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/interface_32.h drivers/media/common/tuners/mxl5007t.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mxl5007t.h drivers/media/common/tuners/mxl5007t.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mxl5007t.c include/asm-x86/xen/interface_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/interface_64.h arch/s390/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kprobes.h drivers/serial/samsung.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/samsung.c drivers/serial/samsung.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/samsung.h arch/s390/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kmap_types.h arch/s390/include/asm/kexec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kexec.h arch/s390/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/kdebug.h arch/s390/include/asm/itcw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/itcw.h arch/s390/include/asm/isc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/isc.h arch/s390/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/irqflags.h arch/s390/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/irq_regs.h arch/s390/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/irq.h arch/s390/include/asm/ipl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ipl.h arch/s390/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ipcbuf.h arch/s390/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ioctls.h arch/s390/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ioctl.h include/crypto/hash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/crypto/hash.h arch/arm/mach-omap1/mcbsp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/mcbsp.c include/crypto/internal/hash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/crypto/internal/hash.h arch/s390/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/io.h arch/s390/include/asm/idals.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/idals.h arch/s390/include/asm/hugetlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/hugetlb.h arch/arm/mach-omap1/sram.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/sram.S arch/s390/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/hardirq.h arch/s390/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/futex.h arch/s390/include/asm/fcx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/fcx.h scripts/diffconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/diffconfig arch/s390/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/fcntl.h arch/s390/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/fb.h arch/s390/include/asm/extmem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/extmem.h arch/s390/include/asm/etr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/etr.h arch/s390/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/errno.h arch/s390/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/emergency-restart.h arch/s390/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/elf.h arch/s390/include/asm/ebcdic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ebcdic.h arch/s390/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/dma.h scripts/Makefile.fwinst - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/Makefile.fwinst arch/s390/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/div64.h arch/s390/include/asm/diag.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/diag.h arch/s390/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/device.h include/drm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/Kbuild include/drm/drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm.h include/drm/drmP.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drmP.h include/drm/drm_core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_core.h include/drm/drm_hashtab.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_hashtab.h arch/arm/mach-omap2/mcbsp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/mcbsp.c include/drm/drm_memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_memory.h include/drm/drm_memory_debug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_memory_debug.h arch/s390/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/delay.h net/xfrm/xfrm_ipcomp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/xfrm_ipcomp.c arch/s390/include/asm/debug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/debug.h drivers/leds/leds-pca955x.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-pca955x.c drivers/leds/leds-pca9532.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-pca9532.c arch/s390/include/asm/dasd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/dasd.h include/drm/drm_os_linux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_os_linux.h include/drm/drm_pciids.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_pciids.h arch/arm/mach-omap2/sram242x.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/sram242x.S arch/arm/mach-omap2/sram243x.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/sram243x.S drivers/spi/orion_spi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/orion_spi.c include/drm/drm_sarea.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_sarea.h include/drm/drm_sman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/drm_sman.h arch/s390/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/current.h arch/s390/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cputime.h arch/s390/include/asm/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cpu.h drivers/pcmcia/bfin_cf_pcmcia.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/bfin_cf_pcmcia.c drivers/isdn/mISDN/timerdev.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/timerdev.c drivers/isdn/mISDN/tei.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/tei.c drivers/isdn/mISDN/stack.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/stack.c arch/arm/mach-orion5x/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/debug-macro.S arch/arm/mach-orion5x/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/dma.h arch/arm/mach-orion5x/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/entry-macro.S arch/arm/mach-orion5x/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/gpio.h arch/arm/mach-orion5x/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/hardware.h arch/arm/mach-orion5x/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/io.h arch/arm/mach-orion5x/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/irqs.h arch/arm/mach-orion5x/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/memory.h arch/arm/mach-orion5x/include/mach/orion5x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/orion5x.h arch/arm/mach-orion5x/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/system.h arch/arm/mach-orion5x/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/timex.h arch/arm/mach-orion5x/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/uncompress.h arch/arm/mach-orion5x/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/include/mach/vmalloc.h drivers/isdn/mISDN/socket.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/socket.c drivers/isdn/mISDN/layer2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/layer2.h arch/arm/mach-orion5x/mpp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/mpp.c arch/arm/mach-orion5x/mpp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/mpp.h arch/arm/mach-orion5x/mss2-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/mss2-setup.c arch/arm/mach-orion5x/mv2120-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/mv2120-setup.c include/asm-mips/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/kgdb.h arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c arch/arm/mach-orion5x/rd88f5181l-ge-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c drivers/isdn/mISDN/layer2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/layer2.c include/asm-mips/mach-malta/cpu-feature-overrides.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/cpu-feature-overrides.h arch/arm/mach-orion5x/ts409-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/ts409-setup.c arch/arm/mach-orion5x/ts78xx-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/ts78xx-setup.c arch/arm/mach-orion5x/tsx09-common.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/tsx09-common.c arch/arm/mach-orion5x/tsx09-common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/tsx09-common.h arch/arm/mach-orion5x/wnr854t-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/wnr854t-setup.c arch/arm/mach-orion5x/wrt350n-v2-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/wrt350n-v2-setup.c include/asm-mips/mach-malta/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/irq.h include/asm-mips/mach-malta/kernel-entry-init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/kernel-entry-init.h include/asm-mips/mach-malta/mach-gt64120.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/mach-gt64120.h include/asm-mips/mach-malta/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/mc146818rtc.h include/asm-mips/mach-malta/war.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-malta/war.h arch/arm/mach-pnx4008/include/mach/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/clock.h arch/arm/mach-pnx4008/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/debug-macro.S arch/arm/mach-pnx4008/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/dma.h arch/arm/mach-pnx4008/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/entry-macro.S arch/arm/mach-pnx4008/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/gpio.h arch/arm/mach-pnx4008/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/hardware.h arch/arm/mach-pnx4008/include/mach/i2c.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/i2c.h arch/arm/mach-pnx4008/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/io.h arch/arm/mach-pnx4008/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/irq.h arch/arm/mach-pnx4008/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/irqs.h arch/arm/mach-pnx4008/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/memory.h arch/arm/mach-pnx4008/include/mach/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/param.h arch/arm/mach-pnx4008/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/platform.h arch/arm/mach-pnx4008/include/mach/pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/pm.h arch/arm/mach-pnx4008/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/system.h arch/arm/mach-pnx4008/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/timex.h arch/arm/mach-pnx4008/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/uncompress.h arch/arm/mach-pnx4008/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/include/mach/vmalloc.h include/asm-mips/mach-rc32434/cpu-feature-overrides.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/cpu-feature-overrides.h include/asm-mips/mach-rc32434/ddr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/ddr.h include/asm-mips/mach-rc32434/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/dma.h include/asm-mips/mach-rc32434/dma_v.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/dma_v.h include/asm-mips/mach-rc32434/eth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/eth.h arch/s390/include/asm/cpcmd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cpcmd.h arch/s390/include/asm/compat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/compat.h include/asm-mips/mach-rc32434/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/gpio.h include/asm-mips/mach-rc32434/integ.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/integ.h include/asm-mips/mach-rc32434/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/irq.h include/asm-mips/mach-rc32434/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/pci.h include/asm-mips/mach-rc32434/prom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/prom.h include/asm-mips/mach-rc32434/rb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/rb.h include/asm-mips/mach-rc32434/rc32434.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/rc32434.h include/asm-mips/mach-rc32434/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/timer.h include/asm-mips/mach-rc32434/war.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-rc32434/war.h include/asm-mips/mach-tx39xx/ioremap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-tx39xx/ioremap.h include/asm-mips/mach-tx39xx/mangle-port.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-tx39xx/mangle-port.h include/asm-mips/mach-tx39xx/war.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-tx39xx/war.h drivers/isdn/mISDN/layer1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/layer1.h drivers/isdn/mISDN/layer1.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/layer1.c arch/s390/include/asm/cmb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cmb.h arch/arm/mach-pxa/e400_lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/e400_lcd.c arch/arm/mach-pxa/e740_lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/e740_lcd.c arch/arm/mach-pxa/e750_lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/e750_lcd.c arch/arm/mach-pxa/e800_lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/e800_lcd.c drivers/isdn/mISDN/l1oip_core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/l1oip_core.c drivers/isdn/mISDN/l1oip_codec.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/l1oip_codec.c arch/arm/mach-pxa/eseries_udc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/eseries_udc.c arch/arm/mach-pxa/ezx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/ezx.c arch/s390/include/asm/cio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cio.h arch/s390/include/asm/chsc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/chsc.h drivers/isdn/mISDN/l1oip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/l1oip.h drivers/isdn/mISDN/hwchannel.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/hwchannel.c arch/s390/include/asm/chpid.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/chpid.h arch/arm/mach-pxa/include/mach/akita.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/akita.h arch/arm/mach-pxa/include/mach/audio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/audio.h arch/arm/mach-pxa/include/mach/bitfield.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/bitfield.h arch/arm/mach-pxa/include/mach/camera.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/camera.h arch/arm/mach-pxa/include/mach/colibri.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/colibri.h arch/arm/mach-pxa/include/mach/corgi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/corgi.h arch/arm/mach-pxa/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/debug-macro.S arch/arm/mach-pxa/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/dma.h arch/arm/mach-pxa/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/entry-macro.S arch/arm/mach-pxa/include/mach/eseries-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/eseries-gpio.h arch/arm/mach-pxa/include/mach/eseries-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/eseries-irq.h arch/arm/mach-pxa/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/gpio.h arch/arm/mach-pxa/include/mach/gumstix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/gumstix.h arch/arm/mach-pxa/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/hardware.h arch/arm/mach-pxa/include/mach/i2c.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/i2c.h arch/arm/mach-pxa/include/mach/idp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/idp.h arch/arm/mach-pxa/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/io.h arch/arm/mach-pxa/include/mach/irda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/irda.h arch/arm/mach-pxa/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/irqs.h arch/arm/mach-pxa/include/mach/littleton.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/littleton.h arch/arm/mach-pxa/include/mach/lpd270.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/lpd270.h arch/arm/mach-pxa/include/mach/lubbock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/lubbock.h arch/arm/mach-pxa/include/mach/magician.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/magician.h arch/arm/mach-pxa/include/mach/mainstone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mainstone.h arch/arm/mach-pxa/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/memory.h arch/arm/mach-pxa/include/mach/mfp-pxa25x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h arch/arm/mach-pxa/include/mach/mfp-pxa27x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa27x.h arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa2xx.h arch/arm/mach-pxa/include/mach/mfp-pxa300.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa300.h arch/arm/mach-pxa/include/mach/mfp-pxa320.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa320.h arch/arm/mach-pxa/include/mach/mfp-pxa3xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa3xx.h arch/arm/mach-pxa/include/mach/mfp-pxa930.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp-pxa930.h arch/arm/mach-pxa/include/mach/mfp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mfp.h arch/arm/mach-pxa/include/mach/mmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mmc.h arch/arm/mach-pxa/include/mach/mtd-xip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/mtd-xip.h arch/arm/mach-pxa/include/mach/ohci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/ohci.h arch/arm/mach-pxa/include/mach/palmtx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/palmtx.h arch/arm/mach-pxa/include/mach/pcm027.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pcm027.h arch/arm/mach-pxa/include/mach/pcm990_baseboard.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h arch/arm/mach-pxa/include/mach/pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pm.h arch/arm/mach-pxa/include/mach/poodle.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/poodle.h arch/arm/mach-pxa/include/mach/pxa-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa-regs.h arch/arm/mach-pxa/include/mach/pxa25x-udc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa25x-udc.h arch/arm/mach-pxa/include/mach/pxa27x-udc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa27x-udc.h arch/arm/mach-pxa/include/mach/pxa27x_keypad.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa27x_keypad.h arch/arm/mach-pxa/include/mach/pxa2xx-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa2xx-gpio.h arch/arm/mach-pxa/include/mach/pxa2xx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa2xx-regs.h arch/arm/mach-pxa/include/mach/pxa2xx_spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa2xx_spi.h arch/arm/mach-pxa/include/mach/pxa3xx-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h arch/arm/mach-pxa/include/mach/pxa3xx_nand.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxa3xx_nand.h arch/arm/mach-pxa/include/mach/pxafb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/pxafb.h arch/arm/mach-pxa/include/mach/regs-lcd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/regs-lcd.h arch/arm/mach-pxa/include/mach/regs-ssp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/regs-ssp.h arch/arm/mach-pxa/include/mach/reset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/reset.h arch/arm/mach-pxa/include/mach/sharpsl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/sharpsl.h arch/arm/mach-pxa/include/mach/spitz.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/spitz.h arch/arm/mach-pxa/include/mach/ssp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/ssp.h arch/arm/mach-pxa/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/system.h arch/arm/mach-pxa/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/timex.h arch/arm/mach-pxa/include/mach/tosa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/tosa.h arch/arm/mach-pxa/include/mach/tosa_bt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/tosa_bt.h arch/arm/mach-pxa/include/mach/trizeps4.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/trizeps4.h arch/arm/mach-pxa/include/mach/udc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/udc.h arch/arm/mach-pxa/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/uncompress.h arch/arm/mach-pxa/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/vmalloc.h arch/arm/mach-pxa/include/mach/zylonite.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/include/mach/zylonite.h arch/s390/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/checksum.h arch/s390/include/asm/ccwgroup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ccwgroup.h arch/s390/include/asm/ccwdev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/ccwdev.h drivers/isdn/mISDN/fsm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/fsm.h drivers/isdn/mISDN/fsm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/fsm.c drivers/isdn/mISDN/dsp_tones.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_tones.c drivers/isdn/mISDN/dsp_pipeline.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_pipeline.c arch/s390/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cacheflush.h drivers/isdn/mISDN/dsp_hwec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_hwec.h drivers/isdn/mISDN/dsp_hwec.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_hwec.c drivers/isdn/mISDN/dsp_ecdis.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_ecdis.h drivers/isdn/mISDN/dsp_dtmf.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_dtmf.c arch/arm/mach-pxa/palmtx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/palmtx.c drivers/isdn/mISDN/dsp_core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_core.c drivers/isdn/mISDN/dsp_cmx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_cmx.c arch/s390/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/cache.h drivers/isdn/mISDN/dsp_blowfish.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_blowfish.c arch/arm/mach-pxa/pwm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pwm.c drivers/isdn/mISDN/dsp_biquad.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_biquad.h drivers/isdn/mISDN/dsp_audio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp_audio.c arch/arm/mach-pxa/pxa2xx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa2xx.c drivers/isdn/mISDN/dsp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/dsp.h drivers/isdn/mISDN/core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/core.h include/asm-mips/txx9/generic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/generic.h arch/arm/mach-pxa/pxa930.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa930.c arch/arm/mach-pxa/reset.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/reset.c arch/arm/mach-pxa/saar.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/saar.c include/asm-mips/txx9/jmr3927.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/jmr3927.h arch/s390/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/byteorder.h include/asm-mips/txx9/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/pci.h include/asm-mips/txx9/rbtx4927.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/rbtx4927.h include/asm-mips/txx9/rbtx4938.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/rbtx4938.h include/asm-mips/txx9/smsc_fdc37m81x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/smsc_fdc37m81x.h arch/arm/mach-pxa/tavorevb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/tavorevb.c include/asm-mips/txx9/spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/spi.h arch/arm/mach-pxa/tosa-bt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/tosa-bt.c include/asm-mips/txx9/tx3927.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/tx3927.h include/asm-mips/txx9/tx4927.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/tx4927.h include/asm-mips/txx9/tx4927pcic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/tx4927pcic.h include/asm-mips/txx9/tx4938.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9/tx4938.h drivers/isdn/mISDN/core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/core.c drivers/isdn/mISDN/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/Makefile arch/arm/mach-realview/include/mach/board-eb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/board-eb.h arch/arm/mach-realview/include/mach/board-pb1176.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/board-pb1176.h arch/arm/mach-realview/include/mach/board-pb11mp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/board-pb11mp.h arch/arm/mach-realview/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/debug-macro.S arch/arm/mach-realview/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/dma.h arch/arm/mach-realview/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/entry-macro.S arch/arm/mach-realview/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/hardware.h arch/arm/mach-realview/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/io.h arch/arm/mach-realview/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/irqs.h arch/arm/mach-realview/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/memory.h arch/arm/mach-realview/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/platform.h arch/arm/mach-realview/include/mach/scu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/scu.h arch/arm/mach-realview/include/mach/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/smp.h arch/arm/mach-realview/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/system.h arch/arm/mach-realview/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/timex.h arch/arm/mach-realview/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/uncompress.h arch/arm/mach-realview/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/include/mach/vmalloc.h drivers/isdn/mISDN/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/mISDN/Kconfig arch/s390/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/bugs.h arch/s390/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/bug.h arch/sparc64/kernel/kstack.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/kstack.h arch/s390/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/bitops.h arch/s390/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/auxvec.h arch/arm/mach-rpc/include/mach/acornfb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/acornfb.h arch/arm/mach-rpc/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/debug-macro.S arch/arm/mach-rpc/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/dma.h arch/arm/mach-rpc/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/entry-macro.S arch/arm/mach-rpc/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/hardware.h arch/arm/mach-rpc/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/io.h arch/arm/mach-rpc/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/irqs.h arch/arm/mach-rpc/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/memory.h arch/arm/mach-rpc/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/system.h arch/arm/mach-rpc/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/timex.h arch/arm/mach-rpc/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/uncompress.h arch/arm/mach-rpc/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/include/mach/vmalloc.h arch/s390/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/atomic.h arch/s390/include/asm/appldata.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/appldata.h arch/arm/mach-s3c2400/include/mach/map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2400/include/mach/map.h arch/arm/mach-s3c2400/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2400/include/mach/memory.h arch/sparc64/kernel/ftrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ftrace.c arch/s390/include/asm/airq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/airq.h arch/arm/mach-s3c2410/bast-ide.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/bast-ide.c drivers/uio/uio_pdrv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/uio/uio_pdrv.c drivers/uio/uio_pdrv_genirq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/uio/uio_pdrv_genirq.c arch/s390/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/include/asm/Kbuild drivers/usb/storage/sierra_ms.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sierra_ms.h arch/sh/include/asm/bitops-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/bitops-irq.h arch/arm/mach-s3c2410/include/mach/anubis-cpld.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/anubis-cpld.h arch/arm/mach-s3c2410/include/mach/anubis-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/anubis-irq.h arch/arm/mach-s3c2410/include/mach/anubis-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/anubis-map.h arch/arm/mach-s3c2410/include/mach/audio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/audio.h arch/arm/mach-s3c2410/include/mach/bast-cpld.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/bast-cpld.h arch/arm/mach-s3c2410/include/mach/bast-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/bast-irq.h arch/arm/mach-s3c2410/include/mach/bast-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/bast-map.h arch/arm/mach-s3c2410/include/mach/bast-pmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/bast-pmu.h arch/arm/mach-s3c2410/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/debug-macro.S arch/arm/mach-s3c2410/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/dma.h arch/arm/mach-s3c2410/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/entry-macro.S arch/arm/mach-s3c2410/include/mach/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/fb.h arch/arm/mach-s3c2410/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/gpio.h arch/arm/mach-s3c2410/include/mach/h1940-latch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/h1940-latch.h arch/arm/mach-s3c2410/include/mach/h1940.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/h1940.h arch/arm/mach-s3c2410/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/hardware.h arch/arm/mach-s3c2410/include/mach/idle.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/idle.h arch/arm/mach-s3c2410/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/io.h arch/arm/mach-s3c2410/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/irqs.h arch/arm/mach-s3c2410/include/mach/leds-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/leds-gpio.h arch/arm/mach-s3c2410/include/mach/map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/map.h arch/arm/mach-s3c2410/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/memory.h arch/arm/mach-s3c2410/include/mach/osiris-cpld.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/osiris-cpld.h arch/arm/mach-s3c2410/include/mach/osiris-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/osiris-map.h arch/arm/mach-s3c2410/include/mach/otom-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/otom-map.h arch/arm/mach-s3c2410/include/mach/regs-clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-clock.h arch/arm/mach-s3c2410/include/mach/regs-dsc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-dsc.h arch/arm/mach-s3c2410/include/mach/regs-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-gpio.h arch/arm/mach-s3c2410/include/mach/regs-gpioj.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-gpioj.h arch/arm/mach-s3c2410/include/mach/regs-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-irq.h arch/arm/mach-s3c2410/include/mach/regs-lcd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-lcd.h arch/arm/mach-s3c2410/include/mach/regs-mem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-mem.h arch/arm/mach-s3c2410/include/mach/regs-power.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-power.h arch/arm/mach-s3c2410/include/mach/regs-s3c2412-mem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-s3c2412-mem.h arch/arm/mach-s3c2410/include/mach/regs-s3c2412.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-s3c2412.h arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h arch/arm/mach-s3c2410/include/mach/regs-sdi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/regs-sdi.h arch/arm/mach-s3c2410/include/mach/reset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/reset.h arch/arm/mach-s3c2410/include/mach/spi-gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/spi-gpio.h arch/arm/mach-s3c2410/include/mach/spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/spi.h arch/arm/mach-s3c2410/include/mach/system-reset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/system-reset.h arch/arm/mach-s3c2410/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/system.h arch/arm/mach-s3c2410/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/timex.h arch/arm/mach-s3c2410/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/uncompress.h arch/arm/mach-s3c2410/include/mach/usb-control.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/usb-control.h arch/arm/mach-s3c2410/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/vmalloc.h arch/arm/mach-s3c2410/include/mach/vr1000-cpld.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/vr1000-cpld.h arch/arm/mach-s3c2410/include/mach/vr1000-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/vr1000-irq.h arch/arm/mach-s3c2410/include/mach/vr1000-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/include/mach/vr1000-map.h arch/sh/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/bitops.h arch/sh/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/bug.h drivers/isdn/hardware/mISDN/hfcpci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/hfcpci.c drivers/isdn/hardware/mISDN/hfcmulti.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/hfcmulti.c drivers/isdn/hardware/mISDN/hfc_pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/hfc_pci.h drivers/isdn/hardware/mISDN/hfc_multi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/hfc_multi.h drivers/isdn/hardware/mISDN/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/Makefile drivers/isdn/hardware/mISDN/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/mISDN/Kconfig arch/sh/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/bugs.h arch/arm/mach-s3c2410/nor-simtec.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/nor-simtec.c arch/arm/mach-s3c2410/nor-simtec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/nor-simtec.h arch/sh/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/byteorder.h arch/sh/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cache.h arch/sh/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cacheflush.h arch/sh/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/checksum.h include/drm/i810_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/i810_drm.h arch/sh/include/asm/checksum_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/checksum_32.h lib/bcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/bcd.c arch/sh/include/asm/checksum_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/checksum_64.h arch/sh/include/asm/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/clock.h include/linux/mmu_notifier.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmu_notifier.h arch/sh/include/asm/cmpxchg-grb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cmpxchg-grb.h arch/arm/mach-s3c2412/mach-jive.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/mach-jive.c arch/sh/include/asm/cmpxchg-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cmpxchg-irq.h include/drm/i830_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/i830_drm.h include/drm/i915_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/i915_drm.h include/drm/mga_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/mga_drm.h include/drm/r128_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/r128_drm.h include/drm/radeon_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/radeon_drm.h include/drm/savage_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/savage_drm.h drivers/input/touchscreen/touchit213.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/touchit213.c drivers/input/touchscreen/migor_ts.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/migor_ts.c include/drm/sis_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/sis_drm.h include/drm/via_drm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/drm/via_drm.h drivers/input/touchscreen/inexio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/inexio.c arch/arm/mach-s3c2440/mach-at2440evb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-at2440evb.c drivers/input/touchscreen/htcpen.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/htcpen.c drivers/video/backlight/atmel-pwm-bl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/atmel-pwm-bl.c drivers/video/backlight/ili9320.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/ili9320.c drivers/input/touchscreen/atmel_tsadcc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/atmel_tsadcc.c drivers/video/backlight/ili9320.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/ili9320.h drivers/video/backlight/mbp_nvidia_bl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/mbp_nvidia_bl.c drivers/video/backlight/platform_lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/platform_lcd.c drivers/video/backlight/pwm_bl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/pwm_bl.c drivers/input/serio/xilinx_ps2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/xilinx_ps2.c drivers/video/backlight/vgg2432a4.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/vgg2432a4.c arch/sh/include/asm/cpu-features.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cpu-features.h arch/sh/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/cputime.h arch/sh/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/current.h drivers/video/carminefb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/carminefb.c drivers/video/carminefb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/carminefb.h include/asm-arm/plat-s3c24xx/mci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/mci.h drivers/video/carminefb_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/carminefb_regs.h arch/sh/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/delay.h arch/sh/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/device.h drivers/video/cobalt_lcdfb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/cobalt_lcdfb.c drivers/video/console/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/.gitignore arch/sh/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/div64.h arch/sh/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/dma-mapping.h arch/sh/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/dma.h arch/sh/include/asm/dmabrg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/dmabrg.h arch/arm/mach-sa1100/include/mach/SA-1100.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/SA-1100.h arch/arm/mach-sa1100/include/mach/SA-1101.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/SA-1101.h arch/arm/mach-sa1100/include/mach/SA-1111.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/SA-1111.h arch/arm/mach-sa1100/include/mach/assabet.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/assabet.h arch/arm/mach-sa1100/include/mach/badge4.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/badge4.h arch/arm/mach-sa1100/include/mach/bitfield.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/bitfield.h arch/arm/mach-sa1100/include/mach/cerf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/cerf.h arch/arm/mach-sa1100/include/mach/collie.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/collie.h arch/arm/mach-sa1100/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/debug-macro.S arch/arm/mach-sa1100/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/dma.h arch/arm/mach-sa1100/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/entry-macro.S arch/arm/mach-sa1100/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/gpio.h arch/arm/mach-sa1100/include/mach/h3600.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/h3600.h arch/arm/mach-sa1100/include/mach/h3600_gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/h3600_gpio.h arch/arm/mach-sa1100/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/hardware.h arch/arm/mach-sa1100/include/mach/ide.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/ide.h arch/arm/mach-sa1100/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/io.h arch/arm/mach-sa1100/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/irqs.h arch/arm/mach-sa1100/include/mach/jornada720.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/jornada720.h arch/arm/mach-sa1100/include/mach/lart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/lart.h arch/arm/mach-sa1100/include/mach/mcp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/mcp.h arch/arm/mach-sa1100/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/memory.h arch/arm/mach-sa1100/include/mach/mtd-xip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/mtd-xip.h arch/arm/mach-sa1100/include/mach/neponset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/neponset.h arch/arm/mach-sa1100/include/mach/reset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/reset.h arch/arm/mach-sa1100/include/mach/shannon.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/shannon.h arch/arm/mach-sa1100/include/mach/simpad.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/simpad.h arch/arm/mach-sa1100/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/system.h arch/arm/mach-sa1100/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/timex.h arch/arm/mach-sa1100/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/uncompress.h arch/arm/mach-sa1100/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/include/mach/vmalloc.h arch/sh/include/asm/edosk7705.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/edosk7705.h arch/sh/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/elf.h arch/sh/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/emergency-restart.h arch/sh/include/asm/entry-macros.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/entry-macros.S arch/sh/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/errno.h arch/sh/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/fb.h arch/sh/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/fcntl.h arch/sh/include/asm/fixmap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/fixmap.h arch/sh/include/asm/flat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/flat.h arch/sh/include/asm/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/fpu.h arch/sh/include/asm/freq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/freq.h arch/sh/include/asm/futex-irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/futex-irq.h arch/sh/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/futex.h arch/sh/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/gpio.h arch/sh/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hardirq.h arch/sh/include/asm/hd64461.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hd64461.h include/linux/mmiotrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmiotrace.h arch/sh/include/asm/hd64465/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hd64465/gpio.h arch/arm/mach-shark/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/debug-macro.S arch/arm/mach-shark/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/dma.h arch/arm/mach-shark/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/entry-macro.S arch/arm/mach-shark/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/hardware.h arch/arm/mach-shark/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/io.h arch/arm/mach-shark/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/irqs.h arch/arm/mach-shark/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/memory.h arch/arm/mach-shark/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/system.h arch/arm/mach-shark/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/timex.h arch/arm/mach-shark/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/uncompress.h arch/arm/mach-shark/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/include/mach/vmalloc.h arch/sh/include/asm/hd64465/hd64465.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hd64465/hd64465.h arch/sh/include/asm/hd64465/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hd64465/io.h arch/sh/include/asm/heartbeat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/heartbeat.h arch/arm/mach-versatile/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/debug-macro.S arch/arm/mach-versatile/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/dma.h arch/arm/mach-versatile/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/entry-macro.S arch/arm/mach-versatile/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/hardware.h arch/arm/mach-versatile/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/io.h arch/arm/mach-versatile/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/irqs.h arch/arm/mach-versatile/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/memory.h arch/arm/mach-versatile/include/mach/platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/platform.h arch/arm/mach-versatile/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/system.h arch/arm/mach-versatile/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/timex.h arch/arm/mach-versatile/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/uncompress.h arch/arm/mach-versatile/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/include/mach/vmalloc.h arch/sh/include/asm/hp6xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hp6xx.h arch/sh/include/asm/hugetlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hugetlb.h arch/sh/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/hw_irq.h arch/sh/include/asm/i2c-sh7760.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/i2c-sh7760.h arch/sh/include/asm/ilsel.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ilsel.h arch/arm/mm/cache-feroceon-l2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/cache-feroceon-l2.c arch/sh/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/io.h arch/sh/include/asm/io_generic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/io_generic.h arch/sh/include/asm/io_trapped.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/io_trapped.h arch/arm/mm/cache-xsc3l2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/cache-xsc3l2.c arch/sh/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ioctl.h arch/sh/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ioctls.h arch/sh/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ipcbuf.h arch/sh/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/irq.h arch/sh/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/irq_regs.h drivers/video/sh7760fb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sh7760fb.c drivers/video/sh_mobile_lcdcfb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sh_mobile_lcdcfb.c arch/sh/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/irqflags.h arch/sh/include/asm/irqflags_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/irqflags_32.h arch/sh/include/asm/irqflags_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/irqflags_64.h arch/sparc/include/asm/xor_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/xor_64.h arch/sh/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/kdebug.h arch/sh/include/asm/kexec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/kexec.h arch/sparc/include/asm/xor_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/xor_32.h arch/sh/include/asm/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/kgdb.h arch/sparc/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/xor.h include/linux/atmel-pwm-bl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/atmel-pwm-bl.h drivers/input/mouse/bcm5974.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/bcm5974.c arch/sparc/include/asm/winmacro.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/winmacro.h arch/sparc/include/asm/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/watchdog.h arch/sparc/include/asm/visasm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/visasm.h drivers/input/misc/sgi_btns.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/sgi_btns.c arch/sparc/include/asm/vio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/vio.h arch/sparc/include/asm/viking.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/viking.h arch/arm/plat-mxc/clock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/clock.c arch/arm/plat-mxc/gpio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/gpio.c arch/arm/plat-mxc/include/mach/board-mx27ads.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/board-mx27ads.h arch/arm/plat-mxc/include/mach/board-mx31ads.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/board-mx31ads.h arch/arm/plat-mxc/include/mach/board-mx31lite.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/board-mx31lite.h arch/arm/plat-mxc/include/mach/board-pcm037.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/board-pcm037.h arch/arm/plat-mxc/include/mach/board-pcm038.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/board-pcm038.h arch/arm/plat-mxc/include/mach/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/clock.h arch/arm/plat-mxc/include/mach/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/common.h arch/arm/plat-mxc/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/debug-macro.S arch/arm/plat-mxc/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/dma.h arch/arm/plat-mxc/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/entry-macro.S arch/arm/plat-mxc/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/gpio.h arch/arm/plat-mxc/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/hardware.h arch/arm/plat-mxc/include/mach/iim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/iim.h arch/arm/plat-mxc/include/mach/imx-uart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/imx-uart.h arch/arm/plat-mxc/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/io.h arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h arch/arm/plat-mxc/include/mach/iomux-mx3.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/iomux-mx3.h arch/arm/plat-mxc/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/irqs.h arch/arm/plat-mxc/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/memory.h arch/arm/plat-mxc/include/mach/mx27.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/mx27.h arch/arm/plat-mxc/include/mach/mx31.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/mx31.h arch/arm/plat-mxc/include/mach/mxc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/mxc.h arch/arm/plat-mxc/include/mach/mxc_timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/mxc_timer.h arch/arm/plat-mxc/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/system.h arch/arm/plat-mxc/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/timex.h arch/arm/plat-mxc/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/uncompress.h arch/arm/plat-mxc/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/include/mach/vmalloc.h arch/arm/plat-mxc/iomux-mx1-mx2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/iomux-mx1-mx2.c arch/sparc/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/vga.h arch/arm/plat-mxc/time.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/time.c arch/sparc/include/asm/vfc_ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/vfc_ioctls.h include/linux/brcmphy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/brcmphy.h arch/sparc/include/asm/vaddrs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/vaddrs.h include/linux/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/byteorder.h arch/sparc/include/asm/vac-ops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/vac-ops.h arch/sparc/include/asm/utrap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/utrap.h arch/sparc/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/user.h arch/sparc/include/asm/upa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/upa.h arch/sparc/include/asm/unistd_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/unistd_64.h arch/sparc/include/asm/unistd_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/unistd_32.h arch/sparc/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/unistd.h arch/sparc/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/unaligned.h arch/arm/plat-omap/include/mach/aic23.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/aic23.h arch/arm/plat-omap/include/mach/blizzard.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/blizzard.h arch/arm/plat-omap/include/mach/board-2430sdp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-2430sdp.h arch/arm/plat-omap/include/mach/board-ams-delta.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-ams-delta.h arch/arm/plat-omap/include/mach/board-apollon.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-apollon.h arch/arm/plat-omap/include/mach/board-fsample.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-fsample.h arch/arm/plat-omap/include/mach/board-h2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-h2.h arch/arm/plat-omap/include/mach/board-h3.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-h3.h arch/arm/plat-omap/include/mach/board-h4.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-h4.h arch/arm/plat-omap/include/mach/board-innovator.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-innovator.h arch/arm/plat-omap/include/mach/board-nokia.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-nokia.h arch/arm/plat-omap/include/mach/board-osk.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-osk.h arch/arm/plat-omap/include/mach/board-palmte.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-palmte.h arch/arm/plat-omap/include/mach/board-palmtt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-palmtt.h arch/arm/plat-omap/include/mach/board-palmz71.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-palmz71.h arch/arm/plat-omap/include/mach/board-perseus2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-perseus2.h arch/arm/plat-omap/include/mach/board-sx1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-sx1.h arch/arm/plat-omap/include/mach/board-voiceblue.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board-voiceblue.h arch/arm/plat-omap/include/mach/board.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/board.h arch/arm/plat-omap/include/mach/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/clock.h arch/arm/plat-omap/include/mach/common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/common.h arch/arm/plat-omap/include/mach/control.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/control.h arch/arm/plat-omap/include/mach/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/cpu.h arch/arm/plat-omap/include/mach/debug-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/debug-macro.S arch/arm/plat-omap/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/dma.h arch/arm/plat-omap/include/mach/dmtimer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/dmtimer.h arch/arm/plat-omap/include/mach/dsp_common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/dsp_common.h arch/arm/plat-omap/include/mach/eac.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/eac.h arch/arm/plat-omap/include/mach/entry-macro.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/entry-macro.S arch/arm/plat-omap/include/mach/fpga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/fpga.h arch/arm/plat-omap/include/mach/gpio-switch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/gpio-switch.h arch/arm/plat-omap/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/gpio.h arch/arm/plat-omap/include/mach/gpioexpander.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/gpioexpander.h arch/arm/plat-omap/include/mach/gpmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/gpmc.h arch/arm/plat-omap/include/mach/hardware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/hardware.h arch/arm/plat-omap/include/mach/hwa742.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/hwa742.h arch/arm/plat-omap/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/io.h arch/arm/plat-omap/include/mach/irda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/irda.h arch/arm/plat-omap/include/mach/irqs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/irqs.h arch/arm/plat-omap/include/mach/keypad.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/keypad.h arch/arm/plat-omap/include/mach/lcd_mipid.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/lcd_mipid.h arch/arm/plat-omap/include/mach/led.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/led.h arch/arm/plat-omap/include/mach/mailbox.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mailbox.h arch/arm/plat-omap/include/mach/mcbsp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mcbsp.h arch/arm/plat-omap/include/mach/mcspi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mcspi.h arch/arm/plat-omap/include/mach/memory.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/memory.h arch/arm/plat-omap/include/mach/menelaus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/menelaus.h arch/arm/plat-omap/include/mach/mmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mmc.h arch/arm/plat-omap/include/mach/mtd-xip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mtd-xip.h arch/arm/plat-omap/include/mach/mux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/mux.h arch/arm/plat-omap/include/mach/nand.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/nand.h arch/arm/plat-omap/include/mach/omap-alsa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap-alsa.h arch/arm/plat-omap/include/mach/omap1510.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap1510.h arch/arm/plat-omap/include/mach/omap16xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap16xx.h arch/arm/plat-omap/include/mach/omap24xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap24xx.h arch/arm/plat-omap/include/mach/omap34xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap34xx.h arch/arm/plat-omap/include/mach/omap730.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omap730.h arch/arm/plat-omap/include/mach/omapfb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/omapfb.h arch/arm/plat-omap/include/mach/onenand.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/onenand.h arch/arm/plat-omap/include/mach/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/param.h arch/arm/plat-omap/include/mach/pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/pm.h arch/arm/plat-omap/include/mach/prcm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/prcm.h arch/arm/plat-omap/include/mach/sdrc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/sdrc.h arch/arm/plat-omap/include/mach/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/serial.h arch/arm/plat-omap/include/mach/sram.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/sram.h arch/arm/plat-omap/include/mach/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/system.h arch/arm/plat-omap/include/mach/tc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/tc.h arch/arm/plat-omap/include/mach/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/timex.h arch/arm/plat-omap/include/mach/uncompress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/uncompress.h arch/arm/plat-omap/include/mach/usb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/usb.h arch/arm/plat-omap/include/mach/vmalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/include/mach/vmalloc.h arch/sparc/include/asm/uctx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/uctx.h arch/sparc/include/asm/uaccess_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/uaccess_64.h arch/sparc/include/asm/uaccess_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/uaccess_32.h arch/sparc/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/uaccess.h arch/sparc/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/types.h arch/sparc/include/asm/turbosparc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/turbosparc.h arch/sparc/include/asm/ttable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ttable.h arch/arm/plat-orion/include/plat/cache-feroceon-l2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/cache-feroceon-l2.h arch/arm/plat-orion/include/plat/ehci-orion.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/ehci-orion.h arch/arm/plat-orion/include/plat/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/irq.h arch/arm/plat-orion/include/plat/mv_xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/mv_xor.h arch/arm/plat-orion/include/plat/orion_nand.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/orion_nand.h arch/arm/plat-orion/include/plat/pcie.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/pcie.h arch/arm/plat-orion/include/plat/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/include/plat/time.h arch/sparc/include/asm/tsunami.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tsunami.h arch/sparc/include/asm/tsb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tsb.h arch/sparc/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/traps.h arch/sparc/include/asm/topology_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/topology_64.h arch/sparc/include/asm/topology_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/topology_32.h arch/sparc/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/topology.h arch/sparc/include/asm/tlbflush_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlbflush_64.h arch/sparc/include/asm/tlbflush_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlbflush_32.h arch/sparc/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlbflush.h arch/sparc/include/asm/tlb_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlb_64.h arch/sparc/include/asm/tlb_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlb_32.h arch/arm/plat-s3c24xx/gpiolib.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/gpiolib.c arch/sparc/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/tlb.h arch/sparc/include/asm/timex_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timex_64.h arch/sparc/include/asm/timex_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timex_32.h arch/arm/plat-s3c24xx/pwm-clock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/pwm-clock.c arch/arm/plat-s3c24xx/pwm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/pwm.c arch/sparc/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timex.h arch/sparc/include/asm/timer_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timer_64.h arch/sparc/include/asm/timer_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timer_32.h arch/sparc/include/asm/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/timer.h arch/sparc/include/asm/thread_info_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/thread_info_64.h arch/sh/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/kmap_types.h arch/sh/include/asm/lboxre2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/lboxre2.h arch/sparc/include/asm/thread_info_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/thread_info_32.h arch/sparc/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/thread_info.h drivers/net/netxen/netxen_nic_ctx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_ctx.c arch/sparc/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/termios.h arch/sparc/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/termbits.h arch/sparc/include/asm/system_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/system_64.h arch/sparc/include/asm/system_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/system_32.h arch/sparc/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/system.h arch/sparc/include/asm/sysen.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sysen.h arch/sparc/include/asm/syscalls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/syscalls.h arch/sparc/include/asm/syscall.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/syscall.h include/linux/cnt32_to_63.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cnt32_to_63.h arch/avr32/boot/images/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boot/images/.gitignore arch/sparc/include/asm/swift.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/swift.h drivers/net/phy/mdio-ofgpio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/mdio-ofgpio.c arch/sparc/include/asm/sunbpp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sunbpp.h arch/sparc/include/asm/sun4prom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sun4prom.h arch/avr32/configs/atstk1006_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/configs/atstk1006_defconfig arch/avr32/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/Kbuild arch/avr32/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/a.out.h arch/avr32/include/asm/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/addrspace.h arch/avr32/include/asm/asm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/asm.h arch/avr32/include/asm/atmel-mci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/atmel-mci.h arch/avr32/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/atomic.h arch/avr32/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/auxvec.h arch/avr32/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/bitops.h arch/avr32/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/bug.h arch/avr32/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/bugs.h arch/avr32/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/byteorder.h arch/avr32/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/cache.h arch/avr32/include/asm/cachectl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/cachectl.h arch/avr32/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/cacheflush.h arch/avr32/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/checksum.h arch/avr32/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/cputime.h arch/avr32/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/current.h arch/avr32/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/delay.h arch/avr32/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/device.h arch/avr32/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/div64.h arch/avr32/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/dma-mapping.h arch/avr32/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/dma.h arch/avr32/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/elf.h arch/avr32/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/emergency-restart.h arch/avr32/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/errno.h arch/avr32/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/fb.h arch/avr32/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/fcntl.h arch/avr32/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/futex.h arch/avr32/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/gpio.h arch/avr32/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/hardirq.h arch/avr32/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/hw_irq.h arch/avr32/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/io.h arch/avr32/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ioctl.h arch/avr32/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ioctls.h arch/avr32/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ipcbuf.h arch/avr32/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/irq.h arch/avr32/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/irq_regs.h arch/avr32/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/irqflags.h arch/avr32/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/kdebug.h arch/avr32/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/kmap_types.h arch/avr32/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/kprobes.h arch/avr32/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/linkage.h arch/avr32/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/local.h arch/avr32/include/asm/mach/serial_at91.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/mach/serial_at91.h arch/avr32/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/mman.h arch/avr32/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/mmu.h arch/avr32/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/mmu_context.h arch/avr32/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/module.h arch/avr32/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/msgbuf.h arch/avr32/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/mutex.h arch/avr32/include/asm/numnodes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/numnodes.h arch/avr32/include/asm/ocd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ocd.h arch/avr32/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/page.h arch/avr32/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/param.h arch/avr32/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/pci.h arch/avr32/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/percpu.h arch/avr32/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/pgalloc.h arch/avr32/include/asm/pgtable-2level.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/pgtable-2level.h arch/avr32/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/pgtable.h arch/avr32/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/poll.h arch/avr32/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/posix_types.h arch/avr32/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/processor.h arch/avr32/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ptrace.h arch/avr32/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/resource.h arch/avr32/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/scatterlist.h arch/avr32/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/sections.h arch/avr32/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/sembuf.h arch/avr32/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/serial.h arch/avr32/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/setup.h arch/avr32/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/shmbuf.h arch/avr32/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/shmparam.h arch/avr32/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/sigcontext.h arch/avr32/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/siginfo.h arch/avr32/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/signal.h arch/avr32/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/socket.h arch/avr32/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/sockios.h arch/avr32/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/stat.h arch/avr32/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/statfs.h arch/avr32/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/string.h arch/avr32/include/asm/sysreg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/sysreg.h arch/avr32/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/system.h arch/avr32/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/termbits.h arch/avr32/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/termios.h arch/avr32/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/thread_info.h arch/avr32/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/timex.h arch/avr32/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/tlb.h arch/avr32/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/tlbflush.h arch/avr32/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/topology.h arch/avr32/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/traps.h arch/avr32/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/types.h arch/avr32/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/uaccess.h arch/avr32/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/ucontext.h arch/avr32/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/unaligned.h arch/avr32/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/unistd.h arch/avr32/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/user.h arch/avr32/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/include/asm/xor.h arch/avr32/kernel/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/.gitignore arch/sparc/include/asm/sun4paddr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sun4paddr.h arch/sparc/include/asm/string_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/string_64.h arch/sparc/include/asm/string_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/string_32.h arch/sparc/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/string.h arch/sparc/include/asm/statfs_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/statfs_64.h drivers/net/sh_eth.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sh_eth.c drivers/net/sh_eth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sh_eth.h arch/sparc/include/asm/statfs_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/statfs_32.h arch/sparc/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/statfs.h arch/sparc/include/asm/stat_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/stat_64.h arch/sparc/include/asm/stat_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/stat_32.h arch/sparc/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/stat.h arch/sparc/include/asm/starfire.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/starfire.h include/linux/crc-t10dif.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/crc-t10dif.h include/linux/cred.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cred.h arch/sparc/include/asm/stacktrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/stacktrace.h arch/sparc/include/asm/sstate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sstate.h arch/sparc/include/asm/spitfire.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/spitfire.h arch/sparc/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/spinlock_types.h arch/avr32/mach-at32ap/hmatrix.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/hmatrix.c arch/sparc/include/asm/spinlock_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/spinlock_64.h arch/sparc/include/asm/spinlock_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/spinlock_32.h arch/avr32/mach-at32ap/include/mach/at32ap700x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/at32ap700x.h arch/avr32/mach-at32ap/include/mach/board.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/board.h arch/avr32/mach-at32ap/include/mach/chip.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/chip.h arch/avr32/mach-at32ap/include/mach/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/cpu.h arch/avr32/mach-at32ap/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/gpio.h arch/avr32/mach-at32ap/include/mach/hmatrix.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/hmatrix.h arch/avr32/mach-at32ap/include/mach/init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/init.h arch/avr32/mach-at32ap/include/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/io.h arch/avr32/mach-at32ap/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/irq.h arch/avr32/mach-at32ap/include/mach/pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/pm.h arch/avr32/mach-at32ap/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/portmux.h arch/avr32/mach-at32ap/include/mach/smc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/smc.h arch/avr32/mach-at32ap/include/mach/sram.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/include/mach/sram.h arch/sparc/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/spinlock.h arch/avr32/mach-at32ap/pdc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pdc.c arch/sparc/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sparsemem.h arch/sparc/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sockios.h arch/sparc/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/socket.h arch/avr32/mach-at32ap/pm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pm.c arch/sparc/include/asm/smpprim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/smpprim.h arch/avr32/mach-at32ap/sdramc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/sdramc.h arch/sparc/include/asm/smp_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/smp_64.h arch/sparc/include/asm/smp_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/smp_32.h arch/sparc/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/smp.h arch/sparc/include/asm/signal_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/signal_64.h arch/sparc/include/asm/signal_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/signal_32.h arch/sparc/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/signal.h arch/sparc/include/asm/siginfo_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/siginfo_64.h arch/sparc/include/asm/siginfo_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/siginfo_32.h arch/sparc/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/siginfo.h arch/sparc/include/asm/sigcontext_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sigcontext_64.h arch/sparc/include/asm/sigcontext_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sigcontext_32.h arch/sparc/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sigcontext.h arch/blackfin/configs/BlackStamp_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BlackStamp_defconfig arch/blackfin/configs/CM-BF527_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF527_defconfig arch/sparc/include/asm/shmparam_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/shmparam_64.h arch/sparc/include/asm/shmparam_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/shmparam_32.h arch/sparc/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/shmparam.h net/netfilter/nf_conntrack_acct.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_acct.c include/linux/dw_dmac.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dw_dmac.h arch/sparc/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/shmbuf.h arch/sparc/include/asm/sfp-machine_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sfp-machine_64.h arch/sparc/include/asm/sfp-machine_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sfp-machine_32.h arch/sparc/include/asm/sfp-machine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sfp-machine.h arch/blackfin/configs/TCM-BF537_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/TCM-BF537_defconfig arch/blackfin/include/asm/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/.gitignore arch/blackfin/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/Kbuild arch/blackfin/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/a.out.h arch/blackfin/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/atomic.h arch/blackfin/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/auxvec.h arch/blackfin/include/asm/bfin-global.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bfin-global.h arch/blackfin/include/asm/bfin5xx_spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bfin5xx_spi.h arch/blackfin/include/asm/bfin_simple_timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bfin_simple_timer.h arch/blackfin/include/asm/bfin_sport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bfin_sport.h arch/blackfin/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bitops.h arch/blackfin/include/asm/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/blackfin.h arch/blackfin/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bug.h arch/blackfin/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/bugs.h arch/blackfin/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/byteorder.h arch/blackfin/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cache.h arch/blackfin/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cacheflush.h arch/blackfin/include/asm/cdef_LPBlackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cdef_LPBlackfin.h arch/blackfin/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/checksum.h arch/blackfin/include/asm/clocks.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/clocks.h arch/blackfin/include/asm/context.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/context.S arch/blackfin/include/asm/cplb-mpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cplb-mpu.h arch/blackfin/include/asm/cplb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cplb.h arch/blackfin/include/asm/cplbinit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cplbinit.h arch/blackfin/include/asm/cpumask.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cpumask.h arch/blackfin/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/cputime.h arch/blackfin/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/current.h arch/blackfin/include/asm/def_LPBlackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/def_LPBlackfin.h arch/blackfin/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/delay.h arch/blackfin/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/device.h arch/blackfin/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/div64.h arch/blackfin/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/dma-mapping.h arch/blackfin/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/dma.h arch/blackfin/include/asm/dpmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/dpmc.h arch/blackfin/include/asm/early_printk.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/early_printk.h arch/blackfin/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/elf.h arch/blackfin/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/emergency-restart.h arch/blackfin/include/asm/entry.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/entry.h arch/blackfin/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/errno.h arch/blackfin/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/fb.h arch/blackfin/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/fcntl.h arch/blackfin/include/asm/fixed_code.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/fixed_code.h arch/blackfin/include/asm/flat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/flat.h arch/blackfin/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/futex.h arch/blackfin/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/gpio.h arch/blackfin/include/asm/gptimers.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/gptimers.h arch/blackfin/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/hardirq.h arch/blackfin/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/hw_irq.h arch/blackfin/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/io.h arch/blackfin/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/ioctl.h arch/blackfin/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/ioctls.h arch/blackfin/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/ipcbuf.h arch/blackfin/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/irq.h arch/blackfin/include/asm/irq_handler.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/irq_handler.h arch/blackfin/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/irq_regs.h arch/blackfin/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/kdebug.h arch/blackfin/include/asm/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/kgdb.h arch/blackfin/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/kmap_types.h arch/blackfin/include/asm/l1layout.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/l1layout.h arch/blackfin/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/linkage.h arch/blackfin/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/local.h arch/blackfin/include/asm/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/mem_map.h arch/blackfin/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/mman.h arch/blackfin/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/mmu.h arch/blackfin/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/mmu_context.h arch/blackfin/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/module.h arch/blackfin/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/msgbuf.h arch/blackfin/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/mutex.h arch/blackfin/include/asm/nand.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/nand.h arch/blackfin/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/page.h arch/blackfin/include/asm/page_offset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/page_offset.h arch/blackfin/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/param.h arch/blackfin/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/pci.h arch/blackfin/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/percpu.h arch/blackfin/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/pgalloc.h arch/blackfin/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/pgtable.h arch/blackfin/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/poll.h arch/blackfin/include/asm/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/portmux.h arch/blackfin/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/posix_types.h arch/blackfin/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/processor.h arch/blackfin/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/ptrace.h arch/blackfin/include/asm/reboot.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/reboot.h arch/blackfin/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/resource.h arch/blackfin/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/scatterlist.h arch/blackfin/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/sections.h arch/blackfin/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/segment.h arch/blackfin/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/sembuf.h arch/blackfin/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/serial.h arch/blackfin/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/setup.h arch/blackfin/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/shmbuf.h arch/blackfin/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/shmparam.h arch/blackfin/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/sigcontext.h arch/blackfin/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/siginfo.h arch/blackfin/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/signal.h arch/blackfin/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/socket.h arch/blackfin/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/sockios.h arch/blackfin/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/spinlock.h arch/blackfin/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/stat.h arch/blackfin/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/statfs.h arch/blackfin/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/string.h arch/blackfin/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/system.h arch/blackfin/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/termbits.h arch/blackfin/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/termios.h arch/blackfin/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/thread_info.h arch/blackfin/include/asm/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/time.h arch/blackfin/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/timex.h arch/blackfin/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/tlb.h arch/blackfin/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/tlbflush.h arch/blackfin/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/topology.h arch/blackfin/include/asm/trace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/trace.h arch/blackfin/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/traps.h arch/blackfin/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/types.h arch/blackfin/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/uaccess.h arch/blackfin/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/ucontext.h arch/blackfin/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/unaligned.h arch/blackfin/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/unistd.h arch/blackfin/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/include/asm/user.h drivers/net/usb/hso.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/hso.c arch/sparc/include/asm/sfafsr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sfafsr.h arch/sparc/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/setup.h arch/sparc/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sembuf.h arch/sparc/include/asm/sections_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sections_64.h arch/sparc/include/asm/sections_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sections_32.h arch/sparc/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sections.h arch/sparc/include/asm/seccomp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/seccomp.h arch/sparc/include/asm/scratchpad.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/scratchpad.h arch/sparc/include/asm/scatterlist_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/scatterlist_64.h arch/sparc/include/asm/scatterlist_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/scatterlist_32.h arch/sparc/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/scatterlist.h arch/sparc/include/asm/sbus_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sbus_64.h arch/sparc/include/asm/sbus_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sbus_32.h arch/sparc/include/asm/sbus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sbus.h arch/sparc/include/asm/sbi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/sbi.h arch/sparc/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/rwsem.h arch/sparc/include/asm/rwsem-const.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/rwsem-const.h arch/sparc/include/asm/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/rtc.h arch/blackfin/mach-bf527/boards/cm_bf527.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/boards/cm_bf527.c arch/sparc/include/asm/ross.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ross.h arch/sparc/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/resource.h arch/blackfin/mach-bf527/include/mach/anomaly.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/anomaly.h arch/blackfin/mach-bf527/include/mach/bf527.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/bf527.h arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h arch/blackfin/mach-bf527/include/mach/bfin_sir.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/bfin_sir.h firmware/edgeport/boot2.H16 - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/edgeport/boot2.H16 arch/sh/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/linkage.h arch/blackfin/mach-bf527/include/mach/cdefBF525.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/cdefBF525.h arch/blackfin/mach-bf527/include/mach/cdefBF527.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/cdefBF527.h arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h arch/blackfin/mach-bf527/include/mach/defBF522.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/defBF522.h arch/blackfin/mach-bf527/include/mach/defBF525.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/defBF525.h arch/blackfin/mach-bf527/include/mach/defBF527.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/defBF527.h arch/blackfin/mach-bf527/include/mach/defBF52x_base.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h arch/blackfin/mach-bf527/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/dma.h arch/blackfin/mach-bf527/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/irq.h arch/blackfin/mach-bf527/include/mach/mem_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/mem_init.h arch/blackfin/mach-bf527/include/mach/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/mem_map.h arch/blackfin/mach-bf527/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/include/mach/portmux.h net/ipv6/netfilter/ip6table_security.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/ip6table_security.c arch/sparc/include/asm/reg_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/reg_64.h arch/sparc/include/asm/reg_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/reg_32.h arch/sparc/include/asm/reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/reg.h arch/blackfin/mach-bf533/boards/blackstamp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/blackstamp.c arch/sparc/include/asm/reboot.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/reboot.h arch/sparc/include/asm/ptrace_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ptrace_64.h arch/sparc/include/asm/ptrace_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ptrace_32.h arch/sparc/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ptrace.h arch/blackfin/mach-bf533/include/mach/anomaly.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/anomaly.h arch/blackfin/mach-bf533/include/mach/bf533.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/bf533.h arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h arch/blackfin/mach-bf533/include/mach/bfin_sir.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/bfin_sir.h arch/blackfin/mach-bf533/include/mach/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/blackfin.h arch/blackfin/mach-bf533/include/mach/cdefBF532.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/cdefBF532.h arch/blackfin/mach-bf533/include/mach/defBF532.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/defBF532.h arch/blackfin/mach-bf533/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/dma.h arch/blackfin/mach-bf533/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/irq.h arch/blackfin/mach-bf533/include/mach/mem_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/mem_init.h arch/blackfin/mach-bf533/include/mach/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/mem_map.h arch/blackfin/mach-bf533/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/include/mach/portmux.h arch/sparc/include/asm/pstate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pstate.h arch/sparc/include/asm/psrcompat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/psrcompat.h arch/sparc/include/asm/psr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/psr.h arch/sparc/include/asm/prom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/prom.h arch/sparc/include/asm/processor_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/processor_64.h arch/sparc/include/asm/processor_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/processor_32.h arch/sparc/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/processor.h arch/sparc/include/asm/posix_types_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/posix_types_64.h arch/blackfin/mach-bf537/boards/tcm_bf537.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/tcm_bf537.c arch/sparc/include/asm/posix_types_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/posix_types_32.h arch/blackfin/mach-bf537/include/mach/anomaly.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/anomaly.h arch/blackfin/mach-bf537/include/mach/bf537.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/bf537.h arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h arch/blackfin/mach-bf537/include/mach/bfin_sir.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/bfin_sir.h arch/blackfin/mach-bf537/include/mach/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/blackfin.h arch/blackfin/mach-bf537/include/mach/cdefBF534.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/cdefBF534.h arch/blackfin/mach-bf537/include/mach/cdefBF537.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/cdefBF537.h arch/blackfin/mach-bf537/include/mach/defBF534.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/defBF534.h arch/blackfin/mach-bf537/include/mach/defBF537.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/defBF537.h arch/blackfin/mach-bf537/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/dma.h arch/blackfin/mach-bf537/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/irq.h arch/blackfin/mach-bf537/include/mach/mem_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/mem_init.h arch/blackfin/mach-bf537/include/mach/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/mem_map.h arch/blackfin/mach-bf537/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/include/mach/portmux.h arch/sparc/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/posix_types.h arch/sparc/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/poll.h arch/sparc/include/asm/pil.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pil.h arch/sparc/include/asm/pgtsun4c.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtsun4c.h arch/blackfin/mach-bf548/include/mach/anomaly.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/anomaly.h arch/blackfin/mach-bf548/include/mach/bf548.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/bf548.h arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h arch/blackfin/mach-bf548/include/mach/bf54x_keys.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/bf54x_keys.h arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h arch/blackfin/mach-bf548/include/mach/bfin_sir.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/bfin_sir.h arch/blackfin/mach-bf548/include/mach/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/blackfin.h arch/blackfin/mach-bf548/include/mach/cdefBF542.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF542.h arch/blackfin/mach-bf548/include/mach/cdefBF544.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF544.h arch/blackfin/mach-bf548/include/mach/cdefBF547.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF547.h arch/blackfin/mach-bf548/include/mach/cdefBF548.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF548.h arch/blackfin/mach-bf548/include/mach/cdefBF549.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF549.h arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h arch/blackfin/mach-bf548/include/mach/defBF542.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF542.h arch/blackfin/mach-bf548/include/mach/defBF544.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF544.h arch/blackfin/mach-bf548/include/mach/defBF547.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF547.h arch/blackfin/mach-bf548/include/mach/defBF548.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF548.h arch/blackfin/mach-bf548/include/mach/defBF549.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF549.h arch/blackfin/mach-bf548/include/mach/defBF54x_base.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h arch/blackfin/mach-bf548/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/dma.h arch/blackfin/mach-bf548/include/mach/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/gpio.h arch/blackfin/mach-bf548/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/irq.h arch/blackfin/mach-bf548/include/mach/mem_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/mem_init.h arch/blackfin/mach-bf548/include/mach/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/mem_map.h arch/blackfin/mach-bf548/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/include/mach/portmux.h arch/sparc/include/asm/pgtsun4.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtsun4.h arch/sparc/include/asm/pgtsrmmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtsrmmu.h arch/sparc/include/asm/pgtable_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtable_64.h arch/sparc/include/asm/pgtable_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtable_32.h arch/sparc/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgtable.h arch/blackfin/mach-bf561/include/mach/anomaly.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/anomaly.h arch/blackfin/mach-bf561/include/mach/bf561.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/bf561.h arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h arch/blackfin/mach-bf561/include/mach/bfin_sir.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/bfin_sir.h arch/blackfin/mach-bf561/include/mach/blackfin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/blackfin.h arch/blackfin/mach-bf561/include/mach/cdefBF561.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/cdefBF561.h arch/blackfin/mach-bf561/include/mach/defBF561.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/defBF561.h arch/blackfin/mach-bf561/include/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/dma.h arch/blackfin/mach-bf561/include/mach/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/irq.h arch/blackfin/mach-bf561/include/mach/mem_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/mem_init.h arch/blackfin/mach-bf561/include/mach/mem_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/mem_map.h arch/blackfin/mach-bf561/include/mach/portmux.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/include/mach/portmux.h arch/sparc/include/asm/pgalloc_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgalloc_64.h arch/sparc/include/asm/pgalloc_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgalloc_32.h arch/sparc/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pgalloc.h arch/sparc/include/asm/perfctr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/perfctr.h arch/sparc/include/asm/percpu_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/percpu_64.h arch/sparc/include/asm/percpu_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/percpu_32.h arch/sparc/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/percpu.h arch/blackfin/mach-common/head.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/head.S arch/sparc/include/asm/pcic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pcic.h arch/sparc/include/asm/pci_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pci_64.h arch/sparc/include/asm/pci_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pci_32.h arch/sparc/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pci.h arch/sparc/include/asm/pbm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/pbm.h arch/sparc/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/parport.h arch/sparc/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/param.h arch/sh/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/local.h arch/sh/include/asm/machvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/machvec.h arch/sh/include/asm/magicpanelr2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/magicpanelr2.h arch/sh/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mc146818rtc.h arch/sh/include/asm/microdev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/microdev.h arch/sh/include/asm/migor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/migor.h arch/sh/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mman.h arch/sh/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mmu.h arch/sh/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mmu_context.h arch/sh/include/asm/mmu_context_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mmu_context_32.h arch/sparc/include/asm/page_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/page_64.h arch/sh/include/asm/mmu_context_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mmu_context_64.h arch/sh/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mmzone.h arch/sh/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/module.h arch/sparc/include/asm/page_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/page_32.h arch/sparc/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/page.h arch/sparc/include/asm/oplib_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/oplib_64.h arch/sparc/include/asm/oplib_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/oplib_32.h arch/sparc/include/asm/oplib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/oplib.h arch/sparc/include/asm/openpromio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/openpromio.h arch/sparc/include/asm/openprom_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/openprom_64.h drivers/ide/ide-timings.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-timings.c arch/sparc/include/asm/openprom_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/openprom_32.h arch/sparc/include/asm/openprom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/openprom.h arch/sparc/include/asm/of_platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/of_platform.h arch/sparc/include/asm/of_device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/of_device.h arch/sparc/include/asm/obio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/obio.h arch/sparc/include/asm/ns87303.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ns87303.h drivers/ide/ide-pio-blacklist.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-pio-blacklist.c arch/sparc/include/asm/mxcc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mxcc.h arch/sparc/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mutex.h arch/sparc/include/asm/msi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/msi.h arch/sparc/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/msgbuf.h arch/sh/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/msgbuf.h arch/sparc/include/asm/mpmbox.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mpmbox.h arch/sparc/include/asm/mostek_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mostek_64.h arch/sparc/include/asm/mostek_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mostek_32.h arch/sparc/include/asm/mostek.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mostek.h arch/sparc/include/asm/module_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/module_64.h arch/sh/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/mutex.h drivers/ide/ide-atapi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-atapi.c arch/h8300/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/Kbuild arch/h8300/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/a.out.h arch/h8300/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/atomic.h arch/h8300/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/auxvec.h arch/h8300/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/bitops.h arch/h8300/include/asm/bootinfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/bootinfo.h arch/h8300/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/bug.h arch/h8300/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/bugs.h arch/h8300/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/byteorder.h arch/h8300/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/cache.h arch/h8300/include/asm/cachectl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/cachectl.h arch/h8300/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/cacheflush.h arch/h8300/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/checksum.h arch/h8300/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/cputime.h arch/h8300/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/current.h arch/h8300/include/asm/dbg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/dbg.h arch/h8300/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/delay.h arch/h8300/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/device.h arch/h8300/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/div64.h arch/h8300/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/dma.h arch/h8300/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/elf.h arch/h8300/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/emergency-restart.h arch/h8300/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/errno.h arch/h8300/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/fb.h arch/h8300/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/fcntl.h arch/h8300/include/asm/flat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/flat.h arch/h8300/include/asm/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/fpu.h arch/h8300/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/futex.h arch/h8300/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/gpio.h arch/h8300/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/hardirq.h arch/h8300/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/hw_irq.h arch/h8300/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/io.h arch/h8300/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/ioctl.h arch/h8300/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/ioctls.h arch/h8300/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/ipcbuf.h arch/h8300/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/irq.h arch/h8300/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/irq_regs.h arch/h8300/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/kdebug.h arch/h8300/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/kmap_types.h arch/h8300/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/linkage.h arch/h8300/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/local.h arch/h8300/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/mc146818rtc.h arch/h8300/include/asm/md.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/md.h arch/h8300/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/mman.h arch/h8300/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/mmu.h arch/h8300/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/mmu_context.h arch/h8300/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/module.h arch/h8300/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/msgbuf.h arch/h8300/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/mutex.h arch/h8300/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/page.h arch/h8300/include/asm/page_offset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/page_offset.h arch/h8300/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/param.h arch/h8300/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/pci.h arch/h8300/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/percpu.h arch/h8300/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/pgalloc.h arch/h8300/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/pgtable.h arch/h8300/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/poll.h arch/h8300/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/posix_types.h arch/h8300/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/processor.h arch/h8300/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/ptrace.h arch/h8300/include/asm/regs267x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/regs267x.h arch/h8300/include/asm/regs306x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/regs306x.h arch/h8300/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/resource.h arch/h8300/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/scatterlist.h arch/h8300/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/sections.h arch/h8300/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/segment.h arch/h8300/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/sembuf.h arch/h8300/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/setup.h arch/h8300/include/asm/sh_bios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/sh_bios.h arch/h8300/include/asm/shm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/shm.h arch/h8300/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/shmbuf.h arch/h8300/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/shmparam.h arch/h8300/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/sigcontext.h arch/h8300/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/siginfo.h arch/h8300/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/signal.h arch/h8300/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/smp.h arch/h8300/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/socket.h arch/h8300/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/sockios.h arch/h8300/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/spinlock.h arch/h8300/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/stat.h arch/h8300/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/statfs.h arch/h8300/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/string.h arch/h8300/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/system.h arch/h8300/include/asm/target_time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/target_time.h arch/h8300/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/termbits.h arch/h8300/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/termios.h arch/h8300/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/thread_info.h arch/h8300/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/timex.h arch/h8300/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/tlb.h arch/h8300/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/tlbflush.h arch/h8300/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/topology.h arch/h8300/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/traps.h arch/h8300/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/types.h arch/h8300/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/uaccess.h arch/h8300/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/ucontext.h arch/h8300/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/unaligned.h arch/h8300/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/unistd.h arch/h8300/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/user.h arch/h8300/include/asm/virtconvert.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/include/asm/virtconvert.h drivers/watchdog/iTCO_vendor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/iTCO_vendor.h arch/sh/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/page.h arch/sh/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/param.h arch/sparc/include/asm/module_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/module_32.h arch/sh/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/parport.h arch/sparc/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/module.h include/linux/firmware-map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/firmware-map.h arch/sparc/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmzone.h arch/sh/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pci.h drivers/char/bsr.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/bsr.c arch/sh/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/percpu.h arch/sh/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pgalloc.h arch/sh/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pgtable.h arch/ia64/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/Kbuild arch/ia64/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/a.out.h arch/ia64/include/asm/acpi-ext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/acpi-ext.h arch/ia64/include/asm/acpi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/acpi.h arch/ia64/include/asm/agp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/agp.h arch/ia64/include/asm/ansidecl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ansidecl.h arch/ia64/include/asm/asmmacro.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/asmmacro.h arch/ia64/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/atomic.h arch/ia64/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/auxvec.h arch/ia64/include/asm/bfd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/bfd.h arch/ia64/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/bitops.h arch/ia64/include/asm/break.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/break.h arch/ia64/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/bug.h arch/ia64/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/bugs.h arch/ia64/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/byteorder.h arch/ia64/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/cache.h arch/ia64/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/cacheflush.h arch/ia64/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/checksum.h arch/ia64/include/asm/compat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/compat.h arch/ia64/include/asm/cpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/cpu.h arch/ia64/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/cputime.h arch/ia64/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/current.h arch/ia64/include/asm/cyclone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/cyclone.h arch/ia64/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/delay.h arch/ia64/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/device.h arch/ia64/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/div64.h arch/ia64/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/dma-mapping.h arch/ia64/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/dma.h arch/ia64/include/asm/dmi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/dmi.h arch/ia64/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/elf.h arch/ia64/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/emergency-restart.h arch/ia64/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/errno.h arch/ia64/include/asm/esi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/esi.h arch/ia64/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/fb.h arch/ia64/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/fcntl.h arch/ia64/include/asm/fpswa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/fpswa.h arch/ia64/include/asm/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/fpu.h arch/ia64/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/futex.h arch/ia64/include/asm/gcc_intrin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/gcc_intrin.h arch/ia64/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/hardirq.h arch/ia64/include/asm/hpsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/hpsim.h arch/ia64/include/asm/hugetlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/hugetlb.h arch/ia64/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/hw_irq.h arch/ia64/include/asm/ia32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ia32.h arch/ia64/include/asm/ia64regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ia64regs.h arch/ia64/include/asm/intel_intrin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/intel_intrin.h arch/ia64/include/asm/intrinsics.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/intrinsics.h arch/ia64/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/io.h arch/ia64/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ioctl.h arch/ia64/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ioctls.h arch/ia64/include/asm/iosapic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/iosapic.h arch/ia64/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ipcbuf.h arch/ia64/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/irq.h arch/ia64/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/irq_regs.h arch/ia64/include/asm/kdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kdb.h arch/ia64/include/asm/kdb_break.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kdb_break.h arch/ia64/include/asm/kdbprivate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kdbprivate.h arch/ia64/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kdebug.h arch/ia64/include/asm/kexec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kexec.h arch/ia64/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kmap_types.h arch/ia64/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kprobes.h arch/ia64/include/asm/kregs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kregs.h arch/ia64/include/asm/kvm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kvm.h arch/ia64/include/asm/kvm_host.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kvm_host.h arch/ia64/include/asm/kvm_para.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/kvm_para.h arch/ia64/include/asm/libata-portmap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/libata-portmap.h arch/ia64/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/linkage.h arch/ia64/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/local.h arch/ia64/include/asm/machvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec.h arch/ia64/include/asm/machvec_dig.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_dig.h arch/ia64/include/asm/machvec_hpsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_hpsim.h arch/ia64/include/asm/machvec_hpzx1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_hpzx1.h arch/ia64/include/asm/machvec_hpzx1_swiotlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_hpzx1_swiotlb.h arch/ia64/include/asm/machvec_init.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_init.h arch/ia64/include/asm/machvec_sn2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_sn2.h arch/ia64/include/asm/machvec_uv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/machvec_uv.h arch/ia64/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mc146818rtc.h arch/ia64/include/asm/mca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mca.h arch/ia64/include/asm/mca_asm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mca_asm.h arch/ia64/include/asm/meminit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/meminit.h arch/ia64/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mman.h arch/ia64/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mmu.h arch/ia64/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mmu_context.h arch/ia64/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mmzone.h arch/ia64/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/module.h arch/ia64/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/msgbuf.h arch/ia64/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/mutex.h arch/ia64/include/asm/native/inst.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/native/inst.h arch/ia64/include/asm/native/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/native/irq.h arch/ia64/include/asm/nodedata.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/nodedata.h arch/ia64/include/asm/numa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/numa.h arch/ia64/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/page.h arch/ia64/include/asm/pal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/pal.h arch/ia64/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/param.h arch/ia64/include/asm/paravirt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/paravirt.h arch/ia64/include/asm/paravirt_privop.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/paravirt_privop.h arch/ia64/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/parport.h arch/ia64/include/asm/patch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/patch.h arch/ia64/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/pci.h arch/ia64/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/percpu.h arch/ia64/include/asm/perfmon.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/perfmon.h arch/ia64/include/asm/perfmon_default_smpl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/perfmon_default_smpl.h arch/ia64/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/pgalloc.h arch/ia64/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/pgtable.h arch/ia64/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/poll.h arch/ia64/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/posix_types.h arch/ia64/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/processor.h arch/ia64/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ptrace.h arch/ia64/include/asm/ptrace_offsets.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ptrace_offsets.h arch/ia64/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/resource.h arch/ia64/include/asm/rse.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/rse.h arch/ia64/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/rwsem.h arch/ia64/include/asm/sal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sal.h arch/ia64/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/scatterlist.h arch/ia64/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sections.h arch/ia64/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/segment.h arch/ia64/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sembuf.h arch/ia64/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/serial.h arch/ia64/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/setup.h arch/ia64/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/shmbuf.h arch/ia64/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/shmparam.h arch/ia64/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sigcontext.h arch/ia64/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/siginfo.h arch/ia64/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/signal.h arch/ia64/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/smp.h arch/ia64/include/asm/sn/acpi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/acpi.h arch/ia64/include/asm/sn/addrs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/addrs.h arch/ia64/include/asm/sn/arch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/arch.h arch/ia64/include/asm/sn/bte.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/bte.h arch/ia64/include/asm/sn/clksupport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/clksupport.h arch/ia64/include/asm/sn/geo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/geo.h arch/ia64/include/asm/sn/intr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/intr.h arch/ia64/include/asm/sn/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/io.h arch/ia64/include/asm/sn/ioc3.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/ioc3.h arch/ia64/include/asm/sn/klconfig.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/klconfig.h arch/ia64/include/asm/sn/l1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/l1.h arch/ia64/include/asm/sn/leds.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/leds.h arch/ia64/include/asm/sn/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/module.h arch/ia64/include/asm/sn/mspec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/mspec.h arch/ia64/include/asm/sn/nodepda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/nodepda.h arch/ia64/include/asm/sn/pcibr_provider.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/pcibr_provider.h arch/ia64/include/asm/sn/pcibus_provider_defs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/pcibus_provider_defs.h arch/ia64/include/asm/sn/pcidev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/pcidev.h arch/ia64/include/asm/sn/pda.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/pda.h arch/ia64/include/asm/sn/pic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/pic.h arch/ia64/include/asm/sn/rw_mmr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/rw_mmr.h arch/ia64/include/asm/sn/shub_mmr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/shub_mmr.h arch/ia64/include/asm/sn/shubio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/shubio.h arch/ia64/include/asm/sn/simulator.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/simulator.h arch/ia64/include/asm/sn/sn2/sn_hwperf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/sn2/sn_hwperf.h arch/ia64/include/asm/sn/sn_cpuid.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/sn_cpuid.h arch/ia64/include/asm/sn/sn_feature_sets.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/sn_feature_sets.h arch/ia64/include/asm/sn/sn_sal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/sn_sal.h arch/ia64/include/asm/sn/tioca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tioca.h arch/ia64/include/asm/sn/tioca_provider.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tioca_provider.h arch/ia64/include/asm/sn/tioce.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tioce.h arch/ia64/include/asm/sn/tioce_provider.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tioce_provider.h arch/ia64/include/asm/sn/tiocp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tiocp.h arch/ia64/include/asm/sn/tiocx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/tiocx.h arch/ia64/include/asm/sn/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sn/types.h arch/ia64/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/socket.h arch/ia64/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sockios.h arch/ia64/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/sparsemem.h arch/ia64/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/spinlock.h arch/ia64/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/spinlock_types.h arch/ia64/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/stat.h arch/ia64/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/statfs.h arch/ia64/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/string.h arch/ia64/include/asm/suspend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/suspend.h arch/ia64/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/system.h arch/ia64/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/termbits.h arch/ia64/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/termios.h arch/ia64/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/thread_info.h arch/ia64/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/timex.h arch/ia64/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/tlb.h arch/ia64/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/tlbflush.h arch/ia64/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/topology.h arch/ia64/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/types.h arch/ia64/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/uaccess.h arch/ia64/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ucontext.h arch/ia64/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/unaligned.h arch/ia64/include/asm/uncached.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/uncached.h arch/ia64/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/unistd.h arch/ia64/include/asm/unwind.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/unwind.h arch/ia64/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/user.h arch/ia64/include/asm/ustack.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/ustack.h arch/ia64/include/asm/uv/uv_hub.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/uv/uv_hub.h arch/ia64/include/asm/uv/uv_mmrs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/uv/uv_mmrs.h arch/ia64/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/vga.h arch/ia64/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/include/asm/xor.h arch/sparc/include/asm/mmu_context_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu_context_64.h arch/sparc/include/asm/mmu_context_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu_context_32.h arch/ia64/kdb/kdba_support.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kdb/kdba_support.c arch/sparc/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu_context.h arch/sparc/include/asm/mmu_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu_64.h drivers/watchdog/mpc8xxx_wdt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mpc8xxx_wdt.c arch/sh/include/asm/pgtable_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pgtable_32.h arch/sh/include/asm/pgtable_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pgtable_64.h arch/sparc/include/asm/mmu_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu_32.h arch/sh/include/asm/pm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/pm.h arch/sh/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/poll.h net/ipv4/netfilter/iptable_security.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/iptable_security.c arch/sh/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/posix_types.h arch/sh/include/asm/posix_types_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/posix_types_32.h arch/sh/include/asm/posix_types_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/posix_types_64.h arch/sh/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/processor.h arch/sparc/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mmu.h arch/sparc/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mman.h arch/sh/include/asm/processor_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/processor_32.h drivers/watchdog/rc32434_wdt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/rc32434_wdt.c drivers/watchdog/rdc321x_wdt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/rdc321x_wdt.c arch/ia64/kernel/nr-irqs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/nr-irqs.c arch/sh/include/asm/processor_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/processor_64.h arch/ia64/kernel/paravirt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/paravirt.c arch/ia64/kernel/paravirt_inst.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/paravirt_inst.h arch/ia64/kernel/paravirtentry.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/paravirtentry.S arch/sh/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ptrace.h lib/crc-t10dif.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/crc-t10dif.c arch/sh/include/asm/push-switch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/push-switch.h arch/sh/include/asm/r7780rp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/r7780rp.h arch/sh/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/resource.h arch/sh/include/asm/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/rtc.h arch/sh/include/asm/rts7751r2d.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/rts7751r2d.h arch/sparc/include/asm/memreg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/memreg.h arch/sh/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/rwsem.h arch/sparc/include/asm/mdesc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mdesc.h arch/sparc/include/asm/mc146818rtc_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mc146818rtc_64.h arch/sparc/include/asm/mc146818rtc_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mc146818rtc_32.h arch/sh/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/scatterlist.h arch/sh/include/asm/sdk7780.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sdk7780.h arch/sh/include/asm/seccomp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/seccomp.h arch/sh/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sections.h arch/sparc/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mc146818rtc.h arch/sh/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/segment.h arch/sparc/include/asm/mbus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/mbus.h arch/sparc/include/asm/machines.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/machines.h arch/sparc/include/asm/lsu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/lsu.h drivers/i2c/chips/at24.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/at24.c arch/sparc/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/local.h arch/sparc/include/asm/lmb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/lmb.h arch/sparc/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/linkage.h arch/sparc/include/asm/ldc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ldc.h arch/sparc/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kprobes.h arch/sparc/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kmap_types.h arch/sparc/include/asm/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kgdb.h arch/sparc/include/asm/kdebug_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kdebug_64.h arch/sparc/include/asm/kdebug_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kdebug_32.h arch/sparc/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/kdebug.h arch/sparc/include/asm/jsflash.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/jsflash.h arch/sparc/include/asm/irqflags_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irqflags_64.h arch/sparc/include/asm/irqflags_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irqflags_32.h arch/sparc/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irqflags.h arch/sparc/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irq_regs.h arch/sparc/include/asm/irq_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irq_64.h arch/sparc/include/asm/irq_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irq_32.h arch/sparc/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/irq.h arch/sparc/include/asm/ipcbuf_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ipcbuf_64.h arch/sparc/include/asm/ipcbuf_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ipcbuf_32.h arch/sparc/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ipcbuf.h arch/sparc/include/asm/iommu_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/iommu_64.h arch/sh/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sembuf.h arch/sh/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/serial.h drivers/of/of_spi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/of_spi.c arch/sh/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/setup.h arch/sparc/include/asm/iommu_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/iommu_32.h arch/sh/include/asm/sfp-machine.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sfp-machine.h arch/sh/include/asm/sh7760fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh7760fb.h drivers/i2c/busses/i2c-nforce2-s4985.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-nforce2-s4985.c arch/sparc/include/asm/iommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/iommu.h drivers/i2c/busses/i2c-isch.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-isch.c arch/sparc/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ioctls.h arch/sparc/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ioctl.h arch/sparc/include/asm/io_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/io_64.h arch/sparc/include/asm/io_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/io_32.h arch/sparc/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/io.h include/linux/ftrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ftrace.h arch/sparc/include/asm/io-unit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/io-unit.h arch/sparc/include/asm/intr_queue.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/intr_queue.h drivers/i2c/busses/i2c-cpm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-cpm.c arch/sh/include/asm/sh7763rdp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh7763rdp.h arch/sh/include/asm/sh7785lcr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh7785lcr.h arch/sh/include/asm/sh_bios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh_bios.h arch/sh/include/asm/sh_eth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh_eth.h arch/sh/include/asm/sh_keysc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh_keysc.h arch/sh/include/asm/sh_mobile_lcdc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sh_mobile_lcdc.h arch/sh/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/shmbuf.h arch/sh/include/asm/shmin.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/shmin.h drivers/xen/manage.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/manage.c arch/sh/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/shmparam.h arch/sh/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sigcontext.h arch/sh/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/siginfo.h arch/sh/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/signal.h arch/sh/include/asm/smc37c93x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/smc37c93x.h arch/powerpc/sysdev/qe_lib/usb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/usb.c arch/sh/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/smp.h firmware/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/.gitignore firmware/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/Makefile firmware/WHENCE - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/WHENCE firmware/atmsar11.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/atmsar11.HEX firmware/cpia2/stv0672_vp4.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/cpia2/stv0672_vp4.bin.ihex arch/powerpc/sysdev/qe_lib/gpio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/gpio.c firmware/dabusb/bitstream.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/dabusb/bitstream.bin.ihex firmware/dabusb/firmware.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/dabusb/firmware.HEX firmware/dsp56k/bootstrap.asm - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/dsp56k/bootstrap.asm firmware/dsp56k/bootstrap.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/dsp56k/bootstrap.bin.ihex firmware/edgeport/boot.H16 - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/edgeport/boot.H16 drivers/gpu/drm/via/via_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_irq.c firmware/edgeport/down.H16 - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/edgeport/down.H16 firmware/edgeport/down2.H16 - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/edgeport/down2.H16 firmware/edgeport/down3.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/edgeport/down3.bin.ihex firmware/emi26/bitstream.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi26/bitstream.HEX firmware/emi26/firmware.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi26/firmware.HEX firmware/emi26/loader.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi26/loader.HEX firmware/emi62/bitstream.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi62/bitstream.HEX firmware/emi62/loader.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi62/loader.HEX firmware/emi62/midi.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi62/midi.HEX arch/m68knommu/configs/m5208evb_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/configs/m5208evb_defconfig arch/m68knommu/configs/m5249evb_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/configs/m5249evb_defconfig arch/m68knommu/configs/m5275evb_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/configs/m5275evb_defconfig arch/m68knommu/configs/m5307c3_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/configs/m5307c3_defconfig arch/m68knommu/configs/m5407c3_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/configs/m5407c3_defconfig arch/m68knommu/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/Kbuild arch/m68knommu/include/asm/MC68328.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/MC68328.h arch/m68knommu/include/asm/MC68332.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/MC68332.h arch/m68knommu/include/asm/MC68EZ328.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/MC68EZ328.h arch/m68knommu/include/asm/MC68VZ328.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/MC68VZ328.h arch/m68knommu/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/a.out.h arch/m68knommu/include/asm/anchor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/anchor.h arch/m68knommu/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/atomic.h arch/m68knommu/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/auxvec.h arch/m68knommu/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/bitops.h arch/m68knommu/include/asm/bootinfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/bootinfo.h arch/m68knommu/include/asm/bootstd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/bootstd.h arch/m68knommu/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/bug.h arch/m68knommu/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/bugs.h arch/m68knommu/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/byteorder.h arch/m68knommu/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/cache.h arch/m68knommu/include/asm/cachectl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/cachectl.h arch/m68knommu/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/cacheflush.h arch/m68knommu/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/checksum.h arch/m68knommu/include/asm/coldfire.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/coldfire.h arch/m68knommu/include/asm/commproc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/commproc.h arch/m68knommu/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/cputime.h arch/m68knommu/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/current.h arch/m68knommu/include/asm/dbg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/dbg.h arch/m68knommu/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/delay.h arch/m68knommu/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/device.h arch/m68knommu/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/div64.h arch/m68knommu/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/dma-mapping.h arch/m68knommu/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/dma.h arch/m68knommu/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/elf.h arch/m68knommu/include/asm/elia.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/elia.h arch/m68knommu/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/emergency-restart.h arch/m68knommu/include/asm/entry.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/entry.h arch/m68knommu/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/errno.h arch/m68knommu/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/fb.h arch/m68knommu/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/fcntl.h arch/m68knommu/include/asm/flat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/flat.h arch/m68knommu/include/asm/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/fpu.h arch/m68knommu/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/futex.h arch/m68knommu/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/hardirq.h arch/m68knommu/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/hw_irq.h arch/m68knommu/include/asm/hwtest.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/hwtest.h arch/m68knommu/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/io.h arch/m68knommu/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/ioctl.h arch/m68knommu/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/ioctls.h arch/m68knommu/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/ipcbuf.h arch/m68knommu/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/irq.h arch/m68knommu/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/irq_regs.h arch/m68knommu/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/kdebug.h arch/m68knommu/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/kmap_types.h arch/m68knommu/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/linkage.h arch/m68knommu/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/local.h arch/sparc/include/asm/idprom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/idprom.h arch/m68knommu/include/asm/m520xsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m520xsim.h arch/m68knommu/include/asm/m523xsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m523xsim.h arch/m68knommu/include/asm/m5249sim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m5249sim.h arch/m68knommu/include/asm/m5272sim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m5272sim.h arch/m68knommu/include/asm/m527xsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m527xsim.h arch/m68knommu/include/asm/m528xsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m528xsim.h arch/m68knommu/include/asm/m5307sim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m5307sim.h arch/m68knommu/include/asm/m532xsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m532xsim.h arch/m68knommu/include/asm/m5407sim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m5407sim.h arch/m68knommu/include/asm/m68360.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m68360.h arch/m68knommu/include/asm/m68360_enet.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m68360_enet.h arch/m68knommu/include/asm/m68360_pram.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m68360_pram.h arch/m68knommu/include/asm/m68360_quicc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m68360_quicc.h arch/m68knommu/include/asm/m68360_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/m68360_regs.h arch/m68knommu/include/asm/machdep.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/machdep.h arch/m68knommu/include/asm/math-emu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/math-emu.h arch/m68knommu/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mc146818rtc.h arch/m68knommu/include/asm/mcfcache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfcache.h arch/m68knommu/include/asm/mcfdma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfdma.h arch/m68knommu/include/asm/mcfmbus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfmbus.h arch/m68knommu/include/asm/mcfne.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfne.h arch/m68knommu/include/asm/mcfpci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfpci.h arch/m68knommu/include/asm/mcfpit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfpit.h arch/m68knommu/include/asm/mcfsim.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfsim.h arch/m68knommu/include/asm/mcfsmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfsmc.h arch/m68knommu/include/asm/mcftimer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcftimer.h arch/m68knommu/include/asm/mcfuart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfuart.h arch/m68knommu/include/asm/mcfwdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mcfwdebug.h arch/m68knommu/include/asm/md.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/md.h arch/m68knommu/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mman.h arch/m68knommu/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mmu.h arch/m68knommu/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mmu_context.h arch/m68knommu/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/module.h arch/m68knommu/include/asm/movs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/movs.h arch/m68knommu/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/msgbuf.h arch/m68knommu/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/mutex.h arch/m68knommu/include/asm/nettel.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/nettel.h arch/m68knommu/include/asm/openprom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/openprom.h arch/m68knommu/include/asm/oplib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/oplib.h arch/m68knommu/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/page.h arch/m68knommu/include/asm/page_offset.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/page_offset.h arch/m68knommu/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/param.h arch/m68knommu/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/pci.h arch/m68knommu/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/percpu.h arch/m68knommu/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/pgalloc.h arch/m68knommu/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/pgtable.h arch/m68knommu/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/poll.h arch/m68knommu/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/posix_types.h arch/m68knommu/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/processor.h arch/m68knommu/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/ptrace.h arch/m68knommu/include/asm/quicc_simple.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/quicc_simple.h arch/m68knommu/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/resource.h arch/m68knommu/include/asm/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/rtc.h arch/m68knommu/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/scatterlist.h arch/m68knommu/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/sections.h arch/m68knommu/include/asm/segment.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/segment.h arch/m68knommu/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/sembuf.h arch/m68knommu/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/setup.h arch/m68knommu/include/asm/shm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/shm.h arch/m68knommu/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/shmbuf.h arch/m68knommu/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/shmparam.h arch/m68knommu/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/sigcontext.h arch/m68knommu/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/siginfo.h arch/m68knommu/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/signal.h arch/m68knommu/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/smp.h arch/m68knommu/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/socket.h arch/m68knommu/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/sockios.h arch/m68knommu/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/spinlock.h arch/m68knommu/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/stat.h arch/m68knommu/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/statfs.h arch/m68knommu/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/string.h arch/m68knommu/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/system.h arch/m68knommu/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/termbits.h arch/m68knommu/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/termios.h arch/m68knommu/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/thread_info.h arch/m68knommu/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/timex.h arch/m68knommu/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/tlb.h arch/m68knommu/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/tlbflush.h arch/m68knommu/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/topology.h arch/m68knommu/include/asm/traps.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/traps.h arch/m68knommu/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/types.h arch/m68knommu/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/uaccess.h arch/m68knommu/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/ucontext.h arch/m68knommu/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/unaligned.h arch/m68knommu/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/unistd.h arch/m68knommu/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/include/asm/user.h arch/powerpc/sysdev/fsl_msi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_msi.h arch/powerpc/sysdev/fsl_msi.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_msi.c arch/powerpc/sysdev/fsl_gtm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_gtm.c firmware/emi62/spdif.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/emi62/spdif.HEX firmware/ess/maestro3_assp_kernel.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ess/maestro3_assp_kernel.fw.ihex firmware/ess/maestro3_assp_minisrc.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ess/maestro3_assp_minisrc.fw.ihex firmware/ihex2fw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ihex2fw.c arch/sparc/include/asm/ide.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ide.h arch/m68knommu/platform/coldfire/dma_timer.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/platform/coldfire/dma_timer.c arch/sparc/include/asm/hypervisor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hypervisor.h arch/sparc/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hw_irq.h firmware/intelliport2.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/intelliport2.bin.ihex arch/sparc/include/asm/hvtramp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hvtramp.h firmware/kaweth/new_code.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/kaweth/new_code.bin.ihex arch/sparc/include/asm/hugetlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hugetlb.h firmware/kaweth/new_code_fix.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/kaweth/new_code_fix.bin.ihex firmware/kaweth/trigger_code.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/kaweth/trigger_code.bin.ihex arch/sparc/include/asm/highmem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/highmem.h arch/sparc/include/asm/head_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/head_64.h lib/show_mem.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/show_mem.c firmware/kaweth/trigger_code_fix.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/kaweth/trigger_code_fix.bin.ihex arch/sparc/include/asm/head_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/head_32.h arch/sparc/include/asm/head.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/head.h firmware/keyspan/mpr.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/mpr.HEX firmware/keyspan/usa18x.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa18x.HEX arch/sparc/include/asm/hardirq_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hardirq_64.h arch/sparc/include/asm/hardirq_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hardirq_32.h arch/powerpc/sysdev/6xx-suspend.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/6xx-suspend.S drivers/net/wireless/ath9k/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/Kconfig drivers/net/wireless/ath9k/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/Makefile drivers/net/wireless/ath9k/ath9k.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/ath9k.h drivers/net/wireless/ath9k/beacon.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/beacon.c drivers/net/wireless/ath9k/core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/core.c drivers/net/wireless/ath9k/core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/core.h drivers/net/wireless/ath9k/hw.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/hw.c firmware/keyspan/usa19.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa19.HEX arch/mips/cobalt/lcd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/cobalt/lcd.c firmware/keyspan/usa19qi.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa19qi.HEX drivers/net/wireless/ath9k/hw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/hw.h drivers/net/wireless/ath9k/initvals.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/initvals.h drivers/net/wireless/ath9k/main.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/main.c drivers/net/wireless/ath9k/phy.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/phy.c drivers/net/wireless/ath9k/phy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/phy.h drivers/net/wireless/ath9k/rc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/rc.c drivers/net/wireless/ath9k/rc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/rc.h drivers/net/wireless/ath9k/recv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/recv.c drivers/net/wireless/ath9k/reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/reg.h drivers/net/wireless/ath9k/regd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/regd.c drivers/net/wireless/ath9k/regd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/regd.h drivers/net/wireless/ath9k/regd_common.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/regd_common.h drivers/net/wireless/ath9k/xmit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath9k/xmit.c arch/sparc/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/hardirq.h include/linux/i2c/at24.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c/at24.h include/linux/i2c/max732x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c/max732x.h drivers/hwmon/adcxx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adcxx.c drivers/hwmon/ad7414.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ad7414.c include/linux/ihex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ihex.h drivers/gpu/drm/via/via_video.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_video.c drivers/gpu/drm/via/via_verifier.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_verifier.h drivers/gpu/drm/via/via_verifier.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_verifier.c drivers/gpu/drm/via/via_mm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_mm.c drivers/gpu/drm/via/via_map.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_map.c fs/ubifs/tnc_misc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/tnc_misc.c drivers/gpu/drm/via/via_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_drv.h drivers/gpu/drm/via/via_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_drv.c drivers/gpu/drm/via/via_dmablit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_dmablit.h drivers/gpu/drm/via/via_dmablit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_dmablit.c drivers/gpu/drm/via/via_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_dma.c drivers/gpu/drm/via/via_3d_reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/via_3d_reg.h drivers/gpu/drm/via/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/via/Makefile arch/mips/configs/rb532_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/rb532_defconfig drivers/gpu/drm/tdfx/tdfx_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/tdfx/tdfx_drv.h drivers/gpu/drm/tdfx/tdfx_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/tdfx/tdfx_drv.c arch/mips/configs/rbtx49xx_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/rbtx49xx_defconfig drivers/gpu/drm/tdfx/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/tdfx/Makefile drivers/gpu/drm/sis/sis_mm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/sis/sis_mm.c drivers/gpu/drm/sis/sis_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/sis/sis_drv.h drivers/gpu/drm/sis/sis_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/sis/sis_drv.c drivers/gpu/drm/sis/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/sis/Makefile drivers/gpu/drm/savage/savage_state.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/savage/savage_state.c drivers/gpu/drm/savage/savage_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/savage/savage_drv.h drivers/gpu/drm/savage/savage_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/savage/savage_drv.c drivers/gpu/drm/savage/savage_bci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/savage/savage_bci.c drivers/gpu/drm/savage/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/savage/Makefile drivers/gpu/drm/radeon/radeon_state.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_state.c drivers/gpu/drm/radeon/radeon_microcode.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_microcode.h drivers/gpu/drm/radeon/radeon_mem.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_mem.c drivers/gpu/drm/radeon/radeon_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_irq.c drivers/gpu/drm/radeon/radeon_ioc32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_ioc32.c firmware/keyspan/usa19qw.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa19qw.HEX firmware/keyspan/usa19w.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa19w.HEX firmware/keyspan/usa28.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa28.HEX firmware/keyspan/usa28x.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa28x.HEX firmware/keyspan/usa28xa.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa28xa.HEX lib/syscall.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/syscall.c firmware/keyspan/usa28xb.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa28xb.HEX firmware/keyspan/usa49w.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa49w.HEX firmware/keyspan/usa49wlc.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan/usa49wlc.HEX arch/mips/kernel/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/.gitignore firmware/keyspan_pda/keyspan_pda.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan_pda/keyspan_pda.HEX arch/powerpc/platforms/pseries/cmm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/cmm.c drivers/gpu/drm/radeon/radeon_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_drv.h firmware/keyspan_pda/keyspan_pda.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan_pda/keyspan_pda.S firmware/keyspan_pda/xircom_pgs.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan_pda/xircom_pgs.HEX firmware/keyspan_pda/xircom_pgs.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/keyspan_pda/xircom_pgs.S drivers/gpu/drm/radeon/radeon_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_drv.c drivers/gpu/drm/radeon/radeon_cp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/radeon_cp.c drivers/gpu/drm/radeon/r300_reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/r300_reg.h firmware/korg/k1212.dsp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/korg/k1212.dsp.ihex firmware/sb16/alaw_main.csp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/sb16/alaw_main.csp.ihex firmware/sb16/ima_adpcm_capture.csp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/sb16/ima_adpcm_capture.csp.ihex firmware/sb16/ima_adpcm_init.csp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/sb16/ima_adpcm_init.csp.ihex drivers/gpu/drm/radeon/r300_cmdbuf.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/r300_cmdbuf.c firmware/sb16/ima_adpcm_playback.csp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/sb16/ima_adpcm_playback.csp.ihex arch/mips/kernel/kgdb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/kgdb.c firmware/sb16/mulaw_main.csp.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/sb16/mulaw_main.csp.ihex drivers/gpu/drm/radeon/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/radeon/Makefile drivers/gpu/drm/r128/r128_state.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_state.c firmware/ti_3410.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ti_3410.fw.ihex drivers/gpu/drm/r128/r128_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_irq.c firmware/ti_5052.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ti_5052.fw.ihex firmware/tr_smctr.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/tr_smctr.bin.ihex firmware/ttusb-budget/dspbootcode.bin.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/ttusb-budget/dspbootcode.bin.ihex firmware/vicam/firmware.H16 - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/vicam/firmware.H16 firmware/whiteheat.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/whiteheat.HEX firmware/whiteheat_loader.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/whiteheat_loader.HEX drivers/gpu/drm/r128/r128_ioc32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_ioc32.c drivers/gpu/drm/r128/r128_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_drv.h firmware/whiteheat_loader_debug.HEX - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/whiteheat_loader_debug.HEX firmware/yamaha/ds1_ctrl.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/yamaha/ds1_ctrl.fw.ihex firmware/yamaha/ds1_dsp.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/yamaha/ds1_dsp.fw.ihex firmware/yamaha/ds1e_ctrl.fw.ihex - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/firmware/yamaha/ds1e_ctrl.fw.ihex drivers/gpu/drm/r128/r128_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_drv.c arch/sh/include/asm/snapgear.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/snapgear.h arch/powerpc/platforms/embedded6xx/c2k.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/embedded6xx/c2k.c arch/sh/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/socket.h drivers/gpu/drm/r128/r128_cce.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/r128_cce.c arch/sh/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sockios.h drivers/gpu/drm/r128/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/r128/Makefile arch/sh/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/sparsemem.h arch/sh/include/asm/spi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/spi.h drivers/gpu/drm/mga/mga_warp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_warp.c arch/sh/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/spinlock.h arch/sh/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/spinlock_types.h arch/sh/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/stat.h drivers/gpu/drm/mga/mga_ucode.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_ucode.h arch/sh/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/statfs.h drivers/gpu/drm/mga/mga_state.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_state.c arch/sh/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/string.h arch/sh/include/asm/string_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/string_32.h arch/sh/include/asm/string_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/string_64.h arch/sh/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/system.h drivers/gpu/drm/mga/mga_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_irq.c arch/sh/include/asm/system_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/system_32.h arch/sh/include/asm/system_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/system_64.h arch/sh/include/asm/systemh7751.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/systemh7751.h arch/sh/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/termbits.h drivers/gpu/drm/mga/mga_ioc32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_ioc32.c drivers/gpu/drm/mga/mga_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_drv.h arch/sh/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/termios.h drivers/gpu/drm/mga/mga_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_drv.c arch/sh/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/thread_info.h arch/sh/include/asm/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/timer.h arch/powerpc/platforms/cell/cpufreq_spudemand.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/cpufreq_spudemand.c arch/sh/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/timex.h arch/sh/include/asm/titan.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/titan.h arch/powerpc/platforms/cell/cbe_powerbutton.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/cbe_powerbutton.c arch/sh/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/tlb.h arch/sh/include/asm/tlb_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/tlb_64.h drivers/gpu/drm/mga/mga_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/mga_dma.c arch/sh/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/tlbflush.h arch/sh/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/topology.h drivers/gpu/drm/mga/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/mga/Makefile drivers/gpu/drm/i915/i915_mem.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_mem.c drivers/gpu/drm/i915/i915_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_irq.c arch/mips/mti-malta/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/Makefile arch/mips/mti-malta/malta-amon.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-amon.c arch/mips/mti-malta/malta-cmdline.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-cmdline.c arch/mips/mti-malta/malta-console.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-console.c arch/mips/mti-malta/malta-display.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-display.c arch/mips/mti-malta/malta-init.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-init.c arch/mips/mti-malta/malta-int.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-int.c arch/mips/mti-malta/malta-memory.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-memory.c arch/mips/mti-malta/malta-mtd.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-mtd.c arch/mips/mti-malta/malta-pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-pci.c arch/mips/mti-malta/malta-platform.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-platform.c arch/mips/mti-malta/malta-reset.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-reset.c arch/mips/mti-malta/malta-setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-setup.c arch/mips/mti-malta/malta-smtc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-smtc.c arch/mips/mti-malta/malta-time.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mti-malta/malta-time.c drivers/gpu/drm/i915/i915_ioc32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_ioc32.c drivers/gpu/drm/i915/i915_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_drv.h drivers/gpu/drm/i915/i915_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_drv.c drivers/gpu/drm/i915/i915_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/i915_dma.c drivers/gpu/drm/i915/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i915/Makefile drivers/gpu/drm/i830/i830_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i830/i830_irq.c drivers/gpu/drm/i830/i830_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i830/i830_drv.h drivers/gpu/drm/i830/i830_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i830/i830_drv.c arch/sh/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/types.h drivers/gpu/drm/i830/i830_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i830/i830_dma.c arch/sh/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/uaccess.h drivers/gpu/drm/i830/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i830/Makefile arch/mips/pci/fixup-rbtx4938.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-rbtx4938.c arch/mips/pci/fixup-rc32434.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-rc32434.c drivers/gpu/drm/i810/i810_drv.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i810/i810_drv.h drivers/gpu/drm/i810/i810_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i810/i810_drv.c drivers/gpu/drm/i810/i810_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i810/i810_dma.c arch/mips/pci/ops-rc32434.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/ops-rc32434.c drivers/gpu/drm/i810/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/i810/Makefile drivers/gpu/drm/drm_vm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_vm.c drivers/gpu/drm/drm_sysfs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_sysfs.c drivers/gpu/drm/drm_stub.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_stub.c arch/mips/pci/pci-bcm47xx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-bcm47xx.c arch/sh/include/asm/uaccess_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/uaccess_32.h drivers/gpu/drm/drm_sman.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_sman.c arch/sh/include/asm/uaccess_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/uaccess_64.h arch/mips/pci/pci-rc32434.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-rc32434.c arch/sh/include/asm/ubc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ubc.h arch/mips/pci/pci-tx4927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-tx4927.c arch/mips/pci/pci-tx4938.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-tx4938.c fs/bio-integrity.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bio-integrity.c drivers/gpu/drm/drm_scatter.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_scatter.c drivers/gpu/drm/drm_proc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_proc.c drivers/gpu/drm/drm_pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_pci.c drivers/gpu/drm/drm_mm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_mm.c drivers/gpu/drm/drm_memory.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_memory.c drivers/gpu/drm/drm_lock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_lock.c arch/mips/rb532/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/Makefile arch/mips/rb532/devices.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/devices.c arch/mips/rb532/gpio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/gpio.c arch/mips/rb532/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/irq.c arch/mips/rb532/prom.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/prom.c arch/mips/rb532/serial.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/serial.c arch/mips/rb532/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/setup.c arch/mips/rb532/time.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/rb532/time.c arch/sh/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/ucontext.h drivers/gpu/drm/drm_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_irq.c arch/sh/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/unaligned.h arch/powerpc/platforms/86xx/pic.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/pic.c arch/sh/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/unistd.h drivers/gpu/drm/drm_ioctl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_ioctl.c arch/sh/include/asm/unistd_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/unistd_32.h arch/sh/include/asm/unistd_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/unistd_64.h arch/sh/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/user.h drivers/gpu/drm/drm_ioc32.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_ioc32.c drivers/gpu/drm/drm_hashtab.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_hashtab.c arch/sh/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/vga.h drivers/gpu/drm/drm_fops.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_fops.c arch/sh/include/asm/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/watchdog.h arch/sh/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/asm/xor.h arch/sh/include/cpu-common/cpu/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/addrspace.h arch/sh/include/cpu-common/cpu/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/cacheflush.h arch/mips/sibyte/swarm/swarm-i2c.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/swarm/swarm-i2c.c arch/sh/include/cpu-common/cpu/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/mmu_context.h drivers/gpu/drm/drm_drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_drv.c arch/sh/include/cpu-common/cpu/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/rtc.h drivers/gpu/drm/drm_drawable.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_drawable.c arch/sh/include/cpu-common/cpu/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/sigcontext.h arch/powerpc/platforms/85xx/mpc8536_ds.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/mpc8536_ds.c mm/mm_init.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mm_init.c arch/sh/include/cpu-common/cpu/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-common/cpu/timer.h arch/sh/include/cpu-sh2/cpu/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2/cpu/cache.h arch/sh/include/cpu-sh2/cpu/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2/cpu/dma.h arch/powerpc/platforms/83xx/suspend.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/suspend.c drivers/gpu/drm/drm_dma.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_dma.c drivers/gpu/drm/drm_context.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_context.c drivers/gpu/drm/drm_bufs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_bufs.c drivers/gpu/drm/drm_auth.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_auth.c drivers/gpu/drm/drm_agpsupport.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/drm_agpsupport.c drivers/gpu/drm/ati_pcigart.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/ati_pcigart.c drivers/gpu/drm/README.drm - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/README.drm drivers/gpu/drm/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/Makefile drivers/gpu/drm/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/drm/Kconfig drivers/gpu/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpu/Makefile arch/mips/txx9/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/Kconfig arch/mips/txx9/generic/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/Makefile arch/mips/txx9/generic/irq_tx3927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/irq_tx3927.c arch/mips/txx9/generic/irq_tx4927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/irq_tx4927.c arch/mips/txx9/generic/irq_tx4938.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/irq_tx4938.c arch/mips/txx9/generic/mem_tx4927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/mem_tx4927.c arch/mips/txx9/generic/pci.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/pci.c arch/mips/txx9/generic/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/setup.c arch/mips/txx9/generic/setup_tx3927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/setup_tx3927.c arch/mips/txx9/generic/setup_tx4927.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/setup_tx4927.c arch/mips/txx9/generic/setup_tx4938.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/setup_tx4938.c arch/mips/txx9/generic/smsc_fdc37m81x.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/generic/smsc_fdc37m81x.c arch/mips/txx9/jmr3927/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/jmr3927/Makefile arch/mips/txx9/jmr3927/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/jmr3927/irq.c arch/mips/txx9/jmr3927/prom.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/jmr3927/prom.c arch/mips/txx9/jmr3927/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/jmr3927/setup.c arch/mips/txx9/rbtx4927/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4927/Makefile arch/mips/txx9/rbtx4927/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4927/irq.c arch/mips/txx9/rbtx4927/prom.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4927/prom.c arch/mips/txx9/rbtx4927/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4927/setup.c arch/mips/txx9/rbtx4938/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4938/Makefile arch/mips/txx9/rbtx4938/irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4938/irq.c arch/mips/txx9/rbtx4938/prom.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4938/prom.c arch/mips/txx9/rbtx4938/setup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4938/setup.c arch/mips/txx9/rbtx4938/spi_eeprom.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/txx9/rbtx4938/spi_eeprom.c drivers/gpio/max732x.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/max732x.c drivers/gpio/max7301.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/max7301.c drivers/gpio/bt8xxgpio.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/bt8xxgpio.c drivers/firmware/memmap.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/memmap.c include/linux/ip_vs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ip_vs.h arch/sparc/include/asm/futex_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/futex_64.h arch/sparc/include/asm/futex_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/futex_32.h drivers/edac/i5100_edac.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/i5100_edac.c drivers/dma/mv_xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/mv_xor.h drivers/dma/mv_xor.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/mv_xor.c drivers/net/wireless/iwlwifi/iwl-5000-hw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-5000-hw.h include/linux/leds-pca9532.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/leds-pca9532.h drivers/net/wireless/iwlwifi/iwl-5000.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-5000.c drivers/dma/dw_dmac_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/dw_dmac_regs.h drivers/dma/dw_dmac.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/dw_dmac.c drivers/dma/dmatest.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/dmatest.c arch/powerpc/platforms/83xx/suspend-asm.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/suspend-asm.S mm/mmu_notifier.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mmu_notifier.c arch/sh/include/cpu-sh2/cpu/freq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2/cpu/freq.h arch/sh/include/cpu-sh2/cpu/ubc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2/cpu/ubc.h arch/sh/include/cpu-sh2/cpu/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2/cpu/watchdog.h arch/sh/include/cpu-sh2a/cpu/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/addrspace.h arch/powerpc/platforms/83xx/mpc836x_rdk.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc836x_rdk.c arch/sh/include/cpu-sh2a/cpu/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/cache.h arch/sh/include/cpu-sh2a/cpu/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/cacheflush.h drivers/net/wireless/iwlwifi/iwl-agn-rs.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-agn-rs.c drivers/net/wireless/iwlwifi/iwl-agn-rs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-agn-rs.h drivers/net/wireless/iwlwifi/iwl-agn.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-agn.c drivers/net/wireless/iwlwifi/iwl-calib.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-calib.c drivers/net/wireless/iwlwifi/iwl-calib.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-calib.h drivers/crypto/talitos.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/talitos.h arch/powerpc/boot/cuboot-c2k.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/cuboot-c2k.c arch/powerpc/boot/cuboot-sam440ep.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/cuboot-sam440ep.c drivers/crypto/talitos.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/talitos.c arch/powerpc/boot/dts/asp834x-redboot.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/asp834x-redboot.dts drivers/crypto/ixp4xx_crypto.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/ixp4xx_crypto.c arch/powerpc/boot/dts/c2k.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/c2k.dts drivers/net/wireless/iwlwifi/iwl-dev.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-dev.h include/linux/mISDNdsp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mISDNdsp.h arch/sparc/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/futex.h arch/sparc/include/asm/ftrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ftrace.h drivers/net/wireless/iwlwifi/iwl-fh.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-fh.h arch/sparc/include/asm/fpumacro.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fpumacro.h include/linux/mISDNhw.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mISDNhw.h include/linux/mISDNif.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mISDNif.h arch/sparc/include/asm/floppy_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/floppy_64.h arch/sparc/include/asm/floppy_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/floppy_32.h arch/sparc/include/asm/floppy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/floppy.h drivers/net/wireless/iwlwifi/iwl-power.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-power.c drivers/net/wireless/iwlwifi/iwl-power.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-power.h fs/ubifs/xattr.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/xattr.c fs/ubifs/ubifs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/ubifs.h fs/ubifs/ubifs-media.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/ubifs-media.h arch/sparc/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cache.h fs/ubifs/tnc_commit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/tnc_commit.c fs/ubifs/tnc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/tnc.c fs/ubifs/super.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/super.c fs/ubifs/shrinker.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/shrinker.c arch/powerpc/boot/dts/mpc836x_rdk.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc836x_rdk.dts fs/ubifs/scan.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/scan.c fs/ubifs/sb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/sb.c fs/ubifs/replay.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/replay.c fs/ubifs/recovery.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/recovery.c fs/ubifs/orphan.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/orphan.c fs/ubifs/misc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/misc.h arch/powerpc/boot/dts/mpc8536ds.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8536ds.dts fs/ubifs/master.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/master.c fs/ubifs/lpt_commit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/lpt_commit.c fs/ubifs/lpt.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/lpt.c fs/ubifs/lprops.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/lprops.c fs/ubifs/log.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/log.c fs/ubifs/key.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/key.h fs/ubifs/journal.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/journal.c fs/ubifs/ioctl.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/ioctl.c fs/ubifs/io.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/io.c fs/ubifs/gc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/gc.c fs/ubifs/find.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/find.c fs/ubifs/file.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/file.c fs/ubifs/dir.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/dir.c fs/ubifs/debug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/debug.h arch/powerpc/boot/dts/sam440ep.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sam440ep.dts fs/ubifs/debug.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/debug.c fs/ubifs/compress.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/compress.c fs/ubifs/commit.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/commit.c fs/ubifs/budget.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/budget.c fs/ubifs/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/Makefile fs/ubifs/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ubifs/Kconfig arch/sparc/include/asm/fixmap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fixmap.h drivers/char/tty_ldisc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tty_ldisc.c arch/sparc/include/asm/fhc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fhc.h arch/sparc/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fcntl.h drivers/net/wireless/iwlwifi/iwl-rx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-rx.c arch/powerpc/boot/dts/tqm8548-bigflash.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8548-bigflash.dts arch/powerpc/boot/dts/tqm8548.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8548.dts drivers/net/wireless/iwlwifi/iwl-scan.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-scan.c arch/sparc/include/asm/fbio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fbio.h arch/powerpc/boot/dts/virtex440-ml507.dts - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/virtex440-ml507.dts net/bridge/netfilter/ebt_ip6.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/ebt_ip6.c arch/sparc/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/fb.h arch/sparc/include/asm/estate.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/estate.h arch/sparc/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/errno.h arch/sparc/include/asm/envctrl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/envctrl.h arch/powerpc/boot/redboot-83xx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/redboot-83xx.c arch/sparc/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/emergency-restart.h arch/powerpc/boot/virtex.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/virtex.c arch/sparc/include/asm/elf_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/elf_64.h arch/sparc/include/asm/elf_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/elf_32.h arch/sparc/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/elf.h arch/sparc/include/asm/eeprom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/eeprom.h arch/sparc/include/asm/ecc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ecc.h arch/sparc/include/asm/ebus_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ebus_64.h arch/sparc/include/asm/ebus_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ebus_32.h arch/sparc/include/asm/ebus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/ebus.h arch/sparc/include/asm/dma_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma_64.h arch/sparc/include/asm/dma_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma_32.h arch/sparc/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma.h arch/sparc/include/asm/dma-mapping_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma-mapping_64.h arch/powerpc/configs/44x/sam440ep_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/sam440ep_defconfig arch/sparc/include/asm/dma-mapping_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma-mapping_32.h arch/sparc/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dma-mapping.h arch/powerpc/configs/44x/virtex5_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/virtex5_defconfig arch/sparc/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/div64.h arch/powerpc/configs/83xx/asp8347_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/asp8347_defconfig arch/sparc/include/asm/display7seg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/display7seg.h arch/sparc/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/device.h arch/sparc/include/asm/delay_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/delay_64.h arch/sparc/include/asm/delay_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/delay_32.h arch/sparc/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/delay.h arch/sparc/include/asm/dcu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dcu.h arch/sparc/include/asm/dcr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/dcr.h arch/sparc/include/asm/cypress.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cypress.h arch/powerpc/configs/83xx/mpc836x_rdk_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig fs/proc/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/Kconfig arch/sparc/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/current.h arch/sparc/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cputime.h arch/sparc/include/asm/cpudata_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cpudata_64.h arch/powerpc/configs/85xx/mpc8536_ds_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8536_ds_defconfig arch/sparc/include/asm/cpudata_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cpudata_32.h arch/sparc/include/asm/cpudata.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cpudata.h arch/sparc/include/asm/contregs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/contregs.h arch/sparc/include/asm/compat_signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/compat_signal.h fs/omfs/omfs_fs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/omfs_fs.h fs/omfs/omfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/omfs.h fs/omfs/inode.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/inode.c fs/omfs/file.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/file.c fs/omfs/dir.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/dir.c fs/omfs/bitmap.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/bitmap.c fs/omfs/Makefile - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/omfs/Makefile arch/powerpc/configs/85xx/tqm8548_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/tqm8548_defconfig arch/sparc/include/asm/compat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/compat.h arch/sparc/include/asm/cmt.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cmt.h arch/sparc/include/asm/clock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/clock.h arch/powerpc/configs/c2k_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/c2k_defconfig arch/sparc/include/asm/chmctrl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/chmctrl.h arch/sparc/include/asm/checksum_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/checksum_64.h arch/sparc/include/asm/checksum_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/checksum_32.h arch/sparc/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/checksum.h arch/sparc/include/asm/chafsr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/chafsr.h arch/sparc/include/asm/cacheflush_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cacheflush_64.h arch/sparc/include/asm/cacheflush_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cacheflush_32.h arch/sparc/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/cacheflush.h arch/powerpc/include/asm/mmu-hash32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-hash32.h include/linux/mfd/core.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/core.h include/linux/mfd/t7l66xb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/t7l66xb.h include/linux/mfd/tc6387xb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/tc6387xb.h include/linux/mfd/tc6393xb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/tc6393xb.h include/linux/mfd/tmio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/tmio.h drivers/net/wireless/iwlwifi/iwl-tx.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-tx.c arch/sparc/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/byteorder.h arch/sparc/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bugs.h arch/sparc/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bug.h arch/sparc/include/asm/btfixup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/btfixup.h arch/powerpc/configs/ppc6xx_defconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ppc6xx_defconfig net/8021q/vlan_gvrp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan_gvrp.c arch/sparc/include/asm/bpp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bpp.h arch/sparc/include/asm/bitops_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bitops_64.h arch/sparc/include/asm/bitops_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bitops_32.h net/8021q/vlan_core.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan_core.c arch/sparc/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bitops.h arch/powerpc/include/asm/8253pit.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/8253pit.h arch/powerpc/include/asm/8xx_immap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/8xx_immap.h arch/powerpc/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/Kbuild arch/powerpc/include/asm/a.out.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/a.out.h arch/powerpc/include/asm/abs_addr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/abs_addr.h arch/powerpc/include/asm/agp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/agp.h arch/powerpc/include/asm/asm-compat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/asm-compat.h arch/powerpc/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/atomic.h arch/powerpc/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/auxvec.h arch/powerpc/include/asm/backlight.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/backlight.h arch/powerpc/include/asm/bitops.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/bitops.h arch/powerpc/include/asm/bootx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/bootx.h arch/powerpc/include/asm/btext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/btext.h arch/powerpc/include/asm/bug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/bug.h arch/powerpc/include/asm/bugs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/bugs.h arch/powerpc/include/asm/byteorder.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/byteorder.h arch/powerpc/include/asm/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cache.h arch/powerpc/include/asm/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cacheflush.h arch/powerpc/include/asm/cell-pmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cell-pmu.h arch/powerpc/include/asm/cell-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cell-regs.h arch/powerpc/include/asm/checksum.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/checksum.h arch/powerpc/include/asm/clk_interface.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/clk_interface.h arch/powerpc/include/asm/code-patching.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/code-patching.h arch/powerpc/include/asm/compat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/compat.h arch/powerpc/include/asm/cpm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cpm.h arch/powerpc/include/asm/cpm1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cpm1.h arch/powerpc/include/asm/cpm2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cpm2.h arch/powerpc/include/asm/cputable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cputable.h arch/powerpc/include/asm/cputhreads.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cputhreads.h arch/powerpc/include/asm/cputime.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/cputime.h arch/powerpc/include/asm/current.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/current.h arch/powerpc/include/asm/dbdma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dbdma.h arch/powerpc/include/asm/dcr-generic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dcr-generic.h arch/powerpc/include/asm/dcr-mmio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dcr-mmio.h arch/powerpc/include/asm/dcr-native.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dcr-native.h arch/powerpc/include/asm/dcr-regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dcr-regs.h arch/powerpc/include/asm/dcr.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dcr.h arch/powerpc/include/asm/delay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/delay.h arch/powerpc/include/asm/device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/device.h arch/powerpc/include/asm/div64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/div64.h arch/powerpc/include/asm/dma-mapping.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dma-mapping.h arch/powerpc/include/asm/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/dma.h arch/powerpc/include/asm/edac.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/edac.h arch/powerpc/include/asm/eeh.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/eeh.h arch/powerpc/include/asm/eeh_event.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/eeh_event.h arch/powerpc/include/asm/elf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/elf.h arch/powerpc/include/asm/emergency-restart.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/emergency-restart.h arch/powerpc/include/asm/errno.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/errno.h arch/powerpc/include/asm/exception.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/exception.h arch/powerpc/include/asm/fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fb.h arch/powerpc/include/asm/fcntl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fcntl.h arch/powerpc/include/asm/feature-fixups.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/feature-fixups.h arch/powerpc/include/asm/firmware.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/firmware.h arch/powerpc/include/asm/fixmap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fixmap.h arch/powerpc/include/asm/floppy.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/floppy.h arch/powerpc/include/asm/fs_pd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fs_pd.h arch/powerpc/include/asm/fsl_gtm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fsl_gtm.h arch/powerpc/include/asm/fsl_lbc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/fsl_lbc.h arch/powerpc/include/asm/ftrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ftrace.h arch/powerpc/include/asm/futex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/futex.h arch/powerpc/include/asm/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/gpio.h arch/powerpc/include/asm/grackle.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/grackle.h arch/powerpc/include/asm/hardirq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hardirq.h arch/powerpc/include/asm/heathrow.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/heathrow.h arch/powerpc/include/asm/highmem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/highmem.h arch/powerpc/include/asm/hugetlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hugetlb.h arch/powerpc/include/asm/hvcall.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hvcall.h arch/powerpc/include/asm/hvconsole.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hvconsole.h arch/powerpc/include/asm/hvcserver.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hvcserver.h arch/powerpc/include/asm/hw_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hw_irq.h arch/powerpc/include/asm/hydra.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/hydra.h arch/powerpc/include/asm/i8259.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/i8259.h arch/powerpc/include/asm/ibmebus.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ibmebus.h arch/powerpc/include/asm/ide.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ide.h arch/powerpc/include/asm/immap_86xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/immap_86xx.h arch/powerpc/include/asm/immap_cpm2.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/immap_cpm2.h arch/powerpc/include/asm/immap_qe.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/immap_qe.h arch/powerpc/include/asm/io-defs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/io-defs.h arch/powerpc/include/asm/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/io.h arch/powerpc/include/asm/ioctl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ioctl.h arch/powerpc/include/asm/ioctls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ioctls.h arch/powerpc/include/asm/iommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iommu.h arch/powerpc/include/asm/ipcbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ipcbuf.h arch/powerpc/include/asm/ipic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ipic.h arch/powerpc/include/asm/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/irq.h arch/powerpc/include/asm/irq_regs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/irq_regs.h arch/powerpc/include/asm/irqflags.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/irqflags.h arch/powerpc/include/asm/iseries/alpaca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/alpaca.h arch/powerpc/include/asm/iseries/hv_call.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_call.h arch/powerpc/include/asm/iseries/hv_call_event.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_call_event.h arch/powerpc/include/asm/iseries/hv_call_sc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_call_sc.h arch/powerpc/include/asm/iseries/hv_call_xm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_call_xm.h arch/powerpc/include/asm/iseries/hv_lp_config.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_lp_config.h arch/powerpc/include/asm/iseries/hv_lp_event.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_lp_event.h arch/powerpc/include/asm/iseries/hv_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/hv_types.h arch/powerpc/include/asm/iseries/iommu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/iommu.h arch/powerpc/include/asm/iseries/it_lp_queue.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/it_lp_queue.h arch/powerpc/include/asm/iseries/lpar_map.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/lpar_map.h arch/powerpc/include/asm/iseries/mf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/mf.h arch/powerpc/include/asm/iseries/vio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/iseries/vio.h arch/powerpc/include/asm/kdebug.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kdebug.h arch/powerpc/include/asm/kdump.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kdump.h arch/powerpc/include/asm/kexec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kexec.h arch/powerpc/include/asm/keylargo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/keylargo.h arch/powerpc/include/asm/kgdb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kgdb.h arch/powerpc/include/asm/kmap_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kmap_types.h arch/powerpc/include/asm/kprobes.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kprobes.h arch/powerpc/include/asm/kvm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kvm.h arch/powerpc/include/asm/kvm_asm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kvm_asm.h arch/powerpc/include/asm/kvm_host.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kvm_host.h arch/powerpc/include/asm/kvm_para.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kvm_para.h arch/powerpc/include/asm/kvm_ppc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/kvm_ppc.h arch/powerpc/include/asm/libata-portmap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/libata-portmap.h arch/powerpc/include/asm/linkage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/linkage.h arch/powerpc/include/asm/lmb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/lmb.h arch/powerpc/include/asm/local.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/local.h arch/powerpc/include/asm/lppaca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/lppaca.h arch/powerpc/include/asm/lv1call.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/lv1call.h arch/powerpc/include/asm/machdep.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/machdep.h arch/powerpc/include/asm/macio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/macio.h arch/powerpc/include/asm/mc146818rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mc146818rtc.h arch/powerpc/include/asm/mediabay.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mediabay.h arch/powerpc/include/asm/mman.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mman.h arch/powerpc/include/asm/mmu-40x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-40x.h arch/powerpc/include/asm/mmu-44x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-44x.h arch/powerpc/include/asm/mmu-8xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-8xx.h arch/powerpc/include/asm/mmu-fsl-booke.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-fsl-booke.h arch/powerpc/include/asm/ps3av.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ps3av.h arch/powerpc/include/asm/mmu-hash64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu-hash64.h arch/powerpc/include/asm/mmu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu.h arch/powerpc/include/asm/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmu_context.h arch/powerpc/include/asm/mmzone.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mmzone.h arch/powerpc/include/asm/module.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/module.h arch/powerpc/include/asm/mpc512x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc512x.h arch/powerpc/include/asm/mpc52xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc52xx.h arch/powerpc/include/asm/mpc52xx_psc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc52xx_psc.h arch/powerpc/include/asm/mpc6xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc6xx.h arch/powerpc/include/asm/mpc8260.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc8260.h arch/powerpc/include/asm/mpc86xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc86xx.h arch/powerpc/include/asm/mpc8xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpc8xx.h arch/powerpc/include/asm/mpic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mpic.h arch/powerpc/include/asm/msgbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/msgbuf.h arch/powerpc/include/asm/mutex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/mutex.h arch/powerpc/include/asm/nvram.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/nvram.h arch/powerpc/include/asm/of_device.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/of_device.h arch/powerpc/include/asm/of_platform.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/of_platform.h arch/powerpc/include/asm/ohare.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ohare.h arch/powerpc/include/asm/oprofile_impl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/oprofile_impl.h arch/powerpc/include/asm/pSeries_reconfig.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pSeries_reconfig.h arch/powerpc/include/asm/paca.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/paca.h arch/powerpc/include/asm/page.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/page.h arch/powerpc/include/asm/page_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/page_32.h arch/powerpc/include/asm/page_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/page_64.h arch/powerpc/include/asm/param.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/param.h arch/powerpc/include/asm/parport.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/parport.h arch/powerpc/include/asm/pasemi_dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pasemi_dma.h arch/powerpc/include/asm/pci-bridge.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pci-bridge.h arch/powerpc/include/asm/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pci.h arch/powerpc/include/asm/percpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/percpu.h arch/powerpc/include/asm/pgalloc-32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgalloc-32.h arch/powerpc/include/asm/pgalloc-64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgalloc-64.h arch/powerpc/include/asm/pgalloc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgalloc.h arch/powerpc/include/asm/pgtable-4k.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgtable-4k.h arch/powerpc/include/asm/pgtable-64k.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgtable-64k.h arch/powerpc/include/asm/pgtable-ppc32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgtable-ppc32.h arch/powerpc/include/asm/pgtable-ppc64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgtable-ppc64.h arch/powerpc/include/asm/pgtable.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pgtable.h arch/powerpc/include/asm/phyp_dump.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/phyp_dump.h arch/powerpc/include/asm/pmac_feature.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pmac_feature.h arch/powerpc/include/asm/pmac_low_i2c.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pmac_low_i2c.h arch/powerpc/include/asm/pmac_pfunc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pmac_pfunc.h arch/powerpc/include/asm/pmc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pmc.h arch/powerpc/include/asm/pmi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/pmi.h arch/powerpc/include/asm/poll.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/poll.h arch/powerpc/include/asm/posix_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/posix_types.h arch/powerpc/include/asm/ppc-pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ppc-pci.h arch/powerpc/include/asm/ppc4xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ppc4xx.h arch/powerpc/include/asm/ppc_asm.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ppc_asm.h arch/powerpc/include/asm/processor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/processor.h arch/powerpc/include/asm/prom.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/prom.h arch/powerpc/include/asm/ps3.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ps3.h arch/powerpc/include/asm/user.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/user.h arch/powerpc/include/asm/ps3fb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ps3fb.h arch/powerpc/include/asm/ps3stor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ps3stor.h arch/powerpc/include/asm/ptrace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ptrace.h arch/powerpc/include/asm/qe.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/qe.h arch/powerpc/include/asm/qe_ic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/qe_ic.h arch/powerpc/include/asm/reg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/reg.h arch/powerpc/include/asm/reg_8xx.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/reg_8xx.h arch/powerpc/include/asm/reg_booke.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/reg_booke.h arch/powerpc/include/asm/reg_fsl_emb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/reg_fsl_emb.h arch/powerpc/include/asm/resource.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/resource.h arch/powerpc/include/asm/rheap.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/rheap.h arch/powerpc/include/asm/rio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/rio.h arch/powerpc/include/asm/rtas.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/rtas.h arch/powerpc/include/asm/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/rtc.h arch/powerpc/include/asm/rwsem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/rwsem.h arch/powerpc/include/asm/scatterlist.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/scatterlist.h arch/powerpc/include/asm/seccomp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/seccomp.h arch/powerpc/include/asm/sections.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sections.h arch/powerpc/include/asm/sembuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sembuf.h arch/powerpc/include/asm/serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/serial.h arch/powerpc/include/asm/setjmp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/setjmp.h arch/powerpc/include/asm/setup.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/setup.h arch/powerpc/include/asm/shmbuf.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/shmbuf.h arch/powerpc/include/asm/shmparam.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/shmparam.h arch/powerpc/include/asm/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sigcontext.h arch/powerpc/include/asm/siginfo.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/siginfo.h arch/powerpc/include/asm/signal.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/signal.h arch/powerpc/include/asm/smp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/smp.h arch/powerpc/include/asm/smu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/smu.h arch/powerpc/include/asm/socket.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/socket.h arch/powerpc/include/asm/sockios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sockios.h arch/powerpc/include/asm/sparsemem.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sparsemem.h arch/powerpc/include/asm/spinlock.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spinlock.h arch/powerpc/include/asm/spinlock_types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spinlock_types.h arch/powerpc/include/asm/spu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spu.h arch/powerpc/include/asm/spu_csa.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spu_csa.h arch/powerpc/include/asm/spu_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spu_info.h arch/powerpc/include/asm/spu_priv1.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/spu_priv1.h arch/powerpc/include/asm/sstep.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/sstep.h arch/powerpc/include/asm/stat.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/stat.h arch/powerpc/include/asm/statfs.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/statfs.h arch/powerpc/include/asm/string.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/string.h arch/powerpc/include/asm/suspend.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/suspend.h arch/powerpc/include/asm/synch.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/synch.h arch/powerpc/include/asm/syscall.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/syscall.h arch/powerpc/include/asm/syscalls.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/syscalls.h arch/powerpc/include/asm/systbl.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/systbl.h arch/powerpc/include/asm/system.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/system.h arch/powerpc/include/asm/tce.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tce.h arch/powerpc/include/asm/termbits.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/termbits.h arch/powerpc/include/asm/termios.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/termios.h arch/powerpc/include/asm/thread_info.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/thread_info.h arch/powerpc/include/asm/time.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/time.h arch/powerpc/include/asm/timex.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/timex.h arch/powerpc/include/asm/tlb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tlb.h arch/powerpc/include/asm/tlbflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tlbflush.h arch/powerpc/include/asm/topology.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/topology.h arch/powerpc/include/asm/tsi108.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tsi108.h arch/powerpc/include/asm/tsi108_irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tsi108_irq.h arch/powerpc/include/asm/tsi108_pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/tsi108_pci.h arch/powerpc/include/asm/types.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/types.h arch/powerpc/include/asm/uaccess.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/uaccess.h arch/powerpc/include/asm/ucc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ucc.h arch/powerpc/include/asm/ucc_fast.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ucc_fast.h arch/powerpc/include/asm/ucc_slow.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ucc_slow.h arch/powerpc/include/asm/ucontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/ucontext.h arch/powerpc/include/asm/udbg.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/udbg.h arch/powerpc/include/asm/uic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/uic.h arch/powerpc/include/asm/unaligned.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/unaligned.h arch/powerpc/include/asm/uninorth.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/uninorth.h arch/powerpc/include/asm/unistd.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/unistd.h arch/sparc/include/asm/apb.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/apb.h arch/powerpc/include/asm/vdso.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/vdso.h arch/powerpc/include/asm/vdso_datapage.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/vdso_datapage.h arch/powerpc/include/asm/vga.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/vga.h arch/powerpc/include/asm/vio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/vio.h arch/powerpc/include/asm/xilinx_intc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/xilinx_intc.h arch/powerpc/include/asm/xmon.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/xmon.h arch/powerpc/include/asm/xor.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/include/asm/xor.h arch/sparc/include/asm/bitext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bitext.h arch/sparc/include/asm/bbc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/bbc.h arch/sparc/include/asm/backoff.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/backoff.h arch/sparc/include/asm/auxvec.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/auxvec.h arch/sparc/include/asm/auxio_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/auxio_64.h arch/sparc/include/asm/auxio_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/auxio_32.h arch/sparc/include/asm/auxio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/auxio.h arch/sparc/include/asm/atomic_64.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/atomic_64.h arch/sparc/include/asm/atomic_32.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/atomic_32.h arch/sparc/include/asm/atomic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/atomic.h arch/sparc/include/asm/asmmacro.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/asmmacro.h arch/powerpc/kernel/ftrace.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ftrace.c arch/sparc/include/asm/asi.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/asi.h arch/sparc/include/asm/apc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/apc.h drivers/char/hw_random/n2rng.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/n2rng.h drivers/char/hw_random/n2-drv.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/n2-drv.c drivers/char/hw_random/n2-asm.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/n2-asm.S drivers/net/wireless/libertas/persistcfg.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/persistcfg.c drivers/net/wireless/mac80211_hwsim.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/mac80211_hwsim.c drivers/usb/gadget/u_ether.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/u_ether.h drivers/char/hvc_irq.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_irq.c arch/powerpc/kernel/idle_e500.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/idle_e500.S arch/sparc/include/asm/agp.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/agp.h arch/sparc/include/asm/Kbuild - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/include/asm/Kbuild arch/sh/include/cpu-sh2a/cpu/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/dma.h arch/powerpc/kernel/kgdb.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/kgdb.c arch/sh/include/cpu-sh2a/cpu/freq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/freq.h arch/sh/include/cpu-sh2a/cpu/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/rtc.h arch/sh/include/cpu-sh2a/cpu/ubc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/ubc.h arch/powerpc/platforms/83xx/asp834x.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/asp834x.c arch/sh/include/cpu-sh2a/cpu/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh2a/cpu/watchdog.h arch/sh/include/cpu-sh3/cpu/adc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/adc.h arch/sh/mm/cache-sh2a.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/cache-sh2a.c arch/sh/include/cpu-sh3/cpu/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/cache.h arch/sh/include/cpu-sh3/cpu/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/cacheflush.h arch/powerpc/kernel/module.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/module.c drivers/usb/gadget/cdc2.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/cdc2.c drivers/usb/gadget/composite.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/composite.c drivers/usb/gadget/f_acm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_acm.c drivers/usb/gadget/f_ecm.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_ecm.c net/802/stp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/802/stp.c arch/sh/include/cpu-sh3/cpu/dac.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/dac.h drivers/usb/gadget/f_loopback.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_loopback.c drivers/usb/gadget/f_rndis.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_rndis.c drivers/usb/gadget/f_serial.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_serial.c drivers/usb/gadget/f_sourcesink.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_sourcesink.c drivers/usb/gadget/f_subset.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/f_subset.c arch/sh/include/cpu-sh3/cpu/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/dma.h kernel/dma-coherent.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/dma-coherent.c drivers/usb/gadget/g_zero.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/g_zero.h arch/sh/include/cpu-sh3/cpu/freq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/freq.h arch/sh/include/cpu-sh3/cpu/gpio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/gpio.h drivers/usb/gadget/pxa25x_udc.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa25x_udc.c drivers/usb/gadget/pxa25x_udc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa25x_udc.h drivers/usb/gadget/u_ether.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/u_ether.c arch/sh/include/mach-se/mach/se7751.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7751.h drivers/usb/gadget/u_serial.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/u_serial.c net/802/garp.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/802/garp.c drivers/usb/gadget/u_serial.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/u_serial.h drivers/pci/slot.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/slot.c arch/powerpc/platforms/512x/mpc512x_shared.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc512x_shared.c arch/sh/kernel/cpu/sh2a/ex.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2a/ex.S net/802/Kconfig - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/802/Kconfig arch/sh/kernel/cpu/sh2a/entry.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2a/entry.S arch/powerpc/platforms/512x/mpc512x.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc512x.h arch/sh/kernel/.gitignore - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/.gitignore arch/sh/include/mach-sh03/mach/sh03.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-sh03/mach/sh03.h arch/sh/include/mach-sh03/mach/io.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-sh03/mach/io.h arch/sh/include/mach-se/mach/se7780.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7780.h arch/sh/include/cpu-sh5/cpu/irq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/irq.h arch/sh/include/mach-se/mach/se7722.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7722.h arch/sh/include/mach-se/mach/se7721.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7721.h arch/sh/include/mach-se/mach/se7343.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7343.h arch/sh/include/mach-se/mach/se7206.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se7206.h arch/sh/include/mach-se/mach/se.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-se/mach/se.h arch/sh/include/mach-landisk/mach/iodata_landisk.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-landisk/mach/iodata_landisk.h arch/sh/include/mach-landisk/mach/gio.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-landisk/mach/gio.h arch/sh/include/mach-dreamcast/mach/sysasic.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-dreamcast/mach/sysasic.h arch/sh/include/mach-dreamcast/mach/pci.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-dreamcast/mach/pci.h arch/sh/include/mach-dreamcast/mach/maple.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-dreamcast/mach/maple.h arch/powerpc/lib/code-patching.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/code-patching.c arch/sh/include/mach-dreamcast/mach/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/mach-dreamcast/mach/dma.h arch/powerpc/lib/feature-fixups-test.S - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/feature-fixups-test.S arch/powerpc/lib/feature-fixups.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/feature-fixups.c arch/sh/include/cpu-sh5/cpu/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/rtc.h arch/sh/include/cpu-sh5/cpu/registers.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/registers.h arch/sh/include/cpu-sh5/cpu/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/mmu_context.h arch/sh/include/cpu-sh4/cpu/ubc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/ubc.h arch/sh/include/cpu-sh5/cpu/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/dma.h arch/powerpc/mm/gup.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/gup.c arch/sh/include/cpu-sh5/cpu/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/cacheflush.h arch/sh/include/cpu-sh5/cpu/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/cache.h arch/sh/include/cpu-sh5/cpu/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh5/cpu/addrspace.h arch/sh/include/cpu-sh4/cpu/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/watchdog.h arch/sh/include/cpu-sh4/cpu/dma-sh7780.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/dma-sh7780.h arch/sh/include/cpu-sh4/cpu/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/timer.h arch/sh/include/cpu-sh4/cpu/sq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/sq.h arch/sh/include/cpu-sh4/cpu/sigcontext.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/sigcontext.h arch/sh/include/cpu-sh4/cpu/rtc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/rtc.h arch/sh/include/cpu-sh4/cpu/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/mmu_context.h arch/sh/include/cpu-sh4/cpu/freq.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/freq.h arch/sh/include/cpu-sh4/cpu/fpu.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/fpu.h arch/sh/include/cpu-sh4/cpu/dma.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/dma.h arch/sh/include/cpu-sh4/cpu/addrspace.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/addrspace.h arch/sh/include/cpu-sh4/cpu/cacheflush.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/cacheflush.h arch/sh/include/cpu-sh4/cpu/cache.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh4/cpu/cache.h arch/sh/include/cpu-sh3/cpu/ubc.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/ubc.h arch/powerpc/platforms/44x/sam440ep.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/sam440ep.c arch/powerpc/platforms/44x/virtex.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/virtex.c fs/ecryptfs/kthread.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/kthread.c arch/sh/include/cpu-sh3/cpu/watchdog.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/watchdog.h arch/sh/include/cpu-sh3/cpu/timer.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/timer.h arch/powerpc/platforms/512x/mpc5121_generic.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc5121_generic.c arch/powerpc/platforms/512x/clock.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/clock.c arch/sh/include/cpu-sh3/cpu/mmu_context.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/include/cpu-sh3/cpu/mmu_context.h arch/powerpc/platforms/512x/mpc5121_ads.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc5121_ads.h arch/powerpc/platforms/512x/mpc5121_ads_cpld.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc5121_ads_cpld.c CREDITS - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/CREDITS.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h Documentation/00-INDEX - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/00-INDEX.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h Documentation/CodingStyle - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/CodingStyle.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h Documentation/DMA-API.txt - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DMA-API.txt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/DMA-mapping.txt - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DMA-mapping.txt.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h Documentation/DocBook/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h Documentation/DocBook/gadget.tmpl - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/gadget.tmpl.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/DocBook/kernel-locking.tmpl - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/kernel-locking.tmpl.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/DocBook/procfs-guide.tmpl - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/procfs-guide.tmpl.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/DocBook/procfs_example.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/procfs_example.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/DocBook/videobook.tmpl - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/videobook.tmpl.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/DocBook/z8530book.tmpl - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/z8530book.tmpl.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/IRQ-affinity.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/IRQ-affinity.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/SubmittingPatches - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/SubmittingPatches.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h Documentation/arm/Interrupts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/Interrupts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/arm/README - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/README.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/cciss.txt - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cciss.txt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/cli-sti-removal.txt - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cli-sti-removal.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/cpu-freq/governors.txt - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cpu-freq/governors.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/devices.txt - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/devices.txt.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h Documentation/fb/tridentfb.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/fb/tridentfb.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/filesystems/Locking - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/Locking.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h Documentation/filesystems/bfs.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/bfs.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/filesystems/ntfs.txt - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/ntfs.txt.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h Documentation/filesystems/proc.txt - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/proc.txt.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h Documentation/filesystems/sysfs.txt - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/sysfs.txt.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/filesystems/vfat.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/vfat.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/filesystems/vfs.txt - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/vfs.txt.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h Documentation/i2c/smbus-protocol - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/smbus-protocol.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/i2c/writing-clients - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/writing-clients.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h Documentation/i386/IO-APIC.txt - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i386/IO-APIC.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/i386/boot.txt - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i386/boot.txt.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h Documentation/i386/zero-page.txt - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i386/zero-page.txt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/input/cs461x.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/cs461x.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/input/gameport-programming.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/gameport-programming.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/input/input.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/input.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/input/joystick-api.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/joystick-api.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/input/joystick-parport.txt - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/joystick-parport.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/input/joystick.txt - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/input/joystick.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/ioctl-number.txt - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ioctl-number.txt.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h Documentation/iostats.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/iostats.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/kernel-parameters.txt - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/kernel-parameters.txt.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h Documentation/md.txt - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/md.txt.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h Documentation/moxa-smartio - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/moxa-smartio.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/networking/bonding.txt - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/bonding.txt.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h Documentation/networking/e1000.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/e1000.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/networking/ifenslave.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/ifenslave.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/networking/ip-sysctl.txt - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/ip-sysctl.txt.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h Documentation/networking/ixgb.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/ixgb.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/nmi_watchdog.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/nmi_watchdog.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/powerpc/00-INDEX - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/00-INDEX.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/powerpc/SBC8260_memory_mapping.txt - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/SBC8260_memory_mapping.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/s390/driver-model.txt - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/s390/driver-model.txt.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/scsi/ibmmca.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scsi/ibmmca.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/serial/driver - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/serial/driver.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/sound/alsa/ALSA-Configuration.txt - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/ALSA-Configuration.txt.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/DocBook/alsa-driver-api.tmpl.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h Documentation/specialix.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/specialix.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/sysctl/kernel.txt - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sysctl/kernel.txt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/sysctl/vm.txt - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sysctl/vm.txt.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h Documentation/telephony/ixj.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/telephony/ixj.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/usb/auerswald.txt - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/auerswald.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/usb/uhci.txt - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/uhci.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/vm/hugetlbpage.txt - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/vm/hugetlbpage.txt.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/x86_64/boot-options.txt - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/boot-options.txt.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h Documentation/x86_64/mm.txt - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/mm.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h MAINTAINERS - 1.45 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/MAINTAINERS.diff?r1=text&tr1=1.45&r2=text&tr2=1.44&f=h Makefile - 1.62 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Makefile.diff?r1=text&tr1=1.62&r2=text&tr2=1.61&f=h arch/alpha/Kconfig - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/Kconfig.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/alpha/boot/misc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/boot/misc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/alpha/kernel/core_marvel.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/kernel/core_marvel.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/alpha/kernel/irq.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/kernel/irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/alpha/kernel/osf_sys.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/kernel/osf_sys.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/alpha/kernel/process.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/kernel/process.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/alpha/kernel/smp.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/kernel/smp.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/alpha/mm/init.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/mm/init.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/alpha/mm/numa.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/mm/numa.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/alpha/oprofile/common.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/alpha/oprofile/common.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/Kconfig - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/Kconfig.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h arch/arm/Makefile - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/Makefile.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/arm/boot/compressed/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/boot/compressed/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/boot/compressed/head-xscale.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/boot/compressed/head-xscale.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/boot/compressed/head.S - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/boot/compressed/head.S.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/arm/boot/compressed/misc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/boot/compressed/misc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/common/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/common/sa1111.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/sa1111.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/arm/configs/rpc_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/rpc_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/kernel/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/kernel/armksyms.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/armksyms.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/kernel/calls.S - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/calls.S.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/arm/kernel/debug.S - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/debug.S.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/kernel/ecard.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/ecard.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/kernel/entry-armv.S - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/entry-armv.S.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/arm/kernel/entry-common.S - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/entry-common.S.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/kernel/irq.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/irq.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/arm/kernel/module.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/module.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/kernel/process.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/process.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/arm/kernel/setup.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/setup.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/arm/kernel/time.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/time.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/arm/kernel/traps.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/traps.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/arm/lib/ecard.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/ecard.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/lib/getuser.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/getuser.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/lib/io-readsw-armv3.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/io-readsw-armv3.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/lib/io-writesw-armv3.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/io-writesw-armv3.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/lib/memset.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/memset.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/lib/memzero.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/memzero.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/lib/putuser.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/putuser.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-clps711x/autcpu12.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/autcpu12.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-clps711x/cdb89712.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/cdb89712.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-clps711x/ceiva.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/ceiva.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-clps711x/edb7211-mm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/edb7211-mm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-clps711x/fortunet.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/fortunet.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-clps711x/irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-clps711x/mm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/mm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-clps711x/p720t-leds.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/p720t-leds.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-clps711x/p720t.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/p720t.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-clps711x/time.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps711x/time.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-clps7500/core.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-clps7500/core.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-ebsa110/core.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/core.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-ebsa110/io.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/io.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ebsa110/leds.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ebsa110/leds.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-footbridge/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-footbridge/cats-pci.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/cats-pci.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-footbridge/ebsa285-leds.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/ebsa285-leds.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-footbridge/isa-irq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/isa-irq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-footbridge/netwinder-leds.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/netwinder-leds.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-integrator/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-integrator/core.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/core.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-integrator/cpu.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/cpu.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-integrator/impd1.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/impd1.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-integrator/integrator_ap.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/integrator_ap.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-integrator/leds.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/leds.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-integrator/lm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/lm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-integrator/pci_v3.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/pci_v3.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-integrator/time.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/time.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-l7200/core.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-l7200/core.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-pxa/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-pxa/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-pxa/dma.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/dma.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pxa/generic.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/generic.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/arm/mach-pxa/generic.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/generic.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pxa/idp.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/idp.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/mach-pxa/irq.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-pxa/leds-idp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/leds-idp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pxa/leds-lubbock.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/leds-lubbock.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-pxa/lubbock.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/lubbock.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/arm/mach-pxa/pm.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pm.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/mach-pxa/sleep.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/sleep.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-rpc/dma.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/dma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-rpc/riscpc.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-rpc/riscpc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-sa1100/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-sa1100/assabet.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/assabet.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-sa1100/badge4.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/badge4.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-sa1100/cerf.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/cerf.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-sa1100/cpu-sa1100.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/cpu-sa1100.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-sa1100/cpu-sa1110.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/cpu-sa1110.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-sa1100/dma.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/dma.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-sa1100/generic.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/generic.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/mach-sa1100/h3600.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/h3600.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-sa1100/hackkit.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/hackkit.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-sa1100/irq.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/irq.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-sa1100/jornada720.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/jornada720.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-sa1100/lart.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/lart.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-sa1100/leds-assabet.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-assabet.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/leds-badge4.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-badge4.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/leds-cerf.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-cerf.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-sa1100/leds-hackkit.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-hackkit.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/leds-lart.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-lart.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/leds-simpad.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/leds-simpad.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-sa1100/neponset.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/neponset.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-sa1100/pleb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/pleb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-sa1100/pm.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/pm.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-sa1100/shannon.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/shannon.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-sa1100/simpad.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/simpad.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-sa1100/sleep.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/sleep.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-sa1100/ssp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/ssp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-shark/irq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/irq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-shark/leds.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-shark/leds.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mm/Kconfig - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/Kconfig.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/arm/mm/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mm/cache-v3.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/cache-v3.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mm/cache-v4.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/cache-v4.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mm/cache-v4wt.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/cache-v4wt.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mm/consistent.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/consistent.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mm/discontig.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/discontig.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mm/fault-armv.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/fault-armv.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mm/init.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/init.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/arm/mm/ioremap.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/ioremap.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mm/mmu.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/mmu.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mm/proc-arm720.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-arm720.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mm/proc-sa110.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-sa110.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mm/proc-sa1100.S - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-sa1100.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/nwfpe/fpa11.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/nwfpe/fpa11.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/tools/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/tools/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/tools/mach-types - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/tools/mach-types.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/cris/arch-v10/boot/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v10/boot/compressed/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/compressed/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v10/boot/compressed/decompress.ld - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/compressed/decompress.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/cris/arch-v10/boot/compressed/head.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/compressed/head.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v10/boot/compressed/misc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/compressed/misc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/cris/arch-v10/boot/rescue/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/boot/rescue/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v10/drivers/eeprom.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/drivers/eeprom.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/cris/arch-v10/drivers/gpio.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/drivers/gpio.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/cris/arch-v10/drivers/i2c.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/drivers/i2c.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/cris/arch-v10/drivers/pcf8563.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/drivers/pcf8563.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/cris/arch-v10/kernel/debugport.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/kernel/debugport.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/cris/arch-v10/kernel/kgdb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/kernel/kgdb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/cris/arch-v10/mm/init.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/mm/init.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/cris/mm/init.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/mm/init.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/h8300/Kconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/Kconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/h8300/kernel/setup.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/kernel/setup.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/h8300/mm/init.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/mm/init.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ia64/Kconfig - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/Kconfig.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h arch/ia64/Makefile - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/Makefile.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/ia64/hp/common/sba_iommu.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/hp/common/sba_iommu.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/ia64/hp/sim/simserial.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/hp/sim/simserial.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ia64/ia32/ia32_entry.S - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/ia32/ia32_entry.S.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ia64/ia32/ia32priv.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/ia32/ia32priv.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ia64/ia32/sys_ia32.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/ia32/sys_ia32.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/ia64/kernel/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/ia64/kernel/acpi.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/acpi.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h arch/ia64/kernel/asm-offsets.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/asm-offsets.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ia64/kernel/efi.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/efi.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/ia64/kernel/entry.S - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/entry.S.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/ia64/kernel/head.S - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/head.S.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ia64/kernel/iosapic.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/iosapic.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/ia64/kernel/irq_ia64.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/irq_ia64.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/ia64/kernel/ivt.S - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/ivt.S.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ia64/kernel/mca.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/mca.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h arch/ia64/kernel/minstate.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/minstate.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ia64/kernel/module.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/module.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ia64/kernel/palinfo.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/palinfo.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ia64/kernel/perfmon.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/perfmon.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/ia64/kernel/process.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/process.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/ia64/kernel/setup.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/setup.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h arch/ia64/kernel/smp.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/smp.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/ia64/kernel/smpboot.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/smpboot.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/ia64/kernel/sys_ia64.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/sys_ia64.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ia64/kernel/time.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/time.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/ia64/kernel/vmlinux.lds.S - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/ia64/mm/contig.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/mm/contig.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ia64/mm/discontig.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/mm/discontig.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/ia64/mm/hugetlbpage.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/mm/hugetlbpage.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ia64/pci/pci.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/pci/pci.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h arch/ia64/sn/kernel/irq.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/sn/kernel/irq.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/m68k/Kconfig - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/Kconfig.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/m68k/Makefile - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/Makefile.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/m68k/amiga/chipram.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/amiga/chipram.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/amiga/config.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/amiga/config.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68k/atari/debug.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/atari/debug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/bvme6000/rtc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/bvme6000/rtc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m68k/fpsp040/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/fpsp040/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/ifpsp060/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/ifpsp060/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/kernel/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/kernel/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m68k/kernel/entry.S - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/kernel/entry.S.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/m68k/kernel/setup.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/kernel/setup.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/m68k/kernel/vmlinux-std.lds - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/kernel/vmlinux-std.lds.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/m68k/kernel/vmlinux-sun3.lds - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/kernel/vmlinux-sun3.lds.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/m68k/lib/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/lib/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/m68k/mac/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/m68k/mac/baboon.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/baboon.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/mac/bootparse.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/bootparse.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/m68k/mac/config.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/config.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/m68k/mac/debug.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/debug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/mac/oss.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/oss.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m68k/mac/psc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/psc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/mac/via.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mac/via.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/m68k/math-emu/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/math-emu/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/mm/init.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mm/init.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68k/mm/motorola.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mm/motorola.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/m68k/mm/sun3mmu.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mm/sun3mmu.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/mvme16x/rtc.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/mvme16x/rtc.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68k/q40/config.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/q40/config.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68k/sun3/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/m68k/sun3/config.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/config.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/m68k/sun3/dvma.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/dvma.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/m68k/sun3/idprom.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/idprom.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/m68k/sun3/mmu_emu.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/mmu_emu.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/sun3/prom/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/prom/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/sun3/prom/console.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/prom/console.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/sun3/prom/init.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/prom/init.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/m68k/sun3/prom/misc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/prom/misc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/sun3/prom/printf.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/prom/printf.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/m68k/sun3/sbus.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/sbus.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/sun3/sun3dvma.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/sun3dvma.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/sun3/sun3ints.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/sun3/sun3ints.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68knommu/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/m68knommu/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/m68knommu/kernel/comempci.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/comempci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68knommu/kernel/setup.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/setup.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/m68knommu/kernel/syscalltable.S - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/syscalltable.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m68knommu/kernel/time.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/time.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/m68knommu/kernel/traps.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/traps.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m68knommu/kernel/vmlinux.lds.S - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/m68knommu/mm/init.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/mm/init.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/Kconfig - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/Kconfig.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h arch/mips/Makefile - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/Makefile.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/mips/au1000/common/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/common/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/au1000/common/dbg_io.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/common/dbg_io.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/au1000/common/power.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/common/power.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/au1000/db1x00/init.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/db1x00/init.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/au1000/pb1000/init.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1000/init.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/au1000/pb1100/init.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1100/init.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/au1000/pb1500/init.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1500/init.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/cobalt/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/cobalt/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/cobalt/setup.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/cobalt/setup.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/jazz/setup.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jazz/setup.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/jmr3927/common/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/common/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/jmr3927/common/prom.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/common/prom.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/jmr3927/common/puts.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/common/puts.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/jmr3927/rbhma3100/Makefile - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/rbhma3100/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/jmr3927/rbhma3100/init.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/rbhma3100/init.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/jmr3927/rbhma3100/irq.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/rbhma3100/irq.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/jmr3927/rbhma3100/kgdb_io.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/rbhma3100/kgdb_io.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/jmr3927/rbhma3100/setup.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/jmr3927/rbhma3100/setup.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/kernel/Makefile - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/Makefile.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/mips/kernel/cpu-probe.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/cpu-probe.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/mips/kernel/gdb-low.S - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/gdb-low.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/kernel/gdb-stub.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/gdb-stub.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/kernel/genex.S - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/genex.S.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/kernel/irixelf.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irixelf.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/kernel/irixinv.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irixinv.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/kernel/irixioctl.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irixioctl.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/kernel/irixsig.c - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irixsig.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/kernel/irq.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irq.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/kernel/linux32.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/linux32.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/mips/kernel/process.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/process.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/kernel/scall32-o32.S - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/scall32-o32.S.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/mips/kernel/scall64-64.S - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/scall64-64.S.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/kernel/scall64-n32.S - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/scall64-n32.S.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/mips/kernel/scall64-o32.S - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/scall64-o32.S.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/mips/kernel/setup.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/setup.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/mips/kernel/smp.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/smp.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/mips/kernel/syscall.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/syscall.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/mips/kernel/sysirix.c - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/sysirix.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/mips/kernel/traps.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/traps.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/mips/kernel/vmlinux.lds.S - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/mips/lasat/interrupt.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lasat/interrupt.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/lasat/lasat_board.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lasat/lasat_board.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/lasat/prom.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lasat/prom.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/lasat/setup.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lasat/setup.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/mips/math-emu/kernel_linkage.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/math-emu/kernel_linkage.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/mips-boards/atlas/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/atlas/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mips-boards/atlas/atlas_int.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/atlas/atlas_int.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/mips-boards/atlas/atlas_setup.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/atlas/atlas_setup.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/mips-boards/generic/Makefile - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/mips-boards/generic/cmdline.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/cmdline.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mips-boards/generic/display.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/display.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/mips-boards/generic/gdb_hook.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/gdb_hook.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/mips-boards/generic/init.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/init.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/mips-boards/generic/memory.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/memory.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/mips-boards/generic/reset.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/reset.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/mips-boards/generic/time.c - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/time.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/mips-boards/malta/Makefile - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/mips-boards/malta/malta_int.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/malta_int.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/mips-boards/malta/malta_setup.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/malta_setup.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/mips-boards/sead/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/sead/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mips-boards/sead/sead_int.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/sead/sead_int.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/mips-boards/sead/sead_setup.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/sead/sead_setup.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/mm/Makefile - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/Makefile.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/mm/c-r3k.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/c-r3k.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/mm/c-r4k.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/c-r4k.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/mips/mm/c-tx39.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/c-tx39.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/mips/mm/cache.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/cache.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/mips/mm/pgtable.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/pgtable.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/mm/tlb-r3k.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/tlb-r3k.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/pci/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/pci/fixup-jmr3927.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-jmr3927.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/pci/pci-ip27.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-ip27.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/pci/pci-lasat.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-lasat.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/pci/pci-sb1250.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-sb1250.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/mips/pci/pci.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/sgi-ip22/ip22-mc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip22/ip22-mc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/sgi-ip22/ip22-reset.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip22/ip22-reset.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/mips/sgi-ip22/ip22-setup.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip22/ip22-setup.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/mips/sgi-ip27/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip27/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/sgi-ip27/ip27-klnuma.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip27/ip27-klnuma.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/sgi-ip27/ip27-memory.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip27/ip27-memory.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/sgi-ip27/ip27-nmi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip27/ip27-nmi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/sibyte/cfe/setup.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/cfe/setup.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/sibyte/sb1250/irq.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/sb1250/irq.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/sibyte/sb1250/prom.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/sb1250/prom.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/sibyte/swarm/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/swarm/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/sibyte/swarm/dbg_io.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/swarm/dbg_io.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/sni/setup.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sni/setup.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/tx4927/common/Makefile - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/common/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/tx4927/common/tx4927_dbgio.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/common/tx4927_dbgio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/tx4927/common/tx4927_irq.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/common/tx4927_irq.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/tx4927/common/tx4927_prom.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/common/tx4927_prom.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/tx4927/toshiba_rbtx4927/Makefile - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/toshiba_rbtx4927/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_setup.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/parisc/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/parisc/hpux/fs.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/hpux/fs.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/parisc/hpux/sys_hpux.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/hpux/sys_hpux.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/parisc/kernel/cache.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/kernel/cache.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/parisc/kernel/module.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/kernel/module.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/parisc/kernel/perf.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/kernel/perf.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/parisc/kernel/smp.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/kernel/smp.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/parisc/kernel/vmlinux.lds.S - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/parisc/mm/init.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/parisc/mm/init.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/4xx_io/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/4xx_io/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/4xx_io/serial_sicc.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/4xx_io/serial_sicc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/8260_io/Kconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8260_io/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/8260_io/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8260_io/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/8260_io/enet.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8260_io/enet.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/8260_io/fcc_enet.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8260_io/fcc_enet.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ppc/8xx_io/Kconfig - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/8xx_io/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/8xx_io/commproc.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/commproc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/ppc/8xx_io/enet.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/enet.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ppc/8xx_io/fec.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/fec.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ppc/8xx_io/micropatch.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/8xx_io/micropatch.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/Kconfig - 1.29 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/Kconfig.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/ppc/Makefile - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/Makefile.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ppc/boot/Makefile - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/boot/common/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/boot/common/crt0.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/crt0.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/common/misc-common.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/misc-common.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/boot/common/ns16550.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/ns16550.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/boot/common/serial_stub.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/serial_stub.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/boot/common/string.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/string.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/common/util.S - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/util.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/boot/images/Makefile - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/images/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/boot/include/cpc700.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/cpc700.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/include/mpc10x.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/mpc10x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/include/nonstdio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/nonstdio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/include/of1275.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/of1275.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/include/rs6000.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/rs6000.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/ld.script - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/ld.script.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/lib/Makefile - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/lib/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/boot/lib/div64.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/lib/div64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/of1275/claim.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/claim.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/of1275/enter.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/enter.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/exit.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/exit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/finddevice.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/finddevice.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/of1275/getprop.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/getprop.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/map.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/map.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/ofinit.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/ofinit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/ofstdio.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/ofstdio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/read.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/read.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/release.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/release.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/of1275/write.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/write.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/Makefile - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/ppc/boot/simple/clear.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/clear.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/simple/dummy.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/dummy.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/embed_config.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/embed_config.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/boot/simple/head.S - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/head.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/boot/simple/iic.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/iic.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/simple/m8260_tty.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/m8260_tty.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/boot/simple/m8xx_tty.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/m8xx_tty.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/simple/misc-embedded.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-embedded.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/boot/simple/misc-spruce.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-spruce.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/boot/simple/misc.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ppc/boot/simple/pci.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/qspan_pci.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/qspan_pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/relocate.S - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/relocate.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/boot/simple/rw4/ppc_40x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/rw4/ppc_40x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/rw4/rw4_init.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/rw4/rw4_init.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/rw4/rw4_init_brd.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/rw4/rw4_init_brd.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/rw4/stb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/rw4/stb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/utils/elf.pl - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/utils/elf.pl.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/utils/mkbugboot.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/utils/mkbugboot.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/boot/utils/mkprep.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/utils/mkprep.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/utils/mktree.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/utils/mktree.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/FADS_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/FADS_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/IVMS8_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/IVMS8_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/TQM823L_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/TQM823L_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/TQM8260_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/TQM8260_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/configs/TQM850L_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/TQM850L_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/TQM860L_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/TQM860L_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/bseip_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/bseip_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/cpci405_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/cpci405_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/ebony_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ebony_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/ep405_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ep405_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/est8260_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/est8260_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/configs/ev64260_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ev64260_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/lopec_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/lopec_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/mbx_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/mbx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/mvme5100_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/mvme5100_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/ocotea_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ocotea_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/pplus_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/pplus_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/prpmc750_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/prpmc750_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/prpmc800_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/prpmc800_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/redwood5_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/redwood5_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/redwood6_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/redwood6_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/rpxcllf_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/rpxcllf_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/rpxlite_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/rpxlite_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/sandpoint_defconfig - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/sandpoint_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/configs/spruce_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/spruce_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/sycamore_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/sycamore_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/walnut_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/walnut_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/kernel/Makefile - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/Makefile.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ppc/kernel/asm-offsets.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/asm-offsets.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ppc/kernel/entry.S - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/entry.S.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/kernel/head.S - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/head.S.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/ppc/kernel/head_44x.S - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/head_44x.S.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ppc/kernel/head_4xx.S - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/head_4xx.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/kernel/head_8xx.S - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/head_8xx.S.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ppc/kernel/misc.S - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/misc.S.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/ppc/kernel/pci.c - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/pci.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/ppc/kernel/ppc-stub.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/ppc-stub.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/kernel/ppc_htab.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/ppc_htab.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/kernel/ppc_ksyms.c - 1.28 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/ppc_ksyms.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/ppc/kernel/setup.c - 1.26 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/setup.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/ppc/kernel/smp.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/smp.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ppc/kernel/softemu8xx.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/softemu8xx.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/kernel/time.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/time.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/kernel/traps.c - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/traps.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/ppc/kernel/vmlinux.lds.S - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ppc/lib/Makefile - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/lib/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/lib/checksum.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/lib/checksum.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/lib/div64.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/lib/div64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/lib/locks.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/lib/locks.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/lib/string.S - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/lib/string.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/mm/44x_mmu.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/44x_mmu.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/mm/4xx_mmu.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/4xx_mmu.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/mm/Makefile - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/mm/fault.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/fault.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/mm/hashtable.S - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/hashtable.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/mm/init.c - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/init.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/ppc/mm/mem_pieces.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/mem_pieces.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/mm/mem_pieces.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/mem_pieces.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/mm/mmu_context.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/mmu_context.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/mm/mmu_decl.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/mmu_decl.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/mm/pgtable.c - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/pgtable.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/ppc/mm/ppc_mmu.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/ppc_mmu.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/mm/tlb.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/mm/tlb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/4xx/Kconfig - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/ppc/platforms/4xx/Makefile - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/platforms/4xx/cpci405.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/cpci405.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/cpci405.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/cpci405.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/ebony.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ebony.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ppc/platforms/4xx/ebony.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ebony.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/platforms/4xx/ep405.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ep405.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/ep405.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ep405.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/4xx/ibm405gp.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405gp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibm405gp.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405gp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm405gpr.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405gpr.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/ibm405gpr.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405gpr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm440gp.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440gp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibm440gp.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440gp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm440gx.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440gx.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/ibm440gx.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440gx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibmnp405h.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmnp405h.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibmnp405h.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmnp405h.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/ibmstb4.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmstb4.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibmstb4.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmstb4.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibmstbx25.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmstbx25.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibmstbx25.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibmstbx25.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/ocotea.c - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ocotea.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ppc/platforms/4xx/ocotea.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ocotea.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/platforms/4xx/redwood5.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/redwood5.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/4xx/redwood5.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/redwood5.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/redwood6.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/redwood6.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/redwood6.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/redwood6.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/sycamore.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/sycamore.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/4xx/sycamore.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/sycamore.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/walnut.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/walnut.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/4xx/walnut.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/walnut.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/Makefile - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ppc/platforms/bseip.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/bseip.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/platforms/ccm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ccm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/est8260.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/est8260.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/ev64260.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ev64260.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/fads.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/fads.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/hermes.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/hermes.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/ip860.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ip860.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/ivms8.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ivms8.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/lantec.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lantec.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/lwmon.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lwmon.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/mbx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/mbx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/mvme5100.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/mvme5100.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/pal4.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pal4.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/pal4_pci.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pal4_pci.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/pal4_serial.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pal4_serial.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/pal4_setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pal4_setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/pcu_e.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pcu_e.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/powerpmc250.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/powerpmc250.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/powerpmc250.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/powerpmc250.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/prep_pci.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prep_pci.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/platforms/prep_setup.c - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prep_setup.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ppc/platforms/prpmc750.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prpmc750.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/prpmc800.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prpmc800.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/residual.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/residual.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/rpxclassic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/rpxclassic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/rpxlite.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/rpxlite.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/sandpoint.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/sandpoint.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/ppc/platforms/sandpoint.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/sandpoint.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/sbs8260.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/sbs8260.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/spruce.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/spruce.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/tqm8260.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/tqm8260.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/tqm8260_setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/tqm8260_setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/tqm8xx.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/tqm8xx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/Makefile - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/Makefile.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/ppc/syslib/btext.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/btext.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/cpc700.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/cpc700.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/cpc700_pic.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/cpc700_pic.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/gen550_dbg.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/gen550_dbg.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/gen550_kgdb.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/gen550_kgdb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/gt64260_pic.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/gt64260_pic.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/harrier.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/harrier.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/i8259.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/i8259.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/syslib/ibm440gp_common.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440gp_common.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/ibm440gp_common.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440gp_common.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/ibm44x_common.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm44x_common.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/indirect_pci.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/indirect_pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/m8260_setup.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m8260_setup.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/syslib/m8xx_setup.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m8xx_setup.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ppc/syslib/mpc10x_common.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc10x_common.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/syslib/open_pic.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/open_pic.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ppc/syslib/open_pic_defs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/open_pic_defs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/pci_auto.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/pci_auto.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/ppc405_pci.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc405_pci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/ppc4xx_dma.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc4xx_dma.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/syslib/ppc4xx_pic.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc4xx_pic.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/syslib/ppc4xx_setup.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc4xx_setup.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/syslib/ppc8xx_pic.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc8xx_pic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/syslib/ppc8xx_pic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc8xx_pic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/prep_nvram.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/prep_nvram.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/qspan_pci.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/qspan_pci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/todc_time.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/todc_time.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/xmon/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/ansidecl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/ansidecl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/nonstdio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/nonstdio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/ppc-dis.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/ppc-dis.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/ppc-opc.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/ppc-opc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/xmon/ppc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/ppc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/privinst.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/privinst.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/xmon/setjmp.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/setjmp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/start.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/start.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/xmon/start_8xx.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/start_8xx.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/xmon/subr_prf.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/subr_prf.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/xmon/xmon.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/xmon/xmon.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/s390/Kconfig - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/Kconfig.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/s390/defconfig - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/defconfig.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h arch/s390/kernel/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/s390/kernel/binfmt_elf32.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/binfmt_elf32.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/s390/kernel/compat_ptrace.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/compat_ptrace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/s390/kernel/compat_wrapper.S - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/compat_wrapper.S.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/s390/kernel/debug.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/debug.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/s390/kernel/process.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/process.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/s390/kernel/ptrace.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/ptrace.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/s390/kernel/setup.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/setup.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h arch/s390/kernel/smp.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/smp.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/s390/kernel/syscalls.S - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/syscalls.S.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/s390/kernel/time.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/time.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/s390/kernel/vmlinux.lds.S - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/s390/lib/delay.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/lib/delay.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/s390/mm/init.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/mm/init.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/sh/Kconfig - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/Kconfig.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h arch/sh/Makefile - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/Makefile.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/sh/boards/dreamcast/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/dreamcast/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/dreamcast/irq.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/dreamcast/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/dreamcast/rtc.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/dreamcast/rtc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/dreamcast/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/dreamcast/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/se/770x/Makefile - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/770x/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/se/770x/io.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/770x/io.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/se/770x/irq.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/770x/irq.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/boards/se/770x/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/770x/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/se/7751/Makefile - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7751/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/se/7751/io.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7751/io.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/se/7751/irq.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7751/irq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/se/7751/pci.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7751/pci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/se/7751/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7751/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boot/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/kernel/cf-enabler.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cf-enabler.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/sh/kernel/cpu/sh4/fpu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4/fpu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/kernel/irq.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/irq.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/sh/kernel/module.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/module.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/kernel/setup.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/setup.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/sh/kernel/sys_sh.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/sys_sh.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sh/lib/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/lib/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/mm/cache-sh2.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/cache-sh2.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/mm/cache-sh4.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/cache-sh4.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sh/mm/init.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/init.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/sh/mm/pg-sh4.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/pg-sh4.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/tools/mach-types - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/tools/mach-types.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc/Kconfig - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/Kconfig.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/sparc/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sparc/boot/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/boot/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sparc/kernel/apc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/apc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc/kernel/asm-offsets.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/asm-offsets.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sparc/kernel/ebus.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/ebus.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/sparc/kernel/entry.S - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/entry.S.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc/kernel/etrap.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/etrap.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc/kernel/head.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/head.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sparc/kernel/idprom.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/idprom.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc/kernel/ioport.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/ioport.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/kernel/irq.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/irq.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/sparc/kernel/process.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/process.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/sparc/kernel/ptrace.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/ptrace.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sparc/kernel/rtrap.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/rtrap.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sparc/kernel/setup.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/setup.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/kernel/signal.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/signal.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc/kernel/smp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/smp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/kernel/sun4c_irq.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sun4c_irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sparc/kernel/sun4d_irq.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sun4d_irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sparc/kernel/sun4d_smp.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sun4d_smp.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc/kernel/sun4m_irq.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sun4m_irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sparc/kernel/sun4m_smp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sun4m_smp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/kernel/sys_sparc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/sys_sparc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/sparc/kernel/systbls.S - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/systbls.S.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/sparc/kernel/time.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/time.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/sparc/kernel/traps.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/traps.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/kernel/wof.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/wof.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc/kernel/wuf.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/wuf.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc/mm/fault.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/mm/fault.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc/mm/init.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/mm/init.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/sparc/mm/srmmu.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/mm/srmmu.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/sparc/mm/sun4c.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/mm/sun4c.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/sparc/mm/tsunami.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/mm/tsunami.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc64/Kconfig - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/Kconfig.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h arch/sparc64/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sparc64/defconfig - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/defconfig.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h arch/sparc64/kernel/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc64/kernel/auxio.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/auxio.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sparc64/kernel/central.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/central.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sparc64/kernel/ebus.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ebus.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sparc64/kernel/iommu_common.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/iommu_common.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc64/kernel/irq.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/irq.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/sparc64/kernel/pci.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/sparc64/kernel/pci_common.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_common.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sparc64/kernel/pci_psycho.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_psycho.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc64/kernel/pci_sabre.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_sabre.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc64/kernel/pci_schizo.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_schizo.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc64/kernel/power.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/power.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/sparc64/kernel/process.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/process.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/sparc64/kernel/ptrace.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ptrace.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc64/kernel/rtrap.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/rtrap.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sparc64/kernel/signal.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/signal.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sparc64/kernel/signal32.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/signal32.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/sparc64/kernel/smp.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/smp.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h arch/sparc64/kernel/sparc64_ksyms.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/sparc64_ksyms.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/sparc64/kernel/sys_sparc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/sys_sparc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/sparc64/kernel/sys_sparc32.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/sys_sparc32.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/sparc64/kernel/systbls.S - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/systbls.S.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/sparc64/kernel/time.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/time.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/sparc64/kernel/traps.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/traps.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/sparc64/kernel/ttable.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ttable.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sparc64/kernel/unaligned.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/unaligned.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/sparc64/lib/mcount.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/lib/mcount.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc64/mm/fault.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/mm/fault.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/sparc64/mm/hugetlbpage.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/mm/hugetlbpage.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sparc64/mm/init.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/mm/init.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h arch/sparc64/mm/ultra.S - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/mm/ultra.S.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/um/drivers/harddog_kern.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/drivers/harddog_kern.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/um/drivers/line.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/drivers/line.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/um/drivers/mmapper_kern.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/drivers/mmapper_kern.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/um/include/init.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/include/init.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/um/include/irq_user.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/include/irq_user.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/um/include/um_uaccess.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/include/um_uaccess.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/um/kernel/irq.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/irq.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/um/kernel/ksyms.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/ksyms.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/um/kernel/mem.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/mem.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/um/kernel/process.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/process.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/um/kernel/ptrace.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/ptrace.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/um/kernel/smp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/smp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/um/kernel/time.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/time.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/um/sys-i386/bugs.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/sys-i386/bugs.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/um/sys-i386/checksum.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/sys-i386/checksum.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/um/sys-i386/ldt.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/sys-i386/ldt.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/v850/Kconfig - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/v850/Makefile - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/README - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/README.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/anna-rom.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/anna-rom.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/anna.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/anna.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/v850/kernel/anna.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/anna.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/as85ep1-rom.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/as85ep1-rom.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/as85ep1.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/as85ep1.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/v850/kernel/as85ep1.ld - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/as85ep1.ld.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/bug.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/bug.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/entry.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/entry.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/fpga85e2c.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/fpga85e2c.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/v850/kernel/fpga85e2c.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/fpga85e2c.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/gbus_int.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/gbus_int.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/head.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/head.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/highres_timer.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/highres_timer.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/init_task.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/init_task.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/intv.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/intv.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/v850/kernel/ma.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/ma.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/mach.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/mach.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/mach.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/mach.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/me2.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/me2.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/memcons.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/memcons.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/module.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/module.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/process.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/process.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/v850/kernel/procfs.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/procfs.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/ptrace.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/ptrace.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/v850/kernel/rte_cb.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_cb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/rte_cb_leds.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_cb_leds.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/v850/kernel/rte_cb_multi.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_cb_multi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/rte_ma1_cb-rom.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_ma1_cb-rom.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/rte_ma1_cb.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_ma1_cb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/rte_ma1_cb.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_ma1_cb.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/rte_mb_a_pci.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_mb_a_pci.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/v850/kernel/rte_me2_cb.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_me2_cb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/rte_me2_cb.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_me2_cb.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/rte_nb85e_cb-multi.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_nb85e_cb-multi.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/rte_nb85e_cb.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_nb85e_cb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/rte_nb85e_cb.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/rte_nb85e_cb.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/setup.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/setup.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/v850/kernel/signal.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/signal.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/v850/kernel/sim.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/sim.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/sim.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/sim.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/sim85e2.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/sim85e2.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/sim85e2.ld - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/sim85e2.ld.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/simcons.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/simcons.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/kernel/syscalls.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/syscalls.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/v850/kernel/teg.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/teg.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/v850/kernel/time.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/time.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/v850/kernel/v850_ksyms.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850_ksyms.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/v850/kernel/v850e2_cache.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850e2_cache.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/v850e_cache.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850e_cache.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/kernel/v850e_intc.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850e_intc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/v850e_timer_d.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850e_timer_d.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/v850e_utils.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/v850e_utils.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/kernel/vmlinux.lds.S - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/v850/lib/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/lib/ashldi3.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/ashldi3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/lib/ashrdi3.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/ashrdi3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/lib/checksum.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/checksum.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/v850/lib/lshrdi3.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/lshrdi3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/lib/memcpy.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/memcpy.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/lib/memset.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/memset.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/lib/muldi3.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/muldi3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/lib/negdi2.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/lib/negdi2.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h crypto/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h crypto/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h crypto/api.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/api.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h crypto/digest.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/digest.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h crypto/hmac.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/hmac.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h crypto/internal.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/internal.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h crypto/tcrypt.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/tcrypt.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h crypto/tcrypt.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/tcrypt.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/Makefile - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/Makefile.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/acorn/char/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acorn/char/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/acorn/char/defkeymap-l7200.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acorn/char/defkeymap-l7200.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/acpi/Kconfig - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/Kconfig.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/acpi/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/asus_acpi.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/asus_acpi.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/acpi/bus.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/bus.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/acpi/dispatcher/dsinit.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dsinit.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/acpi/dispatcher/dsmethod.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dsmethod.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/dispatcher/dsobject.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dsobject.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/dispatcher/dsopcode.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dsopcode.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/dispatcher/dswexec.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dswexec.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/dispatcher/dswstate.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dispatcher/dswstate.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/ec.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/ec.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/acpi/events/evevent.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evevent.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/events/evgpe.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evgpe.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/acpi/events/evgpeblk.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evgpeblk.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/events/evmisc.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evmisc.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/acpi/events/evregion.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evregion.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/events/evrgnini.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evrgnini.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/events/evxfevnt.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/events/evxfevnt.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/executer/exconfig.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exconfig.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/executer/exconvrt.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exconvrt.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/executer/excreate.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/excreate.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/executer/exdump.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exdump.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/executer/exfldio.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exfldio.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/executer/exmisc.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exmisc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/executer/exprep.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exprep.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/executer/exregion.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exregion.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/executer/exresop.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exresop.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/executer/exstore.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/executer/exstore.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/fan.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/fan.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/acpi/hardware/hwgpe.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/hardware/hwgpe.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/namespace/nsdump.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsdump.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/namespace/nseval.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nseval.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/acpi/namespace/nsinit.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsinit.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/namespace/nsload.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsload.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/namespace/nsnames.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsnames.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/namespace/nsparse.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsparse.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/acpi/namespace/nsutils.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsutils.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/namespace/nsxfeval.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/namespace/nsxfeval.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/acpi/numa.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/numa.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/acpi/parser/psargs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/parser/psargs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/parser/psxface.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/parser/psxface.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/pci_irq.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/pci_irq.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/acpi/pci_link.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/pci_link.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/acpi/power.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/power.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/acpi/resources/rscalc.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/resources/rscalc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/resources/rscreate.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/resources/rscreate.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/resources/rsmisc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/resources/rsmisc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/acpi/resources/rsutils.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/resources/rsutils.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/scan.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/scan.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/acpi/sleep/main.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/sleep/main.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/acpi/system.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/system.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/tables.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/acpi/tables/tbinstal.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbinstal.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/acpi/tables/tbutils.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbutils.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/tables/tbxface.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbxface.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/tables/tbxfroot.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbxfroot.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/thermal.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/thermal.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/acpi/utilities/utalloc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utalloc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/utilities/utcopy.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utcopy.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/utilities/utdebug.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utdebug.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/acpi/utilities/utdelete.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utdelete.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/acpi/utilities/uteval.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/uteval.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/utilities/utmisc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utmisc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/acpi/utilities/utobject.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utobject.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/atm/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/atm/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/atm/ambassador.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/ambassador.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/atm/ambassador.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/ambassador.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/atm/atmsar11.data - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/atmsar11.data.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/atmsar11.regions - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/atmsar11.regions.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/atmsar11.start - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/atmsar11.start.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/fore200e.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/fore200e.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/atm/fore200e.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/fore200e.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/atm/fore200e_firmware_copyright - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/fore200e_firmware_copyright.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/fore200e_mkfirm.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/fore200e_mkfirm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/atm/he.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/he.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/atm/he.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/he.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/atm/iphase.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/iphase.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/atm/pca200e.data - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/pca200e.data.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/pca200e_ecd.data - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/pca200e_ecd.data.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/sba200e_ecd.data - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/sba200e_ecd.data.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/atm/suni.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/suni.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/atm/suni.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/suni.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/base/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/base/base.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/base.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/base/class.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/class.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/base/core.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/core.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/base/cpu.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/cpu.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/base/driver.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/driver.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/base/firmware_class.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/firmware_class.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/base/node.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/node.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/base/platform.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/platform.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/base/power/main.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/power/main.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/base/power/power.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/power/power.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/base/power/sysfs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/power/sysfs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/base/sys.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/sys.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/block/DAC960.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/DAC960.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/block/Kconfig - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/Kconfig.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/block/Makefile - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/Makefile.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/block/ataflop.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/ataflop.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/block/cciss.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/cciss.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/block/cciss.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/cciss.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/block/cciss_scsi.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/cciss_scsi.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/block/nbd.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/nbd.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/block/paride/pd.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/paride/pd.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/block/paride/pg.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/paride/pg.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/block/paride/pt.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/paride/pt.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/bluetooth/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/bluetooth/bt3c_cs.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/bt3c_cs.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/bluetooth/hci_bcsp.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/hci_bcsp.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/bluetooth/hci_ldisc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/hci_ldisc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/bluetooth/hci_usb.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/hci_usb.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/bluetooth/hci_vhci.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/hci_vhci.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/cdrom/cdrom.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cdrom/cdrom.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/char/Kconfig - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/Kconfig.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/char/Makefile - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/Makefile.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/char/agp/agp.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/agp.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/agp/ali-agp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/ali-agp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/agp/amd-k7-agp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/amd-k7-agp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/agp/amd64-agp.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/amd64-agp.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/char/agp/ati-agp.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/ati-agp.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/agp/backend.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/backend.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/agp/frontend.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/frontend.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/agp/generic.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/generic.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/agp/intel-agp.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/intel-agp.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/char/agp/isoch.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/isoch.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/agp/sis-agp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/sis-agp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/agp/sworks-agp.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/sworks-agp.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/agp/uninorth-agp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/agp/uninorth-agp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/amiserial.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/amiserial.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/cyclades.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/cyclades.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/char/drm/Kconfig - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/drm/Makefile - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/Makefile.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/README.drm - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/README.drm.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/drm.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/drm/drmP.h - 1.26 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drmP.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/char/drm/drm_memory.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_memory.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/drm/drm_memory_debug.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_memory_debug.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/drm_os_linux.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_os_linux.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/drm_sarea.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_sarea.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/i810_dma.c - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i810_dma.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/drm/i810_drm.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i810_drm.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/i810_drv.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i810_drv.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/i810_drv.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i810_drv.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/i830_dma.c - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i830_dma.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/drm/i830_drm.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i830_drm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/i830_drv.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i830_drv.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/drm/i830_drv.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i830_drv.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/drm/i830_irq.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i830_irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/mga_dma.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_dma.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/mga_drm.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_drm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/mga_drv.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_drv.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/mga_drv.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_drv.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/mga_irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/drm/mga_state.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_state.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/mga_ucode.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_ucode.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/drm/mga_warp.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_warp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/r128_cce.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_cce.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/drm/r128_drm.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_drm.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/r128_drv.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_drv.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/r128_drv.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_drv.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/r128_irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/drm/r128_state.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_state.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/drm/radeon_cp.c - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_cp.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/drm/radeon_drm.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_drm.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/drm/radeon_drv.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_drv.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/radeon_drv.h - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_drv.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/drm/radeon_irq.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/radeon_mem.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_mem.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/radeon_state.c - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_state.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/drm/sis_drm.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/sis_drm.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/drm/sis_drv.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/sis_drv.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/sis_drv.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/sis_drv.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/sis_mm.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/sis_mm.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/tdfx_drv.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/tdfx_drv.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/ds1620.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ds1620.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/dsp56k.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/dsp56k.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/dtlk.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/dtlk.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/efirtc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/efirtc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/epca.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/epca.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/epca.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/epca.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/esp.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/esp.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/char/generic_serial.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/generic_serial.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/genrtc.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/genrtc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/hvc_console.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_console.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/ip2/fip_firm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ip2/fip_firm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/ip2/i2lib.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ip2/i2lib.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/ipmi/ipmi_devintf.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ipmi/ipmi_devintf.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/ipmi/ipmi_watchdog.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ipmi/ipmi_watchdog.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/char/isicom.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/isicom.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/istallion.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/istallion.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/keyboard.c - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/keyboard.c.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h drivers/char/lcd.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/lcd.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/lp.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/lp.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/char/mem.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mem.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/char/misc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/misc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/moxa.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/moxa.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/mwave/mwavedd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mwave/mwavedd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/mwave/mwavedd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mwave/mwavedd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/mwave/tp3780i.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mwave/tp3780i.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/mxser.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mxser.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/char/n_hdlc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/n_hdlc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/n_r3964.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/n_r3964.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/n_tty.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/n_tty.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/char/nvram.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/nvram.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/nwflash.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/nwflash.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/pcmcia/synclink_cs.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/synclink_cs.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/char/ppdev.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ppdev.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/pty.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pty.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/random.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/random.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/char/raw.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/raw.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/rio/cirrus.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/cirrus.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/rio/cmdblk.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/cmdblk.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rio/cmdpkt.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/cmdpkt.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rio/daemon.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/daemon.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/rio/errors.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/errors.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/func.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/func.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/rio/map.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rio/param.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/param.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rio/parmmap.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/parmmap.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/rio/pci.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/pci.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/protsts.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/protsts.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/rio_linux.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rio_linux.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/rio/rioboard.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioboard.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/riocmd.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riocmd.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/rio/rioctrl.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioctrl.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/rio/riodrvr.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riodrvr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rio/rioinfo.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioinfo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/rioinit.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioinit.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/rio/riointr.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riointr.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/rio/rioparam.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioparam.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/rio/rioroute.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/rioroute.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/rio/riospace.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riospace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/riotable.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riotable.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/rio/riotty.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/riotty.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/rio/route.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/route.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/rio/unixrup.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rio/unixrup.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/riscom8.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/riscom8.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/char/riscom8.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/riscom8.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/rocket.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rocket.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/rocket.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rocket.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/rocket_int.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rocket_int.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/rtc.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/rtc.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/scx200_gpio.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/scx200_gpio.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/selection.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/selection.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/ser_a2232.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ser_a2232.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/sonypi.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/sonypi.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/char/specialix.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/specialix.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/char/specialix_io8.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/specialix_io8.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/stallion.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/stallion.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/sx.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/sx.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/synclink.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/synclink.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/char/synclinkmp.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/synclinkmp.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/sysrq.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/sysrq.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/tty_io.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tty_io.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/char/tty_ioctl.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tty_ioctl.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/vc_screen.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/vc_screen.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/vme_scc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/vme_scc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/vt.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/vt.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/char/vt_ioctl.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/vt_ioctl.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/cpufreq/cpufreq.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/cpufreq.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/cpufreq/cpufreq_userspace.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/cpufreq_userspace.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/cpufreq/freq_table.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/freq_table.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/eisa/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/eisa/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/eisa/eisa-bus.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/eisa/eisa-bus.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/i2c/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/i2c/algos/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/algos/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/i2c/algos/i2c-algo-bit.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/algos/i2c-algo-bit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/i2c/algos/i2c-algo-pcf.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/algos/i2c-algo-pcf.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/i2c/busses/Kconfig - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/Kconfig.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/i2c/busses/Makefile - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/Makefile.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/i2c/busses/i2c-ali1535.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ali1535.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/i2c/busses/i2c-ali15x3.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ali15x3.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/i2c/busses/i2c-amd756.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-amd756.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/i2c/busses/i2c-amd8111.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-amd8111.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/i2c/busses/i2c-elektor.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-elektor.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/i2c/busses/i2c-i801.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-i801.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/i2c/busses/i2c-i810.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-i810.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/i2c/busses/i2c-ibm_iic.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ibm_iic.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/i2c/busses/i2c-iop3xx.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-iop3xx.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/i2c/busses/i2c-nforce2.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-nforce2.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/i2c/busses/i2c-piix4.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-piix4.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/i2c/busses/i2c-prosavage.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-prosavage.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/i2c/busses/i2c-savage4.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-savage4.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/i2c/busses/i2c-sis5595.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-sis5595.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/i2c/busses/i2c-sis630.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-sis630.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/i2c/busses/i2c-sis96x.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-sis96x.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/i2c/busses/i2c-via.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-via.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/i2c/busses/i2c-viapro.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-viapro.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/i2c/busses/i2c-voodoo3.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-voodoo3.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/i2c/busses/scx200_acb.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/scx200_acb.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/i2c/chips/Kconfig - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/Kconfig.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/i2c/chips/Makefile - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/Makefile.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/i2c/chips/eeprom.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/eeprom.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/i2c/i2c-core.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/i2c-core.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/i2c/i2c-dev.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/i2c-dev.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/ide/Kconfig - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/Kconfig.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/ide/Makefile - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/Makefile.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/ide/arm/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/ide/arm/icside.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/icside.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/ide/arm/rapide.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/rapide.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ide/ide-cd.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-cd.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h drivers/ide/ide-cd.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-cd.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/ide/ide-disk.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-disk.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/ide/ide-dma.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-dma.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/ide/ide-floppy.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-floppy.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/ide/ide-io.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-io.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/ide-iops.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-iops.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/ide/ide-lib.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-lib.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/ide/ide-pnp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-pnp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/ide/ide-probe.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-probe.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/ide/ide-proc.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-proc.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/ide/ide-tape.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-tape.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ide/ide-taskfile.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-taskfile.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/ide-timing.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-timing.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/ide/ide.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h drivers/ide/legacy/ali14xx.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/ali14xx.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ide/legacy/buddha.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/buddha.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/ide/legacy/falconide.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/falconide.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/ide/legacy/gayle.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/gayle.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ide/legacy/hd.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/hd.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ide/legacy/ht6560b.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/ht6560b.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/ide/legacy/ide-cs.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/ide-cs.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/ide/legacy/macide.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/macide.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ide/legacy/q40ide.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/q40ide.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ide/legacy/qd65xx.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/qd65xx.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ide/pci/aec62xx.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/aec62xx.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/ide/pci/alim15x3.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/alim15x3.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ide/pci/amd74xx.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/amd74xx.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/pci/cmd640.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cmd640.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ide/pci/cmd64x.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cmd64x.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/ide/pci/cs5520.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cs5520.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/ide/pci/cs5530.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cs5530.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/ide/pci/cy82c693.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cy82c693.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/ide/pci/generic.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/generic.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/ide/pci/hpt34x.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/hpt34x.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/ide/pci/hpt366.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/hpt366.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/ide/pci/ns87415.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/ns87415.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/ide/pci/opti621.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/opti621.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/ide/pci/pdc202xx_new.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/pdc202xx_new.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/pci/pdc202xx_old.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/pdc202xx_old.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ide/pci/piix.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/piix.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/pci/rz1000.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/rz1000.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/ide/pci/sc1200.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/sc1200.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/ide/pci/serverworks.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/serverworks.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/pci/siimage.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/siimage.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ide/pci/sis5513.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/sis5513.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ide/pci/sl82c105.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/sl82c105.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/ide/pci/slc90e66.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/slc90e66.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/ide/pci/triflex.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/triflex.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/ide/pci/trm290.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/trm290.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/ide/pci/via82cxxx.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/via82cxxx.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ide/ppc/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ppc/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/ide/ppc/mpc8xx.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ppc/mpc8xx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ide/ppc/pmac.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ppc/pmac.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/ide/setup-pci.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/setup-pci.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/ieee1394/dma.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/dma.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ieee1394/dv1394.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/dv1394.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/ieee1394/highlevel.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/highlevel.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/ieee1394/highlevel.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/highlevel.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ieee1394/iso.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/iso.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ieee1394/nodemgr.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/nodemgr.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ieee1394/nodemgr.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/nodemgr.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ieee1394/raw1394.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/raw1394.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/ieee1394/sbp2.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/sbp2.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/ieee1394/sbp2.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/sbp2.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/ieee1394/video1394.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/video1394.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/input/evbug.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/evbug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/evdev.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/evdev.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/input/gameport/emu10k1-gp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/gameport/emu10k1-gp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/gameport/gameport.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/gameport/gameport.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/input/gameport/lightning.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/gameport/lightning.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/gameport/ns558.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/gameport/ns558.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/input.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/input.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/input/joystick/a3d.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/a3d.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/joystick/amijoy.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/amijoy.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/input/joystick/cobra.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/cobra.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/joystick/db9.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/db9.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/input/joystick/gf2k.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/gf2k.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/joystick/grip.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/grip.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/joystick/grip_mp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/grip_mp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/input/joystick/guillemot.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/guillemot.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/joystick/iforce/iforce-ff.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce-ff.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/joystick/iforce/iforce-main.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce-main.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/input/joystick/iforce/iforce-packets.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce-packets.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/joystick/iforce/iforce-serio.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce-serio.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/joystick/iforce/iforce-usb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce-usb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/joystick/iforce/iforce.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/iforce/iforce.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/joystick/interact.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/interact.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/joystick/joydump.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/joydump.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/joystick/magellan.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/magellan.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/joystick/spaceball.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/spaceball.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/joystick/spaceorb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/spaceorb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/joystick/stinger.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/stinger.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/joystick/tmdc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/tmdc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/joystick/turbografx.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/turbografx.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/input/joystick/twidjoy.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/twidjoy.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/joystick/warrior.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/warrior.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/keyboard/amikbd.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/amikbd.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/keyboard/atkbd.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/atkbd.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/input/keyboard/maple_keyb.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/maple_keyb.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/keyboard/sunkbd.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/sunkbd.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/input/keyboard/xtkbd.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/xtkbd.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/misc/Kconfig - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/Kconfig.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/input/misc/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/misc/uinput.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/uinput.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/input/mouse/Kconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/Kconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/input/mouse/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/mouse/inport.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/inport.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/mouse/logibm.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/logibm.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/mouse/pc110pad.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/pc110pad.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/mouse/rpcmouse.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/rpcmouse.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/mouse/sermouse.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/sermouse.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/mousedev.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mousedev.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/input/serio/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/input/serio/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/serio/ct82c710.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/ct82c710.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/input/serio/i8042-sparcio.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/i8042-sparcio.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/serio/q40kbd.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/q40kbd.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/serio/rpckbd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/rpckbd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/serio/serio.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/serio.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/input/serio/serport.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/serport.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/touchscreen/Kconfig - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/input/touchscreen/Makefile - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/Makefile.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/input/touchscreen/gunze.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/gunze.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/input/touchscreen/h3600_ts_input.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/h3600_ts_input.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/isdn/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/isdn/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/isdn/capi/capi.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/capi/capi.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/isdn/hardware/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/isdn/hardware/eicon/divamnt.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/eicon/divamnt.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/isdn/hardware/eicon/divasi.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/eicon/divasi.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/isdn/hardware/eicon/divasmain.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hardware/eicon/divasmain.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/isdn/hisax/hisax_fcpcipnp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hisax_fcpcipnp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/isdn/hisax/st5481.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/st5481.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/isdn/hisax/st5481_b.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/st5481_b.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/isdn/hisax/st5481_d.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/st5481_d.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/isdn/hisax/st5481_usb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/st5481_usb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/isdn/hysdn/hysdn_pof.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hysdn/hysdn_pof.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/isdn/i4l/isdn_common.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/i4l/isdn_common.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/isdn/i4l/isdn_net.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/i4l/isdn_net.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/macintosh/adb.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/adb.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/macintosh/adbhid.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/adbhid.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/macintosh/ans-lcd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/ans-lcd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/macintosh/mediabay.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/mediabay.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/macintosh/via-pmu.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/via-pmu.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/macintosh/via-pmu68k.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/via-pmu68k.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mca/mca-bus.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mca/mca-bus.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/md/Kconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/Kconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/md/Makefile - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/Makefile.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/md/dm-linear.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-linear.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/md/dm-table.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-table.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/md/dm.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/md/dm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/md/linear.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/linear.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/md/md.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/md.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/md/multipath.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/multipath.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/md/raid0.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/raid0.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/md/raid1.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/raid1.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/md/raid5.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/raid5.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/media/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/common/saa7146_core.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/saa7146_core.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/common/saa7146_fops.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/saa7146_fops.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/common/saa7146_hlp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/saa7146_hlp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/common/saa7146_i2c.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/saa7146_i2c.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/common/saa7146_video.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/saa7146_video.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/dvb/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/dvb/dvb-core/demux.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/demux.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/dvb-core/dmxdev.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dmxdev.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/dvb/dvb-core/dvb_demux.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_demux.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/dvb/dvb-core/dvb_frontend.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_frontend.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/dvb/dvb-core/dvb_net.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_net.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/media/dvb/dvb-core/dvb_ringbuffer.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_ringbuffer.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/dvb/dvb-core/dvb_ringbuffer.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_ringbuffer.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/dvb/dvb-core/dvbdev.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvbdev.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/frontends/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/media/dvb/frontends/Makefile - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/Makefile.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/dvb/frontends/sp887x.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/sp887x.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/dvb/frontends/tda1004x.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/tda1004x.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/dvb/ttpci/Kconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/Kconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/ttpci/Makefile - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/Makefile.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/dvb/ttpci/av7110.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/av7110.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/media/dvb/ttpci/av7110.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/av7110.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/media/dvb/ttpci/budget-av.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/budget-av.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/ttpci/budget-ci.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/budget-ci.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/dvb/ttpci/budget-core.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/budget-core.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/dvb/ttpci/budget-patch.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/budget-patch.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/dvb/ttpci/budget.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/budget.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/dvb/ttusb-dec/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttusb-dec/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/ttusb-dec/ttusb_dec.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttusb-dec/ttusb_dec.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/media/radio/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/radio/miropcm20-radio.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/miropcm20-radio.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/radio/miropcm20-rds-core.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/miropcm20-rds-core.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/radio/miropcm20-rds-core.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/miropcm20-rds-core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/radio/miropcm20-rds.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/miropcm20-rds.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/radio/radio-aimslab.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-aimslab.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/radio/radio-aztech.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-aztech.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/radio/radio-cadet.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-cadet.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/radio/radio-gemtek-pci.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-gemtek-pci.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/radio/radio-gemtek.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-gemtek.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/radio/radio-maestro.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-maestro.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/radio/radio-maxiradio.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-maxiradio.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/radio/radio-rtrack2.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-rtrack2.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/radio/radio-sf16fmi.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-sf16fmi.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/radio/radio-terratec.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-terratec.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/radio/radio-trust.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-trust.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/radio/radio-typhoon.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-typhoon.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/radio/radio-zoltrix.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-zoltrix.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/Kconfig - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/Kconfig.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/media/video/Makefile - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/Makefile.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/video/bt819.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt819.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/btcx-risc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/btcx-risc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/btcx-risc.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/btcx-risc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/bw-qcam.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bw-qcam.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/c-qcam.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/c-qcam.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/video/cpia.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cpia.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/video/cpia.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cpia.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/meye.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/meye.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/video/mxb.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/mxb.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/media/video/planb.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/planb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/planb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/planb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/pms.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pms.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/video/saa5249.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa5249.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/video/saa7134/saa6752hs.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa6752hs.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/video/saa7134/saa7134-cards.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-cards.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/media/video/saa7134/saa7134-core.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-core.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/video/saa7134/saa7134-i2c.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-i2c.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/video/saa7134/saa7134-reg.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-reg.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/saa7134/saa7134-tvaudio.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-tvaudio.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/video/saa7134/saa7134-video.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-video.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/video/saa7134/saa7134.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/video/saa7196.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7196.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/stradis.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/stradis.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/video/tda7432.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tda7432.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/video/tda9840.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tda9840.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/video/tda9875.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tda9875.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/video/tea6415c.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tea6415c.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/video/tea6420.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tea6420.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/tvaudio.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tvaudio.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/video/v4l1-compat.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/v4l1-compat.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/v4l2-common.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/v4l2-common.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/video/videodev.c - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videodev.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/vino.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/vino.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/video/w9966.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/w9966.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/video/zoran_card.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zoran_card.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/video/zoran_card.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zoran_card.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/zoran_driver.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zoran_driver.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/message/fusion/lsi/mpi.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/lsi/mpi.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/message/fusion/lsi/mpi_cnfg.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/lsi/mpi_cnfg.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/message/fusion/lsi/mpi_history.txt - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/lsi/mpi_history.txt.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/message/fusion/mptbase.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptbase.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/message/fusion/mptbase.h - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptbase.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/message/fusion/mptctl.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptctl.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/message/fusion/mptctl.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptctl.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/message/fusion/mptlan.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptlan.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/message/fusion/mptlan.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptlan.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/message/fusion/mptscsih.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptscsih.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/message/fusion/mptscsih.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptscsih.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/message/i2o/i2o_config.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/i2o/i2o_config.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/misc/Kconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/Kconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/misc/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/Kconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/Kconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/afs.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/afs.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/chips/cfi_cmdset_0001.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/cfi_cmdset_0001.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/mtd/chips/cfi_cmdset_0002.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/cfi_cmdset_0002.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/mtd/chips/cfi_cmdset_0020.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/cfi_cmdset_0020.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/chips/cfi_probe.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/cfi_probe.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/chips/chipreg.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/chipreg.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/chips/gen_probe.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/gen_probe.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/chips/jedec_probe.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/jedec_probe.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/mtd/chips/map_absent.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/map_absent.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/chips/map_ram.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/map_ram.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/chips/map_rom.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/map_rom.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/cmdlinepart.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/cmdlinepart.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/devices/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/devices/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/devices/doc2000.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/doc2000.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/devices/doc2001.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/doc2001.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/devices/doc2001plus.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/doc2001plus.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/devices/docecc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/docecc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/devices/docprobe.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/docprobe.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/devices/lart.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/lart.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/devices/ms02-nv.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/ms02-nv.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/devices/ms02-nv.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/ms02-nv.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/devices/mtdram.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/mtdram.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/devices/pmc551.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/pmc551.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/devices/slram.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/slram.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/ftl.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ftl.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/inftlcore.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/inftlcore.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/inftlmount.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/inftlmount.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/maps/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/mtd/maps/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/mtd/maps/amd76xrom.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/amd76xrom.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/maps/autcpu12-nvram.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/autcpu12-nvram.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/cdb89712.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/cdb89712.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/ceiva.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ceiva.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/cfi_flagadm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/cfi_flagadm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/dbox2-flash.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/dbox2-flash.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/dc21285.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/dc21285.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/dilnetpc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/dilnetpc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/maps/ebony.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ebony.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/edb7312.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/edb7312.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/fortunet.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/fortunet.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/maps/h720x-flash.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/h720x-flash.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/impa7.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/impa7.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/integrator-flash.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/integrator-flash.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/maps/l440gx.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/l440gx.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/map_funcs.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/map_funcs.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/mbx860.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/mbx860.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/netsc520.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/netsc520.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/nettel.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/nettel.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/maps/octagon-5066.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/octagon-5066.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/pci.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/pci.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/maps/pcmciamtd.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/pcmciamtd.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/maps/physmap.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/physmap.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/maps/redwood.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/redwood.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/rpxlite.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/rpxlite.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/maps/sa1100-flash.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sa1100-flash.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/mtd/maps/sbc_gxx.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sbc_gxx.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/sc520cdp.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sc520cdp.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/maps/scb2_flash.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/scb2_flash.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/maps/scx200_docflash.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/scx200_docflash.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/maps/solutionengine.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/solutionengine.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/sun_uflash.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sun_uflash.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/maps/tqm8xxl.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/tqm8xxl.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/maps/tsunami_flash.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/tsunami_flash.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/maps/uclinux.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/uclinux.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/maps/vmax301.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/vmax301.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/mtd_blkdevs.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtd_blkdevs.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/mtdblock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdblock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/mtdblock_ro.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdblock_ro.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/mtdchar.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdchar.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/mtd/mtdconcat.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdconcat.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/mtdcore.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdcore.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/mtdpart.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdpart.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/nand/Kconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/Kconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/mtd/nand/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/nand/autcpu12.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/autcpu12.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/nand/edb7312.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/edb7312.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/mtd/nand/nand_ecc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/nand_ecc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/nand/nand_ids.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/nand_ids.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/nand/spia.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/spia.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/nftlcore.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nftlcore.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/nftlmount.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nftlmount.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/redboot.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/redboot.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/3c503.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/3c503.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/3c515.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/3c515.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/3c523.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/3c523.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/3c527.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/3c527.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/3c59x.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/3c59x.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/8139cp.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/8139cp.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/8139too.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/8139too.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/net/8390.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/8390.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/8390.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/8390.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/Kconfig - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/Kconfig.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h drivers/net/Makefile - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/Makefile.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/net/a2065.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/a2065.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/acenic.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/acenic.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/acenic.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/acenic.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/amd8111e.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/amd8111e.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/ariadne.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ariadne.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/arm/am79c961a.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/am79c961a.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/arm/etherh.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/etherh.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/atarilance.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atarilance.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/atp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/au1000_eth.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/au1000_eth.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/b44.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/b44.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/bonding/bond_3ad.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bonding/bond_3ad.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/bonding/bond_alb.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bonding/bond_alb.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/bonding/bond_main.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bonding/bond_main.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/net/bonding/bonding.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bonding/bonding.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/cs89x0.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cs89x0.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/de620.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/de620.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/declance.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/declance.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/dl2k.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/dl2k.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/e1000/e1000.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/e1000/e1000_ethtool.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000_ethtool.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/net/e1000/e1000_hw.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000_hw.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/e1000/e1000_main.c - 1.36 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000_main.c.diff?r1=text&tr1=1.36&r2=text&tr2=1.35&f=h drivers/net/e1000/e1000_osdep.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000_osdep.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/e1000/e1000_param.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000/e1000_param.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/eepro.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/eepro.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/eth16i.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/eth16i.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/fealnx.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fealnx.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/fec.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/hamachi.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hamachi.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/hamradio/6pack.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hamradio/6pack.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/hamradio/bpqether.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hamradio/bpqether.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/hamradio/hdlcdrv.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hamradio/hdlcdrv.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/hamradio/mkiss.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hamradio/mkiss.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/hp-plus.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hp-plus.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/hp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/hplance.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/hplance.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/irda/actisys-sir.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/actisys-sir.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/irda/ali-ircc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/ali-ircc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/irda/donauboe.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/donauboe.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/irda/irda-usb.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/irda-usb.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/irda/irtty-sir.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/irtty-sir.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/irda/nsc-ircc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/nsc-ircc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/irda/sa1100_ir.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/sa1100_ir.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/irda/sir_dev.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/sir_dev.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/irda/sir_dongle.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/sir_dongle.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/irda/smsc-ircc2.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/smsc-ircc2.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/irda/smsc-ircc2.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/smsc-ircc2.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/irda/tekram-sir.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/tekram-sir.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/irda/via-ircc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/via-ircc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/irda/via-ircc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/via-ircc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/irda/vlsi_ir.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/vlsi_ir.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/irda/w83977af_ir.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/w83977af_ir.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/ixgb/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ixgb/ixgb.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/ixgb/ixgb_ee.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_ee.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/ixgb/ixgb_ee.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_ee.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/ixgb/ixgb_ethtool.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_ethtool.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/ixgb/ixgb_hw.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_hw.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/ixgb/ixgb_hw.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_hw.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/ixgb/ixgb_ids.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_ids.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/ixgb/ixgb_main.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_main.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/net/ixgb/ixgb_osdep.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_osdep.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/ixgb/ixgb_param.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgb/ixgb_param.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/loopback.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/loopback.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/lp486e.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/lp486e.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/mac8390.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mac8390.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/macsonic.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/macsonic.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/meth.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/meth.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/natsemi.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/natsemi.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/ne.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ne.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/ne2.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ne2.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/ni5010.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ni5010.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/ni52.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ni52.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/ns83820.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ns83820.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/pci-skeleton.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pci-skeleton.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/pcmcia/3c574_cs.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pcmcia/3c574_cs.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/pcmcia/3c589_cs.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pcmcia/3c589_cs.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/pcmcia/axnet_cs.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pcmcia/axnet_cs.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/pcmcia/pcnet_cs.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pcmcia/pcnet_cs.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/pcnet32.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pcnet32.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/ppp_async.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ppp_async.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/ppp_generic.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ppp_generic.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/net/ppp_synctty.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ppp_synctty.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/r8169.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/r8169.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/net/saa9730.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/saa9730.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/saa9730.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/saa9730.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/sb1250-mac.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sb1250-mac.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/sis190.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sis190.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/sis900.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sis900.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/skfp/ess.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/skfp/ess.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/skfp/smt.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/skfp/smt.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/slip.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/slip.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/starfire.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/starfire.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/stnic.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/stnic.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/sun3_82586.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sun3_82586.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/sunhme.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sunhme.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/sunlance.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sunlance.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/tc35815.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tc35815.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/tg3.c - 1.41 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tg3.c.diff?r1=text&tr1=1.41&r2=text&tr2=1.40&f=h drivers/net/tg3.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tg3.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/net/tlan.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tlan.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/tlan.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tlan.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/tokenring/3c359.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/3c359.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/tokenring/3c359.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/3c359.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/tokenring/lanstreamer.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/lanstreamer.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/tokenring/lanstreamer.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/lanstreamer.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/tokenring/smctr.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/smctr.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/tokenring/smctr.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/smctr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/tokenring/smctr_firmware.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tokenring/smctr_firmware.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/tulip/21142.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/21142.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/tulip/de2104x.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/de2104x.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/tulip/de4x5.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/de4x5.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/tulip/de4x5.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/de4x5.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/tulip/eeprom.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/eeprom.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/tulip/interrupt.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/interrupt.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/tulip/media.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/media.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/tulip/pnic.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/pnic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/tulip/pnic2.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/pnic2.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/tulip/timer.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/timer.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/tulip/tulip.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/tulip.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/tulip/tulip_core.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tulip/tulip_core.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/tun.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tun.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/typhoon.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/typhoon.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/via-rhine.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/via-rhine.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/wan/Kconfig - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/Kconfig.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/wan/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wan/c101.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/c101.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/wan/cosa.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/cosa.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/wan/dscc4.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/dscc4.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/wan/farsync.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/farsync.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/wan/farsync.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/farsync.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wan/hd6457x.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hd6457x.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/wan/hdlc_cisco.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_cisco.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/wan/hdlc_fr.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_fr.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/wan/hdlc_ppp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_ppp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/wan/hdlc_raw.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_raw.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/wan/hdlc_raw_eth.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_raw_eth.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wan/hdlc_x25.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc_x25.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wan/hostess_sv11.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hostess_sv11.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/wan/lmc/lmc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wan/lmc/lmc_debug.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_debug.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wan/lmc/lmc_debug.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_debug.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wan/lmc/lmc_ioctl.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wan/lmc/lmc_main.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_main.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/wan/lmc/lmc_media.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_media.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wan/lmc/lmc_proto.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_proto.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wan/lmc/lmc_proto.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_proto.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wan/lmc/lmc_var.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/lmc/lmc_var.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wan/pc300.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/pc300.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wan/pc300_drv.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/pc300_drv.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/wan/pc300_tty.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/pc300_tty.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/wan/sbni.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/sbni.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/wan/sealevel.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/sealevel.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/wan/syncppp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/syncppp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/wan/wanxl.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/wanxl.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/wan/x25_asy.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/x25_asy.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/wan/z85230.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/z85230.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wan/z85230.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/z85230.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/Kconfig - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/Kconfig.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/wireless/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/wireless/airo.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/airo.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/net/wireless/arlan-main.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/arlan-main.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/wireless/arlan.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/arlan.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/atmel.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/atmel.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/net/wireless/orinoco.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/orinoco.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/wireless/strip.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/strip.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/wireless/wavelan.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/wavelan.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/wireless/wavelan_cs.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/wavelan_cs.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/wireless/wl3501_cs.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/wl3501_cs.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/oprofile/cpu_buffer.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/oprofile/cpu_buffer.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/oprofile/event_buffer.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/oprofile/event_buffer.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/parisc/eisa_eeprom.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parisc/eisa_eeprom.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/parport/ieee1284.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parport/ieee1284.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/parport/parport_cs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parport/parport_cs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/parport/parport_pc.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parport/parport_pc.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/parport/procfs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parport/procfs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pci/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pci/hotplug/acpiphp.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/acpiphp.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/pci/hotplug/acpiphp_core.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/acpiphp_core.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/pci/hotplug/acpiphp_glue.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/acpiphp_glue.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/pci/hotplug/cpci_hotplug_core.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/cpci_hotplug_core.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pci/hotplug/cpqphp_core.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/cpqphp_core.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pci/hotplug/fakephp.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/fakephp.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/pci/hotplug/ibmphp_ebda.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/ibmphp_ebda.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/pci/hotplug/pci_hotplug_core.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/pci_hotplug_core.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/pci/pci-driver.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pci-driver.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/pci/pci.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pci.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/pci/pci.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pci.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/pci/probe.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/probe.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/pci/proc.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/proc.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/pci/quirks.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/quirks.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/pci/search.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/search.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/pci/setup-bus.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/setup-bus.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/pci/setup-irq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/setup-irq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/pci/setup-res.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/setup-res.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/pcmcia/Kconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/Kconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pcmcia/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/pcmcia/au1000_pb1x00.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/au1000_pb1x00.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/pcmcia/cardbus.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/cardbus.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/pcmcia/cistpl.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/cistpl.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/pcmcia/cs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/cs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/pcmcia/cs_internal.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/cs_internal.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/pcmcia/ds.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/ds.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/pcmcia/hd64465_ss.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/hd64465_ss.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pcmcia/i82092.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/i82092.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/pcmcia/i82092aa.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/i82092aa.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/pcmcia/i82365.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/i82365.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/pcmcia/rsrc_mgr.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/rsrc_mgr.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/pcmcia/sa1100_assabet.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_assabet.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pcmcia/sa1100_badge4.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_badge4.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/sa1100_cerf.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_cerf.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/pcmcia/sa1100_h3600.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_h3600.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/pcmcia/sa1100_jornada720.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_jornada720.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/pcmcia/sa1100_neponset.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_neponset.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/sa1100_shannon.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_shannon.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/sa1100_simpad.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1100_simpad.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/sa1111_generic.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa1111_generic.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pcmcia/ti113x.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/ti113x.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pnp/base.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/base.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pnp/card.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/card.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/pnp/core.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/core.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pnp/interface.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/interface.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/pnp/isapnp/core.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/isapnp/core.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/pnp/manager.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/manager.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/pnp/pnpbios/rsparser.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/pnpbios/rsparser.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pnp/quirks.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/quirks.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/pnp/resource.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/resource.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/pnp/support.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/support.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pnp/system.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/system.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/s390/block/dasd.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/s390/block/dasd_3990_erp.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_3990_erp.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/s390/block/dasd_devmap.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_devmap.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/s390/block/dasd_diag.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_diag.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/s390/block/dasd_eckd.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_eckd.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/s390/block/dasd_eckd.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_eckd.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/s390/block/dasd_fba.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_fba.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/s390/block/dasd_int.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_int.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/s390/block/xpram.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/xpram.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/s390/char/con3215.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/con3215.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/s390/char/sclp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/s390/char/sclp_con.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_con.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/s390/char/sclp_rw.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_rw.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/s390/char/sclp_tty.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_tty.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/s390/char/sclp_tty.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_tty.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/char/sclp_vt220.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_vt220.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/s390/char/tape_34xx.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_34xx.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/s390/char/tape_char.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_char.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/s390/char/tape_core.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_core.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/s390/char/tape_std.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_std.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/s390/cio/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/s390/cio/airq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/airq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/s390/cio/ccwgroup.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/ccwgroup.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/s390/cio/chsc.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chsc.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/s390/cio/chsc.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chsc.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/s390/cio/cio.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/cio.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/s390/cio/cio.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/cio.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/s390/cio/css.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/css.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/s390/cio/css.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/css.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/s390/cio/device.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/s390/cio/device.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/s390/cio/device_fsm.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device_fsm.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/s390/cio/device_id.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device_id.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/s390/cio/device_ops.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device_ops.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/s390/cio/device_pgid.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device_pgid.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/s390/cio/device_status.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/device_status.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/s390/cio/ioasm.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/ioasm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/s390/cio/qdio.c - 1.26 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/s390/cio/qdio.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/qdio.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/s390/net/cu3088.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/cu3088.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/s390/net/cu3088.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/cu3088.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/net/lcs.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/lcs.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/s390/net/netiucv.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/netiucv.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/s390/s390mach.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/s390mach.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/s390/s390mach.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/s390mach.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/s390/scsi/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/scsi/zfcp_aux.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_aux.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/s390/scsi/zfcp_ccw.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_ccw.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/s390/scsi/zfcp_def.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_def.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/s390/scsi/zfcp_erp.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_erp.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/s390/scsi/zfcp_ext.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_ext.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/s390/scsi/zfcp_fsf.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_fsf.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/s390/scsi/zfcp_fsf.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_fsf.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/s390/scsi/zfcp_qdio.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_qdio.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/s390/scsi/zfcp_scsi.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_scsi.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/s390/scsi/zfcp_sysfs_adapter.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_sysfs_adapter.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/s390/scsi/zfcp_sysfs_driver.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_sysfs_driver.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/s390/scsi/zfcp_sysfs_port.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_sysfs_port.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/s390/scsi/zfcp_sysfs_unit.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_sysfs_unit.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/sbus/char/bpp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/bpp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/sbus/char/cpwatchdog.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/cpwatchdog.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/sbus/char/display7seg.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/display7seg.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/sbus/char/envctrl.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/envctrl.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/sbus/char/flash.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/flash.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/sbus/char/jsflash.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/jsflash.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/sbus/char/openprom.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/openprom.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/sbus/char/riowatchdog.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/riowatchdog.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/sbus/char/rtc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/rtc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/sbus/char/uctrl.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/uctrl.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/sbus/char/vfc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/vfc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/sbus/char/vfc_dev.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/vfc_dev.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/sbus/char/vfc_i2c.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/char/vfc_i2c.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/sbus/dvma.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/dvma.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/sbus/sbus.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sbus/sbus.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/3w-xxxx.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/3w-xxxx.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/Kconfig - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/Kconfig.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/scsi/Makefile - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/Makefile.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/scsi/aacraid/commctrl.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aacraid/commctrl.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/aacraid/linit.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aacraid/linit.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/scsi/advansys.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/advansys.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/aha152x.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aha152x.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/scsi/arm/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/arm/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/scsi/arm/acornscsi-io.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/arm/acornscsi-io.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/arm/acornscsi.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/arm/acornscsi.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/scsi/arm/acornscsi.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/arm/acornscsi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/arm/fas216.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/arm/fas216.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/scsi/dpt/dpti_i2o.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/dpt/dpti_i2o.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/scsi/dpt_i2o.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/dpt_i2o.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/scsi/gdth.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/gdth.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/scsi/hosts.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/hosts.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/scsi/ide-scsi.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ide-scsi.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/scsi/imm.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/imm.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/ips.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ips.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/ips.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ips.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/scsi/megaraid.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/scsi/mesh.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/mesh.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/nsp32.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/nsp32.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/nsp32.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/nsp32.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/scsi/nsp32_debug.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/nsp32_debug.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/osst.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/osst.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/pcmcia/nsp_cs.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/pcmcia/nsp_cs.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/pcmcia/nsp_debug.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/pcmcia/nsp_debug.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/scsi/ppa.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ppa.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/qla1280.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla1280.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/scsi/qlogicpti.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qlogicpti.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/scsi.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/scsi/scsi_debug.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_debug.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/scsi_devinfo.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_devinfo.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/scsi_error.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_error.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/scsi/scsi_lib.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_lib.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h drivers/scsi/scsi_priv.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_priv.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/scsi_proc.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_proc.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/scsi/scsi_scan.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_scan.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h drivers/scsi/scsi_sysfs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_sysfs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/scsi/sd.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sd.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/scsi/sg.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sg.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/scsi/sr.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sr.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/scsi/st.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/st.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/scsi/sym53c8xx_2/sym_hipd.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sym53c8xx_2/sym_hipd.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/scsi/sym53c8xx_2/sym_misc.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sym53c8xx_2/sym_misc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/tmscsim.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/tmscsim.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/wd7000.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/wd7000.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/scsi/zalon.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/zalon.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/serial/21285.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/21285.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/serial/68328serial.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/68328serial.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/serial/68360serial.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/68360serial.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/serial/8250.c - 1.44 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/8250.c.diff?r1=text&tr1=1.44&r2=text&tr2=1.43&f=h drivers/serial/8250.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/8250.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/serial/8250_gsc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/8250_gsc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/serial/8250_pci.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/8250_pci.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/serial/8250_pnp.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/8250_pnp.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/serial/Kconfig - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/Kconfig.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h drivers/serial/Makefile - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/Makefile.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/serial/clps711x.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/clps711x.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/serial/mcfserial.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/mcfserial.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/serial/mux.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/mux.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/serial/pmac_zilog.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/pmac_zilog.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/serial/sa1100.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sa1100.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/serial/serial_core.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/serial_core.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/serial/sunsab.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sunsab.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/serial/sunsu.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sunsu.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/serial/sunzilog.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sunzilog.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/serial/v850e_uart.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/v850e_uart.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/telephony/ixj.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/telephony/ixj.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/telephony/phonedev.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/telephony/phonedev.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/Kconfig - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/usb/class/cdc-acm.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/class/cdc-acm.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/core/devices.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/devices.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/core/devio.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/devio.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/core/file.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/file.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/core/hcd.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/hcd.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/usb/core/hcd.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/hcd.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/core/hub.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/hub.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/usb/core/inode.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/inode.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/usb/core/message.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/message.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/usb/core/urb.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/urb.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/usb/core/usb.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/usb.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/usb/core/usb.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/usb.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/usb/gadget/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/gadget/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/usb/gadget/ether.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/ether.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/usb/gadget/inode.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/inode.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/usb/gadget/net2280.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/net2280.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/usb/gadget/net2280.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/net2280.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/gadget/zero.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/zero.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/host/ehci-dbg.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-dbg.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/host/ehci-hcd.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-hcd.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/usb/host/ehci-q.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-q.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/usb/host/ehci-sched.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-sched.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/host/ehci.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/host/ohci-dbg.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-dbg.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/host/ohci-hcd.c - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-hcd.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h drivers/usb/host/ohci-hub.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-hub.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/usb/host/ohci-pci.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-pci.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/usb/host/ohci-q.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-q.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/usb/host/ohci-sa1111.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-sa1111.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/host/ohci.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/host/uhci-hub.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/uhci-hub.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/misc/Kconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/Kconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/misc/Makefile - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/Makefile.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/misc/auerswald.c - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/auerswald.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/usb/misc/emi26.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/emi26.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/misc/emi26_fw.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/emi26_fw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/misc/rio500.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/rio500.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/usb/misc/usblcd.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/usblcd.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/misc/usbtest.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/usbtest.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/usb/serial/Kconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/Kconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/serial/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/usb/serial/belkin_sa.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/belkin_sa.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/serial/belkin_sa.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/belkin_sa.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/bus.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/bus.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/serial/console.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/console.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/serial/cyberjack.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/cyberjack.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/digi_acceleport.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/digi_acceleport.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/empeg.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/empeg.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/ezusb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ezusb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/serial/ftdi_sio.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ftdi_sio.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h drivers/usb/serial/ftdi_sio.h - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ftdi_sio.h.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h drivers/usb/serial/generic.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/generic.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/serial/io_edgeport.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_edgeport.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/serial/io_fw_boot.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_fw_boot.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/serial/io_fw_boot2.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_fw_boot2.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/serial/io_fw_down.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_fw_down.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/serial/io_fw_down2.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_fw_down2.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/serial/io_fw_down3.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_fw_down3.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/serial/io_tables.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_tables.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/serial/io_ti.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/io_ti.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/serial/ipaq.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ipaq.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/usb/serial/ir-usb.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ir-usb.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/usb/serial/keyspan.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/serial/keyspan.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/serial/keyspan_mpr_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_mpr_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_pda.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_pda.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_pda.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_pda.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/keyspan_pda_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_pda_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa18x_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa18x_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa19_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa19_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa19qi_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa19qi_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa19qw_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa19qw_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa19w_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa19w_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa28_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa28_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa28x_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa28x_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa28xa_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa28xa_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa28xb_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa28xb_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa49w_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa49w_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/keyspan_usa49wlc_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/keyspan_usa49wlc_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/kl5kusb105.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/kl5kusb105.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/kobil_sct.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/kobil_sct.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/usb/serial/mct_u232.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/mct_u232.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/usb/serial/omninet.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/omninet.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/serial/pl2303.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/pl2303.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/serial/pl2303.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/pl2303.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/usb/serial/safe_serial.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/safe_serial.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/usb/serial/usb-serial.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/usb-serial.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/usb/serial/visor.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/visor.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/usb/serial/whiteheat.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/whiteheat.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/usb/serial/whiteheat.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/whiteheat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/serial/whiteheat_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/whiteheat_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/xircom_pgs.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/xircom_pgs.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/xircom_pgs_fw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/xircom_pgs_fw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/storage/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/storage/datafab.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/datafab.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/usb/storage/debug.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/debug.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/storage/debug.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/debug.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/storage/dpcm.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/dpcm.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/storage/dpcm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/dpcm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/storage/freecom.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/freecom.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/storage/freecom.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/freecom.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/storage/initializers.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/initializers.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/storage/initializers.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/initializers.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/storage/isd200.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/isd200.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/storage/jumpshot.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/jumpshot.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/usb/storage/protocol.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/protocol.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/storage/protocol.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/protocol.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/storage/scsiglue.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/scsiglue.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/usb/storage/scsiglue.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/scsiglue.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/storage/sddr09.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sddr09.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/storage/sddr09.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sddr09.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/storage/sddr55.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sddr55.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/storage/sddr55.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/sddr55.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/storage/shuttle_usbat.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/shuttle_usbat.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/storage/shuttle_usbat.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/shuttle_usbat.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/storage/transport.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/transport.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/storage/transport.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/transport.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/usb/storage/unusual_devs.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/unusual_devs.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h drivers/usb/storage/usb.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/usb.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/usb/storage/usb.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/storage/usb.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/video/Kconfig - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/Kconfig.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h drivers/video/Makefile - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/Makefile.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/video/acornfb.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/acornfb.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/video/amifb.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/amifb.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/video/atafb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/atafb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/aty/aty128fb.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/aty128fb.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/video/aty/atyfb_base.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/atyfb_base.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/video/c2p.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/c2p.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/cirrusfb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/cirrusfb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/video/clps711xfb.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/clps711xfb.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/video/console/fbcon.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/fbcon.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/video/console/fbcon.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/fbcon.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/video/console/mdacon.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/mdacon.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/console/sticon.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/sticon.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/console/sticore.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/console/sticore.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/video/cyber2000fb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/cyber2000fb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/video/epson1355fb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/epson1355fb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/fbmem.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/fbmem.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/video/fbmon.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/fbmon.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/video/hgafb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/hgafb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/hitfb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/hitfb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/macfb.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/macfb.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/matrox/i2c-matroxfb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/matrox/i2c-matroxfb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/video/matrox/matroxfb_base.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/matrox/matroxfb_base.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/video/matrox/matroxfb_maven.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/matrox/matroxfb_maven.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/neofb.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/neofb.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/video/offb.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/offb.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/video/platinumfb.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/platinumfb.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/video/pm2fb.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pm2fb.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/video/pvr2fb.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pvr2fb.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/video/sa1100fb.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sa1100fb.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/video/sa1100fb.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sa1100fb.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/sgivwfb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sgivwfb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/video/sis/init.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/init.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/sis/init301.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/init301.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/sis/osdef.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/osdef.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/video/sis/sis.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/sis.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/video/sis/sis_accel.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/sis_accel.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/video/sis/sis_main.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/sis_main.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/video/sis/sis_main.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/sis_main.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/sis/vgatypes.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/vgatypes.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/video/skeletonfb.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/skeletonfb.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/video/sticore.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sticore.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/stifb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/stifb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/video/tdfxfb.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/tdfxfb.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/video/tridentfb.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/tridentfb.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/video/vfb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/vfb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/video/vga16fb.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/vga16fb.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/zorro/proc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/zorro/proc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/zorro/zorro.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/zorro/zorro.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/zorro/zorro.ids - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/zorro/zorro.ids.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/Kconfig - 1.43 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/Kconfig.diff?r1=text&tr1=1.43&r2=text&tr2=1.42&f=h fs/Kconfig.binfmt - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/Kconfig.binfmt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/Makefile - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/Makefile.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/adfs/dir.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/adfs/dir.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/adfs/super.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/adfs/super.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/affs/bitmap.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/affs/bitmap.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/affs/dir.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/affs/dir.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/affs/file.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/affs/file.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/affs/super.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/affs/super.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/afs/internal.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/afs/internal.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/afs/mntpt.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/afs/mntpt.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/afs/super.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/afs/super.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/aio.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/aio.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/attr.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/attr.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/autofs4/autofs_i.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/autofs4/autofs_i.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/autofs4/expire.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/autofs4/expire.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/autofs4/inode.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/autofs4/inode.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/autofs4/root.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/autofs4/root.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/autofs4/waitq.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/autofs4/waitq.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/bad_inode.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bad_inode.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/befs/linuxvfs.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/befs/linuxvfs.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/bfs/bfs.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bfs/bfs.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/bfs/dir.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bfs/dir.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/bfs/file.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bfs/file.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/bfs/inode.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bfs/inode.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/binfmt_aout.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_aout.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/binfmt_elf.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_elf.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h fs/binfmt_flat.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_flat.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/binfmt_misc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_misc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/binfmt_som.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_som.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/bio.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/bio.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/block_dev.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/block_dev.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/buffer.c - 1.36 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/buffer.c.diff?r1=text&tr1=1.36&r2=text&tr2=1.35&f=h fs/char_dev.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/char_dev.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/cifs/CHANGES - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/CHANGES.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/cifs/README - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/README.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/cifs/asn1.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/asn1.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/cifs/cifs_debug.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifs_debug.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/cifs/cifsencrypt.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsencrypt.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/cifs/cifsfs.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsfs.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/cifs/cifsfs.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsfs.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/cifs/cifsglob.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsglob.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/cifs/cifspdu.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifspdu.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/cifs/cifsproto.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsproto.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/cifs/cifssmb.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifssmb.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/cifs/connect.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/connect.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h fs/cifs/dir.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/dir.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/cifs/file.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/file.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/cifs/inode.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/inode.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/cifs/transport.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/transport.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/coda/coda_linux.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/coda_linux.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/coda/dir.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/dir.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/coda/inode.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/inode.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/coda/pioctl.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/pioctl.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/coda/psdev.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/psdev.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/coda/upcall.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/coda/upcall.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/compat.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/compat.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h fs/compat_ioctl.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/compat_ioctl.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h fs/cramfs/inode.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cramfs/inode.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/dcache.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dcache.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h fs/devpts/inode.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/devpts/inode.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/direct-io.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/direct-io.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/dquot.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dquot.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/efs/namei.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/efs/namei.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/efs/super.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/efs/super.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/eventpoll.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/eventpoll.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/exec.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/exec.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h fs/ext2/acl.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/acl.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/ext2/acl.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/acl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/ext2/inode.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/inode.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/ext2/super.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/super.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h fs/ext2/xattr_security.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/xattr_security.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/ext2/xattr_trusted.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/xattr_trusted.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/ext2/xattr_user.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext2/xattr_user.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ext3/acl.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/acl.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/ext3/acl.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/acl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/ext3/dir.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/dir.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ext3/ialloc.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/ialloc.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/ext3/inode.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/inode.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/ext3/namei.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/namei.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/ext3/super.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/super.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/ext3/xattr_security.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/xattr_security.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/ext3/xattr_trusted.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/xattr_trusted.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/ext3/xattr_user.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext3/xattr_user.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/fat/cache.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fat/cache.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/fat/dir.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fat/dir.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/fat/file.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fat/file.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/fat/inode.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fat/inode.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h fs/fat/misc.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fat/misc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/fcntl.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fcntl.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/fifo.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fifo.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/file.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/file.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/file_table.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/file_table.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/fs-writeback.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fs-writeback.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/hfs/bitmap.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/bitmap.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/hfs/btree.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/btree.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/hfs/extent.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/extent.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/hfs/inode.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/inode.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/hfs/super.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/super.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/hpfs/namei.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hpfs/namei.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/hpfs/super.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hpfs/super.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/hugetlbfs/inode.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hugetlbfs/inode.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h fs/inode.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/inode.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/isofs/inode.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/isofs/inode.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/isofs/rock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/isofs/rock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/jbd/commit.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd/commit.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/jbd/journal.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd/journal.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/jbd/revoke.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd/revoke.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/jbd/transaction.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd/transaction.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/jffs2/dir.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/dir.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/jffs2/file.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/file.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/jffs2/ioctl.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/ioctl.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/jffs2/os-linux.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/os-linux.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/jffs2/super.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/super.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/jfs/acl.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/acl.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/jfs/jfs_acl.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_acl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/jfs/jfs_debug.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_debug.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/jfs/jfs_debug.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_debug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/jfs/jfs_dtree.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_dtree.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/jfs/jfs_imap.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_imap.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/jfs/jfs_logmgr.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_logmgr.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/jfs/jfs_metapage.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_metapage.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/jfs/jfs_txnmgr.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_txnmgr.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/jfs/jfs_xtree.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/jfs_xtree.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/jfs/namei.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/namei.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/jfs/super.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jfs/super.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/libfs.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/libfs.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/lockd/clntproc.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/clntproc.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/lockd/svc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/svc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/lockd/svc4proc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/svc4proc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/lockd/svclock.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/svclock.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/lockd/svcproc.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/svcproc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/lockd/svcsubs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/lockd/svcsubs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/locks.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/locks.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/minix/inode.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/minix/inode.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/minix/minix.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/minix/minix.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/minix/namei.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/minix/namei.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/mpage.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/mpage.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/msdos/namei.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/msdos/namei.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/namei.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/namei.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h fs/namespace.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/namespace.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/ncpfs/dir.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ncpfs/dir.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ncpfs/file.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ncpfs/file.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ncpfs/inode.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ncpfs/inode.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/nfs/dir.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/dir.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/nfs/direct.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/direct.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/nfs/file.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/file.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/nfs/inode.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/inode.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h fs/nfs/nfs3proc.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/nfs3proc.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/nfs/nfs4proc.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/nfs4proc.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h fs/nfs/nfs4state.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/nfs4state.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/nfs/nfsroot.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/nfsroot.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/nfs/proc.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/proc.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/nfs/unlink.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/unlink.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/nfs/write.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/write.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/nfsd/export.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/export.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/nfsd/lockd.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/lockd.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/nfsd/nfs3proc.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs3proc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/nfsd/nfs4proc.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs4proc.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/nfsd/nfs4state.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs4state.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/nfsd/nfs4xdr.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs4xdr.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h fs/nfsd/nfsctl.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfsctl.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/nfsd/nfsfh.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfsfh.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/nfsd/nfsproc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfsproc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/nfsd/nfssvc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfssvc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/nfsd/vfs.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/vfs.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/ntfs/aops.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/aops.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/ntfs/compress.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/compress.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/ntfs/file.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/file.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/ntfs/mft.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/mft.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/ntfs/namei.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/namei.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/ntfs/super.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/super.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/open.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/open.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h fs/openpromfs/inode.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/openpromfs/inode.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/partitions/check.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/partitions/check.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/partitions/efi.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/partitions/efi.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/partitions/ldm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/partitions/ldm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/partitions/ldm.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/partitions/ldm.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/pipe.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/pipe.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/proc/array.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/array.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h fs/proc/base.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/base.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h fs/proc/generic.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/generic.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/proc/inode.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/inode.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/proc/kcore.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/kcore.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/proc/kmsg.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/kmsg.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/proc/proc_misc.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/proc_misc.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h fs/proc/proc_tty.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/proc_tty.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/proc/task_mmu.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/task_mmu.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/proc/task_nommu.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/task_nommu.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/qnx4/inode.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/qnx4/inode.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/quota.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/quota.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/quota_v1.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/quota_v1.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/quota_v2.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/quota_v2.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/read_write.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/read_write.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/readdir.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/readdir.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/reiserfs/inode.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/inode.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h fs/reiserfs/journal.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/journal.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/reiserfs/super.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/super.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/romfs/inode.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/romfs/inode.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/seq_file.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/seq_file.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/smbfs/cache.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/smbfs/cache.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/smbfs/file.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/smbfs/file.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/smbfs/inode.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/smbfs/inode.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/smbfs/proc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/smbfs/proc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/stat.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/stat.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h fs/super.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/super.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h fs/sysfs/dir.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysfs/dir.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/sysfs/file.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysfs/file.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/sysfs/group.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysfs/group.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/sysfs/symlink.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysfs/symlink.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/sysfs/sysfs.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysfs/sysfs.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/sysv/inode.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sysv/inode.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/udf/file.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/udf/file.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/udf/ialloc.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/udf/ialloc.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/udf/super.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/udf/super.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h fs/ufs/super.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ufs/super.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/vfat/namei.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/vfat/namei.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/xattr.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/xattr.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/acpi/acconfig.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acconfig.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/acpi/acdisasm.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acdisasm.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/acpi/acdispat.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acdispat.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/acpi/acexcep.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acexcep.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/acpi/acglobal.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acglobal.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/acpi/achware.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/achware.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/acpi/acinterp.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acinterp.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/acpi/aclocal.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/aclocal.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/acpi/acmacros.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acmacros.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/acpi/acnamesp.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acnamesp.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/acpi/acpi_bus.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acpi_bus.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/acpi/acpi_drivers.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acpi_drivers.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/acpi/acpiosxf.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acpiosxf.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/acpi/acpixf.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acpixf.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/acpi/acstruct.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acstruct.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/acpi/actables.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/actables.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/acpi/actbl.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/actbl.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/acpi/actbl1.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/actbl1.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/acpi/actypes.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/actypes.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/acpi/acutils.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/acutils.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/acpi/processor.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/processor.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-alpha/a.out.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/a.out.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/agp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/agp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/agp_backend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/agp_backend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/atomic.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/atomic.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/bitops.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/bitops.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-alpha/bug.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/bug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/byteorder.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/byteorder.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/cache.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/cache.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/cacheflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/cacheflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/checksum.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/checksum.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/compiler.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/compiler.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-alpha/console.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/console.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/core_apecs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_apecs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/core_cia.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_cia.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/core_irongate.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_irongate.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/core_lca.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_lca.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/core_marvel.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_marvel.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/core_mcpcia.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_mcpcia.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/core_polaris.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_polaris.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/core_t2.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_t2.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/core_titan.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_titan.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/core_tsunami.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_tsunami.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/core_wildfire.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/core_wildfire.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/current.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/current.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/delay.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/delay.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/dma-mapping.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/dma-mapping.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-alpha/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/elf.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/elf.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/err_common.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/err_common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/err_ev6.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/err_ev6.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/err_ev7.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/err_ev7.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/errno.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/errno.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/fcntl.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/fcntl.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/floppy.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/floppy.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/fpu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/fpu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/gct.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/gct.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/gentrap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/gentrap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/hardirq.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/hardirq.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-alpha/hw_irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/hw_irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/hwrpb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/hwrpb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/ide.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ide.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/io.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/io.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-alpha/ioctl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/ioctls.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ioctls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/jensen.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/jensen.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/kmap_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/kmap_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/local.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/local.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/machvec.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/machvec.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/md.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/md.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/mman.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mman.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/mmu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mmu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/mmu_context.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mmu_context.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/mmzone.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mmzone.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/module.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/module.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/page.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/page.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-alpha/pal.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/pal.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/param.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/param.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/parport.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/parport.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/pci.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/pci.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-alpha/percpu.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/percpu.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/pgalloc.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/pgalloc.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-alpha/pgtable.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/pgtable.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-alpha/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/posix_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/posix_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/processor.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/processor.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/ptrace.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ptrace.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/reg.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/reg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/regdef.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/regdef.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/resource.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/resource.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/rwsem.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/rwsem.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/serial.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/serial.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/sfp-machine.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sfp-machine.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/siginfo.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/siginfo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/signal.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/signal.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/smp.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/smp.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/spinlock.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/spinlock.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-alpha/stat.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/stat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/string.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/string.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/sysinfo.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/sysinfo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/system.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/system.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-alpha/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/thread_info.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/thread_info.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/tlb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/tlb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/tlbflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/tlbflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/topology.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/topology.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/types.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/types.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/uaccess.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/uaccess.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/unistd.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/unistd.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-alpha/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/vga.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/vga.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-cl7500/acornfb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/acornfb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-cl7500/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-cl7500/hardware.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/hardware.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-cl7500/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-cl7500/irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-cl7500/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-cl7500/memory.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/memory.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-cl7500/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-cl7500/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-cl7500/uncompress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/uncompress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-cl7500/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-clps711x/autcpu12.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/autcpu12.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-clps711x/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-clps711x/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-clps711x/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/memory.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/memory.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-clps711x/syspld.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/syspld.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-clps711x/time.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/time.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-clps711x/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/uncompress.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/uncompress.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-clps711x/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa110/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa110/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa110/io.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/io.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-ebsa110/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ebsa110/memory.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/memory.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ebsa110/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa110/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa110/uncompress.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/uncompress.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ebsa110/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa285/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa285/hardware.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/hardware.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa285/io.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/io.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ebsa285/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa285/memory.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/memory.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ebsa285/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ebsa285/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ebsa285/uncompress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/uncompress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa285/vmalloc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/vmalloc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-integrator/bits.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/bits.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-integrator/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/impd1.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/impd1.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-integrator/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/lm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/lm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/memory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/memory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-integrator/platform.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/platform.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-integrator/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-integrator/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-integrator/uncompress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/uncompress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-integrator/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-l7200/aux_reg.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/aux_reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/gp_timers.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/gp_timers.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/io.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-l7200/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/memory.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/memory.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-l7200/pmpcon.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/pmpcon.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/pmu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/pmu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/serial_l7200.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/serial_l7200.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/sib.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/sib.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/sys-clock.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/sys-clock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/time.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/time.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-l7200/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-l7200/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/bitfield.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/bitfield.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/dma.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/dma.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-pxa/hardware.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/hardware.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-pxa/idp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/idp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/irqs.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/irqs.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/arch-pxa/lubbock.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/lubbock.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/memory.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/memory.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-pxa/pxa-regs.h - 1.27 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa-regs.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/asm-arm/arch-pxa/system.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/system.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/timex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/timex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/uncompress.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/uncompress.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-pxa/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-rpc/acornfb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/acornfb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-rpc/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-rpc/hardware.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/hardware.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-rpc/io.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-rpc/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-rpc/memory.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/memory.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-rpc/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-rpc/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-rpc/uncompress.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/uncompress.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-rpc/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-sa1100/SA-1100.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/SA-1100.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/SA-1101.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/SA-1101.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/SA-1111.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/SA-1111.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/assabet.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/assabet.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/badge4.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/badge4.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/bitfield.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/bitfield.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/cerf.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/cerf.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-sa1100/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-sa1100/h3600.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/h3600.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/h3600_gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/h3600_gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/hardware.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/hardware.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-sa1100/ide.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/ide.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-sa1100/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-sa1100/irqs.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/irqs.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-sa1100/jornada720.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/jornada720.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-sa1100/lart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/lart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/memory.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/memory.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-sa1100/neponset.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/neponset.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/shannon.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/shannon.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/simpad.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/simpad.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/system.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/system.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-sa1100/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-sa1100/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-shark/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-shark/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-shark/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-shark/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-shark/memory.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/memory.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-shark/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-shark/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-shark/uncompress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/uncompress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-shark/vmalloc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/vmalloc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/assembler.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/assembler.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/atomic.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/atomic.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-arm/bitops.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/bitops.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-arm/bug.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/bug.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/bugs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/bugs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/byteorder.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/byteorder.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/cache.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cache.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/cacheflush.h - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cacheflush.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/asm-arm/checksum.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/checksum.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/cpu-multi32.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cpu-multi32.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/cpu-single.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cpu-single.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/current.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/current.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/delay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/delay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/div64.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/div64.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/dma-mapping.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/dma-mapping.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-arm/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/domain.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/domain.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/ecard.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ecard.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/elf.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/elf.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/fcntl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/fcntl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/fiq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/fiq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/floppy.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/floppy.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/fpstate.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/fpstate.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/glue.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/glue.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/hardirq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardirq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/clps7111.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/clps7111.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/cs89712.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/cs89712.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/dec21285.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/dec21285.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/hardware/ep7211.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/ep7211.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/ep7212.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/ep7212.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/icst525.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/icst525.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/ioc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/ioc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/iomd.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/iomd.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/linkup-l1110.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/linkup-l1110.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/memc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/memc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/pci_v3.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/pci_v3.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/sa1111.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/sa1111.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/hardware/ssp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/ssp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/ide.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ide.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/io.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/io.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-arm/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/irq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/irq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/kmap_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/kmap_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/leds.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/leds.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/limits.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/limits.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/linkage.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/linkage.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/locks.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/locks.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/mach/arch.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/arch.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/mach/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/mach/flash.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/flash.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/mach/irq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/irq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/mach/map.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/map.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/mach/pci.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/pci.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/mach/serial_sa1100.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/serial_sa1100.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/memory.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/memory.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-arm/mman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/mmu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/mmu_context.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mmu_context.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/mmzone.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mmzone.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/nwflash.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/nwflash.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/page.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/page.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/param.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/param.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/parport.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/parport.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/pci.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/pci.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/pgalloc.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/pgalloc.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/pgtable.h - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/pgtable.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-arm/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/proc-fns.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/proc-fns.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/processor.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/processor.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/procinfo.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/procinfo.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/ptrace.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ptrace.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/resource.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/resource.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/scatterlist.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/scatterlist.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/semaphore.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/semaphore.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/serial.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/serial.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/setup.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/setup.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/shmparam.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/shmparam.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/signal.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/signal.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/sizes.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sizes.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/smp.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/smp.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/spinlock.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/spinlock.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/stat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/stat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/statfs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/statfs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/string.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/string.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/system.h - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/system.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/asm-arm/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/therm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/therm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/thread_info.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/thread_info.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-arm/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/tlb.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/tlb.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/tlbflush.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/tlbflush.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/traps.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/traps.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/types.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/types.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/uaccess.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/uaccess.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-arm/ucontext.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/ucontext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/unaligned.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/unaligned.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/unistd.h - 1.26 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/unistd.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h include/asm-arm/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/vga.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/vga.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v10/ptrace.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v10/ptrace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/cacheflush.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/cacheflush.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-cris/dma-mapping.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/dma-mapping.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-cris/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/page.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/page.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-cris/ptrace.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-cris/thread_info.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/thread_info.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-generic/dma-mapping.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/dma-mapping.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-generic/pci-dma-compat.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/pci-dma-compat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-generic/pgtable.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/pgtable.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-generic/rtc.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/rtc.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-generic/sections.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/sections.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-generic/topology.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/topology.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-generic/vmlinux.lds.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/vmlinux.lds.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-h8300/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/atomic.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/atomic.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-h8300/bitops.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/bitops.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-h8300/bootinfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/bootinfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/bug.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/bug.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/byteorder.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/byteorder.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/cache.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/cache.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/cachectl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/cachectl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/cacheflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/cacheflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-h8300/checksum.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/checksum.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/dbg.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/dbg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/delay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/delay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/elf.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/elf.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/fcntl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/fcntl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/flat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/flat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/fpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/fpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/hardirq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/hardirq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-h8300/hw_irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/ide.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ide.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/io.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/io.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-h8300/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/irq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/irq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-h8300/keyboard.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/keyboard.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/kmap_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/kmap_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/md.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/md.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/mman.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/mman.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/mmu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/mmu_context.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/mmu_context.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/module.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/module.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/page.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/page.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-h8300/page_offset.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/page_offset.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/param.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/param.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-h8300/pci.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/pci.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-h8300/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/pgalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/pgalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/pgtable.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/pgtable.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-h8300/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/posix_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/posix_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/processor.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/processor.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-h8300/ptrace.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/regs267x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/regs267x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/regs306x.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/regs306x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/resource.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/resource.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/semaphore.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/semaphore.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-h8300/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/setup.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/setup.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/sh_bios.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/sh_bios.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/shm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/shm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/sigcontext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/sigcontext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/signal.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/signal.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/smp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/smp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-h8300/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/spinlock.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/spinlock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/string.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/string.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/system.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/system.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-h8300/target_time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/target_time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/thread_info.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/thread_info.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-h8300/timex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/timex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/tlbflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/tlbflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/traps.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/traps.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/types.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/types.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-h8300/uaccess.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/uaccess.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-h8300/ucontext.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/ucontext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-h8300/unistd.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/unistd.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-h8300/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/virtconvert.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/virtconvert.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/acpi-ext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/acpi-ext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/acpi.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/acpi.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-ia64/agp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/agp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/asmmacro.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/asmmacro.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/atomic.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/atomic.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/bitops.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/bitops.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/break.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/break.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/bug.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/bug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/bugs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/bugs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/byteorder.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/byteorder.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/cache.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/cache.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/cacheflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/cacheflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/checksum.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/checksum.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/compat.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/compat.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/current.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/current.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/delay.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/delay.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/dma-mapping.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/dma-mapping.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/elf.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/elf.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/errno.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/errno.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/fcntl.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/fcntl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/fpswa.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/fpswa.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/fpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/fpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/gcc_intrin.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/gcc_intrin.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/hardirq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/hardirq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/hw_irq.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/hw_irq.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/ia32.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ia32.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/ia64regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ia64regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/ide.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ide.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/intel_intrin.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/intel_intrin.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/intrinsics.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/intrinsics.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/io.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/io.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ia64/ioctl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ioctl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/ioctls.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ioctls.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/iosapic.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/iosapic.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/irq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/irq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/kmap_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kmap_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/kregs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kregs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/linkage.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/linkage.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/local.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/local.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/machvec.h - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-ia64/machvec_dig.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_dig.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/machvec_hpsim.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_hpsim.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/machvec_hpzx1.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_hpzx1.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/machvec_init.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_init.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/machvec_sn2.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_sn2.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-ia64/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/mca.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mca.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ia64/mca_asm.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mca_asm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/meminit.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/meminit.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/mman.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mman.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/mmu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/mmu_context.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mmu_context.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/mmzone.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mmzone.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/module.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/module.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/nodedata.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/nodedata.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/numa.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/numa.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/page.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/page.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-ia64/pal.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/pal.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ia64/param.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/param.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/parport.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/parport.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/patch.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/patch.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/pci.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/pci.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-ia64/percpu.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/percpu.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/perfmon.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/perfmon.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/perfmon_default_smpl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/perfmon_default_smpl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/pgalloc.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/pgalloc.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/pgtable.h - 1.23 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/pgtable.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-ia64/poll.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/poll.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/processor.h - 1.24 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/processor.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/asm-ia64/ptrace.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ptrace.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/ptrace_offsets.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ptrace_offsets.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/resource.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/resource.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/rse.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/rse.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/rwsem.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/rwsem.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sal.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sal.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-ia64/scatterlist.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/scatterlist.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/sections.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sections.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/semaphore.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/semaphore.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/siginfo.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/siginfo.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/signal.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/signal.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/smp.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/smp.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ia64/sn/addrs.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/addrs.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/sn/arch.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/arch.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/sn/bte.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/bte.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/sn/clksupport.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/clksupport.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sn/geo.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/geo.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sn/intr.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/intr.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/sn/io.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/io.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sn/klconfig.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/klconfig.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/sn/leds.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/leds.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/sn/module.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/module.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/sn/nodepda.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/nodepda.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/sn/pda.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/pda.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/sn/rw_mmr.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/rw_mmr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/sn/simulator.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/simulator.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sn/sn_cpuid.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/sn_cpuid.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/sn/sn_sal.h - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/sn_sal.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-ia64/sn/types.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/types.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/socket.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/socket.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/sockios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sockios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/spinlock.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/spinlock.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/stat.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/stat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/statfs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/statfs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/string.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/string.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/system.h - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/system.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-ia64/termbits.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/termbits.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/termios.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/termios.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/thread_info.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/thread_info.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ia64/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/tlb.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/tlb.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ia64/tlbflush.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/tlbflush.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/topology.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/topology.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-ia64/types.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/types.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/uaccess.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/uaccess.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/unaligned.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/unaligned.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/unistd.h - 1.23 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/unistd.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-ia64/unwind.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/unwind.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/user.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/user.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/ustack.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ustack.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/vga.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/vga.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/amigahw.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/amigahw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/amigaints.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/amigaints.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/apollodma.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/apollodma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68k/contregs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/contregs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/dma-mapping.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/dma-mapping.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68k/dvma.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/dvma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68k/fbio.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/fbio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/fpu.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/fpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68k/ide.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/ide.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68k/idprom.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/idprom.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/irq.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/irq.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-m68k/mac_baboon.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/mac_baboon.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/mac_via.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/mac_via.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/machines.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/machines.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/macintosh.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/macintosh.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68k/md.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/md.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68k/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/openprom.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/openprom.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/oplib.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/oplib.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/page.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/page.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-m68k/sbus.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/sbus.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68k/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68k/sun3-head.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/sun3-head.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68k/thread_info.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/thread_info.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-m68k/tlbflush.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/tlbflush.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68k/unistd.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/unistd.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-m68knommu/MC68328.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/MC68328.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/MC68332.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/MC68332.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/MC68EZ328.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/MC68EZ328.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/MC68VZ328.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/MC68VZ328.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/a.out.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/a.out.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/anchor.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/anchor.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/atomic.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/atomic.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68knommu/bitops.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/bitops.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-m68knommu/bootinfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/bootinfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/bootstd.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/bootstd.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/bug.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/bug.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/byteorder.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/byteorder.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/cache.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/cache.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/cachectl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/cachectl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/cacheflush.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/cacheflush.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m68knommu/checksum.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/checksum.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/coldfire.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/coldfire.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68knommu/commproc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/commproc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/dbg.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/dbg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/delay.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/delay.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/dma-mapping.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/dma-mapping.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/elf.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/elf.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/elia.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/elia.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/entry.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/entry.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/fcntl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/fcntl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/flat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/flat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/fpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/fpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/hardirq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/hardirq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/hwtest.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/hwtest.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/io.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/io.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m68knommu/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/ioctls.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/ioctls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/irq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/irq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m68knommu/kmap_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/kmap_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/m5206sim.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m5206sim.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/m5249sim.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m5249sim.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/m5272sim.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m5272sim.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/m5307sim.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m5307sim.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/m5407sim.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m5407sim.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/m68360.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m68360.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/m68360_enet.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m68360_enet.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/m68360_pram.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m68360_pram.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/m68360_quicc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m68360_quicc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/m68360_regs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m68360_regs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/machdep.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/machdep.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/math-emu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/math-emu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/mcfdma.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfdma.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/mcfmbus.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfmbus.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/mcfne.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfne.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/mcfpci.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfpci.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/mcfpit.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfpit.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/mcfsim.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfsim.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68knommu/mcfsmc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfsmc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/mcftimer.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcftimer.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/mcfuart.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfuart.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/mcfwdebug.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfwdebug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/md.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/md.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/mman.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mman.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/mmu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/mmu_context.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mmu_context.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/module.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/module.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/movs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/movs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/nettel.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/nettel.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/openprom.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/openprom.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/oplib.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/oplib.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/page.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/page.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m68knommu/page_offset.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/page_offset.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/param.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/param.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68knommu/pci.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/pci.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/pgalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/pgalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/pgtable.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/pgtable.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-m68knommu/poll.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/poll.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/posix_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/posix_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/processor.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/processor.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/ptrace.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/quicc_simple.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/quicc_simple.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/resource.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/resource.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/scatterlist.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/scatterlist.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/semaphore.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/semaphore.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/setup.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/setup.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/shm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/shm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/sigcontext.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/sigcontext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/signal.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/signal.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/smp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/smp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/socket.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/socket.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/sockios.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/sockios.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/spinlock.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/spinlock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/string.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/string.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/system.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/system.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-m68knommu/termbits.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/termbits.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/termios.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/termios.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/thread_info.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/thread_info.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/tlbflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/tlbflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/traps.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/traps.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/uaccess.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/uaccess.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/ucontext.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/ucontext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/unaligned.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/unaligned.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-m68knommu/unistd.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/unistd.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-m68knommu/user.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/user.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/bitops.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/bitops.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-mips/bootinfo.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/bootinfo.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-mips/cacheflush.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/cacheflush.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-mips/cpu.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/cpu.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-mips/dec/kn05.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/dec/kn05.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/dma-mapping.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/dma-mapping.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-mips/fpu.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/fpu.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-mips/gdb-stub.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/gdb-stub.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/inventory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/inventory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/io.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/io.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-mips/jmr3927/jmr3927.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/jmr3927/jmr3927.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-mips/jmr3927/tx3927.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/jmr3927/tx3927.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-mips/jmr3927/txx927.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/jmr3927/txx927.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-mips/lasat/lasat.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/lasat/lasat.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-mips/mips-boards/atlas.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/atlas.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/mips-boards/atlasint.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/atlasint.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-mips/mips-boards/generic.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/generic.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-mips/mips-boards/saa9730_uart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/saa9730_uart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/mips-boards/sead.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/sead.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/mips-boards/seadint.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/seadint.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-mips/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/page.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/page.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-mips/pci.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/pci.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-mips/pgtable-32.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/pgtable-32.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-mips/prctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/prctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/processor.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/processor.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-mips/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-mips/signal.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/signal.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-mips/smp.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/smp.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-mips/socket.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/socket.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-mips/thread_info.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/thread_info.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-mips/traps.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/traps.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/tx4927/toshiba_rbtx4927.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4927/toshiba_rbtx4927.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-mips/tx4927/tx4927.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4927/tx4927.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-mips/tx4927/tx4927_pci.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4927/tx4927_pci.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-mips/unistd.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/unistd.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-parisc/cacheflush.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/cacheflush.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-parisc/dma-mapping.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/dma-mapping.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-parisc/ide.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/ide.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-parisc/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-parisc/page.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/page.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-parisc/ptrace.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/ptrace.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-parisc/sections.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-parisc/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-parisc/smp.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/smp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-parisc/socket.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-parisc/thread_info.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/thread_info.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ppc/8xx_immap.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/8xx_immap.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/amigayle.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/amigayle.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/amipcmcia.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/amipcmcia.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/bootinfo.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/bootinfo.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/bootx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/bootx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/btext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/btext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/delay.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/delay.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/floppy.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/floppy.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ppc/gg2.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/gg2.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/gt64260.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/gt64260.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/gt64260_defs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/gt64260_defs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/harrier.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/harrier.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/highmem.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/highmem.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ppc/hydra.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/hydra.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/ibm403.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm403.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/ibm405.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm405.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/ibm44x.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm44x.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ppc/ibm4xx.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm4xx.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ppc/ibm_ocp_pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm_ocp_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/io.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/io.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-ppc/kgdb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/kgdb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/machdep.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/machdep.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ppc/md.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/md.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/mk48t59.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mk48t59.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/mmu.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mmu.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ppc/mmu_context.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mmu_context.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ppc/mpc10x.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc10x.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ppc/mpc8260.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc8260.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ppc/mpc8xx.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc8xx.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ppc/ocp.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ocp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ppc/ocp_ids.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ocp_ids.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/open_pic.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/open_pic.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ppc/page.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/page.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ppc/pc_serial.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pc_serial.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ppc/pci-bridge.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pci-bridge.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ppc/pci.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pci.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-ppc/pgalloc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pgalloc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/pgtable.h - 1.23 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pgtable.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-ppc/pnp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/pnp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/ppc4xx_pic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ppc4xx_pic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/ppcboot.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ppcboot.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ppc/prep_nvram.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/prep_nvram.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/prom.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/prom.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ppc/raven.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/raven.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/reg_booke.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/reg_booke.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ppc/residual.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/residual.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/rtc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/rtc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/serial.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/serial.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ppc/smp.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/smp.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ppc/spinlock.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/spinlock.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ppc/system.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/system.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ppc/time.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/time.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ppc/todc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/todc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ppc/traps.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/traps.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/zorro.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/zorro.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/atomic.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/atomic.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-s390/bitops.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/bitops.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-s390/bug.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/bug.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-s390/bugs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/bugs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/byteorder.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/byteorder.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/cache.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cache.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/cacheflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cacheflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/ccwdev.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ccwdev.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-s390/ccwgroup.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ccwgroup.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-s390/checksum.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/checksum.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-s390/cio.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cio.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-s390/compat.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/compat.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/cpcmd.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cpcmd.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/dasd.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/dasd.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-s390/debug.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/debug.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-s390/delay.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/delay.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/div64.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/div64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/ebcdic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ebcdic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/elf.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/elf.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/fcntl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/fcntl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/hardirq.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/hardirq.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/idals.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/idals.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/io.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/io.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/ioctl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ioctl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/irq.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/irq.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/local.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/local.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/lowcore.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/lowcore.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-s390/mathemu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/mathemu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/mman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/mman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/mmu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/mmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/mmu_context.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/mmu_context.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/page.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/page.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-s390/param.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/param.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/percpu.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/percpu.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-s390/pgalloc.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/pgalloc.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-s390/pgtable.h - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/pgtable.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/asm-s390/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/posix_types.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/posix_types.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/processor.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/processor.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-s390/ptrace.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ptrace.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-s390/qdio.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/qdio.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/resource.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/resource.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/rwsem.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/rwsem.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/s390_ext.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/s390_ext.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/sections.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sections.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/semaphore.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/semaphore.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-s390/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/setup.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/setup.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-s390/sfp-machine.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sfp-machine.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/sigcontext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sigcontext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/siginfo.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/siginfo.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/signal.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/signal.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/sigp.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sigp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/smp.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/smp.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-s390/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-s390/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/spinlock.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/spinlock.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-s390/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/statfs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/statfs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/string.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/string.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/system.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/system.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-s390/tape390.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/tape390.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/termbits.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/termbits.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/termios.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/termios.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/thread_info.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/thread_info.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-s390/timex.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/timex.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-s390/tlb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/tlb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/tlbflush.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/tlbflush.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/todclk.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/todclk.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/topology.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/topology.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/types.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/types.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/uaccess.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/uaccess.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-s390/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/unaligned.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/unaligned.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/unistd.h - 1.23 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/unistd.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-s390/user.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/user.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/vtoc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/vtoc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/addrspace.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/addrspace.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/atomic.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/atomic.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/bitops.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/bitops.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sh/bug.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/bug.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/bugs.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/bugs.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sh/byteorder.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/byteorder.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cache.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cache.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sh/cacheflush.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cacheflush.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/checksum.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/checksum.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sh/cpu-sh2/cache.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/cache.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/cpu-sh2/cacheflush.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/cacheflush.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh2/watchdog.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/watchdog.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh3/addrspace.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/addrspace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh3/cache.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/cache.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/cpu-sh3/cacheflush.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/cacheflush.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/cpu-sh3/dma.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/dma.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/cpu-sh3/freq.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/freq.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/cpu-sh3/mmu_context.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/mmu_context.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/cpu-sh3/rtc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/rtc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/cpu-sh3/ubc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/ubc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh3/watchdog.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/watchdog.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh4/addrspace.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/addrspace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/cpu-sh4/cache.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/cache.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/cpu-sh4/cacheflush.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/cacheflush.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/cpu-sh4/dma.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/dma.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sh/cpu-sh4/freq.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/freq.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sh/cpu-sh4/mmu_context.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/mmu_context.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh4/rtc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/rtc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh4/ubc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/ubc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh4/watchdog.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/watchdog.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/delay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/delay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/dma-mapping.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dma-mapping.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-sh/dma.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dma.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sh/dreamcast/sysasic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dreamcast/sysasic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/elf.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/elf.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/fcntl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/fcntl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/freq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/freq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/hardirq.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hardirq.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/hd64461.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hd64461.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/hd64465/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hd64465/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/hd64465/hd64465.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hd64465/hd64465.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/hd64465/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hd64465/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/hw_irq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hw_irq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/ide.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ide.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/io.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/io.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-sh/io_generic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/io_generic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/ioctls.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ioctls.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/irq.h - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/irq.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-sh/kgdb.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/kgdb.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/kmap_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/kmap_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/machvec.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/machvec.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sh/mc146818rtc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mc146818rtc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/mman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/mmu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/mmu_context.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mmu_context.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/mmzone.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mmzone.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/module.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/module.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/page.h - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/page.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-sh/param.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/param.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/pci.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pci.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sh/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/pgalloc.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pgalloc.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sh/pgtable.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pgtable.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-sh/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/processor.h - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/processor.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-sh/ptrace.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ptrace.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/resource.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/resource.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/rtc.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/rtc.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/rwsem.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/rwsem.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/scatterlist.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/scatterlist.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/semaphore.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/semaphore.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/serial.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/serial.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/sh_bios.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sh_bios.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/shmparam.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/shmparam.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/sigcontext.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sigcontext.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/signal.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/signal.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/smc37c93x.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/smc37c93x.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/smp.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/smp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/spinlock.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/spinlock.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/stat.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/stat.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/string.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/string.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/system.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/system.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-sh/termbits.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/termbits.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/thread_info.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/thread_info.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sh/timex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/timex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/tlb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/tlb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/tlbflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/tlbflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/topology.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/topology.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/types.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/types.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sh/uaccess.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/uaccess.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sh/ubc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ubc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/unistd.h - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/unistd.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-sh/user.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/user.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/watchdog.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/watchdog.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/apc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/apc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/asi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/asi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/asmmacro.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/asmmacro.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/atomic.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/atomic.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sparc/auxio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/auxio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/bitext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/bitext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/bitops.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/bitops.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/bpp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/bpp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/btfixup.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/btfixup.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/bug.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/bug.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/bugs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/bugs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/byteorder.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/byteorder.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/cache.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/cache.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/cacheflush.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/cacheflush.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/checksum.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/checksum.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/clock.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/clock.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/contregs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/contregs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/current.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/current.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/cypress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/cypress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/delay.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/delay.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/dma-mapping.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/dma-mapping.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/dma.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/dma.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/ebus.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ebus.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/ecc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ecc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/eeprom.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/eeprom.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/elf.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/elf.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/errno.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/errno.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/fbio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/fbio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/fcntl.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/fcntl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/floppy.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/floppy.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/hardirq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/hardirq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/head.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/head.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/highmem.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/highmem.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/hw_irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/ide.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ide.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/idprom.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/idprom.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/io-unit.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/io-unit.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/io.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/io.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/ioctls.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ioctls.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/iommu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/iommu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/irq.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/irq.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/jsflash.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/jsflash.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/kdebug.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/kdebug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/kgdb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/kgdb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/kmap_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/kmap_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/machines.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/machines.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/mbus.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mbus.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/memreg.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/memreg.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/mman.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mman.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/mmu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mmu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/mmu_context.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mmu_context.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/mostek.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mostek.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/mpmbox.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mpmbox.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/msi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/msi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/mxcc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mxcc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/obio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/obio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/openprom.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/openprom.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/openpromio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/openpromio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/oplib.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/oplib.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/page.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/page.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/param.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/param.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/pbm.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pbm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/pci.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pci.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/pcic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pcic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/perfctr.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/perfctr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/pgalloc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pgalloc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/pgtable.h - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pgtable.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-sparc/pgtsrmmu.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pgtsrmmu.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/pgtsun4.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pgtsun4.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/pgtsun4c.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/pgtsun4c.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/processor.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/processor.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/psr.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/psr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/ptrace.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ptrace.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/reg.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/resource.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/resource.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/ross.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/ross.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/rtc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/rtc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/sbi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sbi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/sbus.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sbus.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/semaphore.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/semaphore.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/sfp-machine.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sfp-machine.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/shmparam.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/shmparam.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/sigcontext.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sigcontext.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/siginfo.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/siginfo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/signal.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/signal.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/smp.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/smp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc/smpprim.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/smpprim.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/socket.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/socket.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/spinlock.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/spinlock.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc/stat.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/stat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/statfs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/statfs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/string.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/string.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/sun4paddr.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sun4paddr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/sun4prom.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sun4prom.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/sunbpp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sunbpp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/swift.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/swift.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/sysen.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/sysen.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/system.h - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/system.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-sparc/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/termios.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/termios.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc/thread_info.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/thread_info.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/timer.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/timer.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/timex.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/timex.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/tlbflush.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/tlbflush.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/traps.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/traps.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/tsunami.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/tsunami.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/turbosparc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/turbosparc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/types.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/types.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/uaccess.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/uaccess.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/unistd.h - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/unistd.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/asm-sparc/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/vac-ops.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/vac-ops.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/vaddrs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/vaddrs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/vfc_ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/vfc_ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/viking.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/viking.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc/winmacro.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/winmacro.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/agp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/agp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/apb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/apb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/asi.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/asi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/atomic.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/atomic.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sparc64/auxio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/auxio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/bbc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/bbc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/bitops.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/bitops.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sparc64/bpp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/bpp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/bug.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/bug.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/bugs.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/bugs.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/byteorder.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/byteorder.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/cache.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/cache.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/cacheflush.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/cacheflush.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/chafsr.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/chafsr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/checksum.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/checksum.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc64/chmctrl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/chmctrl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/compat.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/compat.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/cpudata.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/cpudata.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sparc64/current.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/current.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/dcr.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/dcr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/dcu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/dcu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/delay.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/delay.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/display7seg.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/display7seg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/div64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/div64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/dma-mapping.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/dma-mapping.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/dma.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/dma.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/ebus.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ebus.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/elf.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/elf.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc64/envctrl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/envctrl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/errno.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/errno.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/estate.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/estate.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/fbio.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/fbio.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/fcntl.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/fcntl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/fhc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/fhc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/floppy.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/floppy.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sparc64/fpumacro.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/fpumacro.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/hardirq.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/hardirq.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc64/head.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/head.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/hw_irq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/hw_irq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/ide.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ide.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/idprom.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/idprom.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/io.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/io.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-sparc64/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/ioctls.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ioctls.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/iommu.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/iommu.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc64/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/irq.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/irq.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sparc64/kdebug.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/kdebug.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/local.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/local.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/lsu.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/lsu.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/mc146818rtc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mc146818rtc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/mman.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mman.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/mmu.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mmu.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/mmu_context.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mmu_context.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-sparc64/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/mostek.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mostek.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/ns87303.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ns87303.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/openprom.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/openprom.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/openpromio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/openpromio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/oplib.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/oplib.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/page.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/page.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-sparc64/param.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/param.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/parport.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/parport.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/pci.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/pci.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-sparc64/percpu.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/percpu.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/perfctr.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/perfctr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/pgalloc.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/pgalloc.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-sparc64/pgtable.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/pgtable.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-sparc64/pil.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/pil.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/processor.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/processor.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/psrcompat.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/psrcompat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/pstate.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/pstate.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/ptrace.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ptrace.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/reg.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/resource.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/resource.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/rtc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/rtc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/rwsem.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/rwsem.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/sbus.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sbus.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/scatterlist.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/scatterlist.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/sections.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sections.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/semaphore.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/semaphore.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/sfp-machine.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sfp-machine.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/shmparam.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/shmparam.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/sigcontext.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sigcontext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/siginfo.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/siginfo.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/signal.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/signal.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/smp.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/smp.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-sparc64/socket.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/socket.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/spinlock.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/spinlock.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sparc64/spitfire.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/spitfire.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sparc64/starfire.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/starfire.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/stat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/stat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/statfs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/statfs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/string.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/string.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/sunbpp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sunbpp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/system.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/system.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-sparc64/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/termios.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/termios.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/thread_info.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/thread_info.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/timer.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/timer.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/timex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/timex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/tlb.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/tlb.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/tlbflush.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/tlbflush.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/topology.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/topology.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/ttable.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ttable.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-sparc64/types.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/types.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/uaccess.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/uaccess.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sparc64/uctx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/uctx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/unistd.h - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/unistd.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/asm-sparc64/upa.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/upa.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/user.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/user.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/utrap.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/utrap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/vga.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/vga.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/visasm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/visasm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/watchdog.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/watchdog.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/xor.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/xor.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-um/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-um/page.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/page.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-um/ptrace-generic.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/ptrace-generic.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-um/semaphore.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/semaphore.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-um/thread_info.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/thread_info.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-v850/a.out.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/a.out.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/anna.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/anna.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/as85ep1.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/as85ep1.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/asm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/asm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/atomic.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/atomic.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/bitops.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/bitops.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-v850/bug.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/bug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/byteorder.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/byteorder.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/cache.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/cache.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/cacheflush.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/cacheflush.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/checksum.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/checksum.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/clinkage.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/clinkage.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/delay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/delay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/dma-mapping.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/dma-mapping.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/elf.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/elf.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/entry.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/entry.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/fcntl.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/fcntl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/flat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/flat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/fpga85e2c.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/fpga85e2c.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/gbus_int.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/gbus_int.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/hardirq.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/hardirq.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/highres_timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/highres_timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/hw_irq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/hw_irq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/io.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/ioctl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/irq.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/irq.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/linkage.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/linkage.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/ma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/ma1.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ma1.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/machdep.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/machdep.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/macrology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/macrology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/me2.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/me2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/mman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/mman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/mmu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/mmu_context.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/mmu_context.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/module.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/module.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/page.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/page.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/param.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/param.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/pci.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/pci.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/pgalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/pgalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/pgtable.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/pgtable.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/processor.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/processor.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/ptrace.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/resource.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/resource.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/rte_cb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/rte_cb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/rte_ma1_cb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/rte_ma1_cb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/rte_mb_a_pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/rte_mb_a_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/rte_me2_cb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/rte_me2_cb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/rte_nb85e_cb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/rte_nb85e_cb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/semaphore.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/semaphore.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/serial.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/serial.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/signal.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/signal.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/sim.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sim.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/sim85e2.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sim85e2.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/sim85e2c.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sim85e2c.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/sim85e2s.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sim85e2s.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/simsyscall.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/simsyscall.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/socket.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/socket.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-v850/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/string.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/string.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/system.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/system.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-v850/teg.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/teg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/thread_info.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/thread_info.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/tlbflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/tlbflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/types.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/types.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/uaccess.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/uaccess.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-v850/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/unistd.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/unistd.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-v850/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/v850e.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e2.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e2_cache.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e2_cache.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/v850e_cache.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_cache.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_intc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_intc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_timer_c.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_timer_c.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_timer_d.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_timer_d.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_uart.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_uart.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/v850e_uarta.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_uarta.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_uartb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_uartb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/v850e_utils.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/v850e_utils.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/acct.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/acct.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/acpi.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/acpi.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/adb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/adb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/agp_backend.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/agp_backend.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/aio.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/aio.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/linux/ata.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ata.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h include/linux/auto_fs4.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/auto_fs4.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/bcd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/bcd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/binfmts.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/binfmts.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/bio.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/bio.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/bitmap.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/bitmap.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/blkdev.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/blkdev.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h include/linux/bootmem.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/bootmem.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/linux/buffer_head.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/buffer_head.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/byteorder/big_endian.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/byteorder/big_endian.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/byteorder/little_endian.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/byteorder/little_endian.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/capability.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/capability.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/coda.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/coda.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/coda_linux.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/coda_linux.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/completion.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/completion.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/console.h - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/console.h.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h include/linux/consolemap.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/consolemap.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/cpu.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cpu.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/cpufreq.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cpufreq.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/cpumask.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cpumask.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/linux/crypto.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/crypto.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/linux/cyclades.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cyclades.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/dcache.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dcache.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/delay.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/delay.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/device-mapper.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/device-mapper.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/device.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/device.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/dirent.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dirent.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/dm-ioctl.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dm-ioctl.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/efi.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/efi.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/linux/eisa.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/eisa.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/elf.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/elf.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/ethtool.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ethtool.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/eventpoll.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/eventpoll.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/ext2_fs.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ext2_fs.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/ext3_fs.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ext3_fs.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/fb.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fb.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/fd1772.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fd1772.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/file.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/file.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/firmware.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/firmware.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/fs.h - 1.39 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs.h.diff?r1=text&tr1=1.39&r2=text&tr2=1.38&f=h include/linux/fs_struct.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs_struct.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/gameport.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/gameport.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/generic_serial.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/generic_serial.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/genhd.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/genhd.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/gfp.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/gfp.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/hayesesp.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/hayesesp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/hdlc.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/hdlc.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/hugetlb.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/hugetlb.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/linux/i2c-algo-pcf.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c-algo-pcf.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/i2c-id.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c-id.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/i2c.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/linux/i2o.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2o.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/ide.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ide.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h include/linux/idr.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/idr.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/if_bridge.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_bridge.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/if_packet.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_packet.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/if_ppp.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_ppp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/if_tun.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_tun.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/if_vlan.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_vlan.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/linux/igmp.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/igmp.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/inet.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/inet.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/init.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/init.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/linux/init_task.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/init_task.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/input.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/input.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/interrupt.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/interrupt.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/ioport.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ioport.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/ip6_tunnel.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ip6_tunnel.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/ipv6.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ipv6.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/irq.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/irq.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/istallion.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/istallion.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/jffs2.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/jffs2.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/joystick.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/joystick.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/kallsyms.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kallsyms.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/kernel.h - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kernel.h.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h include/linux/kernel_stat.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kernel_stat.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/kmod.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kmod.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/kobject.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kobject.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/libata.h - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/libata.h.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h include/linux/linkage.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/linkage.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/list.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/list.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/linux/lockd/lockd.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/lockd/lockd.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/linux/major.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/major.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/mm.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mm.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h include/linux/mman.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mman.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mmzone.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmzone.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h include/linux/mod_devicetable.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mod_devicetable.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/module.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/module.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/mount.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mount.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/mpage.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mpage.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mroute.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mroute.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/msdos_fs.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/msdos_fs.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/linux/mtd/blktrans.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/blktrans.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mtd/cfi.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/cfi.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/mtd/cfi_endian.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/cfi_endian.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mtd/concat.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/concat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mtd/doc2000.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/doc2000.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/mtd/flashchip.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/flashchip.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/mtd/ftl.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/ftl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/mtd/gen_probe.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/gen_probe.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/mtd/inftl.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/inftl.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/mtd/map.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/map.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/mtd/mtd.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/mtd.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/mtd/nand.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/nand.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/mtd/nand_ecc.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/nand_ecc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/mtd/nftl.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/nftl.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mtd/partitions.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/partitions.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/mtd/pmc551.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/pmc551.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/namei.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/namei.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/net.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/net.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/netdevice.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netdevice.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h include/linux/netfilter_bridge/ebt_log.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter_bridge/ebt_log.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/netfilter_ipv4.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter_ipv4.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/netfilter_ipv6.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter_ipv6.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/netlink.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netlink.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/nfs4.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfs4.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/nfs_fs.h - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfs_fs.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/linux/nfs_page.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfs_page.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/nfs_xdr.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfs_xdr.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/linux/nfsd/nfsd.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfsd/nfsd.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/linux/nfsd/state.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nfsd/state.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/notifier.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/notifier.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/page-flags.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/page-flags.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/pagemap.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pagemap.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/linux/parport.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/parport.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/pci.h - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci.h.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h include/linux/pci_ids.h - 1.43 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci_ids.h.diff?r1=text&tr1=1.43&r2=text&tr2=1.42&f=h include/linux/percpu.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/percpu.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/percpu_counter.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/percpu_counter.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/pid.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pid.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/pkt_cls.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pkt_cls.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/pkt_sched.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pkt_sched.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/pm.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pm.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/pnp.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pnp.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/linux/ppp-comp.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ppp-comp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/ppp_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ppp_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/preempt.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/preempt.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/proc_fs.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/proc_fs.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/linux/profile.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/profile.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/ptrace.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ptrace.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/quota.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/quota.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/quotaops.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/quotaops.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/radix-tree.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/radix-tree.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/raid/linear.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/linear.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/raid/md.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/md.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/raid/md_k.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/md_k.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/raid/md_p.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/md_p.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/raid/raid5.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/raid5.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/rcupdate.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rcupdate.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/linux/reboot.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/reboot.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/reiserfs_fs.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/reiserfs_fs.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/linux/reiserfs_fs_sb.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/reiserfs_fs_sb.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/rtc.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rtc.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/rtnetlink.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rtnetlink.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/sched.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sched.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h include/linux/security.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/security.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/sem.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sem.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/seq_file.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/seq_file.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/serial_core.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/serial_core.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/serio.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/serio.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/shmem_fs.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/shmem_fs.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/skbuff.h - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/skbuff.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/linux/slab.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/slab.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/linux/smb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/smb_fs.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smb_fs.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/smp.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smp.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/smp_lock.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smp_lock.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/socket.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/socket.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/sonet.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sonet.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/spinlock.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spinlock.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/stallion.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/stallion.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/string.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/string.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/sunrpc/auth_gss.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/auth_gss.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/sunrpc/clnt.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/clnt.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/sunrpc/gss_api.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/gss_api.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/sunrpc/gss_krb5.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/gss_krb5.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/sunrpc/sched.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/sched.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/sunrpc/svc.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/svc.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/linux/suspend.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/suspend.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/swap.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/swap.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/linux/synclink.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/synclink.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/sysctl.h - 1.48 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sysctl.h.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h include/linux/sysdev.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sysdev.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/sysfs.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sysfs.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/tcp.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tcp.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/topology.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/topology.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/linux/tty.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tty.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/tty_driver.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tty_driver.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/tty_ldisc.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tty_ldisc.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/udp.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/udp.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/usb.h - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb.h.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h include/linux/usbdevice_fs.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usbdevice_fs.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/videodev.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/videodev.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/videodev2.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/videodev2.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/linux/videotext.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/videotext.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/vmalloc.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/vmalloc.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/vt_kern.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/vt_kern.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/linux/wanrouter.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/wanrouter.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/wireless.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/wireless.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/workqueue.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/workqueue.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/writeback.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/writeback.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/media/audiochip.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/audiochip.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/media/saa7146.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/saa7146.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/media/saa7146_vv.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/saa7146_vv.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/net/addrconf.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/addrconf.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/net/af_unix.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/af_unix.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/net/bluetooth/bluetooth.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/bluetooth/bluetooth.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/net/bluetooth/hci.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/bluetooth/hci.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/net/bluetooth/hci_core.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/bluetooth/hci_core.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/net/bluetooth/rfcomm.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/bluetooth/rfcomm.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/net/compat.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/compat.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/dst.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/dst.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/net/flow.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/flow.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/net/icmp.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/icmp.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/net/if_inet6.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/if_inet6.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/net/inetpeer.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/inetpeer.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/net/ip.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ip.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/net/ip6_route.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ip6_route.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/net/ip6_tunnel.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ip6_tunnel.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/ip_vs.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ip_vs.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/net/ipcomp.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ipcomp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/net/ipconfig.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ipconfig.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/ipip.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ipip.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/net/ipv6.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ipv6.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/net/irda/irda_device.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/irda/irda_device.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/iw_handler.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/iw_handler.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/net/neighbour.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/neighbour.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/net/pkt_sched.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/pkt_sched.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/net/rose.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/rose.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/route.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/route.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/net/sctp/sctp.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sctp/sctp.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/net/sctp/structs.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sctp/structs.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/net/sctp/user.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sctp/user.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/net/snmp.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/snmp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/sock.h - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sock.h.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h include/net/syncppp.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/syncppp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/tcp.h - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/tcp.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/net/transp_v6.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/transp_v6.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/net/udp.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/udp.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/pcmcia/bulkmem.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/bulkmem.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/pcmcia/cistpl.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/cistpl.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/pcmcia/cs.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/cs.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/pcmcia/cs_types.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/cs_types.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/pcmcia/ds.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/ds.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/pcmcia/ss.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/ss.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/pcmcia/version.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/pcmcia/version.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/scsi/scsi.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/scsi/scsi_cmnd.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_cmnd.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/scsi/scsi_device.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_device.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/scsi/scsi_eh.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_eh.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/scsi/scsi_host.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_host.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/scsi/sg.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/sg.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/sound/control.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/control.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/sound/core.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/core.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/sound/cs4231.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/cs4231.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/sound/emu10k1.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/emu10k1.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/sound/seq_kernel.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/seq_kernel.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/sound/uda1341.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/uda1341.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/sound/version.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/version.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h include/video/neomagic.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/neomagic.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/video/radeon.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/radeon.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/video/trident.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/trident.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h init/Kconfig - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/Kconfig.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h init/do_mounts.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/do_mounts.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h init/do_mounts.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/do_mounts.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h init/do_mounts_rd.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/do_mounts_rd.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h init/initramfs.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/initramfs.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h init/main.c - 1.49 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/main.c.diff?r1=text&tr1=1.49&r2=text&tr2=1.48&f=h init/version.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/version.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h ipc/sem.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/sem.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h ipc/shm.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/shm.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h ipc/util.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/util.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h ipc/util.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/util.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h kernel/Makefile - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/Makefile.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h kernel/acct.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/acct.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h kernel/capability.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/capability.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h kernel/cpu.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/cpu.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h kernel/exec_domain.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/exec_domain.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h kernel/exit.c - 1.53 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/exit.c.diff?r1=text&tr1=1.53&r2=text&tr2=1.52&f=h kernel/fork.c - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/fork.c.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h kernel/kallsyms.c - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kallsyms.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h kernel/kmod.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kmod.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h kernel/module.c - 1.47 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/module.c.diff?r1=text&tr1=1.47&r2=text&tr2=1.46&f=h kernel/panic.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/panic.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h kernel/pid.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/pid.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h kernel/posix-timers.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/posix-timers.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h kernel/power/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h kernel/power/disk.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/disk.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h kernel/power/main.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/main.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h kernel/power/power.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/power.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h kernel/power/poweroff.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/poweroff.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h kernel/power/process.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/process.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h kernel/printk.c - 1.44 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/printk.c.diff?r1=text&tr1=1.44&r2=text&tr2=1.43&f=h kernel/profile.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/profile.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h kernel/ptrace.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/ptrace.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h kernel/rcupdate.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rcupdate.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h kernel/resource.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/resource.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h kernel/sched.c - 1.51 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched.c.diff?r1=text&tr1=1.51&r2=text&tr2=1.50&f=h kernel/signal.c - 1.44 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/signal.c.diff?r1=text&tr1=1.44&r2=text&tr2=1.43&f=h kernel/softirq.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/softirq.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h kernel/sys.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sys.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h kernel/sysctl.c - 1.46 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sysctl.c.diff?r1=text&tr1=1.46&r2=text&tr2=1.45&f=h kernel/timer.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/timer.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h kernel/workqueue.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/workqueue.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h lib/Kconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/Kconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h lib/Makefile - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/Makefile.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h lib/cmdline.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/cmdline.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h lib/idr.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/idr.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h lib/inflate.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/inflate.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h lib/kobject.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/kobject.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h lib/radix-tree.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/radix-tree.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h lib/vsprintf.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/vsprintf.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h mm/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h mm/bootmem.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/bootmem.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h mm/filemap.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/filemap.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h mm/fremap.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/fremap.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h mm/highmem.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/highmem.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h mm/madvise.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/madvise.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h mm/memory.c - 1.42 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/memory.c.diff?r1=text&tr1=1.42&r2=text&tr2=1.41&f=h mm/mlock.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mlock.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h mm/mmap.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mmap.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h mm/mprotect.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mprotect.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h mm/mremap.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mremap.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h mm/nommu.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/nommu.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h mm/oom_kill.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/oom_kill.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h mm/page-writeback.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/page-writeback.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h mm/page_alloc.c - 1.41 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/page_alloc.c.diff?r1=text&tr1=1.41&r2=text&tr2=1.40&f=h mm/pdflush.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/pdflush.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h mm/readahead.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/readahead.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h mm/rmap.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/rmap.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h mm/shmem.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/shmem.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h mm/slab.c - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/slab.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h mm/swap.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/swap.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h mm/swap_state.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/swap_state.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h mm/swapfile.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/swapfile.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h mm/truncate.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/truncate.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h mm/vmalloc.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/vmalloc.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h mm/vmscan.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/vmscan.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h net/802/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/802/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/802/psnap.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/802/psnap.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/8021q/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/8021q/vlan.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/8021q/vlan.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/8021q/vlan_dev.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan_dev.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/8021q/vlanproc.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlanproc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/Kconfig - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/Kconfig.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/appletalk/aarp.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/appletalk/aarp.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/appletalk/ddp.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/appletalk/ddp.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/atm/addr.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/addr.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/atm/addr.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/addr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/atm/br2684.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/br2684.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/atm/clip.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/clip.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/atm/common.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/common.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/atm/lec.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/lec.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/atm/lec.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/lec.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/atm/mpc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/atm/mpc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/ax25/af_ax25.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ax25/af_ax25.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ax25/ax25_in.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ax25/ax25_in.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ax25/ax25_std_timer.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ax25/ax25_std_timer.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/ax25/sysctl_net_ax25.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ax25/sysctl_net_ax25.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/bluetooth/af_bluetooth.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/af_bluetooth.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/bluetooth/bnep/bnep.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/bnep/bnep.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/bluetooth/bnep/core.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/bnep/core.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/bluetooth/bnep/netdev.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/bnep/netdev.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/bluetooth/bnep/sock.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/bnep/sock.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/bluetooth/hci_conn.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hci_conn.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/bluetooth/hci_core.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hci_core.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/bluetooth/hci_event.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hci_event.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/bluetooth/hci_sock.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hci_sock.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/bluetooth/l2cap.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/l2cap.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/bluetooth/rfcomm/core.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/rfcomm/core.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/bluetooth/rfcomm/sock.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/rfcomm/sock.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/bluetooth/rfcomm/tty.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/rfcomm/tty.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/bluetooth/sco.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/sco.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/bridge/br.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/bridge/br_device.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_device.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/bridge/br_fdb.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_fdb.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/bridge/br_forward.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_forward.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/bridge/br_if.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_if.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/bridge/br_input.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_input.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/bridge/br_ioctl.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_ioctl.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/bridge/br_netfilter.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_netfilter.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/bridge/br_notify.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_notify.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/bridge/br_private.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_private.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/bridge/br_private_stp.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_private_stp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/bridge/br_stp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_stp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/bridge/br_stp_bpdu.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_stp_bpdu.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/bridge/br_stp_if.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_stp_if.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/bridge/br_stp_timer.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_stp_timer.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/bridge/netfilter/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/bridge/netfilter/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/bridge/netfilter/ebt_log.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/ebt_log.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/bridge/netfilter/ebtable_filter.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/ebtable_filter.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/bridge/netfilter/ebtable_nat.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/netfilter/ebtable_nat.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/compat.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/compat.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/core/datagram.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/datagram.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/core/dev.c - 1.38 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/dev.c.diff?r1=text&tr1=1.38&r2=text&tr2=1.37&f=h net/core/dev_mcast.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/dev_mcast.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/core/ethtool.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/ethtool.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/core/flow.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/flow.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/core/iovec.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/iovec.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/core/link_watch.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/link_watch.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/core/neighbour.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/neighbour.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/core/net-sysfs.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/net-sysfs.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/core/pktgen.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/pktgen.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/core/rtnetlink.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/rtnetlink.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/core/skbuff.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/skbuff.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/core/sock.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/sock.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/core/sysctl_net_core.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/sysctl_net_core.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/core/utils.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/utils.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/decnet/af_decnet.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/decnet/af_decnet.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/decnet/dn_route.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/decnet/dn_route.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/decnet/dn_rules.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/decnet/dn_rules.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/econet/af_econet.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/econet/af_econet.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/Kconfig - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/Kconfig.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/ipv4/af_inet.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/af_inet.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h net/ipv4/arp.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/arp.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/ipv4/devinet.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/devinet.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h net/ipv4/esp4.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/esp4.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/fib_frontend.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/fib_frontend.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/ipv4/fib_hash.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/fib_hash.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/ipv4/fib_rules.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/fib_rules.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/ipv4/fib_semantics.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/fib_semantics.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/icmp.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/icmp.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/ipv4/igmp.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/igmp.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h net/ipv4/inetpeer.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inetpeer.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/ip_forward.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_forward.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/ipv4/ip_fragment.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_fragment.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/ipv4/ip_gre.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_gre.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h net/ipv4/ip_input.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_input.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/ipv4/ip_options.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_options.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/ip_output.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_output.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/ipv4/ip_sockglue.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ip_sockglue.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/ipcomp.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipcomp.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/ipconfig.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipconfig.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/ipip.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipip.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/ipv4/ipmr.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipmr.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/ipvs/ip_vs_app.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_app.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/ipv4/ipvs/ip_vs_conn.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_conn.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/ipv4/ipvs/ip_vs_core.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_core.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/ipv4/ipvs/ip_vs_ctl.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_ctl.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/ipvs/ip_vs_dh.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_dh.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv4/ipvs/ip_vs_est.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_est.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv4/ipvs/ip_vs_ftp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_ftp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv4/ipvs/ip_vs_lblc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_lblc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ipv4/ipvs/ip_vs_lblcr.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_lblcr.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/ipv4/ipvs/ip_vs_lc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_lc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/ipv4/ipvs/ip_vs_nq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_nq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/ipv4/ipvs/ip_vs_proto.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_proto.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv4/ipvs/ip_vs_proto_ah.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_proto_ah.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/ipv4/ipvs/ip_vs_proto_esp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_proto_esp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/ipv4/ipvs/ip_vs_proto_tcp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_proto_tcp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/ipvs/ip_vs_proto_udp.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_proto_udp.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/ipv4/ipvs/ip_vs_rr.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_rr.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/ipv4/ipvs/ip_vs_sched.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_sched.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/ipv4/ipvs/ip_vs_sed.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_sed.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/ipv4/ipvs/ip_vs_sh.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_sh.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv4/ipvs/ip_vs_sync.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_sync.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/ipv4/ipvs/ip_vs_wlc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_wlc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/ipv4/ipvs/ip_vs_wrr.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_wrr.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/ipv4/ipvs/ip_vs_xmit.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/ipvs/ip_vs_xmit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/netfilter/Kconfig - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/Kconfig.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/netfilter/Makefile - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/Makefile.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/netfilter/arptable_filter.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/arptable_filter.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/ipv4/netfilter/ip_queue.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/ip_queue.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/ipv4/netfilter/ipt_MASQUERADE.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/ipt_MASQUERADE.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv4/netfilter/ipt_recent.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/ipt_recent.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/ipv4/proc.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/proc.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/ipv4/protocol.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/protocol.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/ipv4/raw.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/raw.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv4/route.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/route.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/ipv4/syncookies.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/syncookies.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/ipv4/sysctl_net_ipv4.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/sysctl_net_ipv4.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/ipv4/tcp.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h net/ipv4/tcp_diag.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_diag.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/ipv4/tcp_input.c - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_input.c.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h net/ipv4/tcp_ipv4.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_ipv4.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h net/ipv4/tcp_minisocks.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_minisocks.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/ipv4/tcp_output.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_output.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/ipv4/tcp_timer.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/tcp_timer.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/ipv4/udp.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/udp.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/ipv6/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/ipv6/addrconf.c - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/addrconf.c.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h net/ipv6/af_inet6.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/af_inet6.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h net/ipv6/anycast.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/anycast.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv6/datagram.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/datagram.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv6/esp6.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/esp6.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv6/exthdrs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/exthdrs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/ipv6/icmp.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/icmp.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/ipv6/ip6_fib.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ip6_fib.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv6/ip6_input.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ip6_input.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/ipv6/ip6_output.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ip6_output.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h net/ipv6/ip6_tunnel.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ip6_tunnel.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/ipv6/ipcomp6.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ipcomp6.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv6/ipv6_sockglue.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ipv6_sockglue.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/ipv6/mcast.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/mcast.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/ipv6/ndisc.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ndisc.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/ipv6/netfilter/Kconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/Kconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/ipv6/netfilter/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ipv6/netfilter/ip6_queue.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/ip6_queue.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/ipv6/netfilter/ip6t_hbh.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/ip6t_hbh.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ipv6/netfilter/ip6table_filter.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/ip6table_filter.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ipv6/proc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/proc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/ipv6/protocol.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/protocol.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/ipv6/raw.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/raw.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h net/ipv6/reassembly.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/reassembly.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipv6/route.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/route.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h net/ipv6/sit.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/sit.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/ipv6/sysctl_net_ipv6.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/sysctl_net_ipv6.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv6/tcp_ipv6.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/tcp_ipv6.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h net/ipv6/udp.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/udp.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/ipv6/xfrm6_policy.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/xfrm6_policy.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/ipx/af_ipx.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipx/af_ipx.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/irda/ircomm/ircomm_tty.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/irda/ircomm/ircomm_tty.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/irda/irlap_frame.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/irda/irlap_frame.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/irda/irnet/irnet.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/irda/irnet/irnet.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/irda/irnet/irnet_ppp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/irda/irnet/irnet_ppp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/irda/irnet/irnet_ppp.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/irda/irnet/irnet_ppp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/key/af_key.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/key/af_key.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/llc/af_llc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/llc/af_llc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/llc/llc_input.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/llc/llc_input.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/netlink/af_netlink.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netlink/af_netlink.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h net/netrom/af_netrom.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netrom/af_netrom.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/packet/af_packet.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/packet/af_packet.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h net/rose/af_rose.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rose/af_rose.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/rose/rose_route.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rose/rose_route.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/sched/cls_api.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/cls_api.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/sched/cls_route.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/cls_route.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/sched/cls_u32.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/cls_u32.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/sched/sch_api.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_api.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/sched/sch_atm.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_atm.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/sched/sch_cbq.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_cbq.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/sched/sch_dsmark.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_dsmark.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/sched/sch_fifo.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_fifo.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/sched/sch_generic.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_generic.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/sched/sch_gred.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_gred.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/sched/sch_htb.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_htb.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/sched/sch_ingress.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_ingress.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/sched/sch_prio.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_prio.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/sched/sch_red.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_red.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/sched/sch_sfq.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_sfq.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/sched/sch_tbf.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_tbf.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/sched/sch_teql.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_teql.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/sctp/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/sctp/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/sctp/associola.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/associola.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/sctp/bind_addr.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/bind_addr.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/sctp/endpointola.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/endpointola.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/sctp/input.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/input.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/sctp/ipv6.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/ipv6.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/sctp/output.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/output.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/sctp/outqueue.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/outqueue.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/sctp/proc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/proc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/sctp/protocol.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/protocol.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h net/sctp/sm_make_chunk.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/sm_make_chunk.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/sctp/sm_sideeffect.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/sm_sideeffect.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/sctp/sm_statefuns.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/sm_statefuns.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h net/sctp/socket.c - 1.36 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/socket.c.diff?r1=text&tr1=1.36&r2=text&tr2=1.35&f=h net/sctp/transport.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/transport.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/socket.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/socket.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h net/sunrpc/auth_gss/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/sunrpc/auth_gss/auth_gss.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/auth_gss.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/sunrpc/auth_gss/gss_krb5_crypto.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_krb5_crypto.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/sunrpc/auth_gss/gss_krb5_mech.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_krb5_mech.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/sunrpc/auth_gss/gss_krb5_seal.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_krb5_seal.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/sunrpc/auth_gss/gss_krb5_unseal.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_krb5_unseal.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/sunrpc/auth_unix.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_unix.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/sunrpc/clnt.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/clnt.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/sunrpc/rpc_pipe.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/rpc_pipe.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h net/sunrpc/sched.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/sched.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h net/sunrpc/svc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/svc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/sunrpc/sysctl.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/sysctl.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/sunrpc/xprt.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprt.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h net/sysctl_net.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sysctl_net.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/unix/af_unix.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/unix/af_unix.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h net/unix/garbage.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/unix/garbage.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/wanrouter/wanmain.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wanrouter/wanmain.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/wanrouter/wanproc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wanrouter/wanproc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/x25/af_x25.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/x25/af_x25.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h net/x25/x25_dev.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/x25/x25_dev.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/xfrm/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/xfrm/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/xfrm/xfrm_algo.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/xfrm_algo.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/xfrm/xfrm_output.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/xfrm_output.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/xfrm/xfrm_policy.c - 1.36 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/xfrm_policy.c.diff?r1=text&tr1=1.36&r2=text&tr2=1.35&f=h net/xfrm/xfrm_state.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/xfrm/xfrm_state.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h scripts/Makefile.lib - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/Makefile.lib.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h scripts/Makefile.modpost - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/Makefile.modpost.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h scripts/genksyms/genksyms.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/genksyms/genksyms.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h scripts/genksyms/lex.c_shipped - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/genksyms/lex.c_shipped.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/genksyms/lex.l - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/genksyms/lex.l.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h scripts/genksyms/parse.c_shipped - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/genksyms/parse.c_shipped.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/genksyms/parse.y - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/genksyms/parse.y.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/kconfig/conf.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kconfig/conf.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h scripts/kconfig/confdata.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kconfig/confdata.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h scripts/kconfig/lex.zconf.c_shipped - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kconfig/lex.zconf.c_shipped.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h scripts/kconfig/lkc.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kconfig/lkc.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h scripts/kconfig/zconf.l - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kconfig/zconf.l.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/kernel-doc - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/kernel-doc.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h scripts/patch-kernel - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/patch-kernel.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h scripts/ver_linux - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/ver_linux.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h security/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h security/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h security/capability.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/capability.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h security/commoncap.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/commoncap.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h security/dummy.c - 1.28 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/dummy.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h security/root_plug.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/root_plug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h security/security.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/security.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h security/selinux/hooks.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/hooks.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h security/selinux/include/avc.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/include/avc.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h security/selinux/include/objsec.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/include/objsec.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h security/selinux/include/security.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/include/security.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h security/selinux/selinuxfs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/selinuxfs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h security/selinux/ss/avtab.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/avtab.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h security/selinux/ss/context.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/context.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h security/selinux/ss/mls.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/mls.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h security/selinux/ss/mls.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/mls.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h security/selinux/ss/policydb.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/policydb.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h security/selinux/ss/services.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/services.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h security/selinux/ss/sidtab.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/sidtab.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h security/selinux/ss/sidtab.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/ss/sidtab.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/Kconfig - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h sound/arm/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/arm/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/arm/sa11xx-uda1341.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/arm/sa11xx-uda1341.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h sound/core/Kconfig - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h sound/core/control.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/control.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h sound/core/info.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/info.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/core/init.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/init.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/core/memalloc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/memalloc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h sound/core/pcm.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/pcm.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h sound/core/pcm_native.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/pcm_native.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h sound/core/rawmidi.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/rawmidi.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h sound/core/seq/oss/seq_oss_synth.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/seq/oss/seq_oss_synth.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h sound/core/seq/seq_clientmgr.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/seq/seq_clientmgr.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/core/seq/seq_device.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/seq/seq_device.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h sound/core/sound.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/sound.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h sound/core/timer.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/core/timer.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h sound/drivers/Kconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/drivers/Kconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/drivers/vx/vx_core.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/drivers/vx/vx_core.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/drivers/vx/vx_hwdep.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/drivers/vx/vx_hwdep.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h sound/i2c/cs8427.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/i2c/cs8427.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/i2c/l3/uda1341.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/i2c/l3/uda1341.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h sound/isa/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h sound/isa/cs423x/cs4231_lib.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/cs423x/cs4231_lib.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h sound/isa/cs423x/cs4236.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/cs423x/cs4236.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/isa/opti9xx/opti92x-ad1848.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/opti9xx/opti92x-ad1848.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/isa/sb/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/sb/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/isa/sb/sb16_csp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/sb/sb16_csp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h sound/isa/sb/sb16_csp_codecs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/sb/sb16_csp_codecs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/isa/wavefront/wavefront_synth.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/isa/wavefront/wavefront_synth.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h sound/oss/Kconfig - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/Kconfig.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/oss/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h sound/oss/dmasound/dmasound_core.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/dmasound/dmasound_core.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h sound/oss/dmasound/dmasound_paula.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/dmasound/dmasound_paula.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/oss/dmasound/dmasound_q40.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/dmasound/dmasound_q40.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/oss/msnd.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/msnd.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h sound/oss/msnd.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/msnd.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/oss/msnd_classic.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/msnd_classic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/oss/msnd_pinnacle.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/msnd_pinnacle.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h sound/oss/msnd_pinnacle.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/msnd_pinnacle.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/oss/soundcard.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/soundcard.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h sound/oss/trident.c - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/trident.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h sound/oss/trident.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/trident.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/oss/vidc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/vidc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/oss/vidc_fill.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/vidc_fill.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/oss/vwsnd.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/vwsnd.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/oss/waveartist.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/oss/waveartist.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/parisc/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/parisc/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/pci/Kconfig - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/Kconfig.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/pci/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h sound/pci/ac97/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ac97/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h sound/pci/ac97/ac97_codec.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ac97/ac97_codec.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h sound/pci/ac97/ac97_patch.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ac97/ac97_patch.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h sound/pci/ac97/ak4531_codec.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ac97/ak4531_codec.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h sound/pci/azt3328.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/azt3328.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h sound/pci/azt3328.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/azt3328.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/pci/emu10k1/emu10k1_main.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/emu10k1/emu10k1_main.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h sound/pci/emu10k1/emumixer.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/emu10k1/emumixer.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h sound/pci/emu10k1/memory.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/emu10k1/memory.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h sound/pci/ens1370.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ens1370.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h sound/pci/ice1712/envy24ht.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ice1712/envy24ht.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/pci/ice1712/ice1712.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ice1712/ice1712.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/pci/ice1712/ice1724.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ice1712/ice1724.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h sound/pci/korg1212/korg1212-firmware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/korg1212/korg1212-firmware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/pci/korg1212/korg1212.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/korg1212/korg1212.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/pci/maestro3.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/maestro3.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h sound/pci/nm256/nm256.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/nm256/nm256.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/pci/trident/trident_main.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/trident/trident_main.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h sound/pci/trident/trident_memory.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/trident/trident_memory.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/pci/via82xx.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/via82xx.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h sound/pci/vx222/vx222_ops.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/vx222/vx222_ops.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/pci/ymfpci/ymfpci_image.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ymfpci/ymfpci_image.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/ymfpci/ymfpci_main.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ymfpci/ymfpci_main.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h sound/pcmcia/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pcmcia/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/pcmcia/vx/vxp_ops.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pcmcia/vx/vxp_ops.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h sound/ppc/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/ppc/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h sound/ppc/daca.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/ppc/daca.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/ppc/tumbler.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/ppc/tumbler.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h sound/sound_core.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/sound_core.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/sparc/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/sparc/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/usb/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h sound/usb/usbaudio.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/usbaudio.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h sound/usb/usbquirks.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/usbquirks.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-sparc/fixmap.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/fixmap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/setup.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/setup.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/setup.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/setup.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/msi.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/msi.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/dvb/bt8xx/bt878.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/bt8xx/bt878.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/bt8xx/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/bt8xx/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ide/pci/sgiioc4.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/sgiioc4.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/ia64/configs/sn2_defconfig - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/configs/sn2_defconfig.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/scsi/qla2xxx/qla_dbg.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_dbg.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h Documentation/i386/usb-legacy-support.txt - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i386/usb-legacy-support.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/qla2xxx/qla_def.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_def.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/scsi/qla2xxx/qla_gbl.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_gbl.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/scsi/qla2xxx/qla_gs.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_gs.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/scsi/qla2xxx/qla_init.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_init.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h drivers/scsi/qla2xxx/qla_iocb.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_iocb.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/scsi/qla2xxx/qla_isr.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_isr.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h Documentation/video4linux/CARDLIST.saa7134 - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/CARDLIST.saa7134.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/scsi/qla2xxx/qla_mbx.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_mbx.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/scsi/qla2xxx/qla_os.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_os.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/scsi/qla2xxx/qla_sup.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_sup.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/scsi/qla2xxx/qla_version.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_version.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/usb/gadget/goku_udc.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/goku_udc.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/gadget/goku_udc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/goku_udc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/gadget/pxa2xx_udc.c - 1.24 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa2xx_udc.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/usb/gadget/pxa2xx_udc.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa2xx_udc.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/gadget/serial.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/serial.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/usb/misc/emi62.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/emi62.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/misc/emi62_fw_m.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/emi62_fw_m.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/misc/emi62_fw_s.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/emi62_fw_s.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/zorro/zorro-sysfs.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/zorro/zorro-sysfs.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-pxa/udc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/udc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/cpu-sh2/addrspace.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/addrspace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh2/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2/ubc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/ubc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/char/tty3270.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tty3270.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-sh/cpu-sh3/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh4/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh4/sq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/sq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/dreamcast/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dreamcast/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/dreamcast/pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dreamcast/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/flat.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/flat.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/sections.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sections.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/char/raw3270.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/raw3270.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/s390/char/fs3270.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/fs3270.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ia64/configs/generic_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/configs/generic_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/s390/char/con3270.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/con3270.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/irda/old_belkin-sir.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/old_belkin-sir.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/irda/mcp2120-sir.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/mcp2120-sir.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/irda/ma600-sir.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/ma600-sir.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/irda/litelink-sir.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/litelink-sir.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/irda/girbil-sir.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/girbil-sir.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/irda/act200l-sir.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/act200l-sir.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/forcedeth.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/forcedeth.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/media/video/saa7134/saa7134-input.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-input.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/video/ir-kbd-i2c.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ir-kbd-i2c.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/video/cx88/cx88.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/video/cx88/cx88-video.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-video.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/media/video/cx88/cx88-i2c.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-i2c.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/video/cx88/cx88-core.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-core.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/video/cx88/cx88-cards.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-cards.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/dvb/ttpci/av7110_hw.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/av7110_hw.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/dvb/ttpci/av7110_ca.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/av7110_ca.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/dvb/ttpci/av7110_av.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/ttpci/av7110_av.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h lib/bitmap.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/bitmap.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/viocons.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/viocons.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/bluetooth/bfusb.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/bfusb.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/bluetooth/bcm203x.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/bcm203x.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/sh/kernel/smp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/smp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sh/kernel/cpu/sh4/sq.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4/sq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sh/kernel/cpu/sh3/ex.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh3/ex.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/drivers/pci/pci.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/pci.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/sh/drivers/pci/pci-auto.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/pci-auto.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/drivers/pci/ops-dreamcast.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/ops-dreamcast.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/drivers/pci/fixups-dreamcast.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/fixups-dreamcast.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/drivers/pci/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/sh/drivers/dma/dma-sh.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/dma/dma-sh.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/drivers/dma/dma-sh.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/dma/dma-sh.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/sh/drivers/dma/dma-pvr2.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/dma/dma-pvr2.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/drivers/dma/dma-g2.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/dma/dma-g2.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boot/compressed/vmlinux.scr - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/vmlinux.scr.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/snapgear/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/snapgear/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/snapgear/io.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/snapgear/io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/snapgear/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/snapgear/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/gadget/file_storage.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/file_storage.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/usb/host/ohci-omap.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-omap.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/ide/ide-generic.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-generic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-integrator/cm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/cm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/macintosh/therm_windtunnel.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/therm_windtunnel.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/macintosh/therm_pm72.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/therm_pm72.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/sched/sch_hfsc.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_hfsc.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/i2c/other/tea575x-tuner.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/i2c/other/tea575x-tuner.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/syslib/open_pic2.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/open_pic2.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/kernel/smp-tbsync.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/smp-tbsync.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/kernel/cpu_setup_power4.S - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/cpu_setup_power4.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-integrator/integrator_cp.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-integrator/integrator_cp.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/i2c/busses/i2c-hydra.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-hydra.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/video/aty/radeon_accel.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/radeon_accel.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/video/aty/radeon_base.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/radeon_base.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/video/aty/radeon_i2c.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/radeon_i2c.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/video/aty/radeonfb.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/aty/radeonfb.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ppc/boot/common/bootinfo.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/common/bootinfo.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kdb/kdbmain.c - 1.37 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/kdbmain.c.diff?r1=text&tr1=1.37&r2=text&tr2=1.36&f=h kdb/modules/kdbm_vm.c - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/kdbm_vm.c.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h kdb/modules/kdbm_task.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/kdbm_task.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/linux/kdb.h - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kdb.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/linux/kdbprivate.h - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kdbprivate.h.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h kdb/ChangeLog - 1.47 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/ChangeLog.diff?r1=text&tr1=1.47&r2=text&tr2=1.46&f=h kdb/kdb_bt.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/kdb_bt.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/net/ibmveth.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibmveth.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/ibmveth.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibmveth.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/e100.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e100.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/pci/hotplug/pciehp.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/pciehp.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pci/hotplug/pciehp_core.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/pciehp_core.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/pci/hotplug/pciehp_hpc.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/pciehp_hpc.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/pci/hotplug/rpadlpar_sysfs.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/rpadlpar_sysfs.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pci/hotplug/shpchp.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/shpchp.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/pci/hotplug/shpchp_core.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/shpchp_core.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/pci/hotplug/shpchp_hpc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/shpchp_hpc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/s390/block/dcssblk.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dcssblk.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/s390/char/tape_class.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_class.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/s390/cio/cmf.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/cmf.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/s390/net/smsgiucv.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/smsgiucv.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/serial/dz.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/dz.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/serial/ip22zilog.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/ip22zilog.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/serial/pxa.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/pxa.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/hfs/hfs_fs.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfs/hfs_fs.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/saa5246a.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa5246a.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/hfsplus/extents.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfsplus/extents.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/hfsplus/hfsplus_fs.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfsplus/hfsplus_fs.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/hfsplus/inode.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfsplus/inode.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/radio/radio-sf16fmr2.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-sf16fmr2.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/hfsplus/super.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hfsplus/super.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-generic/dma-mapping-broken.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/dma-mapping-broken.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/cyclone.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/cyclone.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/mach-atlas/mc146818rtc.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-atlas/mc146818rtc.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-mips/mach-db1x00/db1x00.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-db1x00/db1x00.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-mips/mach-generic/ide.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-generic/ide.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/md/dm-crypt.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-crypt.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-mips/mach-mips/mach-gt64120.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/mach-gt64120.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/mach-mips/mc146818rtc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/mc146818rtc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/isdn/hisax/teles_cs.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/teles_cs.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/isdn/hisax/hisax_cfg.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hisax_cfg.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/isdn/hisax/hfc_usb.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hfc_usb.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/ieee1394/csr1212.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ieee1394/csr1212.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/cdrom/viocd.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cdrom/viocd.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-s390/cmb.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cmb.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/s390/appldata/appldata_os.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/appldata/appldata_os.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/s390/appldata/appldata_net_sum.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/appldata/appldata_net_sum.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/s390/appldata/appldata_mem.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/appldata/appldata_mem.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/s390/appldata/appldata_base.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/appldata/appldata_base.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/s390/appldata/appldata.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/appldata/appldata.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/extmem.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/extmem.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/timer.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/timer.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/kthread.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kthread.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/stop_machine.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/stop_machine.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/sunrpc/svcauth_gss.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/svcauth_gss.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/syscalls.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/syscalls.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/video/cvisionppc.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/cvisionppc.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/video/permedia2.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/permedia2.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h kernel/kthread.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kthread.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h kernel/stop_machine.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/stop_machine.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/bluetooth/hci_sysfs.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hci_sysfs.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/pmc-sierra/yosemite/prom.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/yosemite/prom.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/pmc-sierra/yosemite/irq.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/yosemite/irq.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/pmc-sierra/yosemite/ht.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/yosemite/ht.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/pmc-sierra/yosemite/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/yosemite/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/pci/pci-jmr3927.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-jmr3927.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/pci/ops-tx4927.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/ops-tx4927.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/pci/ops-tx3927.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/ops-tx3927.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/pci/ops-mace.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/ops-mace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/pci/fixup-rbtx4927.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-rbtx4927.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/pci/fixup-atlas.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-atlas.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/mips/mips-boards/generic/pci.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/pci.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/mips-boards/atlas/atlas_gdb.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/atlas/atlas_gdb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/configs/yosemite_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/yosemite_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/configs/workpad_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/workpad_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/configs/tb0226_defconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/tb0226_defconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/configs/sead_defconfig - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/sead_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/configs/sb1250-swarm_defconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/sb1250-swarm_defconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/configs/rm200_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/rm200_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/pb1500_defconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/pb1500_defconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/configs/pb1100_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/pb1100_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/au1000/mtx-1/init.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/mtx-1/init.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/configs/mtx1_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/mtx1_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/configs/mpc30x_defconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/mpc30x_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/configs/malta_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/malta_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/jmr3927_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/jmr3927_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/au1000/pb1550/init.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1550/init.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/au1000/xxs1500/init.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/xxs1500/init.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/configs/ip32_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/ip32_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/ip27_defconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/ip27_defconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/mips/configs/ip22_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/ip22_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/configs/atlas_defconfig - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/atlas_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/configs/capcella_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/capcella_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/configs/cobalt_defconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/cobalt_defconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/mips/configs/db1000_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/db1000_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/db1100_defconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/db1100_defconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/db1500_defconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/db1500_defconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/mips/configs/decstation_defconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/decstation_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/configs/e55_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/e55_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/wireless/prism54/Makefile - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/prism54/Makefile.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/net/wireless/prism54/isl_ioctl.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/prism54/isl_ioctl.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/netconsole.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netconsole.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/macintosh/therm_adt746x.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/therm_adt746x.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/pci/hotplug/rpaphp_slot.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/rpaphp_slot.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h Documentation/networking/packet_mmap.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/packet_mmap.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/keyboard/lkkbd.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/lkkbd.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ide/pci/atiixp.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/atiixp.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/scsi/scsi_transport_fc.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_transport_fc.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/scsi/scsi_transport_spi.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_transport_spi.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/serial/sh-sci.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sh-sci.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/serial/sh-sci.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sh-sci.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/usb/gadget/config.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/config.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/gadget_chips.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/gadget_chips.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/firmware/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/firmware/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ppc/hawk.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/hawk.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/viotape.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/viotape.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-ppc/hawk_defs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/hawk_defs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh3/dac.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/dac.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/cpudata.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/cpudata.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/mm/hugetlbpage.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/hugetlbpage.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sh/mm/consistent.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/consistent.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/scsi/scsi_transport_fc.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_transport_fc.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/core/netpoll.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/netpoll.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h arch/sh/configs/dreamcast_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/dreamcast_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/pci/au88x0/au88x0_game.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/au88x0/au88x0_game.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/ppc/platforms/spruce.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/spruce.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/platforms/pplus.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pplus.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/pplus.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/pplus.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/boot/simple/mpc10x_memory.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/mpc10x_memory.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/boot/simple/misc-prep.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-prep.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/simple/cpc700_memory.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/cpc700_memory.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/lib/vreset.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/lib/vreset.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/lib/kbd.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/lib/kbd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/include/iso_font.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/iso_font.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/pci/mixart/mixart_hwdep.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/mixart/mixart_hwdep.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h split-patches/dmapi-enable - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/split-patches/dmapi-enable.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h Documentation/networking/s2io.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/s2io.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/common/dmabounce.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/dmabounce.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/configs/lpd7a404_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/lpd7a404_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/configs/s3c2410_defconfig - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/s3c2410_defconfig.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/arm/configs/versatile_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/versatile_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-lh7a40x/arch-kev7a400.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/arch-kev7a400.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-lh7a40x/arch-lpd7a40x.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/arch-lpd7a40x.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-lh7a40x/irq-lh7a400.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/irq-lh7a400.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-lh7a40x/irq-lh7a404.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/irq-lh7a404.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-lh7a40x/irq-lpd7a40x.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/irq-lpd7a40x.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-s3c2410/Kconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/Kconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mach-s3c2410/Makefile - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/Makefile.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/arm/mach-s3c2410/bast-irq.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/bast-irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-s3c2410/mach-bast.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-bast.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/arm/mach-s3c2410/mach-h1940.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-h1940.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/arm/mach-s3c2410/mach-vr1000.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-vr1000.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mach-s3c2410/s3c2410.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/s3c2410.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-versatile/core.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/core.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/pb1550_defconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/pb1550_defconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ppc/platforms/prpmc750.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prpmc750.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/platforms/prpmc800.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/prpmc800.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/hawk_common.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/hawk_common.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h crypto/crc32c.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/crc32c.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/ipmi/ipmi_si_intf.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ipmi/ipmi_si_intf.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/i2c/busses/i2c-ali1563.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ali1563.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/i2c/chips/pcf8574.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/pcf8574.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/i2c/chips/pcf8591.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/pcf8591.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/dvb/dvb-core/dvb_ca_en50221.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-core/dvb_ca_en50221.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/irda/ali-ircc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/ali-ircc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/irda/au1000_ircc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/au1000_ircc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/irda/nsc-ircc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/nsc-ircc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/irda/vlsi_ir.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/vlsi_ir.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/iseries_veth.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/iseries_veth.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/s2io.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/s2io.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h drivers/net/s2io.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/s2io.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/serial/amba-pl010.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/amba-pl010.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/serial/amba-pl011.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/amba-pl011.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/serial/s3c2410.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/s3c2410.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/usb/gadget/dummy_hcd.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/dummy_hcd.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/usb/gadget/epautoconf.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/epautoconf.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/usb/gadget/ndis.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/ndis.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/gadget/rndis.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/rndis.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h drivers/usb/gadget/rndis.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/rndis.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h include/asm-arm/arch-lh7a40x/constants.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/constants.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-lh7a40x/hardware.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/hardware.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-lh7a40x/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-lh7a40x/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/memory.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/memory.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-lh7a40x/registers.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/registers.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-lh7a40x/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-lh7a40x/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/board-h2.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-h2.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/arch-omap/board-h3.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-h3.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-omap/board-h4.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-h4.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-omap/board-innovator.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-innovator.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-omap/board-osk.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-osk.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/board-perseus2.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-perseus2.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/board.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-omap/dma.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/dma.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-arm/arch-omap/fpga.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/fpga.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/gpio.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/gpio.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-omap/hardware.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/hardware.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-arm/arch-omap/io.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/io.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-omap/irqs.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/irqs.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/arch-omap/memory.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/memory.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-omap/mux.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mux.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-arm/arch-omap/omap1510.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omap1510.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/omap730.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omap730.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/param.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/param.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/pm.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/pm.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-omap/serial.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/serial.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/system.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/system.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-omap/timex.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/timex.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/uncompress.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/uncompress.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-omap/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-s3c2410/bast-cpld.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/bast-cpld.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/bast-irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/bast-irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/bast-map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/bast-map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/dma.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/dma.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-s3c2410/hardware.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/hardware.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/arch-s3c2410/vr1000-irq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/vr1000-irq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/io.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-s3c2410/irqs.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/irqs.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-s3c2410/map.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/map.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-s3c2410/memory.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/memory.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-s3c2410/regs-clock.h - 1.24 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-clock.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/asm-arm/arch-s3c2410/regs-gpio.h - 1.30 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-gpio.h.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h include/asm-arm/arch-s3c2410/regs-irq.h - 1.24 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-irq.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/asm-arm/arch-s3c2410/regs-lcd.h - 1.25 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-lcd.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/asm-arm/arch-s3c2410/system.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/system.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-s3c2410/timex.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/timex.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-s3c2410/uncompress.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/uncompress.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-s3c2410/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/vr1000-cpld.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/vr1000-cpld.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/vr1000-map.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/vr1000-map.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-versatile/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-versatile/hardware.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/hardware.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-versatile/io.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/io.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-versatile/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-versatile/memory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/memory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-versatile/platform.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/platform.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-versatile/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-versatile/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-versatile/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-versatile/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/mach-au1x00/au1100_mmc.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-au1x00/au1100_mmc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/mach-au1x00/au1xxx_psc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-au1x00/au1xxx_psc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/audit.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/audit.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-s390/qeth.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/qeth.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/harrier_defs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/harrier_defs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h ipc/mqueue.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/mqueue.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/rmap.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rmap.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h kernel/auditsc.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/auditsc.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h kernel/audit.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/audit.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h mm/hugetlb.c - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/hugetlb.c.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h arch/ppc/platforms/sbc82xx.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/sbc82xx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/platforms/sbc82xx.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/sbc82xx.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/syslib/ibm440gx_common.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440gx_common.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/syslib/ibm440gx_common.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440gx_common.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm405ep.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405ep.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/arm/IXP4xx - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/IXP4xx.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm405ep.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm405ep.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/bubinga.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/bubinga.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/bubinga.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/bubinga.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/configs/bubinga_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/bubinga_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/ibm44x_common.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm44x_common.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/ibm_ocp.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm_ocp.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/ocp.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ocp.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h scripts/checkstack.pl - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/checkstack.pl.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/ibm_emac/ibm_emac_zmii.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_zmii.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/ibm_emac/ibm_emac_tah.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_tah.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/ibm_emac/ibm_emac_rgmii.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_rgmii.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/ibm_emac/ibm_emac_phy.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_phy.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h mm/mempolicy.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mempolicy.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h drivers/char/drm/drm_pciids.h - 1.21 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_pciids.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/ibm_emac/ibm_emac_phy.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_phy.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/reiserfs_xattr.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/reiserfs_xattr.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/mempolicy.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mempolicy.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/ibm_emac/ibm_emac_mal.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_mal.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/ibm_emac/ibm_emac_mal.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_mal.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/ibm_emac/ibm_emac_debug.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_debug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/bridge/br_sysfs_br.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/br_sysfs_br.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/ibm_emac/ibm_emac_core.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_core.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ppc/ibm_ocp.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ibm_ocp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/ibm_emac/ibm_emac_core.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_core.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/ibm_emac/ibm_emac.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/ibm_emac/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ide/arm/ide_arm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/ide_arm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/ide/h8300/ide-h8300.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/h8300/ide-h8300.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/mtd/maps/ixp4xx.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ixp4xx.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/mtd/maps/wr_sbc82xx_flash.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/wr_sbc82xx_flash.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/pcmcia/pxa2xx_base.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_base.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/pcmcia/pxa2xx_lubbock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_lubbock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pcmcia/pxa2xx_mainstone.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_mainstone.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pcmcia/sa11xx_base.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/sa11xx_base.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pcmcia/soc_common.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/soc_common.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/pcmcia/soc_common.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/soc_common.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/ipr.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ipr.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/video/gbefb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/gbefb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/video/pxafb.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pxafb.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/video/pxafb.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pxafb.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/reiserfs/xattr.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/xattr.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/arm/configs/ixp4xx_defconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ixp4xx_defconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/cpu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/cpu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/reiserfs/xattr_security.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/xattr_security.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/reiserfs/xattr_trusted.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/xattr_trusted.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/reiserfs/xattr_user.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/reiserfs/xattr_user.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/8253pit.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/8253pit.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/coyote.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/coyote.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2410/mach-smdk2410.c - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-smdk2410.c.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h include/asm-arm/arch-ixp4xx/dma.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/dma.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ixp4xx/hardware.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/hardware.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-pxa/pxa27x.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa27x.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-pxa/pxa25x.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa25x.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-pxa/mainstone.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/mainstone.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/arm/mach-pxa/leds-mainstone.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/leds-mainstone.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ixp4xx/io.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/io.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-arm/arch-ixp4xx/irqs.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/irqs.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp4xx/ixdp425.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/ixdp425.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp4xx/ixp4xx-regs.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-ixp4xx/memory.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/memory.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ixp4xx/platform.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/platform.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/arch-ixp4xx/prpmc1100.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/prpmc1100.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/system.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp4xx/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp4xx/uncompress.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/uncompress.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp4xx/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/mainstone.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mainstone.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pxafb.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxafb.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-ixp4xx/Kconfig - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/Kconfig.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/mach-ixp4xx/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-ixp4xx/common-pci.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/common-pci.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-ixp4xx/common.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/common.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/arm/mach-ixp4xx/coyote-pci.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/coyote-pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-ixp4xx/coyote-setup.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/coyote-setup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ixp4xx/ixdp425-pci.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/ixdp425-pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-ixp4xx/ixdp425-setup.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/ixdp425-setup.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/via-velocity.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/via-velocity.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/via-velocity.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/via-velocity.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/smc91x.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/smc91x.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/smc91x.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/smc91x.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/fec_8xx/fec_mii.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/fec_mii.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/fec_8xx/fec_main.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/fec_main.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/fec_8xx/fec_8xx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/fec_8xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/fec_8xx/fec_8xx-netta.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/fec_8xx-netta.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/fec_8xx/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/fec_8xx/Kconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_8xx/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/nand/toto.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/toto.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/mtd/nand/ppchameleonevb.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/ppchameleonevb.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/mtd/nand/nand_bbt.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/nand_bbt.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/nand/nand_base.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/nand_base.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/mtd/nand/diskonchip.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/diskonchip.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/mtd/nand/au1550nd.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/au1550nd.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/mtd/maps/sbc8240.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sbc8240.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/mtd/maps/omap-toto-flash.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/omap-toto-flash.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/mtd/maps/ichxrom.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ichxrom.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/maps/dmv182.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/dmv182.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/devices/phram.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/phram.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/chips/cfi_util.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/chips/cfi_util.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/media/video/ovcamchip/ovcamchip_core.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ovcamchip/ovcamchip_core.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h scripts/mod/sumversion.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/mod/sumversion.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/pcmcia/socket_sysfs.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/socket_sysfs.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/3w-9xxx.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/3w-9xxx.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/scsi/3w-9xxx.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/3w-9xxx.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/serial/cpm_uart/cpm_uart.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/serial/cpm_uart/cpm_uart_core.c - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart_core.c.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h drivers/serial/cpm_uart/cpm_uart_cpm1.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart_cpm1.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/serial/cpm_uart/cpm_uart_cpm1.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart_cpm1.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/md/dm-snap.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-snap.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/md/dm-snap.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-snap.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/md/dm-log.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-log.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/serial/cpm_uart/cpm_uart_cpm2.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart_cpm2.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/serial/cpm_uart/cpm_uart_cpm2.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/cpm_uart/cpm_uart_cpm2.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/serial/mpc52xx_uart.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/mpc52xx_uart.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/serial/serial_lh7a40x.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/serial_lh7a40x.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/serial/sn_console.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sn_console.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/class/cdc-acm.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/class/cdc-acm.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/usb/host/ohci-lh7a404.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-lh7a404.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/lcd.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/lcd.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/mod/modpost.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/mod/modpost.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h arch/arm/common/locomo.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/locomo.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/char/ip27-rtc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ip27-rtc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/hvcs.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvcs.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/common/time-acorn.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/time-acorn.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/hpet.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hpet.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/char/ds1286.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ds1286.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h scripts/mod/mk_elfconfig.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/mod/mk_elfconfig.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc64/lib/copy_page.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/lib/copy_page.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/mod/file2alias.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/mod/file2alias.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/sched/sch_netem.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/sch_netem.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/sched/act_api.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_api.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mach-footbridge/time.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/time.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/ipv4/netfilter/ipt_addrtype.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/ipt_addrtype.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/ipv4/datagram.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/datagram.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/core/stream.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/stream.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/bluetooth/hidp/core.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bluetooth/hidp/core.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-lh7a40x/time.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/time.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/mtd/nftl-user.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/nftl-user.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/mtd/mtd-user.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/mtd-user.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/mtd/mtd-abi.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/mtd-abi.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/mtd/jffs2-user.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/jffs2-user.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/mtd/inftl-user.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/inftl-user.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/arm/mach-pxa/time.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/time.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/snmp.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/snmp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-s3c2410/gpio.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/gpio.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/mtd/physmap.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/physmap.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-alpha/setup.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/setup.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/collie.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/collie.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-sa1100/collie.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/collie.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/hardware/locomo.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/locomo.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/mach/time.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/time.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/drivers/dma/dma-sysfs.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/dma/dma-sysfs.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/vfp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/vfp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/vfpmacros.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/vfpmacros.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/setup.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/setup.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/setup.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/setup.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/time.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/time.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ppc/cpm2.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/cpm2.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/boards/renesas/systemh/setup.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/systemh/setup.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-v850/setup.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/setup.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/systemh/irq.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/systemh/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/renesas/systemh/io.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/systemh/io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/systemh/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/systemh/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/rts7751r2d/setup.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/rts7751r2d/setup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/sh/boards/renesas/rts7751r2d/irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/rts7751r2d/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/vfp/vfpmodule.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/vfp/vfpmodule.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/sh/boards/renesas/rts7751r2d/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/rts7751r2d/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/s390/kernel/vtime.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/vtime.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ppc/immap_cpm2.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/immap_cpm2.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/m8260_pci.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/m8260_pci.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/mpc52xx.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc52xx.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ppc/mpc52xx_psc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc52xx_psc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/mpc8260_pci9.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mpc8260_pci9.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/cmt.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/cmt.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/ppc4xx_dma.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ppc4xx_dma.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/adc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/adc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh3/adc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/adc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/fixmap.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/fixmap.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/ppc4xx_sgdma.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc4xx_sgdma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/mpc52xx_setup.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_setup.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/syslib/mpc52xx_pic.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_pic.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/m8260_pci_erratum9.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m8260_pci_erratum9.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/syslib/cpm2_pic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/cpm2_pic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/cpm2_pic.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/cpm2_pic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/syslib/cpm2_common.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/cpm2_common.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/rpx8260.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/rpx8260.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/setup.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/setup.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/lite5200.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lite5200.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/lite5200.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lite5200.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/configs/rpx8260_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/rpx8260_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/configs/lite5200_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/lite5200_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/mpc52xx_tty.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/mpc52xx_tty.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/pmc-sierra/yosemite/dbg_io.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/yosemite/dbg_io.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/kernel/module.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/module.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/RCU/RTFP.txt - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/RCU/RTFP.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/RCU/checklist.txt - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/RCU/checklist.txt.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/arm/Samsung-S3C24XX/Overview.txt - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/Samsung-S3C24XX/Overview.txt.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/sunrpc/auth_gss/gss_spkm3_token.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_spkm3_token.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/sunrpc/auth_gss/gss_spkm3_mech.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_spkm3_mech.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h mm/tiny-shmem.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/tiny-shmem.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h lib/iomap.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/iomap.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h lib/Kconfig.debug - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/Kconfig.debug.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h kernel/spinlock.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/spinlock.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h kernel/kprobes.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kprobes.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/linux/mmc/mmc.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmc/mmc.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/linux/mmc/host.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmc/host.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/mmc/card.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmc/card.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/kprobes.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kprobes.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-sparc64/kprobes.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/kprobes.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-m32r/thread_info.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/thread_info.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m32r/smp.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/smp.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-m32r/semaphore.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/semaphore.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m32r/page.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/page.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-m32r/namei.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/namei.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-imx/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-imx/dma.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/dma.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-imx/generic.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/generic.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-imx/irq.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/irq.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-imx/leds-mx1ads.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/leds-mx1ads.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-imx/mx1ads.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/mx1ads.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-imx/time.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/time.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-m32r/ide.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/ide.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-ixp2000/core.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/core.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-ixp2000/enp2611.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/enp2611.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-ixp2000/ixdp2400.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/ixdp2400.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-ixp2000/ixdp2800.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/ixdp2800.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-ixp2000/ixdp2x00.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/ixdp2x00.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-ixp2000/ixdp2x01.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/ixdp2x01.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-ixp2000/pci.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp2000/pci.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-ia64/sn/sn2/sn_hwperf.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/sn2/sn_hwperf.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-generic/bug.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/bug.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/mach/mmc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/mmc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/regs-sdi.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-sdi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/regs-gpioj.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-gpioj.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-s3c2410/regs-dsc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-dsc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-pxa/mmc.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mmc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-omap/usb.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/usb.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/mcbsp.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mcbsp.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp2000/vmalloc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp2000/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp2000/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp2000/system.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/system.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-s3c2410/clock.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/clock.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-s3c2410/dma.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/dma.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/arch-ixp2000/platform.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/platform.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp2000/memory.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/memory.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp2000/ixp2000-regs.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/ixp2000-regs.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-ixp2000/ixdp2x01.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/ixdp2x01.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ixp2000/ixdp2x00.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/ixdp2x00.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ixp2000/irqs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/irqs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ixp2000/io.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/io.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/arch-ixp2000/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp2000/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp2000/enp2611.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/enp2611.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp2000/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/timex.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/timex.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mm/flush.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/flush.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-imx/mx1ads.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/mx1ads.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-imx/memory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/memory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/imx-regs.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/imx-regs.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-imx/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/io_trivial.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/io_trivial.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/nfsd/nfs4acl.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs4acl.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/nfs/callback.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/callback.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/hostfs/hostfs_kern.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hostfs/hostfs_kern.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/usb/gadget/omap_udc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/omap_udc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/omap_udc.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/omap_udc.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/usb/gadget/lh7a40x_udc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/lh7a40x_udc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/lh7a40x_udc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/lh7a40x_udc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/serial/icom.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/icom.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/megaraid/megaraid_mm.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid/megaraid_mm.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/megaraid/megaraid_mbox.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid/megaraid_mbox.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/scsi/megaraid/mega_common.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid/mega_common.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/scsi/ibmvscsi/rpa_vscsi.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/rpa_vscsi.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/scsi/ibmvscsi/ibmvscsi.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/ibmvscsi.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/scsi/ibmvscsi/ibmvscsi.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/ibmvscsi.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/scsi/ibmvscsi/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/hotplug/acpiphp_ibm.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/acpiphp_ibm.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/mv643xx_eth.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mv643xx_eth.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/gianfar_ethtool.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/gianfar_ethtool.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/gianfar.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/gianfar.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/gianfar.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/gianfar.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/mtd/maps/ixp2000.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ixp2000.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/message/i2o/device.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/i2o/device.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/md/raid10.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/raid10.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/input/serio/serio_raw.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/serio_raw.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/i2c/chips/isp1301_omap.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/isp1301_omap.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/i2c/busses/i2c-mpc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-mpc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/i2c/busses/i2c-ixp2000.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ixp2000.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/i2c/algos/i2c-algo-pca.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/algos/i2c-algo-pca.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/cpufreq/cpufreq_ondemand.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/cpufreq_ondemand.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/char/snsc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/snsc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/mmtimer.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mmtimer.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/i915_mem.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_mem.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/i915_irq.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_irq.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/drm/i915_drv.h - 1.18 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_drv.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/char/drm/i915_drv.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_drv.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/drm/i915_drm.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_drm.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/i915_dma.c - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_dma.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/acpi/sleep/wakeup.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/sleep/wakeup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/v850/Kconfig.debug - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/Kconfig.debug.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/um/kernel/physmem.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/physmem.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/um/include/irq_kern.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/include/irq_kern.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sparc64/kernel/kprobes.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/kprobes.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/sparc64/Kconfig.debug - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/Kconfig.debug.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/Kconfig.debug - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/Kconfig.debug.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ia64/Kconfig.debug - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/Kconfig.debug.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/ppc/syslib/m8xx_wdt.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m8xx_wdt.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/m8xx_wdt.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m8xx_wdt.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/platforms/mvme5100.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/mvme5100.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/platforms/lopec.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lopec.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/lopec.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/lopec.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/kernel/head_booke.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/head_booke.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/boot/simple/prepmap.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/prepmap.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/chrpmap.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/chrpmap.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/include/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/Kconfig.debug - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/Kconfig.debug.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/Kconfig.debug - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/Kconfig.debug.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/m32r/mm/init.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/mm/init.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m32r/mm/discontig.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/mm/discontig.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m32r/lib/delay.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/lib/delay.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ia64/sn/kernel/sn2/sn_hwperf.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/sn/kernel/sn2/sn_hwperf.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/m32r/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/m32r/boot/compressed/misc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/boot/compressed/misc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/m32r/kernel/entry.S - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/entry.S.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/m32r/kernel/head.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/head.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m32r/kernel/irq.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/irq.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m32r/kernel/m32r_ksyms.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/m32r_ksyms.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/m32r/kernel/process.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/process.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m32r/kernel/smp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/smp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/kernel/time.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/time.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/m32r/kernel/traps.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/kernel/traps.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/arm/Samsung-S3C24XX/GPIO.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/Samsung-S3C24XX/GPIO.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-s3c2410/usb-control.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/usb-control.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-h720x/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-h720x/uncompress.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/uncompress.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/regs-mem.h - 1.22 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-mem.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/ppc/boot/simple/pibs.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/pibs.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-h720x/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/drm/drm_core.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_core.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/ide/arm/bast-ide.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/bast-ide.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-h720x/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-h720x/boards.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/boards.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-h720x/h7202-regs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/h7202-regs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-h720x/h7201-regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/h7201-regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-h720x/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2410/usb-simtec.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/usb-simtec.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-h720x/common.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/common.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-h720x/cpu-h7201.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/cpu-h7201.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-h720x/cpu-h7202.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/cpu-h7202.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-h720x/h7201-eval.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/h7201-eval.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-h720x/h7202-eval.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-h720x/h7202-eval.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-h720x/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-h720x/memory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/memory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-h720x/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-h720x/system.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/dvb/frontends/cx22702.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/cx22702.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/dvb/frontends/cx22702.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/cx22702.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/dvb/bt8xx/dst.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/bt8xx/dst.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/dvb/frontends/sp8870.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/sp8870.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/md/faulty.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/faulty.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/ioctl/cdrom.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ioctl/cdrom.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/ioctl/hdio.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ioctl/hdio.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/keys.txt - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/keys.txt.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/i2c/busses/i2c-stub.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-stub.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/i2c/busses/i2c-s3c2410.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-s3c2410.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/i2c/busses/i2c-amd756-s4882.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-amd756-s4882.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/dio/dio-driver.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dio/dio-driver.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/arv.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/arv.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/ds1302.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ds1302.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/block/pktcdvd.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/pktcdvd.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/acpi/video.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/video.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/media/video/cx88/cx88-blackbird.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-blackbird.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h Documentation/usb/gadget_serial.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/gadget_serial.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/mm/pg-sh7705.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/pg-sh7705.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/saa7134/saa7134-dvb.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-dvb.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/video/saa7134/saa7134-empress.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-empress.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/sh/kernel/cpu/sh4/probe.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4/probe.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sh/configs/se7705_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7705_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/configs/microdev_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/microdev_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/superh/microdev/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/superh/microdev/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/superh/microdev/led.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/superh/microdev/led.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/superh/microdev/irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/superh/microdev/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/superh/microdev/io.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/superh/microdev/io.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/boards/superh/microdev/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/superh/microdev/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/sh03/setup.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/sh03/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/sh03/rtc.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/sh03/rtc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/sh03/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/sh03/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/edosk7705/setup.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/edosk7705/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/renesas/edosk7705/io.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/edosk7705/io.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/edosk7705/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/edosk7705/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/common/rtctime.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/rtctime.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv4/netfilter/ipt_CLUSTERIP.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/ipt_CLUSTERIP.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h lib/reed_solomon/reed_solomon.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/reed_solomon/reed_solomon.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h lib/reed_solomon/encode_rs.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/reed_solomon/encode_rs.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/ppc/syslib/xilinx_pic.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/xilinx_pic.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/syslib/gen550.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/gen550.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/4xx/xparameters/xparameters_ml300.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/xparameters/xparameters_ml300.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/platforms/4xx/xilinx_ml300.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/xilinx_ml300.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h lib/reed_solomon/decode_rs.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/reed_solomon/decode_rs.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/mtd/maps/bast-flash.c - 1.24 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/bast-flash.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/mtd/maps/ipaq-flash.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ipaq-flash.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/mtd/maps/ts5500_flash.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ts5500_flash.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/mips/mm/tlbex.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/tlbex.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/mtd/nand/h1910.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/h1910.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/mtd/nand/rtc_from4.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/rtc_from4.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/nand/s3c2410.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/s3c2410.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/mips/configs/db1550_defconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/db1550_defconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/net/cris/eth_v10.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cris/eth_v10.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h arch/mips/au1000/common/platform.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/common/platform.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/m68k/configs/sun3x_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/sun3x_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/sun3_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/sun3_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/q40_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/q40_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/mvme16x_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/mvme16x_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/mvme147_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/mvme147_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/mac_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/mac_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/configs/hp300_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/hp300_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/bvme6000_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/bvme6000_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/atari_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/atari_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/apollo_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/apollo_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/m68k/configs/amiga_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/amiga_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-footbridge/co285.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/co285.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-footbridge/common.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-footbridge/common.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/pci/pci-acpi.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pci-acpi.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h lib/kobject_uevent.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/kobject_uevent.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h kernel/sys_ni.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sys_ni.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h kernel/irq/proc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/irq/proc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h kernel/irq/manage.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/irq/manage.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/net/sch_generic.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sch_generic.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/scatterlist.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/scatterlist.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/rslib.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rslib.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/arm/mach-ixp4xx/ixdpg425-pci.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/ixdpg425-pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/pci-acpi.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci-acpi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/sh03/sh03.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sh03/sh03.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/sh03/io.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sh03/io.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/pnp/pnpacpi/core.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/pnpacpi/core.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-pxa/ssp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/ssp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-mips/tx4927/smsc_fdc37m81x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4927/smsc_fdc37m81x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/pnp/pnpacpi/rsparser.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pnp/pnpacpi/rsparser.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-mips/mach-mips/cpu-feature-overrides.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/cpu-feature-overrides.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/m528xsim.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m528xsim.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-m68knommu/m527xsim.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m527xsim.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/sn/shub_mmr.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/shub_mmr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2410/pm.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/pm.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ia64/sn/l1.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/l1.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/rtc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/rtc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/mach/irda.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/irda.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/icst307.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/icst307.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2410/sleep.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/sleep.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-s3c2410/idle.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/idle.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/char/monreader.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/monreader.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/s390/char/vmlogrdr.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/vmlogrdr.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/s390/char/vmwatchdog.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/vmwatchdog.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/a100u2w.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/a100u2w.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/scsi/aic7xxx/aic79xx_pci.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic7xxx/aic79xx_pci.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/asm-arm/arch-s3c2410/bast-pmu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/bast-pmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/scsi/aic7xxx/aic7xxx_pci.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic7xxx/aic7xxx_pci.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/serial/crisv10.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/crisv10.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/serial/crisv10.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/crisv10.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/serial/imx.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/imx.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/serial/m32r_sio.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/m32r_sio.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/usb/atm/speedtch.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/atm/speedtch.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ia64/sn/pci/pci_dma.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/sn/pci/pci_dma.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/host/ohci-pxa27x.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-pxa27x.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/ia64/sn/kernel/iomv.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/sn/kernel/iomv.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-pxa/ssp.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/ssp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/host/sl811-hcd.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/sl811-hcd.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/usb/host/sl811.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/sl811.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/tc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/tc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/omap16xx.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omap16xx.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-omap/cpu.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/cpu.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-versatile/versatile_ab.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/versatile_ab.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-versatile/versatile_pb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/versatile_pb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/cifs/readdir.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/readdir.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/serial/cypress_m8.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/cypress_m8.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/usb/serial/cypress_m8.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/cypress_m8.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/serial/ipw.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ipw.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/infiniband/ulp/ipoib/ipoib_vlan.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_vlan.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/ulp/ipoib/ipoib_verbs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_verbs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/infiniband/ulp/ipoib/ipoib_multicast.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_multicast.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/ulp/ipoib/ipoib_main.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_main.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/ulp/ipoib/ipoib_ib.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_ib.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/infiniband/ulp/ipoib/ipoib_fs.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_fs.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/ulp/ipoib/ipoib.h - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib.h.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h Documentation/feature-removal-schedule.txt - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/feature-removal-schedule.txt.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/infiniband/ulp/ipoib/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/pci/ca0106/ca0106_main.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/ca0106/ca0106_main.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h sound/mips/au1x00.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/au1x00.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h sound/mips/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/mips/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/mips/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/powerpc/eeh-pci-error-recovery.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/eeh-pci-error-recovery.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/maps/sharpsl-flash.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/sharpsl-flash.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h mm/internal.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/internal.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/sparse.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sparse.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/um/os-Linux/signal.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/os-Linux/signal.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/devices/block2mtd.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/block2mtd.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/hw/mthca/mthca_reset.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_reset.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/input/serio/i8042-x86ia64io.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/i8042-x86ia64io.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/infiniband/hw/mthca/mthca_qp.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_qp.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/hw/mthca/mthca_provider.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_provider.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/hw/mthca/mthca_provider.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_provider.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/acpi/processor_core.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/processor_core.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h init/calibrate.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/init/calibrate.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/acpi/processor_idle.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/processor_idle.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/arm/common/scoop.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/scoop.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/acpi/processor_perflib.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/processor_perflib.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/scsi/scsi_transport_iscsi.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/scsi_transport_iscsi.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/media/tveeprom.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/tveeprom.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/acpi/processor_throttling.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/processor_throttling.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/configs/omap_h2_1610_defconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_h2_1610_defconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/serio/libps2.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/libps2.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/block/aoe/aoechr.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/aoe/aoechr.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/block/aoe/aoecmd.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/aoe/aoecmd.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/block/aoe/aoenet.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/aoe/aoenet.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/kernel/smp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/smp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/mtd/maps/walnut.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/walnut.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/infiniband/hw/mthca/mthca_profile.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_profile.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/media/video/tveeprom.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tveeprom.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/infiniband/hw/mthca/mthca_profile.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_profile.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/hw/mthca/mthca_pd.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_pd.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/bluetooth/bpa10x.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/bpa10x.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/infiniband/hw/mthca/mthca_mr.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_mr.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/mtd/nand/nandsim.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/nandsim.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/infiniband/hw/mthca/mthca_memfree.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_memfree.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h include/linux/mtd/xip.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/xip.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/linux/libps2.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/libps2.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/lcd.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/lcd.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/if_infiniband.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/if_infiniband.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/drm/ati_pcigart.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/ati_pcigart.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/drm_agpsupport.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_agpsupport.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/drm_auth.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_auth.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/drm/drm_bufs.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_bufs.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/drm/drm_context.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_context.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/mtd/nand/sharpsl.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/sharpsl.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/char/drm/drm_dma.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_dma.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/fsl_devices.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fsl_devices.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/debugfs.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/debugfs.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/drm/drm_drawable.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_drawable.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-v850/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ixp4xx/gtwx5715-pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/gtwx5715-pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-ixp4xx/gtwx5715-setup.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/gtwx5715-setup.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/cputime.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/cputime.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/cputime.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cputime.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/drm_drv.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_drv.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/char/drm/drm_fops.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_fops.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/mach-pxa/corgi.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/corgi.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-pxa/corgi_ssp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/corgi_ssp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/drm_ioctl.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_ioctl.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-ppc/ppc_sys.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/ppc_sys.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-ppc/mv64x60_defs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mv64x60_defs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/mv64x60.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/mv64x60.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-mips/vr41xx/cmbvr4133.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/vr41xx/cmbvr4133.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/mcfcache.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mcfcache.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-m68knommu/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/sn/shubio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/shubio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/machvec_hpzx1_swiotlb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_hpzx1_swiotlb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/cputime.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/cputime.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/drm/drm_irq.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_irq.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/drm_lock.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_lock.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/drm/drm_memory.c - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_memory.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/char/drm/drm_pci.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_pci.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/mthca/mthca_memfree.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_memfree.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/char/drm/drm_proc.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_proc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/drm/drm_scatter.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_scatter.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/drm_stub.c - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_stub.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/char/drm/drm_sysfs.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_sysfs.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/drm_vm.c - 1.17 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_vm.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/infiniband/hw/mthca/mthca_mcg.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_mcg.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/infiniband/hw/mthca/mthca_main.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_main.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/hw/mthca/mthca_mad.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_mad.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/infiniband/hw/mthca/mthca_eq.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_eq.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/hw/mthca/mthca_doorbell.h - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_doorbell.h.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/infiniband/hw/mthca/mthca_dev.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_dev.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/infiniband/hw/mthca/mthca_cq.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_cq.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/char/drm/tdfx_drv.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/tdfx_drv.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/mthca/mthca_config_reg.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_config_reg.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/infiniband/hw/mthca/mthca_cmd.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_cmd.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h include/asm-generic/pgtable-nopmd.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/pgtable-nopmd.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/ppc_sys.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc_sys.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/mthca/mthca_cmd.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_cmd.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h drivers/infiniband/hw/mthca/mthca_av.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_av.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/hw/mthca/mthca_allocator.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_allocator.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-frv/unistd.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/unistd.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/infiniband/core/verbs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/verbs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/infiniband/core/user_mad.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/user_mad.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h drivers/infiniband/core/ud_header.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/ud_header.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/ppc/syslib/ppc403_pic.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc403_pic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/core/sysfs.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/sysfs.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h arch/ppc/syslib/mv64x60_win.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mv64x60_win.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/syslib/mv64x60_dbg.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mv64x60_dbg.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/mv64x60.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mv64x60.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/ppc/syslib/mv64360_pic.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mv64360_pic.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/cpufreq/cpufreq_stats.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/cpufreq_stats.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/crypto/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/crypto/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/crypto/padlock-aes.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/padlock-aes.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/syslib/ibm440sp_common.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440sp_common.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/ibm440sp_common.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ibm440sp_common.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/core/sa_query.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/sa_query.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/core/packer.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/packer.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/infiniband/core/mad_priv.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/mad_priv.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/core/fmr_pool.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/fmr_pool.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/i2c/busses/i2c-au1550.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-au1550.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/core/device.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/device.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/core/core_priv.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/core_priv.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/i2c/busses/i2c-sibyte.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-sibyte.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/core/cache.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/cache.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/core/agent.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/agent.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/ppc/platforms/katana.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/katana.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/katana.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/katana.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/platforms/ev64260.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ev64260.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/ppc/platforms/cpci690.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/cpci690.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/cpci690.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/cpci690.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/chestnut.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/chestnut.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/chestnut.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/chestnut.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pci/pcie/portdrv_bus.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/portdrv_bus.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/pcie/portdrv_core.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/portdrv_core.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/pci/pcie/portdrv_pci.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/portdrv_pci.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/pcmcia/au1000_generic.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/au1000_generic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/pcmcia/au1000_xxs1500.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/au1000_xxs1500.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/pxa2xx_sharpsl.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_sharpsl.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pcmcia/rsrc_nonstatic.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/rsrc_nonstatic.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/platforms/4xx/luan.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/luan.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/luan.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/luan.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/platforms/4xx/ibm440sp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440sp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/ibm440sp.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440sp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/s390/char/sclp_quiesce.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_quiesce.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/frv/kernel/entry.S - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/frv/kernel/entry.S.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/frv/kernel/gdb-stub.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/frv/kernel/gdb-stub.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/frv/kernel/pm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/frv/kernel/pm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/frv/mb93090-mb00/pci-frv.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/frv/mb93090-mb00/pci-frv.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/frv/mm/init.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/frv/mm/init.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/scsi/scsi_transport_iscsi.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_transport_iscsi.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/serial/mpsc.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/mpsc.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h arch/ppc/configs/luan_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/luan_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-frv/thread_info.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/thread_info.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-frv/termbits.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/termbits.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/katana_defconfig - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/katana_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/configs/cpci690_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/cpci690_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/configs/chestnut_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/chestnut_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/simple/mv64x60_tty.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/mv64x60_tty.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/boot/simple/misc-katana.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-katana.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/boot/simple/misc-cpci690.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-cpci690.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/include/mpsc_defs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/include/mpsc_defs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/serial/serial_txx9.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/serial_txx9.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/host/ohci-au1xxx.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-au1xxx.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/serial/garmin_gps.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/garmin_gps.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/vr41xx/nec-cmbvr4133/setup.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/nec-cmbvr4133/setup.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/nec-cmbvr4133/m1535plus.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/vr41xx/nec-cmbvr4133/irq.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/nec-cmbvr4133/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/vr41xx/nec-cmbvr4133/init.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/nec-cmbvr4133/init.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/vr41xx/nec-cmbvr4133/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/nec-cmbvr4133/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/ti_fw_3410.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ti_fw_3410.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/ti_fw_5052.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ti_fw_5052.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/ti_usb_3410_5052.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ti_usb_3410_5052.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/sgi-ip27/ip27-dbgio.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip27/ip27-dbgio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/backlight/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/backlight/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/video/backlight/backlight.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/backlight.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/video/backlight/lcd.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/lcd.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/affs/affs.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/affs/affs.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/pci/fixup-vr4133.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-vr4133.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/binfmt_elf_fdpic.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/binfmt_elf_fdpic.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/mips/oprofile/common.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/oprofile/common.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/debugfs/inode.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/debugfs/inode.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/nfsd/nfs4callback.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs4callback.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/proc/internal.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/internal.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/proc/nommu.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/nommu.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-alpha/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-cl7500/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-cl7500/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-cl7500/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/kernel/irq-rm9000.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irq-rm9000.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/kernel/irix5sys.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/irix5sys.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-clps711x/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-clps711x/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ebsa110/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ebsa110/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa110/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa285/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ebsa285/entry-macro.S - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ebsa285/entry-macro.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-h720x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-h720x/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-h720x/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-imx/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-integrator/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-integrator/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-integrator/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ia64/hp/common/hwsw_iommu.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/hp/common/hwsw_iommu.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp2000/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp2000/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp2000/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ixp4xx/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp4xx/entry-macro.S - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/entry-macro.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ixp4xx/gtwx5715.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/gtwx5715.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-l7200/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-l7200/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-l7200/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-lh7a40x/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/entry-macro.S - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/entry-macro.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-pxa/audio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/audio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/corgi.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/corgi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/entry-macro.S - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/entry-macro.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-rpc/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-rpc/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-rpc/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/debug-macro.S - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/debug-macro.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-s3c2410/entry-macro.S - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/entry-macro.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/arch-sa1100/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-shark/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-shark/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-shark/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-versatile/debug-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/debug-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-versatile/entry-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-versatile/entry-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/cpu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cpu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/entry-macro-iomd.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/entry-macro-iomd.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/hardware/scoop.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/scoop.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-frv/semaphore.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/semaphore.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-frv/dma-mapping.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/dma-mapping.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-frv/page.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/page.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-frv/namei.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/namei.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-frv/io.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-frv/ioctls.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/ioctls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-frv/ide.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/ide.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/isdn/hisax/hfc_usb.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hfc_usb.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/isdn/hisax/hfc4s8s_l1.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hfc4s8s_l1.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/isdn/hisax/hfc4s8s_l1.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/hisax/hfc4s8s_l1.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/input/touchscreen/corgi_ts.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/corgi_ts.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/input/serio/hp_sdc_mlc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/hp_sdc_mlc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/serio/hp_sdc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/hp_sdc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/input/serio/hil_mlc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/serio/hil_mlc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/mouse/hil_ptr.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/hil_ptr.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/input/misc/hp_sdc_rtc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/hp_sdc_rtc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/macintosh/smu.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/smu.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/input/keyboard/hil_kbd.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/hil_kbd.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/input/keyboard/corgikbd.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/corgikbd.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/md/dm-emc.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-emc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/md/dm-hw-handler.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-hw-handler.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/md/dm-hw-handler.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-hw-handler.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/md/dm-mpath.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-mpath.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/infiniband/hw/mthca/mthca_uar.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_uar.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/md/dm-mpath.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-mpath.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/dvb/b2c2/flexcop-fe-tuner.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/b2c2/flexcop-fe-tuner.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h sound/pci/hda/patch_realtek.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/patch_realtek.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/dvb/b2c2/flexcop-i2c.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/b2c2/flexcop-i2c.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/pci/hda/patch_analog.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/patch_analog.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h sound/pci/hda/hda_proc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/hda_proc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h sound/pci/hda/hda_intel.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/hda_intel.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h Documentation/cpusets.txt - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cpusets.txt.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h Documentation/dontdiff - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/dontdiff.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/pci/hda/hda_codec.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/hda_codec.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h sound/pci/hda/hda_codec.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/hda_codec.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h Documentation/i2c/busses/i2c-i810 - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/busses/i2c-i810.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/i2c/busses/i2c-prosavage - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/busses/i2c-prosavage.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/i2c/busses/i2c-savage4 - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/busses/i2c-savage4.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/i2c/busses/i2c-mv64xxx.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-mv64xxx.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/dvb/frontends/dvb-pll.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/dvb-pll.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/dvb/frontends/dvb-pll.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/dvb-pll.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/cpufreq/cpufreq_conservative.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpufreq/cpufreq_conservative.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/dvb/frontends/or51211.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/or51211.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/tpm/tpm.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tpm/tpm.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/scsi/lpfc.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scsi/lpfc.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/tb0219.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tb0219.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/mbcs.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mbcs.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h Documentation/sound/alsa/hda_codec.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/hda_codec.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/tuner-core.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tuner-core.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/misc/hdpuftrs/hdpu_cpustate.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/hdpuftrs/hdpu_cpustate.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/um/drivers/random.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/drivers/random.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/posix-cpu-timers.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/posix-cpu-timers.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h kernel/cpuset.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/cpuset.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/bnx2.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/bnx2.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/bnx2_fw.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2_fw.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/configs/se7750_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7750_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/mpc52xx_sys.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_sys.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/mpc52xx_pci.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_pci.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/mpc52xx_pci.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_pci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/syslib/mpc52xx_devices.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc52xx_devices.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/syslib/m82xx_pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m82xx_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/syslib/m82xx_pci.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/m82xx_pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/radstone_ppc7d.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/radstone_ppc7d.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/radstone_ppc7d.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/radstone_ppc7d.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/cpuset.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cpuset.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/rwsem-const.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/rwsem-const.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh4/timer.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/timer.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh3/timer.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/timer.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ppc/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/sn/tiocx.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tiocx.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/sn/tioca_provider.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tioca_provider.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/sn/tioca.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tioca.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/sn/pcidev.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/pcidev.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-ia64/sn/pcibus_provider_defs.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/pcibus_provider_defs.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/kdbprivate.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kdbprivate.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-ia64/kdb_break.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kdb_break.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ia64/kdb.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kdb.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ia64/bfd.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/bfd.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-ia64/ansidecl.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/ansidecl.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-arm/mach/sharpsl_param.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/sharpsl_param.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/platforms/hdpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/hdpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/hdpu.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/hdpu.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-s3c2410/otom-map.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/otom-map.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/poodle.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/poodle.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/poodle.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/poodle.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/arch-omap/board-voiceblue.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-voiceblue.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/configs/radstone_ppc7d_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/radstone_ppc7d_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/aic23.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/aic23.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/imxfb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/imxfb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2410/mach-n30.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-n30.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-s3c2410/mach-otom.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-otom.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/video/imxfb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/imxfb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/configs/hdpu_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/hdpu_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/simple/openbios.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/openbios.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/simple/misc-radstone_ppc7d.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-radstone_ppc7d.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/simple/misc-mv64x60.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-mv64x60.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/simple/misc-ev64260.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-ev64260.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/boot/simple/misc-chestnut.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-chestnut.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/net/claw.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/claw.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/serial/option.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/option.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/scsi/lpfc/lpfc.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/lpfc/lpfc_attr.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_attr.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/scsi/lpfc/lpfc_crtn.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_crtn.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/scsi/lpfc/lpfc_ct.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_ct.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/serial/hp4x.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/hp4x.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/scsi/lpfc/lpfc_els.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_els.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/lpfc/lpfc_hbadisc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_hbadisc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/scsi/lpfc/lpfc_init.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_init.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/usb/serial/cp2101.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/cp2101.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/usb/serial/airprime.c - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/airprime.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/mon/mon_text.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/mon/mon_text.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/scsi/lpfc/lpfc_nportdisc.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_nportdisc.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/lpfc/lpfc_scsi.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_scsi.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/usb/mon/mon_stat.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/mon/mon_stat.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/lpfc/lpfc_sli.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_sli.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/scsi/lpfc/lpfc_version.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_version.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/qla2xxx/qla_attr.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_attr.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/ia64/sn/pci/tioca_provider.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/sn/pci/tioca_provider.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/usb/misc/sisusbvga/sisusb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/sisusbvga/sisusb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/serial/ioc4_serial.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/ioc4_serial.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/serial/jsm/jsm_neo.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/jsm/jsm_neo.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/serial/jsm/jsm_tty.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/jsm/jsm_tty.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/serial/vr41xx_siu.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/vr41xx_siu.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/usb/host/ohci-ppc-soc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-ppc-soc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ia64/kdb/kdbasupport.c - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kdb/kdbasupport.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ia64/kdb/Makefile - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kdb/Makefile.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/ia64/kdb/ChangeLog - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kdb/ChangeLog.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h include/asm-ia64/sn/mspec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/mspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/drm/drm_ioc32.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_ioc32.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/arm/Samsung-S3C24XX/USB-Host.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/arm/Samsung-S3C24XX/USB-Host.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v10/io_interface_mux.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v10/io_interface_mux.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v10/ide.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v10/ide.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/sparc/dbri.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/sparc/dbri.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/pci/hda/patch_sigmatel.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/patch_sigmatel.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-arm/mtd-xip.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mtd-xip.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-arm/hardware/arm_timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/arm_timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-sa1100/mtd-xip.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/mtd-xip.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-arm/arch-s3c2410/audio.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/audio.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/hwmon/it87 - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/it87.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h Documentation/hwmon/lm85 - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/lm85.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/hwmon/w83627hf - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/w83627hf.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/i2c/chips/max6875 - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/chips/max6875.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/i2c/chips/pca9539 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/chips/pca9539.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/i2c/chips/pcf8574 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/chips/pcf8574.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/mtd-xip.h - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mtd-xip.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h sound/arm/pxa2xx-pcm.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/arm/pxa2xx-pcm.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/drm/i915_ioc32.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/i915_ioc32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/arm/pxa2xx-ac97.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/arm/pxa2xx-ac97.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/wanrouter/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wanrouter/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/kdump/kdump.txt - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/kdump/kdump.txt.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-omap/common.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/common.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/kprobes.txt - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/kprobes.txt.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-cris/arch-v32/hwregs/asm/ata_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/ata_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/drm/mga_ioc32.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/mga_ioc32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/r128_ioc32.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r128_ioc32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/drm/radeon_ioc32.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_ioc32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/via_3d_reg.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_3d_reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/drm/via_dma.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_dma.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/via_drm.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_drm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/via_drv.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_drv.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-cris/arch-v32/hwregs/asm/bif_core_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/bif_core_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/drm/via_drv.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_drv.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/via_irq.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_irq.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/drm/via_map.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_map.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/drm/via_mm.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_mm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/drm/via_verifier.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_verifier.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/via_verifier.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_verifier.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/via_video.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_video.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-aaec2000/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/hvc_vio.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_vio.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/ipv4/fib_trie.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/fib_trie.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h net/core/request_sock.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/request_sock.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-cris/arch-v32/hwregs/asm/bif_dma_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/bif_dma_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-arm/arch-aaec2000/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/bridge/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/bridge/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-aaec2000/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-aaec2000/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-aaec2000/memory.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/memory.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-aaec2000/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-aaec2000/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-aaec2000/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-aaec2000/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-aaec2000/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-aaec2000/debug-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/debug-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-aaec2000/aaec2000.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/aaec2000.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/vr41xx_giu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/vr41xx_giu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/ntfs/usnjrnl.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ntfs/usnjrnl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/8021q/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h mm/sparse.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/sparse.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h mm/filemap_xip.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/filemap_xip.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h mm/Kconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/Kconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h lib/ts_kmp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/ts_kmp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h lib/ts_fsm.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/ts_fsm.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h lib/textsearch.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/textsearch.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h lib/smp_processor_id.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/smp_processor_id.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/nfsd/nfs3acl.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs3acl.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/nfsd/nfs2acl.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfsd/nfs2acl.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/nfs/nfs3acl.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/nfs3acl.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/ioprio.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ioprio.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/Kconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/Kconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/hwmon/Makefile - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/Makefile.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/hwmon/adm1021.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm1021.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/adm1025.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm1025.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-cris/arch-v32/hwregs/asm/bif_slave_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/bif_slave_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/config_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/config_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/hwmon/adm1026.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm1026.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/adm1031.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm1031.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/adm9240.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm9240.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/asb100.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/asb100.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/atxp1.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/atxp1.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/ds1621.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ds1621.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/fscher.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/fscher.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-aaec2000/aaed2000.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/aaed2000.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-aaec2000/core.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-aaec2000/core.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/fscpos.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/fscpos.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/gl518sm.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/gl518sm.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/gl520sm.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/gl520sm.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/hwmon/it87.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/it87.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/hwmon/lm63.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm63.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/lm75.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm75.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/lm77.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm77.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/lm80.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm80.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/lm83.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm83.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/lm85.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm85.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/lm87.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm87.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/lm90.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm90.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h kernel/kexec.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kexec.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h kernel/Kconfig.hz - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/Kconfig.hz.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/lm92.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm92.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/request_sock.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/request_sock.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/ieee80211.h - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ieee80211.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/hwmon/max1619.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/max1619.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/textsearch.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/textsearch.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/raid/bitmap.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/raid/bitmap.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/linux/mtd/plat-ram.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/plat-ram.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/linux/kexec.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kexec.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/inotify.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/inotify.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/dm9000.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dm9000.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/crash_dump.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/crash_dump.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap1/Makefile - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/Makefile.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-omap1/board-generic.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-generic.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-omap1/board-h2.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-h2.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-omap1/board-h3.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-h3.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/mach-omap1/board-innovator.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-innovator.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-omap1/board-osk.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-osk.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-omap1/board-perseus2.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-perseus2.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-omap1/board-voiceblue.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-voiceblue.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-omap1/fpga.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/fpga.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap1/io.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/io.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-omap1/irq.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/irq.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-omap1/leds-h2p2-debug.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/leds-h2p2-debug.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-omap1/leds-innovator.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/leds-innovator.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-omap1/leds-osk.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/leds-osk.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-omap1/leds.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/leds.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap1/serial.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/serial.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-omap1/time.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/time.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-cris/arch-v32/hwregs/asm/cris_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/cris_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/hwmon/w83627hf.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83627hf.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/mach-pxa/standby.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/standby.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/hwmon/w83l785ts.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83l785ts.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/acpi/glue.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/glue.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-xtensa/thread_info.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/thread_info.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-versatile/pci.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-versatile/pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/host/ohci-s3c2410.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-s3c2410.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/usb/host/isp116x.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/isp116x.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/host/isp116x-hcd.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/isp116x-hcd.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/i2c/chips/max6875.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/max6875.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/i2c/chips/pca9539.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/pca9539.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/atm/cxacru.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/atm/cxacru.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/i2c/chips/tps65010.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/tps65010.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ide/pci/it821x.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/it821x.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/infiniband/core/cm.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/cm.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h arch/arm/plat-omap/Makefile - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/Makefile.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/plat-omap/clock.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/clock.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/plat-omap/common.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/common.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/plat-omap/cpu-omap.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/cpu-omap.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/plat-omap/dma.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/dma.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/arm/plat-omap/gpio.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/gpio.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/arm/plat-omap/mcbsp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/mcbsp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/plat-omap/mux.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/mux.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/plat-omap/ocpi.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/ocpi.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/plat-omap/usb.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/usb.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/ch.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ch.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/s390/char/vmcp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/vmcp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/core/mad_rmpp.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/mad_rmpp.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h drivers/infiniband/core/mad_rmpp.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/mad_rmpp.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/pcmcia/pcmcia_resource.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pcmcia_resource.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/pcmcia/pcmcia_ioctl.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pcmcia_ioctl.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/core/ucm.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/ucm.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h drivers/pci/hotplug/sgi_hotplug.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/sgi_hotplug.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/infiniband/core/uverbs.h - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/uverbs.h.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/core/uverbs_cmd.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/uverbs_cmd.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/core/uverbs_main.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/uverbs_main.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/hw/mthca/mthca_user.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_user.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/macintosh/macio_sysfs.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/macintosh/macio_sysfs.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/md/bitmap.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/bitmap.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-cris/arch-v32/hwregs/asm/dma_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/dma_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/eth_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/eth_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/dvb-usb/Kconfig - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/Kconfig.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/dvb/dvb-usb/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/dvb/dvb-usb/cxusb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/cxusb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/dvb/dvb-usb/cxusb.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/cxusb.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/cris/arch-v32/boot/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/boot/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v32/boot/compressed/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/boot/compressed/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v32/boot/compressed/misc.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/boot/compressed/misc.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/cris/arch-v32/boot/rescue/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/boot/rescue/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v32/drivers/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/cris/arch-v32/drivers/cryptocop.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/cryptocop.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/cris/arch-v32/drivers/i2c.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/i2c.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/cris/arch-v32/drivers/pcf8563.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/pcf8563.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h arch/cris/arch-v32/drivers/pci/dma.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/pci/dma.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/cris/arch-v32/drivers/sync_serial.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/sync_serial.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/cris/arch-v32/kernel/fasttimer.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/kernel/fasttimer.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/cris/arch-v32/kernel/kgdb.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/kernel/kgdb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v32/kernel/smp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/kernel/smp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/cris/arch-v32/mm/init.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/mm/init.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-xtensa/semaphore.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/semaphore.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/cris/kernel/profile.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/kernel/profile.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/xtensa/mm/init.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/mm/init.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-xtensa/ptrace.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/ptrace.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/xtensa/kernel/xtensa_ksyms.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/kernel/xtensa_ksyms.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-xtensa/page.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/page.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-xtensa/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/xtensa/kernel/setup.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/kernel/setup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/xtensa/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-cris/arch-v32/hwregs/asm/gio_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/gio_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/intr_vect_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/intr_vect_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/dvb-usb/dvb-usb-i2c.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/dvb-usb/dvb-usb-ids.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/dvb-usb-ids.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-cris/arch-v32/hwregs/asm/irq_nmi_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/irq_nmi_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/marb_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/marb_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/mmu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/mmu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/frontends/bcm3510.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/bcm3510.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/frontends/lgdt330x.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/lgdt330x.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-cris/arch-v32/hwregs/asm/pinmux_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/pinmux_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/dvb/frontends/s5h1420.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/s5h1420.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/dvb/pluto2/pluto2.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/pluto2/pluto2.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/message/fusion/mptfc.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptfc.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/message/fusion/mptspi.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptspi.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-cris/arch-v32/hwregs/asm/reg_map_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/reg_map_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/mtd/maps/omap_nor.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/omap_nor.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-xtensa/ide.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/ide.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-xtensa/dma-mapping.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/dma-mapping.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/maps/plat-ram.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/plat-ram.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/dm9000.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/dm9000.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/dm9000.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/dm9000.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/v850/configs/sim_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/configs/sim_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/configs/rte-me2-cb_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/configs/rte-me2-cb_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/v850/configs/rte-ma1-cb_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/configs/rte-ma1-cb_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/arch-v32/hwregs/asm/rt_trace_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/rt_trace_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/ser_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/ser_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ia64/kernel/jprobes.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/jprobes.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ia64/kernel/kprobes.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/kprobes.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-cris/arch-v32/hwregs/asm/sser_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/sser_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/strcop_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/strcop_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/strmux_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/strmux_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/asm/timer_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/asm/timer_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/ata_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/ata_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/bif_core_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/bif_core_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/bif_dma_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/bif_dma_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ia64/kernel/uncached.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/uncached.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-cris/arch-v32/hwregs/bif_slave_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/bif_slave_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/config_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/config_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/dma_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/dma_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/eth_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/eth_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/extmem_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/extmem_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-v850/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/seccomp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/seccomp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/emergency-restart.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/emergency-restart.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/kexec.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kexec.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/uncached.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/uncached.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/sn/tiocp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tiocp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/sn/pic.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/pic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/sn/pcibr_provider.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/pcibr_provider.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-cris/arch-v32/hwregs/gio_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/gio_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-ia64/kprobes.h - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kprobes.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/kdebug.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kdebug.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/hwregs/iop/Makefile - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/Makefile.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_crc_par_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_crc_par_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_dmc_in_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_dmc_in_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_dmc_out_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_dmc_out_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_in_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_in_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_in_extra_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_in_extra_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_out_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_out_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-h8300/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_out_extra_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_fifo_out_extra_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_mpu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_mpu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sap_in_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sap_in_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sap_out_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sap_out_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_scrc_in_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_scrc_in_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_scrc_out_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_scrc_out_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_spu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_spu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/s390/kernel/machine_kexec.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/machine_kexec.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_cfg_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_cfg_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_cpu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_cpu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/ide.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/ide.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_mpu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_mpu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_spu_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_sw_spu_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_timer_grp_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_timer_grp_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_trigger_grp_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_trigger_grp_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/asm/iop_version_defs_asm.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/asm/iop_version_defs_asm.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_crc_par_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_crc_par_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_dmc_in_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_dmc_in_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/configs/bamboo_defconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/bamboo_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/arch-v32/hwregs/iop/iop_dmc_out_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_dmc_out_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_fifo_in_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_fifo_in_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_fifo_in_extra_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_fifo_in_extra_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_fifo_out_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_fifo_out_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_fifo_out_extra_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_fifo_out_extra_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_mpu_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_mpu_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/kernel/machine_kexec.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/machine_kexec.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sap_in_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sap_in_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sap_out_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sap_out_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/kernel/relocate_kernel.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/kernel/relocate_kernel.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/hwregs/iop/iop_scrc_in_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_scrc_in_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_scrc_out_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_scrc_out_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_spu_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_spu_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sw_cfg_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sw_cfg_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sw_cpu_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sw_cpu_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sw_mpu_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sw_mpu_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_sw_spu_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_sw_spu_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_timer_grp_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_timer_grp_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/iop/iop_trigger_grp_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_trigger_grp_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/platforms/4xx/bamboo.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/bamboo.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/platforms/4xx/bamboo.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/bamboo.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/platforms/4xx/ibm440ep.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440ep.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/ibm440ep.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ibm440ep.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/hwregs/iop/iop_version_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/iop/iop_version_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/ptrace.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/ptrace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/hwregs/irq_nmi_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/irq_nmi_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/marb_bp_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/marb_bp_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/marb_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/marb_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/pinmux_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/pinmux_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/rt_trace_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/rt_trace_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/ser_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/ser_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/sser_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/sser_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/ide.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/ide.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-cris/arch-v32/hwregs/strcop.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/strcop.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/strcop_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/strcop_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-cris/arch-v32/hwregs/strmux_defs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/hwregs/strmux_defs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/v850/kernel/asm-offsets.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/v850/kernel/asm-offsets.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/ieee80211/ieee80211_rx.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ieee80211/ieee80211_rx.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/ieee80211/ieee80211_tx.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ieee80211/ieee80211_tx.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/ieee80211/ieee80211_wx.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ieee80211/ieee80211_wx.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h Documentation/RCU/NMI-RCU.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/RCU/NMI-RCU.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/RCU/whatisRCU.txt - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/RCU/whatisRCU.txt.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/dccp.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dccp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/scsi_transport_sas.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_transport_sas.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/linux/connector.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/connector.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/ipv4/inet_connection_sock.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inet_connection_sock.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/ipv4/inet_diag.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inet_diag.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h include/linux/fuse.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fuse.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv4/inet_hashtables.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inet_hashtables.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/ipv4/inet_timewait_sock.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inet_timewait_sock.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/dccp/timer.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/timer.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/dccp/proto.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/proto.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/auxvec.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/auxvec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/unaligned.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/unaligned.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/topology.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/topology.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/timex.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/timex.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/termbits.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/termbits.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/string.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/string.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/socket.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/socket.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/dccp/output.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/output.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-powerpc/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/dccp/options.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/options.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/dccp/minisocks.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/minisocks.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/setup.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/setup.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/dccp/ipv4.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ipv4.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h net/dccp/input.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/input.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/dccp/dccp.h - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/dccp.h.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-powerpc/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/resource.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/resource.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/dccp/ccids/lib/packet_history.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ccids/lib/packet_history.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/poll.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/poll.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/percpu.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/percpu.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/param.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/param.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/dccp/ccids/lib/packet_history.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ccids/lib/packet_history.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/dccp/ccids/lib/loss_interval.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ccids/lib/loss_interval.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Kbuild - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Kbuild.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/dccp/ccids/ccid3.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ccids/ccid3.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-alpha/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/barrier.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/barrier.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-alpha/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/acpi/utilities/utmutex.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/utilities/utmutex.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/module.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/module.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/mman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/collie_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/collie_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/configs/corgi_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/corgi_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/mc146818rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mc146818rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/local.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/local.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/ioctl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/fcntl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/fcntl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/spitz_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/spitz_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-alpha/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/drm/r300_cmdbuf.c - 1.13 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r300_cmdbuf.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/char/drm/r300_reg.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/r300_reg.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/dmtimer.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/dmtimer.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/dsp_common.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/dsp_common.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/spinlock_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/spinlock_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/mtd-xip.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mtd-xip.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/futex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/futex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/omap24xx.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omap24xx.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/auxvec.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/auxvec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-s390/spinlock_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/spinlock_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/cputime.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cputime.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/agp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/agp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/8253pit.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/8253pit.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/megaraid/megaraid_sas.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid/megaraid_sas.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/scsi/megaraid/megaraid_sas.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/megaraid/megaraid_sas.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/s390/scsi/zfcp_dbf.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_dbf.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/linux/netfilter/nfnetlink_conntrack.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter/nfnetlink_conntrack.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/netfilter/nfnetlink_log.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter/nfnetlink_log.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pcmcia/omap_cf.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/omap_cf.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/arch-pxa/akita.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/akita.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wireless/ipw2200.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ipw2200.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/wireless/ipw2100.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ipw2100.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/wireless/hostap/hostap_wlan.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_wlan.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/savage_bci.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/savage_bci.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-pxa/corgi_lcd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/corgi_lcd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/hostap/hostap_ioctl.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_ioctl.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-pxa/i2c.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/i2c.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/savage_drm.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/savage_drm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/savage_drv.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/savage_drv.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/hostap/hostap_hw.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_hw.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-pxa/spitz.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/spitz.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/arch-pxa/sharpsl.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/sharpsl.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/hostap/hostap_ap.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_ap.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/wireless/hostap/hostap_80211_rx.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_80211_rx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/wireless/hostap/hostap.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/spider_net.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/spider_net.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/linux/pci_regs.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci_regs.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-pxa/spitz.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/spitz.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/savage_drv.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/savage_drv.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-s3c2410/anubis-cpld.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/anubis-cpld.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/anubis-irq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/anubis-irq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/anubis-map.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/anubis-map.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/fb.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/fb.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/futex.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/futex.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/drm/savage_state.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/savage_state.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/phy/marvell.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/marvell.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-sa1100/mcp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/mcp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/syslib/pq2_sys.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/pq2_sys.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/ppc/syslib/pq2_devices.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/pq2_devices.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/arm_twd.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/arm_twd.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/gic.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/gic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/ipv6/inet6_hashtables.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/inet6_hashtables.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/phy/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/syslib/mpc8xx_sys.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc8xx_sys.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/syslib/mpc8xx_devices.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/mpc8xx_devices.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/phy/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/plat-omap/dmtimer.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/dmtimer.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/chelsio/suni1x10gexp_regs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/suni1x10gexp_regs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/chelsio/subr.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/subr.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/chelsio/sge.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/sge.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/chelsio/sge.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/sge.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/net/chelsio/regs.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/regs.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/arm/plat-omap/sram-fn.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/sram-fn.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-omap/sram.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/sram.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/chelsio/pm3393.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/pm3393.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/firmware/dcdbas.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/dcdbas.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/chelsio/mv88x201x.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/mv88x201x.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/firmware/dell_rbu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/dell_rbu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/auxvec.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/auxvec.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/hdaps.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/hdaps.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/hwmon/hwmon-vid.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/hwmon-vid.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/hwmon/hwmon.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/hwmon.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/ev64360.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ev64360.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/ev64360.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/ev64360.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/chelsio/gmac.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/gmac.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/asm-sparc64/futex.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/futex.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/fuse/inode.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fuse/inode.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/net/chelsio/espi.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/espi.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/chelsio/espi.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/espi.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/net/chelsio/elmer0.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/elmer0.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/chelsio/cxgb2.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/cxgb2.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/chelsio/cpl5_cmd.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/cpl5_cmd.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/net/chelsio/cphy.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/cphy.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h fs/fuse/fuse_i.h - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fuse/fuse_i.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/fuse/file.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fuse/file.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/fuse/dir.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/fuse/dir.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/net/chelsio/common.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/common.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/hwmon/w83792d.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83792d.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h lib/ts_bm.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/ts_bm.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/cassini.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cassini.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/net/cassini.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cassini.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-m68knommu/m523xsim.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m523xsim.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/i2c/busses/i2c-pxa.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-pxa.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h kernel/softlockup.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/softlockup.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/configs/ev64360_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ev64360_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/9p/vfs_inode.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/9p/vfs_inode.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/boot/simple/misc-ev64360.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/misc-ev64360.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/9p/vfs_dir.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/9p/vfs_dir.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-m68knommu/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/vr41xx/common/irq.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/common/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mfd/ucb1x00-ts.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/ucb1x00-ts.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-h8300/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/netfilter/Kconfig - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/Kconfig.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h net/netfilter/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mfd/ucb1x00-core.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/ucb1x00-core.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/netfilter/nf_sockopt.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_sockopt.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/netfilter/nfnetlink_log.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nfnetlink_log.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h net/netfilter/nfnetlink_queue.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nfnetlink_queue.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/mips/configs/tb0287_defconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/tb0287_defconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/infiniband/hw/mthca/mthca_srq.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_srq.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/infiniband/hw/mthca/mthca_wqe.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_wqe.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/asm-sparc64/sfafsr.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sfafsr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/keyboard/spitzkbd.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/spitzkbd.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/rdma/ib_verbs.h - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_verbs.h.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h include/rdma/ib_user_verbs.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_user_verbs.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/rdma/ib_user_mad.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_user_mad.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/rdma/ib_user_cm.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_user_cm.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/rdma/ib_smi.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_smi.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h include/rdma/ib_sa.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_sa.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/rdma/ib_pack.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_pack.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/mfd/mcp-sa11x0.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/mcp-sa11x0.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/rdma/ib_mad.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_mad.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h include/rdma/ib_fmr_pool.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_fmr_pool.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/rdma/ib_cm.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_cm.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/rdma/ib_cache.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_cache.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/video/sis/initextlfb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sis/initextlfb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/s3c2410fb.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/s3c2410fb.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h scripts/setlocalversion - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/setlocalversion.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mfd/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mfd/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/spinlock_api_smp.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spinlock_api_smp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/message/fusion/mptsas.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptsas.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-ia64/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/futex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/futex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ia64/kernel/cpufreq/acpi-cpufreq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/cpufreq/acpi-cpufreq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/net/inet_timewait_sock.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/inet_timewait_sock.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/net/inet_hashtables.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/inet_hashtables.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-ia64/sn/tioce_provider.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tioce_provider.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/sn/tioce.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/tioce.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/futex.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/futex.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-ia64/sn/sn_feature_sets.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/sn_feature_sets.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/net/inet6_hashtables.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/inet6_hashtables.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/saa6588.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa6588.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ide/mips/au1xxx-ide.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/mips/au1xxx-ide.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ide/mips/swarm.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/mips/swarm.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/ide/pci/cs5535.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/cs5535.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/hw/mthca/mthca_catas.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mthca/mthca_catas.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h Documentation/HOWTO - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/HOWTO.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h Documentation/RCU/torture.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/RCU/torture.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/ulp/srp/ib_srp.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/srp/ib_srp.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h drivers/infiniband/ulp/srp/ib_srp.h - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/srp/ib_srp.h.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h net/sunrpc/xprtsock.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprtsock.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/sunrpc/auth_gss/gss_krb5_wrap.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/auth_gss/gss_krb5_wrap.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/tlclk.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tlclk.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/pcmcia/cm4040_cs.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/cm4040_cs.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/netfilter/nf_conntrack_standalone.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_standalone.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/netfilter/nf_conntrack_proto_tcp.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_proto_tcp.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/char/pcmcia/cm4000_cs.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/cm4000_cs.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/input/misc/wistron_btns.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/wistron_btns.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/netfilter/nf_conntrack_proto_sctp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_proto_sctp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/base/memory.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/memory.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/atm/adummy.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/atm/adummy.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h block/scsi_ioctl.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/scsi_ioctl.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h block/ioctl.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/ioctl.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h block/genhd.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/genhd.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h block/elevator.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/elevator.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h net/netfilter/nf_conntrack_core.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_core.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h net/ipv6/netfilter/nf_conntrack_reasm.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/nf_conntrack_reasm.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/netfilter/nf_conntrack_proto_icmpv6.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/netfilter/nf_conntrack_proto_icmp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_conntrack_proto_icmp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h block/cfq-iosched.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/cfq-iosched.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h block/as-iosched.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/as-iosched.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h mm/memory_hotplug.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/memory_hotplug.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h block/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h lib/swiotlb.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/swiotlb.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h kernel/rcutorture.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rcutorture.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h kernel/power/snapshot.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/snapshot.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/scsi/srp.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/srp.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h include/scsi/iscsi_proto.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/iscsi_proto.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/scsi/iscsi_if.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/iscsi_if.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/net/netlink.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netlink.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h block/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/um/kernel/uaccess.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/kernel/uaccess.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/netfilter/nf_conntrack.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netfilter/nf_conntrack.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/dvb/frontends/nxt200x.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/nxt200x.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/net/netfilter/ipv4/nf_conntrack_ipv4.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netfilter/ipv4/nf_conntrack_ipv4.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/cs53l32a.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cs53l32a.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/cx25840/cx25840-core.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx25840/cx25840-core.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/cx25840/cx25840-firmware.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx25840/cx25840-firmware.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/cx25840/cx25840-vbi.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx25840/cx25840-vbi.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/cx88/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/net/ieee80211_radiotap.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/ieee80211_radiotap.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/video4linux/CARDLIST.em28xx - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/CARDLIST.em28xx.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/media/v4l2-common.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/v4l2-common.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/media/ir-kbd-i2c.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/ir-kbd-i2c.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/em28xx/em28xx-cards.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx-cards.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/em28xx/em28xx-i2c.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx-i2c.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/em28xx/em28xx-input.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx-input.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/em28xx/em28xx-video.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx-video.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/media/video/em28xx/em28xx.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/saa7115.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7115.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/video/saa711x.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa711x.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/saa7127.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7127.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/media/video/saa7134/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/saa7134/saa7134-alsa.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa7134/saa7134-alsa.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/media/video/tvp5150.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tvp5150.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/media/video/wm8775.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/wm8775.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/syslib/ppc440spe_pcie.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc440spe_pcie.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/syslib/ppc440spe_pcie.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/ppc440spe_pcie.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/maps/mtx-1_flash.c - 1.20 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/mtx-1_flash.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/ppc/platforms/4xx/yucca.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/yucca.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/pm_legacy.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pm_legacy.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/platform_device.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/platform_device.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/netfilter/nf_conntrack_tcp.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter/nf_conntrack_tcp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/netfilter/nf_conntrack_common.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter/nf_conntrack_common.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/configs/realview_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/realview_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/memory_hotplug.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/memory_hotplug.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/4xx/yucca.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/yucca.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/ppc/platforms/4xx/ppc440spe.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ppc440spe.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/ppc440spe.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/ppc440spe.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/onenand/onenand_base.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/onenand/onenand_base.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/ppc/boot/of1275/call_prom.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/of1275/call_prom.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/xmon/xmon.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/xmon/xmon.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/lib/copy_template.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/copy_template.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/sysdev/mpic.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/mpic.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/sysdev/indirect_pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/indirect_pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/sysdev/i8259.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/i8259.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/sysdev/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/pseries/xics.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/xics.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/lib/memmove.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/memmove.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/pseries/setup.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/setup.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/arm/lib/sha1.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/lib/sha1.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/pseries/rtasd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/rtasd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/fs_enet_pd.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs_enet_pd.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/pseries/reconfig.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/reconfig.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/pseries/ras.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/ras.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/pseries/plpar_wrappers.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/plpar_wrappers.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/pseries/lpar.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/lpar.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/platforms/pseries/iommu.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/iommu.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/pseries/eeh.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/eeh.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/pseries/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/xmon.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/xmon.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/vio.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/vio.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/vga.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/vga.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/vdso_datapage.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/vdso_datapage.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/pseries/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/vdso.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/vdso.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/unistd.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/unistd.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-powerpc/uninorth.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/uninorth.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/udbg.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/udbg.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/uaccess.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/uaccess.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/types.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/types.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/tlbflush.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tlbflush.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/tlb.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tlb.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/time.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/time.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/thread_info.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/thread_info.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/tce.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tce.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/system.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/system.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-ixp4xx/nslu2-pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/nslu2-pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/synch.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/synch.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/sstep.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sstep.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/spinlock_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spinlock_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/spinlock.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spinlock.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/sparsemem.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sparsemem.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/smu.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/smu.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/smp.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/smp.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/signal.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/signal.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap1/board-palmte.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-palmte.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/serial.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/serial.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/clock.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/clock.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/semaphore.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/semaphore.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/sections.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/sections.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/seccomp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/seccomp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/scatterlist.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/scatterlist.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/rwsem.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/rwsem.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap1/mux.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/mux.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/rtas.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/rtas.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/reg_8xx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/reg_8xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/board-generic.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/board-generic.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/board-h4.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/board-h4.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-omap2/clock.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-omap2/clock.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-omap2/devices.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/devices.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/id.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/id.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap2/io.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/io.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-omap2/irq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/irq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/mux.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/mux.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-omap2/serial.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/serial.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-omap2/sram-fn.S - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/sram-fn.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/timer-gp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/timer-gp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-pxa/akita-ioexp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/akita-ioexp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/reg.h - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/reg.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-powerpc/ptrace.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ptrace.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pxa/corgi_pm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/corgi_pm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/prom.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/prom.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/platforms/powermac/smp.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/powermac/smp.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/powermac/setup.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/powermac/setup.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-powerpc/processor.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/processor.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/ppc_asm.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ppc_asm.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/ppc-pci.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ppc-pci.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/pmc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pmc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pxa/sharpsl_pm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/sharpsl_pm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/pmac_low_i2c.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pmac_low_i2c.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/spitz_pm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/spitz_pm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/pmac_feature.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pmac_feature.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/pgtable.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgtable.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/pgtable-64k.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgtable-64k.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pxa/tosa.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/tosa.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-realview/core.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/core.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-realview/localtimer.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/localtimer.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-realview/platsmp.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/platsmp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-realview/realview_eb.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/realview_eb.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/powermac/pic.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/powermac/pic.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/pgtable-4k.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgtable-4k.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/pgalloc.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgalloc.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/pci.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pci.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/pci-bridge.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pci-bridge.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/parport.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/parport.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/page_64.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/page_64.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/page_32.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/page_32.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/page.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/page.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/paca.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/paca.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/pSeries_reconfig.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pSeries_reconfig.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/oprofile_impl.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/oprofile_impl.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/ohare.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ohare.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/of_device.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/of_device.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/nvram.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/nvram.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/mpic.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpic.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/mmzone.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmzone.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/mmu_context.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu_context.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/mmu.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/mediabay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mediabay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/powermac/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/powermac/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/maple/time.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/maple/time.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/macio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/macio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/machdep.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/machdep.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/lppaca.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/lppaca.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/lmb.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/lmb.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/kprobes.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kprobes.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/keylargo.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/keylargo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/iseries/setup.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/iseries/setup.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-powerpc/kexec.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kexec.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/kdebug.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kdebug.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/iseries/vio.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/vio.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/iseries/mf.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/mf.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/iseries/lpar_map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/lpar_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/iseries/it_lp_queue.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/it_lp_queue.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-omap/devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/iseries/hv_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/iseries/hv_lp_event.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_lp_event.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/iseries/hv_lp_config.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_lp_config.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/iseries/hv_call_xm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_call_xm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/iseries/hv_call_sc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_call_sc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/iseries/hv_call_event.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_call_event.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/iseries/hv_call.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/hv_call.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/irq.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/irq.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/iommu.h - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iommu.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/io.h - 1.14 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/io.h.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-powerpc/ide.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ide.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/platforms/iseries/mf.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/iseries/mf.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/i8259.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/i8259.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/hw_irq.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hw_irq.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/hvcserver.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hvcserver.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/hvconsole.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hvconsole.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/hvcall.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hvcall.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/heathrow.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/heathrow.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/hardirq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hardirq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/grackle.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/grackle.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/iseries/iommu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/iseries/iommu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/futex.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/futex.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/floppy.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/floppy.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/firmware.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/firmware.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/elf.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/elf.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/eeh_event.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/eeh_event.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/eeh.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/eeh.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/dma-mapping.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dma-mapping.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/delay.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/delay.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/dbdma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dbdma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/current.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/current.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/cputable.h - 1.16 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cputable.h.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-powerpc/compat.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/compat.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/checksum.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/checksum.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/cacheflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cacheflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/cache.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cache.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/byteorder.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/byteorder.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/bug.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/bug.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/btext.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/btext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/bitops.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/bitops.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/backlight.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/backlight.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/iseries/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/iseries/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/embedded6xx/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/embedded6xx/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/atomic.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/atomic.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/chrp/setup.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/chrp/setup.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/chrp/pci.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/chrp/pci.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-powerpc/asm-compat.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/asm-compat.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/cell/spider-pic.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spider-pic.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/cell/iommu.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/iommu.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/cell/interrupt.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/interrupt.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/cell/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/platforms/Makefile - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/Makefile.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/8xx/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/8xx/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/85xx/Makefile - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/Makefile.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/abs_addr.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/abs_addr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/85xx/Kconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/Kconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/oprofile/common.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/oprofile/common.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/mm/tlb_64.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/tlb_64.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/mm/stab.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/stab.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/mm/ppc_mmu_32.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/ppc_mmu_32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/mm/pgtable_64.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/pgtable_64.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/mm/pgtable_32.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/pgtable_32.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/mm/numa.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/numa.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/mm/mmu_decl.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/mmu_decl.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/mm/mem.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/mem.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/mm/init_64.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/init_64.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/mm/init_32.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/init_32.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/mm/hugetlbpage.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/hugetlbpage.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-mips/tx4938/tx4938.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4938/tx4938.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/mm/hash_utils_64.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/hash_utils_64.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/powerpc/mm/hash_low_64.S - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/hash_low_64.S.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/mm/fault.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/fault.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/mm/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-mips/tx4938/spi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4938/spi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/tx4938/rbtx4938.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/tx4938/rbtx4938.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/mm/44x_mmu.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/44x_mmu.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/lib/string.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/string.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/mach-mips/irq.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/irq.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/lib/Makefile - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/kernel/vmlinux.lds.S - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/vio.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/vio.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/vdso64/vdso64.lds.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/vdso64/vdso64.lds.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/vdso32/vdso32.lds.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/vdso32/vdso32.lds.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/vdso.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/vdso.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-m68knommu/m520xsim.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m520xsim.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/sparsemem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sparsemem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-realview/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/smp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/smp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-realview/platform.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/platform.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-realview/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/irqs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/irqs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-realview/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-realview/hardware.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/hardware.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-realview/entry-macro.S - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/entry-macro.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-realview/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-realview/debug-macro.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/debug-macro.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/tosa.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/tosa.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/pm.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pm.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pxa/irda.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/irda.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/kernel/traps.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/traps.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/time.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/time.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-arm/arch-omap/sram.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/sram.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/sysfs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/sysfs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/kernel/syscalls.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/syscalls.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/kernel/sys_ppc32.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/sys_ppc32.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/smp.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/smp.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/kernel/signal_64.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/signal_64.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/signal_32.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/signal_32.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/kernel/setup_64.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/setup_64.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/setup_32.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/setup_32.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/setup-common.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/setup-common.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/kernel/rtas_pci.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/rtas_pci.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/rtas_flash.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/rtas_flash.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/kernel/rtas.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/rtas.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-arm/arch-omap/prcm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/prcm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/omapfb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omapfb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/rtas-proc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/rtas-proc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/kernel/ptrace32.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ptrace32.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/kernel/ptrace.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ptrace.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/prom_init.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/prom_init.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h include/asm-arm/arch-omap/menelaus.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/menelaus.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-omap/clock.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/clock.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-ixp4xx/nslu2.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/nslu2.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/kernel/prom.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/prom.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/au1000/common/gpio.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/common/gpio.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/kernel/process.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/process.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/kernel/ppc_ksyms.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ppc_ksyms.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/powerpc/kernel/ppc32.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ppc32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-aaec2000/aaed2000.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-aaec2000/aaed2000.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/jffs2/summary.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/summary.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/jffs2/summary.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/summary.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/mips/au1000/pb1200/init.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1200/init.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/of_device.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/of_device.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/kernel/module_64.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/module_64.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/kernel/misc_64.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/misc_64.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/kernel/misc_32.S - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/misc_32.S.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/mips/configs/bigsur_defconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/bigsur_defconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/mips/configs/db1200_defconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/db1200_defconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/scsi/iscsi_tcp.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/iscsi_tcp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/iscsi_tcp.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/iscsi_tcp.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/mips/configs/mipssim_defconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/mipssim_defconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/pcmcia/m8xx_pcmcia.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/m8xx_pcmcia.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/mips/configs/pnx8550-jbs_defconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/pnx8550-jbs_defconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/mips/configs/rbhma4500_defconfig - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/rbhma4500_defconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/ppp_mppe.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ppp_mppe.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/irda/pxaficp_ir.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/pxaficp_ir.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/kernel/machine_kexec_64.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/machine_kexec_64.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/ibm_emac/ibm_emac_zmii.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_zmii.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/ibm_emac/ibm_emac_tah.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_tah.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/lparcfg.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/lparcfg.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/kprobes.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/kprobes.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/kernel/irq.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/irq.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/iommu.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/iommu.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/kernel/idle_6xx.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/idle_6xx.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/head_fsl_booke.S - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_fsl_booke.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/kernel/head_64.S - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_64.S.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/powerpc/kernel/head_44x.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_44x.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/kernel/head_32.S - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_32.S.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/kernel/fpu.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/fpu.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/entry_64.S - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/entry_64.S.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/kernel/entry_32.S - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/entry_32.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/ibm_emac/ibm_emac_rgmii.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_rgmii.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/dma_64.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/dma_64.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/kernel/cputable.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/cputable.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/kernel/asm-offsets.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/asm-offsets.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/kernel/align.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/align.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/configs/pseries_defconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/pseries_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/ibm_emac/ibm_emac_debug.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/ibm_emac_debug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/configs/ppc64_defconfig - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ppc64_defconfig.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h arch/powerpc/configs/maple_defconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/maple_defconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/configs/iseries_defconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/iseries_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/configs/g5_defconfig - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/g5_defconfig.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/boot/addnote.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/addnote.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/Makefile - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/Makefile.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/Kconfig.debug - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/Kconfig.debug.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/Kconfig - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/Kconfig.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/mtd/rfd_ftl.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/rfd_ftl.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h arch/mips/vr41xx/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/vr41xx/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/toshiba_rbtx4938/spi_eeprom.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/kernel/rtlx.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/rtlx.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/mips/tx4938/toshiba_rbtx4938/setup.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/toshiba_rbtx4938/setup.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/tx4938/toshiba_rbtx4938/prom.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/toshiba_rbtx4938/prom.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/tx4938/toshiba_rbtx4938/irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/toshiba_rbtx4938/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/tx4938/toshiba_rbtx4938/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/toshiba_rbtx4938/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/tx4938/common/prom.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/common/prom.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/tx4938/common/irq.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/common/irq.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/tx4938/common/dbgio.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/common/dbgio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/tx4938/common/Makefile - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/common/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/tx4938/Kconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4938/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/tx4927/Kconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/kernel/vpe.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/vpe.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/mips/sibyte/bcm1480/irq.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/bcm1480/irq.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/mips/pci/pci-bcm1480.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/pci-bcm1480.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/mips/pci/ops-tx4938.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/ops-tx4938.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/pci/fixup-tx4938.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pci/fixup-tx4938.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/oprofile/op_model_mipsxx.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/oprofile/op_model_mipsxx.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/fs_enet/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/fs_enet/fs_enet-main.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/fs_enet-main.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/fs_enet/fs_enet.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/fs_enet.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/fs_enet/mii-bitbang.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/mii-bitbang.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/fs_enet/mac-scc.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/mac-scc.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/fs_enet/mac-fcc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/mac-fcc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/fs_enet/mac-fec.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/mac-fec.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/spi/spi.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spi.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-sh/clock.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/clock.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/s390_rdev.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/s390_rdev.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ixp2000/ixp2400-msf.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixp2000/ixp2400-msf.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/atm/ueagle-atm.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/atm/ueagle-atm.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h Documentation/cpu-hotplug.txt - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cpu-hotplug.txt.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h sound/pci/pcxhr/pcxhr_hwdep.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/pcxhr/pcxhr_hwdep.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/pci/pcxhr/pcxhr_core.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/pcxhr/pcxhr_core.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/pci/pcxhr/pcxhr.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/pcxhr/pcxhr.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h Documentation/filesystems/configfs/configfs.txt - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/configfs/configfs.txt.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/filesystems/configfs/configfs_example.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/configfs/configfs_example.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/ifb.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ifb.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/gianfar_sysfs.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/gianfar_sysfs.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/input/touchscreen/ads7846.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/ads7846.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/usb/core/driver.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/driver.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/net/bonding/bond_sysfs.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bonding/bond_sysfs.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/mtd/devices/mtd_dataflash.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/mtd_dataflash.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mtd/devices/m25p80.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/devices/m25p80.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/message/fusion/lsi/mpi_log_fc.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/lsi/mpi_log_fc.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/media/dvb/frontends/cx24123.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/cx24123.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/dvb/frontends/cx24123.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/cx24123.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/compat_ioctl32.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/compat_ioctl32.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/tipc/zone.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/zone.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/cx88/cx88-alsa.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-alsa.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/video/cx88/cx88-vp3054-i2c.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx88/cx88-vp3054-i2c.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/msp3400-kthreads.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/msp3400-kthreads.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/zone.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/zone.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/msp3400-driver.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/msp3400-driver.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h Documentation/scsi/aacraid.txt - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scsi/aacraid.txt.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/user_reg.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/user_reg.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/spi/spi-summary - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/spi/spi-summary.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/subscr.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/subscr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/tipc/subscr.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/subscr.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/socket.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/socket.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/tipc/ref.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/ref.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/configfs/configfs_internal.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/configfs/configfs_internal.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/x86_64/cpu-hotplug-spec - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/cpu-hotplug-spec.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/tipc/port.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/port.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/prom_parse.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/prom_parse.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/configfs/dir.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/configfs/dir.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/configfs/inode.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/configfs/inode.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/configfs/symlink.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/configfs/symlink.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ocfs2/aops.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/aops.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/powerpc/kernel/machine_kexec_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/machine_kexec_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/kernel/machine_kexec.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/machine_kexec.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/legacy_serial.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/legacy_serial.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/tipc/port.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/port.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/tipc/node_subscr.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/node_subscr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/tipc/node_subscr.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/node_subscr.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/tipc/node.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/node.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/common/sharpsl_pm.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/sharpsl_pm.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ocfs2/cluster/heartbeat.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/cluster/heartbeat.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/configs/at91rm9200dk_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91rm9200dk_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/configs/at91rm9200ek_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91rm9200ek_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/kernel/ibmebus.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/ibmebus.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/tipc/node.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/node.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/netlink.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/netlink.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/tipc/net.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/net.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ocfs2/cluster/nodemanager.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/cluster/nodemanager.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/net.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/net.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/tipc/name_table.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/name_table.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/crash_dump.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/crash_dump.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/kernel/crash.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/crash.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/name_table.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/name_table.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/tipc/name_distr.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/name_distr.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/msg.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/msg.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/msg.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/msg.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/tipc/link.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/link.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/tipc/link.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/link.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/tipc/eth_media.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/eth_media.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/tipc/discover.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/discover.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/tipc/discover.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/discover.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/tipc/dbg.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/dbg.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/ocfs2/cluster/tcp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/cluster/tcp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/configs/pmac32_defconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/pmac32_defconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h net/tipc/dbg.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/dbg.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/core.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/core.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/core.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/core.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/tipc/config.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/config.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/tipc/cluster.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/cluster.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/tipc/cluster.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/cluster.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ocfs2/cluster/tcp_internal.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/cluster/tcp_internal.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/tipc/bearer.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/bearer.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/tipc/bearer.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/bearer.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/tipc/bcast.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/bcast.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/tipc/bcast.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/tipc/bcast.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ocfs2/dir.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/dir.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/platforms/83xx/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/83xx/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/83xx/mpc83xx.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc83xx.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/83xx/pci.c - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/pci.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/spi/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/cell/Kconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/Kconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/spi/Kconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/Kconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/platforms/cell/pervasive.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/pervasive.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/sched/act_simple.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_simple.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/sched/act_police.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_police.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/sched/act_pedit.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_pedit.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/sched/act_mirred.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_mirred.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/sched/act_ipt.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_ipt.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/sched/act_gact.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_gact.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/cell/pervasive.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/pervasive.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/cell/spu_base.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spu_base.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/powerpc/platforms/cell/spufs/context.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/context.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/cell/spufs/file.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/file.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h arch/powerpc/platforms/cell/spufs/inode.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/inode.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h arch/powerpc/platforms/cell/spufs/run.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/run.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/powerpc/platforms/cell/spufs/sched.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/sched.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/netfilter/xt_string.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_string.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/ocfs2/dlm/dlmfs.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/dlm/dlmfs.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/netfilter/xt_connbytes.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_connbytes.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/netfilter/nf_conntrack_netlink.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_netlink.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h arch/arm/mach-ixp4xx/nas100d-pci.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/nas100d-pci.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/ipv6/inet6_connection_sock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/inet6_connection_sock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/dccp/ipv6.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/dccp/ipv6.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h mm/util.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/util.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h mm/slob.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/slob.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h kernel/mutex.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/mutex.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h kernel/mutex-debug.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/mutex-debug.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/hrtimer.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/hrtimer.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/net/tipc/tipc_port.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/tipc/tipc_port.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/inet_sock.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/inet_sock.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/tipc_config.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tipc_config.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/spi/spi.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/spi.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/netfilter/xt_string.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/netfilter/xt_string.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/cell/spufs/spufs.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/spufs.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/ixp2000/ixpdev.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixp2000/ixpdev.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/configfs.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/configfs.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/i2c/busses/i2c-powermac.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-powermac.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/serial/ioc3_serial.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/ioc3_serial.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/sky2.c - 1.25 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sky2.c.diff?r1=text&tr1=1.25&r2=text&tr2=1.24&f=h drivers/net/sky2.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sky2.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/wireless/hostap/hostap_main.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/hostap/hostap_main.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/tpm/tpm_bios.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tpm/tpm_bios.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/synclink_gt.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/synclink_gt.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h fs/ocfs2/dlmglue.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/dlmglue.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-v850/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/timer.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/timer.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/kexec.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/kexec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ocfs2/file.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/file.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-s390/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/spu_csa.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spu_csa.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/spu.h - 1.12 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spu.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h include/asm-powerpc/pmac_pfunc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pmac_pfunc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kdump.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kdump.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/ipic.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ipic.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/ibmebus.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ibmebus.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/bootx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/bootx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/sn/ioc3.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/ioc3.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/mutex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/mutex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-h8300/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ocfs2/file.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/file.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ocfs2/journal.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/journal.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h fs/ocfs2/journal.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/journal.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-generic/ioctl.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/ocfs2/localalloc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/localalloc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/drm/via_dmablit.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_dmablit.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/via_dmablit.c - 1.11 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/via_dmablit.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/char/cs5535_gpio.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/cs5535_gpio.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/s390/cio/schid.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/schid.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/um/os-Linux/umid.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/os-Linux/umid.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/mutex.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mutex.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/powermac/udbg_scc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/powermac/udbg_scc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/mm/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/kernel/timers/timer-tmu.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/timers/timer-tmu.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/sh/kernel/machine_kexec.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/machine_kexec.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/hardware/vic.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/vic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/configs/hp6xx_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/hp6xx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/s390/crypto/crypt_s390.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/crypto/crypt_s390.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/hardware/sharpsl_pm.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/sharpsl_pm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/ohci.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/ohci.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/hp6xx/Makefile - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/hp6xx/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/hp6xx/setup.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/hp6xx/setup.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/kernel/cpu/clock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/clock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-ixp4xx/nas100d.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/nas100d.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/sysdev/ipic.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/ipic.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/sysdev/fsl_soc.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_soc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/sysdev/fsl_soc.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_soc.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/powerpc/sysdev/dart_iommu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/dart_iommu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-alpha/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ramfs/file-nommu.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ramfs/file-nommu.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ramfs/file-mmu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ramfs/file-mmu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/ocfs2/super.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/super.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/ocfs2/ocfs2_fs.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/ocfs2_fs.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ocfs2/ocfs2.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/ocfs2.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/edac/amd76x_edac.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/amd76x_edac.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/video/backlight/hp680_bl.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/hp680_bl.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/um/os-Linux/skas/process.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/os-Linux/skas/process.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/edac/i82875p_edac.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/i82875p_edac.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h Documentation/powerpc/booting-without-of.txt - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/booting-without-of.txt.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h Documentation/scsi/ChangeLog.megaraid_sas - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scsi/ChangeLog.megaraid_sas.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/um/include/skas/skas.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/include/skas/skas.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/vm/page_migration - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/vm/page_migration.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/microdev.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/microdev.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/edac/Kconfig - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/Kconfig.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/edac/Makefile - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/Makefile.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/edac/e752x_edac.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/e752x_edac.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h drivers/edac/e7xxx_edac.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/e7xxx_edac.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/edac/r82600_edac.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/r82600_edac.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h drivers/input/misc/ixp4xx-beeper.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/ixp4xx-beeper.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/cputopology.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/cputopology.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/base/topology.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/topology.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/s390/block/dasd_eer.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_eer.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-s3c2410/h1940-latch.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/h1940-latch.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp23xx/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/85xx/mpc85xx_ads.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/mpc85xx_ads.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-ixp23xx/entry-macro.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/entry-macro.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp23xx/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp23xx/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp23xx/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp23xx/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp23xx/ixdp2351.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/ixdp2351.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp23xx/ixp23xx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/ixp23xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp23xx/memory.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/memory.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp23xx/platform.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/platform.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp23xx/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp23xx/time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp23xx/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp23xx/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/math-emu/math.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/math-emu/math.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ixp23xx/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp23xx/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-imx/mmc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/mmc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-imx/imx-uart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/imx-uart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-imx/imx-dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/imx-dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/board-ams-delta.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-ams-delta.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/board-apollon.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-apollon.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/board-nokia.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-nokia.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/ts72xx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/ts72xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/platform.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/platform.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ep93xx/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/irqs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/irqs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ep93xx/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/gpio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/gpio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/leds-class.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/leds-class.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ep93xx/gesbc9312.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/gesbc9312.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/ep93xx-regs.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/ep93xx-regs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ep93xx/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ep93xx/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ep93xx/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ep93xx/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/gpioexpander.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/gpioexpander.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/irda.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/irda.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/keypad.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/keypad.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/sound/alsa/Audiophile-Usb.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/Audiophile-Usb.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/spi/pxa2xx - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/spi/pxa2xx.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-omap/mcspi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mcspi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/omap-alsa.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/omap-alsa.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/ip2/ip2main.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ip2/ip2main.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/char/ip2/ip2base.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/ip2/ip2base.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/lpd270.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/lpd270.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/sync.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/sync.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/splice.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/splice.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/asm-arm/arch-pxa/pxa2xx_spi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa2xx_spi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/video4linux/README.cpia2 - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/README.cpia2.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/char/tpm/tpm_tis.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/tpm/tpm_tis.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/pseries/firmware.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/firmware.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/char/hvc_console.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_console.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/video4linux/sn9c102.txt - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/sn9c102.txt.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/kernel/tau_6xx.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/tau_6xx.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/video4linux/w9968cf.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/w9968cf.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/leds-gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/leds-gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/firmware/dmi_scan.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/dmi_scan.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/arch-s3c2410/osiris-cpld.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/osiris-cpld.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/ml300_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ml300_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/osiris-map.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/osiris-map.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/spi-gpio.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/spi-gpio.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/spi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/spi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/configs/ml403_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/ml403_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/pci/riptide/riptide.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/riptide/riptide.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/common/uengine.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/common/uengine.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/hardware/debug-8250.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/debug-8250.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/debug-pl01x.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/debug-pl01x.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/uengine.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/uengine.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/pgtable-hwdef.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/pgtable-hwdef.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/nfs/iostat.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/iostat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/ep93xx_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ep93xx_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/configs/ixp2000_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ixp2000_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/ixp23xx_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ixp23xx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/module_32.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/module_32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/configs/prep_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/prep_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/kernel/head-common.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/head-common.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/kernel/head-nommu.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/head-nommu.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/kernel/idle.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/idle.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/kernel/head_booke.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_booke.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/relay.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/relay.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/ipath/ipath_cq.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_cq.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ep93xx/core.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/core.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-ep93xx/gesbc9312.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/gesbc9312.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ep93xx/ts72xx.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/ts72xx.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/ipath/ipath_driver.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_driver.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/w1/masters/ds2482.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/w1/masters/ds2482.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ixp23xx/core.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/core.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ixp23xx/espresso.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/espresso.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ixp23xx/ixdp2351.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/ixdp2351.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-ixp23xx/pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-ixp23xx/roadrunner.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp23xx/roadrunner.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/serial/navman.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/navman.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/serial/funsoft.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/funsoft.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-omap1/board-ams-delta.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-ams-delta.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ia64/dmi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/dmi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/serial/ark3116.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ark3116.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/mach-omap1/board-nokia770.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-nokia770.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/host/ohci-at91.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-at91.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/usb/host/ehci-fsl.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-fsl.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/host/ehci-au1xxx.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-au1xxx.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/gadget/at91_udc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/at91_udc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/at91_udc.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/at91_udc.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mach-omap1/pm.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/pm.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/spi/spi_s3c24xx_gpio.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spi_s3c24xx_gpio.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-omap1/sleep.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/sleep.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/spi/spi_s3c24xx.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spi_s3c24xx.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/spi/spi_mpc83xx.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spi_mpc83xx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/mach-omap2/board-apollon.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/board-apollon.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/spi/pxa2xx_spi.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/pxa2xx_spi.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/serial/sunhv.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sunhv.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-powerpc/syscalls.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/syscalls.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap2/memory.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/memory.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-omap2/pm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/pm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-omap2/prcm.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/prcm.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/vga.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/vga.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/sleep.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/sleep.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/hypervisor.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/hypervisor.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/ipath/ipath_file_ops.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_file_ops.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-pxa/clock.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/clock.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/intr_queue.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/intr_queue.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ipath/ipath_fs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_fs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/s390/char/tape_3590.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/tape_3590.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-pxa/lpd270.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/lpd270.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/rtc/rtc-vr41xx.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-vr41xx.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/rtc/rtc-sa1100.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-sa1100.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/rtc/rtc-lib.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-lib.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/rtc/rtc-ep93xx.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-ep93xx.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/rtc/rtc-dev.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-dev.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/rtc/interface.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/interface.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/infiniband/hw/ipath/ipath_intr.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_intr.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-sa1100/clock.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/clock.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-sa1100/collie_pm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/collie_pm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/platforms/4xx/virtex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/virtex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/4xx/xilinx_ml403.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/xilinx_ml403.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/rtc/Makefile - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/Makefile.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/ppc/platforms/4xx/xparameters/xparameters.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/xparameters/xparameters.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/xparameters/xparameters_ml403.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/xparameters/xparameters_ml403.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/platforms/mpc866ads_setup.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/mpc866ads_setup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h block/blktrace.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blktrace.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h mm/mmzone.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/mmzone.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h mm/migrate.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/migrate.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/rtc/Kconfig - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/Kconfig.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h arch/arm/mm/proc-xsc3.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-xsc3.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h lib/cpumask.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/cpumask.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pcmcia/at91_cf.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/at91_cf.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-sparc64/scratchpad.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/scratchpad.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/sparsemem.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sparsemem.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/hotplug/acpi_pcihp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/hotplug/acpi_pcihp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/tsb.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/tsb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-omap/fb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/fb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/ipath/ipath_mad.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_mad.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/hw/ipath/ipath_rc.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_rc.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/infiniband/hw/ipath/ipath_ruc.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_ruc.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sparc64/kernel/pci_sun4v.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_sun4v.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/infiniband/hw/ipath/ipath_uc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_uc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/irda/toim3232-sir.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/toim3232-sir.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ipath/ipath_ud.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_ud.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h kernel/relay.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/relay.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/sparc64/mm/tsb.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/mm/tsb.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/power/user.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/user.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h kernel/power/swap.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/power/swap.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h kernel/auditfilter.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/auditfilter.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/arm/at91_ether.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/at91_ether.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/ipath/ipath_verbs.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_verbs.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/infiniband/hw/ipath/ipath_verbs_mcast.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_verbs_mcast.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/arm/at91_ether.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/at91_ether.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/um/os-Linux/sigio.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/um/os-Linux/sigio.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/blktrace_api.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/blktrace_api.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/isdn/gigaset/asyncdata.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/asyncdata.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/isdn/gigaset/bas-gigaset.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/bas-gigaset.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/isdn/gigaset/common.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/common.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/isdn/gigaset/gigaset.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/gigaset.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/isdn/gigaset/i4l.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/i4l.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/isdn/gigaset/interface.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/interface.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/isdn/gigaset/isocdata.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/isocdata.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/isdn/gigaset/usb-gigaset.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/usb-gigaset.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/leds/Kconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/Kconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/leds/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/leds/led-triggers.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/led-triggers.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/leds/leds-corgi.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-corgi.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/leds/leds-locomo.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-locomo.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/leds/leds-s3c24xx.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-s3c24xx.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/leds/leds-spitz.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-spitz.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/kernel/smtc.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/smtc.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/video/zc0301/zc0301_sensor.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zc0301/zc0301_sensor.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/common/ir-functions.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/ir-functions.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/migrate.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/migrate.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/kernel/mips-mt.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/mips-mt.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/zc0301/zc0301_core.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zc0301/zc0301_core.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/zc0301/zc0301.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zc0301/zc0301.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/wm8739.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/wm8739.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/w9968cf.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/w9968cf.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/w9968cf.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/w9968cf.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/vivi.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/vivi.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/usbvideo/vicam.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvideo/vicam.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/usbvideo/usbvideo.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvideo/usbvideo.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/usbvideo/usbvideo.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvideo/usbvideo.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/usbvideo/ibmcam.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvideo/ibmcam.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/kernel/i8253.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/i8253.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/leds.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/leds.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/bt8xx/bt832.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bt832.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/bt8xx/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/stv680.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/stv680.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/bt8xx/bttv-cards.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv-cards.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/bt8xx/bttv-driver.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv-driver.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/bt8xx/bttv-i2c.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv-i2c.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/bt8xx/bttv-risc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv-risc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/bt8xx/bttv-vbi.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv-vbi.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/bt8xx/bttv.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttv.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/bt8xx/bttvp.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/bt8xx/bttvp.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/cpia2/cpia2_core.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cpia2/cpia2_core.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cpia2/cpia2_v4l.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cpia2/cpia2_v4l.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/cpia2/cpia2patch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cpia2/cpia2patch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx25840/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx25840/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cx25840/cx25840-core.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx25840/cx25840-core.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/dabfirmware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/dabfirmware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/dabusb.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/dabusb.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h drivers/media/video/sn9c102/sn9c102_core.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/sn9c102/sn9c102_core.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/media/video/sn9c102/sn9c102.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/sn9c102/sn9c102.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/se401.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/se401.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/se401.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/se401.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/pwc/pwc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pwc/pwc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/pwc/pwc-ioctl.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pwc/pwc-ioctl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/ov511.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ov511.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/media/video/et61x251/et61x251_core.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/et61x251/et61x251_core.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/video/ov511.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ov511.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/pwc/pwc-ctrl.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pwc/pwc-ctrl.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/fs_uart_pd.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs_uart_pd.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/pwc/pwc-if.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pwc/pwc-if.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/dma/ioatdma_hw.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioatdma_hw.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/s390/kernel/stacktrace.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/stacktrace.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/s390/hypfs/inode.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/hypfs/inode.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h Documentation/accounting/delay-accounting.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/accounting/delay-accounting.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/accounting/getdelays.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/accounting/getdelays.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/jffs2/jffs2_fs_i.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/jffs2_fs_i.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/jffs2/acl.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/acl.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/jffs2/acl.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jffs2/acl.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/resume-trace.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/resume-trace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/inotify_user.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/inotify_user.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/infiniband/ulp/iser/iser_verbs.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/iser/iser_verbs.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/infiniband/ulp/iser/iser_memory.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/iser/iser_memory.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/infiniband/ulp/iser/iser_initiator.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/iser/iser_initiator.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/infiniband/ulp/iser/iscsi_iser.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/iser/iscsi_iser.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/cifs/sess.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/sess.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/nfs/internal.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/internal.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-powerpc/tsi108_irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tsi108_irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/nfs/namespace.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/namespace.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/filesystems/relay.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/relay.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/ulp/iser/iscsi_iser.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/iser/iscsi_iser.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h fs/nfs/super.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/super.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/hwmon/w83791d - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/w83791d.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/pnx4008/sdum.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pnx4008/sdum.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/pnx4008/dum.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/pnx4008/dum.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/tsi108.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tsi108.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/systbl.h - 1.10 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/systbl.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-powerpc/spu_priv1.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spu_priv1.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/mpc86xx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc86xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/iseries/iommu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/iommu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/irqflags.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/irqflags.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/immap_86xx.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/immap_86xx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-powerpc/Kbuild - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/Kbuild.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-s390/Kbuild - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/pcmcia/crc32hash.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/pcmcia/crc32hash.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/sierra.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/sierra.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h include/asm-s390/irqflags.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/irqflags.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/Kbuild - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/taskstats.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/taskstats.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/host/ohci-ep93xx.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-ep93xx.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/core/endpoint.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/core/endpoint.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/Kbuild - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-alpha/Kbuild - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/serial/netx-serial.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/netx-serial.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/Kbuild - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/usb/serial.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/serial.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/video4linux/README.pvrusb2 - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/README.pvrusb2.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-sparc/Kbuild - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-lh7a40x/clocks.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/clocks.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-lh7a40x/ssp.h - 1.19 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-lh7a40x/ssp.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-arm/arch-netx/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/core/cma.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/cma.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/infiniband/core/addr.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/addr.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc/of_device.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/of_device.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/vmstat.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/vmstat.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/lockdep.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/lockdep.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/sysdev/tsi108_pci.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/tsi108_pci.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/media/cx2341x.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/cx2341x.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/media/pwc-ioctl.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/pwc-ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/media/v4l2-dev.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/v4l2-dev.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/linux/irqflags.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/irqflags.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/prom.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/prom.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sparc/kernel/of_device.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc/kernel/of_device.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/leds/leds-ams-delta.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-ams-delta.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/rdma/ib_addr.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/ib_addr.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/rdma/rdma_cm.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/rdma_cm.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/rdma/rdma_cm_ib.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/rdma_cm_ib.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/scsi/libiscsi.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/libiscsi.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/embedded6xx/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/embedded6xx/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/cell/ras.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/ras.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/86xx/mpc86xx_smp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/mpc86xx_smp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-netx/eth.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/eth.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/86xx/mpc86xx_hpcn.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/powerpc/platforms/86xx/mpc86xx.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/mpc86xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-netx/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/86xx/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/86xx/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-netx/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/netx-regs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/netx-regs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/85xx/mpc85xx_cds.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/mpc85xx_cds.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-netx/param.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/param.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/ateb9200_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ateb9200_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/configs/kafa_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/kafa_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/configs/kb9202_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/kb9202_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/lpd270_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/lpd270_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/configs/netx_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/netx_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/configs/onearm_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/onearm_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/pnx4008_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/pnx4008_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/configs/trizeps4_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/trizeps4_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/dvb/dvb-usb/gp8psk.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/gp8psk.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/83xx/mpc834x_itx.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc834x_itx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/kernel/crunch-bits.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/crunch-bits.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/kernel/crunch.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/crunch.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h kernel/delayacct.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/delayacct.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sparc64/kernel/compat_audit.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/compat_audit.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/irq/chip.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/irq/chip.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h kernel/lockdep.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/lockdep.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h kernel/lockdep_internals.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/lockdep_internals.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/lockdep_proc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/lockdep_proc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sparc64/kernel/of_device.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/of_device.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h kernel/rtmutex-tester.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rtmutex-tester.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h kernel/stacktrace.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/stacktrace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/taskstats.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/taskstats.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h kernel/time/clocksource.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/clocksource.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sparc64/kernel/prom.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/prom.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-arm/arch-netx/pfifo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/pfifo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/debug_locks.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/debug_locks.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/radio/dsbr100.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/dsbr100.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-netx/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-netx/xc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-netx/xc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ep93xx/clock.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/clock.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/board-fsample.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-fsample.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ep93xx/edb9302.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9302.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ep93xx/edb9315.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9315.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ep93xx/edb9315a.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9315a.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/gpmc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/gpmc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pnx4008/clock.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/clock.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pnx4008/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pnx4008/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pnx4008/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/param.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/param.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/platform.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/platform.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pnx4008/pm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/pm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/percpu_counter.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/percpu_counter.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-pnx4008/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/trizeps4.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/trizeps4.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2410/regs-power.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-power.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/libiscsi.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libiscsi.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/scsi/hptiop.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/hptiop.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/dyntick.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/dyntick.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hw_irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hw_irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/mach/serial_at91.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/serial_at91.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/page-nommu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/page-nommu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/pgtable-nommu.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/pgtable-nommu.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/rtc/rtc-s3c.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-s3c.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/rtc/rtc-pl031.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-pl031.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/rtc/rtc-pcf8583.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-pcf8583.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/rtc/rtc-max6902.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-max6902.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/rtc/rtc-isl1208.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-isl1208.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/thread_notify.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/thread_notify.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/Kbuild - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h lib/plist.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/plist.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/parport/parport_ax88796.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/parport/parport_ax88796.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-frv/Kbuild - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/Kbuild.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-lh7a40x/clcd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/clcd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-lh7a40x/clocks.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/clocks.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/zd1211rw/zd_usb.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/zd1211rw/zd_usb.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-lh7a40x/lcd-panel.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/lcd-panel.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mach-lh7a40x/ssp-cpld.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-lh7a40x/ssp-cpld.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/fb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/fb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/generic.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/generic.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-netx/nxdb500.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/nxdb500.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/nxdkn.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/nxdkn.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/nxeb500hmi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/nxeb500hmi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/pfifo.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/pfifo.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-netx/time.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/time.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-netx/xc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-netx/xc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/board-fsample.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-fsample.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/zd1211rw/zd_mac.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/zd1211rw/zd_mac.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/zd1211rw/zd_mac.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/zd1211rw/zd_mac.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/wireless/zd1201.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/zd1201.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-generic/Kbuild.asm - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/Kbuild.asm.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-h8300/Kbuild - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/Kbuild.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/pc8736x_gpio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pc8736x_gpio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap2/gpmc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/gpmc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/hw_random/via-rng.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/via-rng.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/hw_random/ixp4xx-rng.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/ixp4xx-rng.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/hw_random/intel-rng.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/intel-rng.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/hw_random/core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/hw_random/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/hw_random/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pnx4008/clock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/clock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pnx4008/core.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/core.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pnx4008/dma.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/dma.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pnx4008/gpio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/gpio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pnx4008/irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pnx4008/pm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/pm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pnx4008/serial.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/serial.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pnx4008/sleep.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/sleep.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pnx4008/time.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/time.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/misc.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/misc.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cx2341x.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx2341x.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-pxa/leds-trizeps4.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/leds-trizeps4.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/ks0127.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ks0127.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/Kbuild - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/Kbuild.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/base/power/trace.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/power/trace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/base/isa.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/base/isa.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/pvrusb2/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/pvrusb2/pvrusb2-audio.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-audio.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-audio.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-audio.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-context.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-context.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-context.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-context.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-ctrl.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-ctrl.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-ctrl.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-ctrl.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/arm/mach-pxa/trizeps4.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/trizeps4.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-debug.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-debug.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/ucc_geth.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ucc_geth.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h drivers/media/video/pvrusb2/pvrusb2-debugifc.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-debugifc.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-debugifc.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-debugifc.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-eeprom.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-eeprom.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-eeprom.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-eeprom.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h mm/vmstat.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/vmstat.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/media/video/pvrusb2/pvrusb2-encoder.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-encoder.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-encoder.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-encoder.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/powerpc/configs/mpc8641_hpcn_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc8641_hpcn_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-hdw.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-hdw.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/powerpc/configs/mpc7448_hpc2_defconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc7448_hpc2_defconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/video/pvrusb2/pvrusb2-hdw.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-hdw.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-i2c-chips-v4l2.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/acpi/sbs.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/sbs.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/powerpc/configs/chrp32_defconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/chrp32_defconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-i2c-cmd-v4l2.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-i2c-core.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-i2c-core.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-i2c-core.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h arch/powerpc/boot/dts/mpc8641_hpcn.dts - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8641_hpcn.dts.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/boot/dts/mpc8555cds.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8555cds.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8548cds.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8548cds.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8541cds.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8541cds.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8540ads.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8540ads.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc7448hpc2.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc7448hpc2.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/pvrusb2/pvrusb2-io.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-io.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-io.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-io.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-ioread.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-ioread.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-ioread.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-ioread.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-main.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-main.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-std.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-std.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-std.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-std.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-sysfs.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-sysfs.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-sysfs.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-sysfs.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-tuner.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-tuner.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-tuner.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-tuner.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-util.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-util.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-v4l2.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-v4l2.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-v4l2.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-v4l2.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-video-v4l.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-video-v4l.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-video-v4l.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-video-v4l.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-wm8775.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-wm8775.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2-wm8775.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-wm8775.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/media/video/pvrusb2/pvrusb2.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/asm-m68knommu/m532xsim.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/m532xsim.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/tlv320aic23b.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tlv320aic23b.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-m68knommu/Kbuild - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/Kbuild.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/core/user_dma.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/user_dma.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/gt64120/wrppmc/setup.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/gt64120/wrppmc/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/gt64120/wrppmc/reset.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/gt64120/wrppmc/reset.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/aoa/soundbus/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/aoa/soundbus/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/aoa/fabrics/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/aoa/fabrics/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/aoa/codecs/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/aoa/codecs/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/emma2rh/markeins/setup.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/emma2rh/markeins/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/emma2rh/markeins/platform.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/emma2rh/markeins/platform.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/emma2rh/common/prom.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/emma2rh/common/prom.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/configs/wrppmc_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/wrppmc_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/configs/excite_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/excite_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/configs/emma2rh_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/emma2rh_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/i2c/busses/i2c-ocores.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-ocores.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/basler/excite/excite_setup.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/basler/excite/excite_setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/basler/excite/excite_irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/basler/excite/excite_irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/basler/excite/excite_iodev.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/basler/excite/excite_iodev.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/basler/excite/excite_dbg_io.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/basler/excite/excite_dbg_io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/basler/excite/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/basler/excite/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/dmaengine.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dmaengine.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/nand/ams-delta.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/ams-delta.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/aoa/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/aoa/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/nand/ts7250.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/ts7250.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h include/linux/delayacct.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/delayacct.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/smc911x.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/smc911x.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/smc911x.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/smc911x.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-sparc64/Kbuild - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/Kbuild.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/hwmon/w83791d.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83791d.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/hwmon/smsc47m192.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/smsc47m192.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sparc64/of_device.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/of_device.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/dma/ioatdma_registers.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioatdma_registers.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/dma/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/dma/ioatdma.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioatdma.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/dma/dmaengine.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/dmaengine.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/dma/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/netfilter/xt_SECMARK.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_SECMARK.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/Kbuild - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/Kbuild.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h scripts/hdrcheck.sh - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/hdrcheck.sh.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/prom.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/prom.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/clocksource/acpi_pm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/clocksource/acpi_pm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/Kbuild - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/Kbuild.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h net/netfilter/xt_CONNSECMARK.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_CONNSECMARK.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h scripts/Makefile.headersinst - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/Makefile.headersinst.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/netx-eth.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netx-eth.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/fs_enet/mii-fec.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fs_enet/mii-fec.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/myri10ge/myri10ge_mcp_gen_header.h - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/myri10ge/myri10ge_mcp_gen_header.h.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h drivers/net/myri10ge/myri10ge_mcp.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/myri10ge/myri10ge_mcp.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/myri10ge/myri10ge.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/myri10ge/myri10ge.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/acpi/dock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/dock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/core/iwcm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/iwcm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h Documentation/accounting/taskstats-struct.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/accounting/taskstats-struct.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/netlabel/netlabel_unlabeled.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netlabel/netlabel_unlabeled.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/netlabel/netlabel_domainhash.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netlabel/netlabel_domainhash.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/netlabel/netlabel_cipso_v4.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netlabel/netlabel_cipso_v4.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/infiniband/hw/amso1100/c2_rnic.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/amso1100/c2_rnic.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ide/pci/jmicron.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/jmicron.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h net/ipv6/xfrm6_mode_beet.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/xfrm6_mode_beet.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv6/mip6.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/mip6.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/ipv6/fib6_rules.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/fib6_rules.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/ipv4/xfrm4_mode_beet.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/xfrm4_mode_beet.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/ehca/ehca_classes.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_classes.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/core/fib_rules.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/core/fib_rules.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h Documentation/filesystems/ext4.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/ext4.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h mm/shmem_acl.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/shmem_acl.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ehca/ehca_hca.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_hca.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/infiniband/hw/ehca/ehca_irq.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_irq.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/infiniband/hw/ehca/ehca_main.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_main.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h mm/allocpercpu.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/allocpercpu.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h lib/random32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/random32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h lib/list_debug.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/list_debug.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/utsname.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/utsname.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h kernel/tsacct.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/tsacct.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/time/ntp.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/ntp.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h kernel/nsproxy.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/nsproxy.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/hw/ehca/ehca_qes.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_qes.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/ehca/ehca_qp.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_qp.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/infiniband/hw/ehca/ehca_reqs.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_reqs.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/infiniband/hw/ehca/ehca_tools.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ehca_tools.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/ehca/hcp_if.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/hcp_if.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/infiniband/hw/ehca/hcp_if.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/hcp_if.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/ehca/ipz_pt_fn.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ehca/ipz_pt_fn.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/rdma/iw_cm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/rdma/iw_cm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/ff-memless.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/ff-memless.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/keyboard/omap-keypad.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/omap-keypad.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/net/fib_rules.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/fib_rules.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/crypto/padlock-sha.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/padlock-sha.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/mspec.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/mspec.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/char/hvc_iseries.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_iseries.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/drm/drm_sman.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_sman.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/pci_hotplug.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci_hotplug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/nsproxy.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nsproxy.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/drm_sman.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_sman.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/drm_mm.c - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_mm.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/char/drm/drm_hashtab.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_hashtab.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/drm/drm_hashtab.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/drm_hashtab.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/briq_panel.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/briq_panel.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mm_types.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mm_types.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/lm_interface.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/lm_interface.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ata/sata_svw.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/sata_svw.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/linux/jbd2.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/jbd2.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/ata/sata_nv.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/sata_nv.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ata/sata_mv.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/sata_mv.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ata/pata_via.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_via.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ata/pata_sil680.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_sil680.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ata/pata_sc1200.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_sc1200.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ata/pata_qdi.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_qdi.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/ata/pata_oldpiix.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_oldpiix.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/ata/pata_legacy.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_legacy.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ata/pata_it821x.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_it821x.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h drivers/ata/pata_cs5530.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_cs5530.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/ata/pata_atiixp.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_atiixp.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/ata/pata_ali.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_ali.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ata/libata.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ata/libata-sff.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata-sff.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/ata/libata-scsi.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata-scsi.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h include/asm-sparc64/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ata/libata-eh.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata-eh.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/ata/libata-core.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata-core.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h include/asm-sparc64/compat_signal.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/compat_signal.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ata/ata_piix.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/ata_piix.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h Documentation/x86_64/kernel-stacks - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/kernel-stacks.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ata/ahci.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/ahci.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h drivers/ata/Kconfig - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/Kconfig.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h crypto/hash.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/hash.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/dvb/dvb-usb/dib0700_devices.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/dib0700_devices.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/mm/pmb.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/pmb.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/sh/mm/cache-debugfs.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/cache-debugfs.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/titan.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/titan.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/systemh7751.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/systemh7751.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/snapgear.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/snapgear.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/shmin.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/shmin.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/sfp-machine.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sfp-machine.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/se7751.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7751.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/se7343.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7343.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/se.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/rts7751r2d.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/rts7751r2d.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/configs/iop32x_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/iop32x_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/configs/iop33x_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/iop33x_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/r7780rp.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/r7780rp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sh/pm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/landisk/iodata_landisk.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/landisk/iodata_landisk.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/landisk/gio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/landisk/gio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/hp6xx.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hp6xx.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/edosk7705.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/edosk7705.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh4/dma-sh7780.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/dma-sh7780.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-features.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-features.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/zcrypt.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/zcrypt.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/monwriter.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/monwriter.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/kprobes.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kprobes.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-s390/kdebug.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kdebug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/appldata.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/appldata.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/fs_pd.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/fs_pd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/ucc_slow.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ucc_slow.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/ucc_fast.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ucc_fast.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/ucc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ucc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/qe_ic.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/qe_ic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/qe.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/qe.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/immap_qe.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/immap_qe.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/fs_pd.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/fs_pd.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ep93xx/edb9312.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9312.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/esi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/esi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-iop32x/glantank.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/glantank.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-iop32x/iq31244.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/iq31244.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-iop32x/iq80321.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/iq80321.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-iop32x/irq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/irq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-iop32x/n2100.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/n2100.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-iop33x/iq80331.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/iq80331.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-iop33x/iq80332.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/iq80332.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-iop33x/irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-iop33x/uart.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop33x/uart.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/configs/se7343_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7343_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/arm/ep93xx_eth.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/ep93xx_eth.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/configs/landisk_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/landisk_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/Kbuild - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/arch-v10/Kbuild - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v10/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/unistd.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/unistd.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-avr32/unaligned.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/unaligned.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/uaccess.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/uaccess.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/types.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/types.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/traps.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/traps.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/tlbflush.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/tlbflush.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/thread_info.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/thread_info.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-avr32/termios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/termios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/termbits.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/termbits.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/system.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/system.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-avr32/sysreg.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/sysreg.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/string.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/string.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/sockios.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/sockios.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/socket.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/socket.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/signal.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/signal.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/setup.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/setup.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-avr32/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/semaphore.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/semaphore.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/scatterlist.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/scatterlist.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/resource.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/resource.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/ptrace.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/processor.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/processor.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/posix_types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/posix_types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/poll.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/poll.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/pgtable.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/pgtable.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-avr32/pgtable-2level.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/pgtable-2level.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/pgalloc.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/pgalloc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/param.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/param.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/page.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/page.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/ocd.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ocd.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/numnodes.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/numnodes.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/mmu_context.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/mmu_context.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/mmu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/mmu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/mman.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/mman.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/mach/serial_at91.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/mach/serial_at91.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/kprobes.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/kprobes.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/kdebug.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/kdebug.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/irqflags.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/irqflags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/ioctls.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ioctls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/ioctl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/io.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/io.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/boards/titan/setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/titan/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/titan/io.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/titan/io.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/titan/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/titan/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/shmin/setup.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/shmin/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/hw_irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/shmin/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/shmin/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/hardirq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/hardirq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7343/setup.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7343/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/futex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/futex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/fcntl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/fcntl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/elf.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/elf.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/dma-mapping.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/dma-mapping.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/delay.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/delay.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/checksum.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/checksum.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/cacheflush.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/cacheflush.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/cachectl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/cachectl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/cache.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/cache.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/byteorder.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/byteorder.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2410/mach-amlm5900.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-amlm5900.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-avr32/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/bug.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/bug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/bitops.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/bitops.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/atomic.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/atomic.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/asm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/asm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/arch-at32ap/smc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/smc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/arch-at32ap/portmux.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/portmux.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/arch-at32ap/init.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/init.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/arch-at32ap/board.h - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/board.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-avr32/addrspace.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/addrspace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/a.out.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/a.out.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-avr32/Kbuild - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/irqflags.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/irqflags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/iop3xx.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/iop3xx.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/flat.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/flat.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop33x/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7343/irq.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7343/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/se/7343/io.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7343/io.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7343/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7343/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/rts7751r2d/Kconfig - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/rts7751r2d/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop33x/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/r7780rp/setup.c - 1.9 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/setup.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-iop33x/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/memory.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/memory.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/r7780rp/Makefile - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/Makefile.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sh/boards/renesas/r7780rp/Kconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/landisk/setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/landisk/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-iop33x/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/iq80332.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/iq80332.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/iq80331.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/iq80331.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/iop33x.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/iop33x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop33x/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/landisk/irq.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/landisk/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop33x/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/landisk/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/landisk/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop33x/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mm/proc-arm940.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-arm940.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mm/proc-arm946.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-arm946.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/hp6xx/pm_wakeup.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/hp6xx/pm_wakeup.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-iop/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-iop/i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-iop/pci.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/pci.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/plat-iop/time.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/time.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-iop33x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/n2100.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/n2100.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/memory.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/memory.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/iq80321.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/iq80321.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/iq31244.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/iq31244.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/iop32x.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/iop32x.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/hp6xx/pm.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/hp6xx/pm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/hp6xx/hp6xx_apm.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/hp6xx/hp6xx_apm.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-iop32x/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop32x/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop32x/glantank.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/glantank.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/Kconfig - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/Kconfig.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/avr32/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/boards/atstk1000/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/boards/atstk1000/atstk1002.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/atstk1002.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/avr32/boards/atstk1000/flash.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/flash.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/boards/atstk1000/setup.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/avr32/configs/atstk1002_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/configs/atstk1002_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/avr32/kernel/asm-offsets.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/asm-offsets.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/kernel/avr32_ksyms.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/avr32_ksyms.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/kernel/cpu.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/cpu.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/avr32/kernel/entry-avr32b.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/entry-avr32b.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/kernel/process.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/process.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/avr32/kernel/setup.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/setup.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/avr32/kernel/signal.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/signal.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/kernel/syscall-stubs.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/syscall-stubs.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/kernel/syscall_table.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/syscall_table.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/kernel/time.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/time.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/kernel/traps.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/traps.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/avr32/lib/findbit.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/lib/findbit.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/mach-at32ap/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/avr32/mach-at32ap/at32ap.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/at32ap.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/mach-at32ap/clock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/clock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/avr32/mach-at32ap/hsmc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/hsmc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/mach-at32ap/intc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/intc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/avr32/mach-at32ap/pio.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pio.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/avr32/mach-at32ap/pio.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/mm/init.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mm/init.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/avr32/mm/ioremap.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mm/ioremap.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/mm/tlb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mm/tlb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/s390/kernel/kprobes.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/kprobes.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/arch-iop32x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kernel/ipl.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/ipl.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h include/asm-alpha/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/utimes.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/utimes.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/nfs/client.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/nfs/client.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/jbd2/transaction.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd2/transaction.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/jbd2/journal.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd2/journal.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/jbd2/commit.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd2/commit.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/jbd2/checkpoint.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/jbd2/checkpoint.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ehea/ehea_main.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ehea/ehea_main.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h fs/gfs2/sys.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/sys.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/super.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/super.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/rgrp.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/rgrp.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/recovery.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/recovery.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/quota.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/quota.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/sysdev/qe_lib/ucc_slow.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/ucc_slow.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/ops_super.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_super.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/sysdev/qe_lib/ucc_fast.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/ucc_fast.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/sysdev/qe_lib/ucc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/ucc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/sysdev/qe_lib/qe_io.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/qe_io.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/gfs2/ops_inode.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_inode.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/ops_fstype.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_fstype.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/sysdev/qe_lib/qe_ic.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/qe_ic.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/sysdev/qe_lib/qe.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/qe.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/sysdev/qe_lib/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/gfs2/ops_file.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_file.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/ops_export.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_export.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/sysdev/qe_lib/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/qe_lib/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/sysdev/cpm2_pic.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/cpm2_pic.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/qla3xxx.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/qla3xxx.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/qla3xxx.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/qla3xxx.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/ops_address.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/ops_address.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/83xx/mpc832x_mds.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc832x_mds.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/gfs2/meta_io.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/meta_io.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/82xx/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/82xx/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wan/hdlc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wan/hdlc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/pci/pcie/aer/aerdrv.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/aer/aerdrv.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/gfs2/meta_io.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/meta_io.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/pci/pcie/aer/aerdrv_acpi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/aer/aerdrv_acpi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/kernel/io.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/io.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/pcie/aer/aerdrv_core.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/aer/aerdrv_core.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/gfs2/main.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/main.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/s390/char/monwriter.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/monwriter.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/s390/crypto/ap_bus.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/ap_bus.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/s390/crypto/ap_bus.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/ap_bus.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/gfs2/log.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/log.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/s390/crypto/zcrypt_api.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_api.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/s390/crypto/zcrypt_api.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_api.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/crypto/zcrypt_cex2a.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_cex2a.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/gfs2/log.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/log.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/s390/crypto/zcrypt_error.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_error.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/crypto/zcrypt_pcica.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_pcica.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/s390/crypto/zcrypt_pcicc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_pcicc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/crypto/zcrypt_pcixcc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/crypto/zcrypt_pcixcc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/boot/zImage.lds.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/zImage.lds.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/zImage.coff.lds.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/zImage.coff.lds.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/scsi/aic94xx/aic94xx.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h arch/powerpc/boot/wrapper - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/wrapper.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/scsi/aic94xx/aic94xx_dev.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_dev.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h drivers/scsi/aic94xx/aic94xx_hwi.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_hwi.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/gfs2/locking/nolock/main.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/nolock/main.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/gfs2/locking/nolock/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/nolock/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/mpc8560ads.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8560ads.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8349emitx.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8349emitx.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/gfs2/locking/dlm/thread.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/dlm/thread.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/dts/mpc8272ads.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8272ads.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/gfs2/locking/dlm/sysfs.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/dlm/sysfs.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/gfs2/locking/dlm/mount.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/dlm/mount.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/scsi/aic94xx/aic94xx_reg_def.h - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_reg_def.h.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h fs/gfs2/locking/dlm/lock_dlm.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/dlm/lock_dlm.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/scsi/aic94xx/aic94xx_scb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_scb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/scsi/aic94xx/aic94xx_sds.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_sds.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/scsi/aic94xx/aic94xx_seq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_seq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/gfs2/locking/dlm/lock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking/dlm/lock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/aic94xx/aic94xx_task.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_task.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/aic94xx/aic94xx_tmf.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_tmf.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/gfs2/locking.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/locking.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/gfs2/inode.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/inode.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/scsi/libsas/sas_expander.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libsas/sas_expander.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/scsi/libsas/sas_port.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libsas/sas_port.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/libsas/sas_scsi_host.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libsas/sas_scsi_host.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/inode.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/inode.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/incore.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/incore.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/glops.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/glops.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/glock.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/glock.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/gfs2/glock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/glock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/gfs2/gfs2.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/gfs2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/gfs2/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/gfs2/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/gfs2/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/ext4/xattr_user.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/xattr_user.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ext4/xattr_trusted.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/xattr_trusted.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ext4/xattr.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/xattr.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ext4/super.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/super.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ext4/resize.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/resize.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ext4/namei.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/namei.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h fs/ext4/inode.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/inode.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/ext4/ialloc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ialloc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ext4/fsync.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/fsync.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ext4/file.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/file.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ext4/extents.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/extents.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ext4/dir.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/dir.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/kernel/stacktrace.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/stacktrace.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/scsi/qla4xxx/ql4_os.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla4xxx/ql4_os.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/scsi/scsi_netlink.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_netlink.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/stex.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/stex.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/serial/atmel_serial.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/atmel_serial.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/usb/gadget/gmidi.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/gmidi.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/host/ohci-pnx4008.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-pnx4008.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/host/u132-hcd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/u132-hcd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/ext4/balloc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/balloc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ext4/acl.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/acl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/misc/ftdi-elan.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/ftdi-elan.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/usb/serial/aircable.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/aircable.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/serial/mos7720.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/mos7720.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/usb/serial/mos7840.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/mos7840.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/video/fb_ddc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/fb_ddc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/video/intelfb/intelfb_i2c.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/intelfb/intelfb_i2c.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/dlm/config.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dlm/config.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/ext4/acl.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/acl.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/configs/jazz_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/jazz_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/dlm/lock.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dlm/lock.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ecryptfs/mmap.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/mmap.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h fs/dlm/lowcomms.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dlm/lowcomms.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/ecryptfs/main.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/main.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ecryptfs/keystore.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/keystore.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ecryptfs/inode.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/inode.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ecryptfs/file.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/file.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/ecryptfs/ecryptfs_kernel.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/ecryptfs_kernel.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/ecryptfs/crypto.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/crypto.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/ecryptfs/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/dlm/user.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dlm/user.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/mips/tx4927/common/smsc_fdc37m81x.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/tx4927/common/smsc_fdc37m81x.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/mach/udc_pxa2xx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/mach/udc_pxa2xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/lib/io-readsb.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/lib/io-readsb.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/realview-smp_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/realview-smp_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/ioctl/ioctl-decoding.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ioctl/ioctl-decoding.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/networking/udplite.txt - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/udplite.txt.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/netxen/netxen_nic_ethtool.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_ethtool.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/netxen/netxen_nic_niu.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_niu.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/configs/at91sam9260ek_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91sam9260ek_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/at91sam9261ek_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91sam9261ek_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/iop13xx_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/iop13xx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ep93xx/adssphere.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/adssphere.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ep93xx/edb9302a.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9302a.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-imx/cpufreq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-imx/cpufreq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-iop13xx/io.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-iop13xx/iq81340mc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/iq81340mc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-iop13xx/iq81340sc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/iq81340sc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-iop13xx/irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-iop13xx/pci.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/pci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-iop13xx/setup.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop13xx/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-pnx4008/i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pnx4008/i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2410/pm-h1940.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/pm-h1940.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/serial/uartlite.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/uartlite.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/netfilter/xt_hashlimit.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_hashlimit.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/netfilter/nf_conntrack_sip.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_sip.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h net/netfilter/nf_conntrack_proto_gre.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_proto_gre.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/netfilter/nf_conntrack_irc.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_irc.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/netfilter/nf_conntrack_helper.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_helper.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv6/udplite.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/udplite.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv6/udp_impl.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/udp_impl.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/ipv4/udplite.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/udplite.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h net/ipv4/udp_impl.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/udp_impl.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/ipv4/netfilter/nf_nat_sip.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_nat_sip.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/configs/pnx8550-stb810_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/pnx8550-stb810_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/lib/csum_partial.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lib/csum_partial.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/io.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/configs/linkstation_defconfig - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/linkstation_defconfig.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/configs/ps3_defconfig - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ps3_defconfig.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h net/ipv4/netfilter/nf_nat_core.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_nat_core.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/powerpc/platforms/52xx/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/52xx/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/cell/cbe_thermal.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/cbe_thermal.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/ps3/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/ps3/htab.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/htab.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/ps3/setup.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/setup.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/platforms/ps3/smp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/smp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/ps3/spu.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/spu.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/sysdev/dcr.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/dcr.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/.gitignore - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/.gitignore.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/boot/images/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/images/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/lib/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/lib/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ppc/boot/utils/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/utils/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/r7780rp/psw.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/psw.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7206/Makefile - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7206/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/se/7206/io.c - 1.15 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7206/io.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sh/boards/se/7206/irq.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7206/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/se/7206/setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7206/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/se/7619/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7619/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7619/setup.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7619/setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/configs/se7206_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7206_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/configs/se7619_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7619_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/cpu/sh2/entry.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2/entry.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/kernel/cpu/sh2/ex.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2/ex.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/cpu/sh2/setup-sh7619.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2/setup-sh7619.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/kernel/cpu/sh2a/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh2a/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/kernel/cpu/sh3/entry.S - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh3/entry.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/sh/kernel/cpu/sh4a/Makefile - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/Makefile.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/kernel/cpu/sh4a/clock-sh7343.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/clock-sh7343.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/cpu/sh4a/setup-sh7343.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7343.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/cpu/sh4a/setup-sh7722.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7722.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/sh/kernel/cpu/sh4a/setup-sh7780.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7780.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/kernel/entry-common.S - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/entry-common.S.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h arch/sh/kernel/stacktrace.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/stacktrace.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sparc64/kernel/stacktrace.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/stacktrace.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/xtensa/kernel/syscall.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/kernel/syscall.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ata/pata_ixp4xx_cf.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_ixp4xx_cf.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/ata/pata_marvell.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_marvell.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/ata/pata_winbond.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_winbond.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/hid/hid-core.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/hid-core.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hid/hid-input.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/hid-input.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/hwmon/ams/ams-core.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ams/ams-core.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/w83793.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83793.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/i2c/busses/i2c-at91.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-at91.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/i2c/busses/i2c-pnx.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-pnx.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/task_io_accounting_ops.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/task_io_accounting_ops.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/task_io_accounting.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/task_io_accounting.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/scsi_tgt_priv.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_tgt_priv.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/pid_namespace.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pid_namespace.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/infiniband/core/ucma.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/ucma.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/kvm.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kvm.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/i2c-pnx.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/i2c-pnx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/hid.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/hid.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h include/linux/freezer.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/freezer.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-v850/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/irqflags.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/irqflags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/device.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/device.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc/device.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/device.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/se7206.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7206.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/push-switch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/push-switch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/irqflags.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/irqflags.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/entry-macros.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/entry-macros.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/watchdog.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/watchdog.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/ubc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/ubc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/mmu_context.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/mmu_context.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/freq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/freq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/input/keyboard/aaed2000_kbd.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/aaed2000_kbd.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh2a/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/cacheflush.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/cacheflush.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2a/cache.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/cache.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp4xx/udc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/udc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/scsi/scsi_tgt_if.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/scsi_tgt_if.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-iop13xx/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/cafe_ccic.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cafe_ccic.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-sh/cpu-sh2a/addrspace.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/addrspace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/ov7670.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ov7670.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-sh/cpu-sh2/timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2/mmu_context.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/mmu_context.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2/freq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/freq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/atomic-llsc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/atomic-llsc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/atomic-irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/atomic-irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/reset.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/reset.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/spu_info.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/spu_info.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/ps3.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ps3.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/of_platform.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/of_platform.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/mpc52xx.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc52xx.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-powerpc/lv1call.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/lv1call.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/io-defs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/io-defs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/dcr.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dcr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/dcr-native.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dcr-native.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/dcr-mmio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dcr-mmio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/cell-pmu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cell-pmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop13xx/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/kexec.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/kexec.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/barrier.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/barrier.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m68knommu/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/sn/acpi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/sn/acpi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ia64/kexec.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kexec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-ia64/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/usbvision/usbvision-core.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvision/usbvision-core.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/media/video/usbvision/usbvision-i2c.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvision/usbvision-i2c.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/usbvision/usbvision-video.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/usbvision/usbvision-video.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-arm/device.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/device.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/cnt32_to_63.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/cnt32_to_63.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2410/h1940.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/h1940.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pnx4008/i2c.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pnx4008/i2c.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/system.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop13xx/pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/irqs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/irqs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-iop13xx/iq81340.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/iq81340.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/iop13xx.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/iop13xx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-iop13xx/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop13xx/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop13xx/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/bnx2_fw2.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2_fw2.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/chelsio/vsc7326.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/vsc7326.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/chelsio/fpga_defs.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/fpga_defs.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/chelsio/mv88e1xxx.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/mv88e1xxx.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/chelsio/mv88e1xxx.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/mv88e1xxx.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/chelsio/my3126.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/my3126.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/netxen/netxen_nic_main.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_main.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-alpha/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/chelsio/tp.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/tp.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/chelsio/tp.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/tp.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/scsi/libsrp.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libsrp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/chelsio/vsc7326_reg.h - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/chelsio/vsc7326_reg.h.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/net/lib8390.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/lib8390.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/macb.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/macb.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h drivers/scsi/ibmvscsi/ibmvstgt.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ibmvscsi/ibmvstgt.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/netxen/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/netxen/netxen_nic.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/netxen/netxen_nic_hdr.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_hdr.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/netxen/netxen_nic_hw.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_hw.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/netxen/netxen_nic_hw.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_hw.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/netxen/netxen_nic_init.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_init.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/net/netxen/netxen_nic_isr.c - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_isr.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/usb/host/ohci-pnx8550.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-pnx8550.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/netxen/netxen_nic_phan_reg.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/netxen/netxen_nic_phan_reg.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/phy/broadcom.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/broadcom.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/tsi108_eth.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tsi108_eth.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/rtc/rtc-at91rm9200.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-at91rm9200.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/rtc/rtc-omap.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-omap.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/serial/usb_debug.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/usb_debug.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/libata-portmap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/libata-portmap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/mips-boards/malta/malta_mtd.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/malta_mtd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/nand/at91_nand.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/at91_nand.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/maps/esb2rom.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/esb2rom.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/maps/ck804xrom.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/ck804xrom.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h .mailmap - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/.mailmap.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-s3c24xx/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/spi/spi_imx.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spi_imx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/spi/omap_uwire.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/omap_uwire.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/spi/atmel_spi.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/atmel_spi.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h arch/arm/plat-s3c24xx/clock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/clock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-s3c24xx/irq.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/serial/pnx8xxx_uart.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/pnx8xxx_uart.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-s3c24xx/pm-simtec.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/pm-simtec.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/soc-dapm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/soc-dapm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/plat-s3c24xx/s3c244x-irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/s3c244x-irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/soc-core.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/soc-core.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/pxa/tosa.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/tosa.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-s3c24xx/s3c244x.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/s3c244x.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-s3c24xx/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/gpio.txt - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/gpio.txt.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/soc/pxa/spitz.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/spitz.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/pxa/pxa2xx-pcm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/pxa2xx-pcm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/pxa/pxa2xx-i2s.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/pxa2xx-i2s.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/pxa/pxa2xx-i2s.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/pxa2xx-i2s.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/pxa/pxa2xx-ac97.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/pxa2xx-ac97.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/pxa/pxa2xx-ac97.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/pxa2xx-ac97.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/soc/pxa/poodle.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/poodle.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/pxa/corgi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/corgi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-s3c24xx/sleep.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/sleep.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/mips/kernel/early_printk.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/early_printk.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/pxa/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/pxa/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/local_ops.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/local_ops.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mips-boards/generic/console.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/console.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/mips-boards/malta/malta_smtc.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/malta_smtc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/codecs/wm9712.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm9712.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/wm9712.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm9712.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/mm/dma-default.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/dma-default.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/soc/codecs/wm8750.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8750.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/sound/alsa/soc/dapm.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sound/alsa/soc/dapm.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/codecs/wm8750.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8750.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/codecs/wm8731.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8731.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/wm8731.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8731.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/codecs/ac97.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/ac97.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/codecs/ac97.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/ac97.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/codecs/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/codecs/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/at91/eti_b1_wm8731.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/eti_b1_wm8731.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/at91/at91-pcm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/at91-pcm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/at91/at91-pcm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/at91-pcm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/at91/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/x86_64/machinecheck - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/machinecheck.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/mpc8313erdb.dts - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8313erdb.dts.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/dts/mpc832x_mds.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc832x_mds.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8349emitxgp.dts - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8349emitxgp.dts.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/dts/mpc834x_mds.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc834x_mds.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/boot/compressed/.gitignore - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/boot/compressed/.gitignore.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/serial/of_serial.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/of_serial.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/host/ehci-ps3.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-ps3.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/host/ohci-ppc-of.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-ppc-of.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/configs/at91sam9263ek_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91sam9263ek_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/host/ohci-ps3.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-ps3.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/misc/iowarrior.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/iowarrior.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc836x_mds.dts - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc836x_mds.dts.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/boot/dts/mpc8568mds.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8568mds.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/boot/dts/mpc866ads.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc866ads.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/usb/mon/mon_bin.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/mon/mon_bin.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/boot/dts/mpc885ads.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc885ads.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/configs/mpc8272_ads_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc8272_ads_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/kernel/machine_kexec.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/machine_kexec.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/configs/mpc866_ads_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc866_ads_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-at91/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/at91rm9200.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91rm9200.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/at91rm9200_devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91rm9200_devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-at91/at91rm9200_time.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91rm9200_time.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/at91sam9260.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9260.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/at91sam9260_devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9260_devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-at91/at91sam9261.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9261.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/at91sam9261_devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9261_devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-at91/at91sam9263.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9263.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/at91sam9263_devices.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9263_devices.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-at91/at91sam926x_time.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam926x_time.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/board-1arm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-1arm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-carmeva.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-carmeva.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/board-csb337.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-csb337.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/board-csb637.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-csb637.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/board-dk.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-dk.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/board-eb9200.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-eb9200.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/board-ek.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-ek.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/board-kafa.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-kafa.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/board-kb9202.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-kb9202.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/board-sam9260ek.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9260ek.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/board-sam9261ek.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9261ek.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/mach-at91/board-sam9263ek.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9263ek.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-at91/clock.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/clock.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/gpio.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/gpio.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-at91/irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/leds.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/leds.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/pm.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/pm.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/rtc/rtc-cmos.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-cmos.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/video/ps3fb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/ps3fb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/video/s3fb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/s3fb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/video/sm501fb.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/sm501fb.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/pasemi_mac.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pasemi_mac.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/pci/hda/patch_conexant.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/patch_conexant.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/cxgb3/version.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/version.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h drivers/net/cxgb3/t3cdev.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/t3cdev.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/cxgb3/t3_hw.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/t3_hw.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/cxgb3/t3_cpl.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/t3_cpl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/cxgb3/sge.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/sge.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/net/cxgb3/regs.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/regs.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ep93xx/micro9.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/micro9.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/cxgb3/l2t.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/l2t.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/cxgb3/cxgb3_offload.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/cxgb3_offload.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/cxgb3/cxgb3_main.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/cxgb3_main.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h drivers/net/cxgb3/cxgb3_ioctl.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/cxgb3_ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/cxgb3/cxgb3_ctl_defs.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/cxgb3_ctl_defs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/cxgb3/common.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/common.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/cxgb3/adapter.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cxgb3/adapter.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-ixp4xx/avila-pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/avila-pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ixp4xx/avila-setup.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/avila-setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/nand/excite_nandflash.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/excite_nandflash.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/misc/sony-laptop.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sony-laptop.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-ns9xxx/board-a9m9750dev.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/board-a9m9750dev.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-ns9xxx/irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-ns9xxx/mach-cc9p9360dev.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mfd/sm501.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/sm501.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/proc/proc_sysctl.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/proc_sysctl.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/sn9c102/sn9c102_devtable.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/sn9c102/sn9c102_devtable.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/pvrusb2/pvrusb2-fx2-cmd.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-fx2-cmd.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-arm/arch-at91/at91_aic.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_aic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_dbgu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_dbgu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91_ecc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_ecc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/configs/mpc885_ads_defconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc885_ads_defconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/arch-at91/at91_mci.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_mci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91_pio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_pio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_pit.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_pit.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_pmc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_pmc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91_rstc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_rstc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2400/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2400/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_rtt.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_rtt.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91_shdwc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_shdwc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91_spi.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_spi.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_ssc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_ssc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_st.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_st.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_tc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_tc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91_twi.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_twi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91_wdt.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_wdt.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91rm9200.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91rm9200.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91rm9200_emac.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91rm9200_emac.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91rm9200_mc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91rm9200_mc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91sam9260.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9260.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91sam9260_matrix.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9260_matrix.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91sam9261.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9261.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91sam9261_matrix.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9261_matrix.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91sam9263.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9263.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/at91sam9263_matrix.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9263_matrix.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/board.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/board.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-arm/arch-at91/cpu.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/cpu.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-at91/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2410/mach-qt2410.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-qt2410.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-at91/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/hardware.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/hardware.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-at91/io.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/io.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/irqs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/irqs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-at91/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/timex.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/timex.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-at91/uncompress.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/uncompress.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-at91/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-imx/spi_imx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/spi_imx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/dvb-usb/gl861.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/gl861.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/dvb-usb/gl861.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/gl861.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-iop13xx/time.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/time.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop32x/time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop33x/time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/avila.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/avila.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/board.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/board.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/dvb/dvb-usb/au6610.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/au6610.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/dvb-usb/au6610.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/dvb-usb/au6610.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ns9xxx/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/entry-macro.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/entry-macro.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ns9xxx/hardware.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/hardware.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ns9xxx/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ns9xxx/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/processor.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/processor.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ns9xxx/regs-bbu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/regs-bbu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ns9xxx/regs-board-a9m9750dev.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/regs-board-a9m9750dev.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ns9xxx/regs-mem.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/regs-mem.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ns9xxx/system.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ns9xxx/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/uncompress.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/uncompress.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2412/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2412/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2412/clock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/clock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2412/dma.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/dma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-s3c2412/irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2412/mach-smdk2413.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/mach-smdk2413.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2412/mach-vstms.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/mach-vstms.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2412/pm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/pm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2412/s3c2412.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/s3c2412.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-s3c2440/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2440/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2440/clock.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/clock.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2440/dma.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/dma.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2440/dsc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/dsc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2440/irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2440/mach-anubis.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-anubis.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-s3c2440/mach-nexcoder.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-nexcoder.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2440/mach-osiris.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-osiris.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/arm/mach-s3c2440/mach-rx3715.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-rx3715.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/mach-s3c2440/mach-smdk2440.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/mach-smdk2440.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2440/s3c2440.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2440/s3c2440.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2442/clock.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2442/clock.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-s3c2443/clock.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2443/clock.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2443/dma.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2443/dma.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2443/irq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2443/irq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2443/mach-smdk2443.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2443/mach-smdk2443.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-s3c2443/s3c2443.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2443/s3c2443.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/sm501.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sm501.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ns9xxx/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/lib/dma-noncoherent.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/lib/dma-noncoherent.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/gpio.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/gpio.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-realview/scu.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/scu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-s3c2410/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-s3c2443-clock.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/leds/leds-h1940.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-h1940.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-s3c2410/reset.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/reset.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/oprofile/op_model_mpcore.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/oprofile/op_model_mpcore.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-iop/io.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-sa1100/gpio.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-sa1100/gpio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/cache-l2x0.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/cache-l2x0.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/kexec.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/kexec.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/cxgb3/cxio_hal.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/cxio_hal.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/auxdisplay/cfag12864b.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/auxdisplay/cfag12864b.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-s3c24xx/common-smdk.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/common-smdk.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-s3c24xx/cpu.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/cpu.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/plat-s3c24xx/devs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/devs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-s3c24xx/dma.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/dma.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/arm/plat-s3c24xx/gpio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/gpio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/plat-s3c24xx/pm.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/pm.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/ata/sata_inic162x.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/sata_inic162x.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/arm/plat-s3c24xx/time.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/time.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/tick.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/tick.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/52xx/mpc52xx_pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/52xx/mpc52xx_pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/83xx/mpc834x_mds.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc834x_mds.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/platforms/83xx/mpc836x_mds.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc836x_mds.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/isdn/gigaset/ser-gigaset.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/isdn/gigaset/ser-gigaset.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/plat-s3c24xx/devs.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/devs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/plat-s3c24xx/s3c2410.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/s3c2410.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/keyboard/gpio_keys.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/gpio_keys.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-avr32/arch-at32ap/gpio.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/gpio.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-avr32/arch-at32ap/irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-generic/gpio.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/gpio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/ulp/ipoib/ipoib_cm.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_cm.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h include/asm-ia64/libata-portmap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/libata-portmap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/85xx/mpc85xx_mds.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/mpc85xx_mds.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/powerpc/platforms/8xx/mpc86xads_setup.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/8xx/mpc86xads_setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/cxgb3/iwch_qp.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch_qp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/cxgb3/iwch_provider.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch_provider.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/cxgb3/iwch_provider.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch_provider.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/hw/cxgb3/iwch_cq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch_cq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/cxgb3/iwch.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/cxgb3/iwch.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/iwch.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/cxgb3/cxio_wr.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/cxio_wr.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/ide/ide-acpi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-acpi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/cxgb3/cxio_hal.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/cxgb3/cxio_hal.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/powerpc/platforms/8xx/mpc885ads_setup.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/8xx/mpc885ads_setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-mips/mach-jmr3927/mangle-port.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-jmr3927/mangle-port.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/mach-vr41xx/irq.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-vr41xx/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ide/pci/tc86c001.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/tc86c001.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/ide/pci/it8213.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/it8213.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/ide/pci/delkin_cb.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/delkin_cb.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/i2c/busses/i2c-pasemi.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-pasemi.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/i2c/busses/i2c-acorn.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-acorn.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/pasemi/iommu.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pasemi/iommu.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/hwmon/adm1029.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adm1029.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/sound/soc-dapm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/soc-dapm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/sound/soc.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/soc.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/mpc8260.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc8260.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h ipc/ipc_sysctl.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/ipc_sysctl.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/ps3/system-bus.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/system-bus.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/mpc8xx.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc8xx.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/pseries/kexec.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/kexec.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/ps3av.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ps3av.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/pmi.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pmi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/iucv/af_iucv.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/iucv/af_iucv.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h net/iucv/iucv.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/iucv/iucv.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/ppc/configs/taishan_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/configs/taishan_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/ps3fb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ps3fb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/platforms/4xx/taishan.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/taishan.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/ppc/platforms/4xx/taishan.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/platforms/4xx/taishan.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kernel/early.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/early.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-s390/etr.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/etr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/utsname_sysctl.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/utsname_sysctl.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h kernel/time/tick-sched.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/tick-sched.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h kernel/time/tick-oneshot.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/tick-oneshot.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/ipl.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/ipl.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h kernel/time/tick-internal.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/tick-internal.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/netfilter/xt_TCPMSS.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_TCPMSS.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/time/tick-common.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/tick-common.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h kernel/time/tick-broadcast.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/tick-broadcast.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h kernel/time/clockevents.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/time/clockevents.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/acpi/tables/tbfind.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbfind.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/s390/crypto/prng.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/crypto/prng.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/sclp.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sclp.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/sfp-util.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sfp-util.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/acpi/tables/tbfadt.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/tables/tbfadt.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/char/apm-emulation.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/apm-emulation.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/gpio_keys.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/gpio_keys.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/ata/pata_mpc52xx.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_mpc52xx.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/clockchips.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/clockchips.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ata/pata_scc.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_scc.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/ide/pci/scc_pata.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/pci/scc_pata.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/hid/usbhid/hid-core.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/usbhid/hid-core.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/hid/usbhid/hid-quirks.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/usbhid/hid-quirks.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h Documentation/blackfin/Filesystems - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/blackfin/Filesystems.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h Documentation/blackfin/cache-lock.txt - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/blackfin/cache-lock.txt.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h Documentation/blackfin/cachefeatures.txt - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/blackfin/cachefeatures.txt.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/firewire/fw-transaction.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-transaction.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/usb/caiaq/caiaq-device.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/caiaq/caiaq-device.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/usb/caiaq/caiaq-device.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/caiaq/caiaq-device.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/firewire/fw-transaction.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-transaction.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/usb/caiaq/caiaq-audio.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/usb/caiaq/caiaq-audio.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/firewire/fw-topology.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-topology.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/firewire/fw-sbp2.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-sbp2.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h sound/soc/s3c24xx/s3c24xx-pcm.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c24xx-pcm.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h sound/soc/s3c24xx/s3c24xx-i2s.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c24xx-i2s.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/s3c24xx/s3c24xx-i2s.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c24xx-i2s.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/firewire/fw-ohci.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-ohci.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/firewire/fw-iso.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-iso.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/firewire/fw-device.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-device.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/firewire/fw-device.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-device.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/firewire/fw-cdev.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-cdev.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/firewire/fw-card.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/fw-card.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/firewire/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firewire/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h sound/soc/s3c24xx/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/codecs/wm8753.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8753.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/wm8753.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm8753.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/soc/at91/at91-ssc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/at91-ssc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/at91/at91-ssc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/at91/at91-ssc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/wireless/wext.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wireless/wext.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/wireless/core.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wireless/core.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/wireless/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wireless/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/sunrpc/rpcb_clnt.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/rpcb_clnt.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/hid/usbhid/hiddev.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/usbhid/hiddev.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/hid/usbhid/usbkbd.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/usbhid/usbkbd.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h drivers/hid/usbhid/usbmouse.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/usbhid/usbmouse.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h drivers/hwmon/ad7418.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ad7418.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/applesmc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/applesmc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/hwmon/coretemp.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/coretemp.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/hwmon/max6650.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/max6650.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/i2c/busses/i2c-bfin-twi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-bfin-twi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/i2c/busses/i2c-gpio.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-gpio.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/rxrpc/ar-input.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rxrpc/ar-input.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/rxrpc/ar-accept.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rxrpc/ar-accept.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/rxrpc/af_rxrpc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rxrpc/af_rxrpc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/char/hw_random/pasemi-rng.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hw_random/pasemi-rng.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/core/umem.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/core/umem.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h net/rfkill/rfkill.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rfkill/rfkill.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/rfkill/rfkill-input.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rfkill/rfkill-input.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/mlx4/cq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/cq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/infiniband/hw/mlx4/mad.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/mad.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/mlx4/main.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/main.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/mlx4/mlx4_ib.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/mlx4_ib.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/mlx4/mr.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/mr.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/infiniband/hw/mlx4/qp.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/qp.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/infiniband/hw/mlx4/srq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/srq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/infiniband/hw/mlx4/user.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/mlx4/user.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/joystick/xpad.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/joystick/xpad.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/keyboard/atakbd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/atakbd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/mac80211/wpa.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wpa.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/mac80211/wme.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wme.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/misc/ati_remote.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/ati_remote.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/wme.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wme.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/mac80211/wep.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wep.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/misc/ati_remote2.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/ati_remote2.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/input/misc/cobalt_btns.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/cobalt_btns.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/misc/keyspan_remote.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/keyspan_remote.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/misc/powermate.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/powermate.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/input/misc/yealink.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/misc/yealink.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/sh/clk.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sh/clk.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/wep.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wep.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h crypto/cryptd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/cryptd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/mac80211/tkip.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/tkip.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/tkip.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/tkip.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/sta_info.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/sta_info.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/mouse/appletouch.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/appletouch.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/input/mouse/atarimouse.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/atarimouse.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/mac80211/sta_info.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/sta_info.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/mac80211/michael.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/michael.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/michael.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/michael.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/tablet/acecad.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/acecad.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/input/tablet/aiptek.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/aiptek.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/x86_64/fake-numa-for-cpusets - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/fake-numa-for-cpusets.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/ieee80211_i.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/ieee80211_i.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/tablet/gtco.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/gtco.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/tablet/kbtab.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/kbtab.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/tablet/wacom.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/wacom.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/tablet/wacom_sys.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/wacom_sys.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/input/tablet/wacom_wac.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/tablet/wacom_wac.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/touchscreen/usbtouchscreen.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/usbtouchscreen.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/dvb/frontends/tda10023.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/tda10023.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/dvb/frontends/tda1002x.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/tda1002x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sparc64/kernel/hvapi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/hvapi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/ivtv/Kconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/Kconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/arm/configs/at91sam9rlek_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91sam9rlek_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/configs/ks8695_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ks8695_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/picotux200_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/picotux200_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/kernel/ecard.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/ecard.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/debugfs_sta.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/debugfs_sta.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/ivtv/ivtv-cards.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-cards.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/ivtv/ivtv-cards.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-cards.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/ivtv/ivtv-controls.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-controls.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/cpu/sh4a/setup-sh7785.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7785.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/ivtv/ivtv-controls.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-controls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/ivtv/ivtv-driver.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-driver.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/mac80211/debugfs_netdev.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/debugfs_netdev.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/kernel/stacktrace.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/stacktrace.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/cpu/sh4a/clock-sh7722.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/clock-sh7722.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/ivtv/ivtv-driver.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-driver.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/ivtv/ivtv-fileops.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-fileops.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/mac80211/debugfs_netdev.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/debugfs_netdev.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/mac80211/debugfs_key.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/debugfs_key.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/debugfs.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/debugfs.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/mac80211/aes_ccm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/aes_ccm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/aes_ccm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/aes_ccm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/mac80211/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h mm/slub.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/slub.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/arm/mach-at91/at91sam9rl.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9rl.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/at91sam9rl_devices.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91sam9rl_devices.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-at91/board-picotux200.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-picotux200.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h mm/quicklist.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/quicklist.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/board-sam9rlek.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9rlek.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/ivtv/ivtv-gpio.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-gpio.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-davinci/board-evm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/board-evm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-davinci/io.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-davinci/irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-davinci/psc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/psc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-davinci/serial.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/serial.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-davinci/time.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/time.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/ivtv/ivtv-i2c.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-i2c.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/video/atmel_lcdc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/video/atmel_lcdc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/scsi/sd.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/scsi/sd.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/ivtv/ivtv-ioctl.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-ioctl.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/net/wireless.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/wireless.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/net/wext.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/wext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/net/mac80211.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/mac80211.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/ivtv/ivtv-ioctl.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-ioctl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/ivtv/ivtv-irq.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-irq.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/mtd/ubi-user.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/mtd/ubi-user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/media/v4l2-chip-ident.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/v4l2-chip-ident.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/timerfd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/timerfd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/slub_def.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/slub_def.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/linux/signalfd.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/signalfd.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/rfkill.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rfkill.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/quicklist.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/quicklist.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/nl80211.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/nl80211.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/mtd/ubi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mtd/ubi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ixp4xx/dsmg600-pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/dsmg600-pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mmc/core.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmc/core.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ks8695/board-micrel.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/board-micrel.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ks8695/cpu.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/cpu.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ks8695/devices.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/devices.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ks8695/irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ks8695/time.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/time.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/mlx4/qp.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mlx4/qp.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/mlx4/device.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mlx4/device.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/linux/mlx4/cq.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mlx4/cq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ns9xxx/mach-cc9p9360js.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/mach-cc9p9360js.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/ieee80211.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ieee80211.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/eventfd.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/eventfd.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/anon_inodes.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/anon_inodes.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/mailbox.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/mailbox.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/mailbox.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/mailbox.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/se7780.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7780.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/se7722.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7722.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/lboxre2.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/lboxre2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/kdebug.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/kdebug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/dmabrg.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dmabrg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/chpid.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/chpid.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ppc/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/uic.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/uic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/tsi108_pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/tsi108_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/ivtv/ivtv-queue.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-queue.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/suspend.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/suspend.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/rheap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/rheap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2410/h1940-bluetooth.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/h1940-bluetooth.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/reg_booke.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/reg_booke.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/pgtable-ppc64.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgtable-ppc64.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/pgtable-ppc32.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgtable-ppc32.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-powerpc/pgalloc-64.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgalloc-64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/pgalloc-32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pgalloc-32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/mmu-hash64.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-hash64.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/mmu-44x.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-44x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/edac.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/edac.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/mach-au1x00/au1550_spi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-au1x00/au1550_spi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/kdebug.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/ivtv/ivtv-streams.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-streams.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/media/video/ivtv/ivtv-vbi.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-vbi.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/media/video/ivtv/ivtv-version.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtv-version.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/drivers/pci/ops-se7780.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/ops-se7780.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/user.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/user.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/unistd.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/unistd.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/unaligned.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/unaligned.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/ucontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ucontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/uaccess.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/uaccess.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/types.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/types.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/traps.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/traps.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/topology.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/topology.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/tlbflush.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/tlbflush.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/tlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/tlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-omap/debug-leds.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/debug-leds.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/timex.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/timex.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/thread_info.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/thread_info.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/termios.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/termios.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/termbits.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/termbits.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/system.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-omap/mailbox.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/mailbox.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/string.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/string.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/statfs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/statfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/stat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/stat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/spinlock.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/spinlock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/sockios.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/sockios.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/socket.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/socket.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/signal.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/signal.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/siginfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/siginfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/sigcontext.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/sigcontext.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/shmparam.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/shmparam.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/shmbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/shmbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/setup.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/setup.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/sembuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/sembuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/semaphore.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/semaphore.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/configs/se7712_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/se7712_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/configs/r7785rp_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/r7785rp_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/segment.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/segment.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/sections.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/sections.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/scatterlist.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/scatterlist.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/boards/atngw100/flash.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atngw100/flash.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/boards/atngw100/setup.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atngw100/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/resource.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/resource.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/ptrace.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ptrace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/configs/atngw100_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/configs/atngw100_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/processor.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/processor.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/posix_types.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/posix_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/poll.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/poll.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/pgtable.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/pgtable.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/pgalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/pgalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/percpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/percpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/param.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/param.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/page_offset.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/page_offset.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/page.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/page.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mutex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mutex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/msgbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/msgbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mmu_context.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mmu_context.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/mach-at32ap/hmatrix.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/hmatrix.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mmu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mman.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mman.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mem_map.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mem_map.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/Kconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/Kconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/Makefile - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/Makefile.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/kernel/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/kernel/bfin_dma_5xx.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/bfin_dma_5xx.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/blackfin/kernel/bfin_gpio.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/bfin_gpio.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/kernel/dualcore_test.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/dualcore_test.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/kernel/entry.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/entry.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/kernel/module.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/module.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/kernel/process.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/process.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/kernel/ptrace.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/ptrace.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/kernel/setup.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/setup.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h arch/blackfin/kernel/traps.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/traps.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/kernel/vmlinux.lds.S - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/lib/ins.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/lib/ins.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/mach-bf533/boards/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/mach-bf533/boards/cm_bf533.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/cm_bf533.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/blackfin/mach-bf533/boards/ezkit.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/ezkit.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/mach-bf533/boards/stamp.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/stamp.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/mach-bf533/head.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/head.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf533/ints-priority.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/ints-priority.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-bf537/boards/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/mach-bf537/boards/cm_bf537.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/cm_bf537.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf537/boards/generic_board.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/generic_board.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/mach-bf537/boards/pnav10.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/pnav10.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/blackfin/mach-bf537/boards/stamp.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/stamp.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/mach-bf537/head.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/head.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf537/ints-priority.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/ints-priority.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-bf561/boards/cm_bf561.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/boards/cm_bf561.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/blackfin/mach-bf561/boards/ezkit.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/boards/ezkit.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/blackfin/mach-bf561/coreb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/coreb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-bf561/head.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/head.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf561/ints-priority.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf561/ints-priority.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-common/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/mach-common/cache.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/cache.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-common/cacheinit.S - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/cacheinit.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/mach-common/entry.S - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/entry.S.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h arch/blackfin/mach-common/interrupt.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/interrupt.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-common/lock.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/lock.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/mach-common/pm.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/pm.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/blackfin/mm/blackfin_sram.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mm/blackfin_sram.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/mm/blackfin_sram.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mm/blackfin_sram.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mm/init.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mm/init.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/mach-common/def_LPBlackfin.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-common/def_LPBlackfin.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-common/context.S - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-common/context.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/configs/lboxre2_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/lboxre2_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/se/7780/setup.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7780/setup.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-common/cdef_LPBlackfin.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-common/cdef_LPBlackfin.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/mach-bf561/mem_map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/mem_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf561/mem_init.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/mem_init.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf561/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf561/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf561/defBF561.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/defBF561.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/mach-bf561/cdefBF561.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/cdefBF561.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/mach-bf561/blackfin.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/blackfin.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/mach-bf561/bfin_serial_5xx.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/mach-bf561/bf561.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/bf561.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf561/anomaly.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/anomaly.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf537/mem_map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/mem_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/mem_init.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/mem_init.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf537/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf537/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/defBF537.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/defBF537.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf537/defBF534.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/defBF534.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/cdefBF537.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/cdefBF537.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf537/cdefBF534.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/cdefBF534.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf537/blackfin.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/blackfin.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/bfin_serial_5xx.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/mach-bf537/bf537.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/bf537.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/se/7780/irq.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7780/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/anomaly.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/anomaly.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/mach-bf533/mem_map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/mem_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf533/mem_init.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/mem_init.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf533/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf533/dma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf533/defBF532.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/defBF532.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf533/cdefBF532.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/cdefBF532.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf533/blackfin.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/blackfin.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf533/bfin_serial_5xx.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/mach-bf533/bf533.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/bf533.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf533/anomaly.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/anomaly.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/local.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/local.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/linkage.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/linkage.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7780/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7780/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/l1layout.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/l1layout.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7722/setup.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7722/setup.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/sh/boards/se/7722/irq.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7722/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/h8300/boot/compressed/misc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/h8300/boot/compressed/misc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7722/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7722/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/r7780rp/irq-r7785rp.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/irq-r7785rp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/renesas/r7780rp/irq-r7780rp.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/irq-r7780rp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/lboxre2/setup.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/lboxre2/setup.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/lboxre2/irq.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/lboxre2/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/lboxre2/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/lboxre2/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/landisk/psw.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/landisk/psw.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/landisk/gio.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/landisk/gio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/kmap_types.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/kmap_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/zr364xx.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/zr364xx.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/irq_handler.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/irq_handler.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/ppc/syslib/virtex_devices.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/virtex_devices.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ppc/syslib/virtex_devices.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/syslib/virtex_devices.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/misc/phantom.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/phantom.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/ipcbuf.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ipcbuf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/ioctls.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ioctls.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/ioctl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/io.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/io.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/ide.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/ide.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/hw_irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/hardirq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/hardirq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/gpio.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/gpio.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/misc/thinkpad_acpi.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/thinkpad_acpi.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h include/asm-blackfin/futex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/futex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/flat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/flat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/card/block.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/card/block.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/mmc/card/queue.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/card/queue.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mmc/core/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/fcntl.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/fcntl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/core/core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/core/core.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/core.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mmc/core/mmc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/mmc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/core/sd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/sd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/errno.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/errno.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/host/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/host/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mmc/host/at91_mci.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/at91_mci.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-blackfin/entry.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/entry.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mmc/host/au1xmmc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/au1xmmc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mmc/host/au1xmmc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/au1xmmc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/host/imxmmc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/imxmmc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/host/mmci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/mmci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ppc/boot/simple/uartlite_tty.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ppc/boot/simple/uartlite_tty.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mmc/host/omap.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/omap.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/emergency-restart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/emergency-restart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/host/pxamci.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/pxamci.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/elf.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/elf.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/dpmc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/dpmc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/sysdev/uic.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/uic.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/host/sdhci.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/sdhci.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/host/sdhci.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/sdhci.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mmc/host/tifm_sd.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/tifm_sd.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/host/wbsd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/wbsd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/dma-mapping.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/dma-mapping.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/sysdev/mv64x60_dev.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/mv64x60_dev.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/div64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/div64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/mpic_u3msi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/mpic_u3msi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/sysdev/mpic_msi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/mpic_msi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/device.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/delay.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/delay.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/current.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/nand/cafe_nand.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/cafe_nand.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/nand/cmx270_nand.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/cmx270_nand.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/cputime.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cputime.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/cpumask.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cpumask.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/cplbinit.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cplbinit.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/cplb.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cplb.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/checksum.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/checksum.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/ubi/build.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/build.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/cacheflush.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cacheflush.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/cache.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cache.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/ubi/cdev.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/cdev.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/ubi/debug.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/debug.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/ubi/debug.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/debug.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-blackfin/byteorder.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/byteorder.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/ubi/eba.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/eba.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/ubi/gluebi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/gluebi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/ubi/io.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/io.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/ubi/kapi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/kapi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/ubi/misc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/misc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/ubi/scan.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/scan.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/ubi/scan.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/scan.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mtd/ubi/ubi.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/ubi.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/mtd/ubi/upd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/upd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/ubi/vmt.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/vmt.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/ubi/vtbl.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/vtbl.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/ubi/wl.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/wl.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/bugs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bugs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/bug.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bug.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/blackfin.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/blackfin.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/bitops.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bitops.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/Kconfig - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/Kconfig.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/bfin_sport.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bfin_sport.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/irda/kingsun-sir.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/kingsun-sir.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/bfin_simple_timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bfin_simple_timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/83xx/mpc832x_rdb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc832x_rdb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/52xx/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/52xx/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/bfin5xx_spi.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bfin5xx_spi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/bfin-global.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/bfin-global.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/auxvec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/auxvec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/atomic.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/atomic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/a.out.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/a.out.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/Kbuild - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/Kbuild.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/arch-at32ap/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/arch-at32ap/cpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/cpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/mailbox.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mailbox.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/led.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/led.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/lcd_mipid.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/lcd_mipid.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/hwa742.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/hwa742.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/gpio-switch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/gpio-switch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/44x/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/44x/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/ia64/kernel/err_inject.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/err_inject.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/mm/slice.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/mm/slice.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/mlx4/alloc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/alloc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ks8695/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/mlx4/catas.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/catas.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/mlx4/cmd.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/cmd.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/mlx4/cq.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/cq.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ks8695/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/mlx4/eq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/eq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/mlx4/fw.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/fw.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/mlx4/fw.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/fw.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/mlx4/icm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/icm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/mlx4/icm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/icm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/mlx4/intf.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/intf.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ks8695/regs-wan.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-wan.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/mlx4/main.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/main.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/mlx4/mcg.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/mcg.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/mlx4/mlx4.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/mlx4.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/mlx4/mr.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/mr.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/mlx4/pd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/pd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/mlx4/qp.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/qp.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/mlx4/reset.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/reset.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/mlx4/srq.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/mlx4/srq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-ks8695/regs-uart.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-uart.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/common.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/sun_esp.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/sun_esp.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/kernel/suspend.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/suspend.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kernel/msi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/msi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ucc_geth_mii.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ucc_geth_mii.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/usb/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/usb/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/usb/cdc_ether.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/cdc_ether.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-ks8695/regs-sys.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-sys.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-switch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-switch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-pci.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/usb/dm9601.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/dm9601.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-arm/arch-ks8695/regs-misc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-misc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/usb/kaweth.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/kaweth.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-ks8695/regs-mem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-mem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-lan.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-lan.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-hpna.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-hpna.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/regs-gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/regs-gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ks8695/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/entry-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/entry-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ks8695/devices.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/devices.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ks8695/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/dsmg600.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/dsmg600.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ixp4xx/cpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/cpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop13xx/msi.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/msi.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/psc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/psc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-davinci/entry-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/entry-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/usb/kawethfw.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/kawethfw.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/usb/mcs7830.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/mcs7830.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/usb/pegasus.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/pegasus.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/usb/rndis_host.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/usb/rndis_host.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m68k/atari/atakeyb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/atari/atakeyb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/configs/prpmc2800_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/prpmc2800_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/wireless/libertas/Makefile - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/Makefile.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-davinci/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/libertas/assoc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/assoc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/libertas/cmd.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/cmd.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/libertas/cmdresp.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/cmdresp.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/libertas/decl.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/decl.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/libertas/defs.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/defs.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-davinci/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/libertas/dev.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/dev.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/au1000/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-at91/at91sam9rl_matrix.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9rl_matrix.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91sam9rl.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9rl.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91_adc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91_adc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/libertas/host.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/host.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/libertas/hostcmd.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/hostcmd.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-alpha/kdebug.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/kdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/timerfd.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/timerfd.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/signalfd.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/signalfd.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/eventfd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/eventfd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/anon_inodes.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/anon_inodes.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/afs/write.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/afs/write.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/mpc8544ds.dts - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8544ds.dts.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/afs/security.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/afs/security.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/configs/rbhma4200_defconfig - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/rbhma4200_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/configs/tb0219_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/tb0219_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/libertas/if_usb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/if_usb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/video/xilinxfb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/xilinxfb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/vt8623fb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/vt8623fb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/vermilion/vermilion.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/vermilion/vermilion.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/libertas/main.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/main.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/net/wireless/libertas/rx.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/rx.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/net/wireless/libertas/scan.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/scan.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/wireless/libertas/types.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/types.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/libertas/wext.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/wext.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/rtc/rtc-bfin.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-bfin.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/dts/holly.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/holly.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/video/fb_defio.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/fb_defio.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/video/atmel_lcdfb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/atmel_lcdfb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/dts/mpc832x_rdb.dts - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc832x_rdb.dts.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/s390/char/sclp_config.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_config.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/char/sclp_sdias.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_sdias.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/char/zcore.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/zcore.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/powerpc/boot/dts/ebony.dts - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/ebony.dts.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/video/arkfb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/arkfb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/spi/spidev.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/spidev.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/fsl_usb2_udc.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/fsl_usb2_udc.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/gadget/fsl_usb2_udc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/fsl_usb2_udc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/mips/pmc-sierra/msp71xx/msp_serial.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/pmc-sierra/msp71xx/msp_serial.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/sgi-ip22/ip22-platform.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip22/ip22-platform.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/cio/chp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/cio/chp.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/chp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/sibyte/common/sb_tbprof.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sibyte/common/sb_tbprof.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/s390/cio/idset.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/idset.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/spi/mpc52xx_psc_spi.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/mpc52xx_psc_spi.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/serial/serial_ks8695.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/serial_ks8695.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/spi/au1550_spi.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/au1550_spi.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/cio/idset.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/idset.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/serial/bfin_5xx.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/bfin_5xx.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h drivers/scsi/esp_scsi.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/esp_scsi.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/mach-bf548/cdefBF549.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF549.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf548/cdefBF548.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF548.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf548/cdefBF544.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF544.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf548/cdefBF54x_base.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF54x_base.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/mtd/mtdsuper.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/mtdsuper.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf548/cdefBF542.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF542.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/defBF52x_base.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/defBF52x_base.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf548/defBF542.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF542.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h scripts/checkpatch.pl - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/scripts/checkpatch.pl.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-blackfin/mach-bf527/defBF527.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/defBF527.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/defBF525.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/defBF525.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2410/regs-s3c2412.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-s3c2412.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/mdesc.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mdesc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf527/cdefBF522.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/cdefBF522.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf548/defBF549.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF549.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf548/defBF54x_base.h - 1.7 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF54x_base.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/mach-bf527/cdefBF525.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/cdefBF525.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/BF533-EZKIT_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF533-EZKIT_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/mips/sgi-ip32/ip32-platform.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/sgi-ip32/ip32-platform.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-sparc64/sstate.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/sstate.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf527/defBF522.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/defBF522.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf527/cdefBF52x_base.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/cdefBF52x_base.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf527/cdefBF527.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/cdefBF527.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/PNAV-10_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/PNAV-10_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/configs/BF561-EZKIT_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF561-EZKIT_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-blackfin/mach-bf548/defBF544.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF544.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/blackfin/configs/BF537-STAMP_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF537-STAMP_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h include/asm-blackfin/mach-bf548/defBF548.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF548.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/configs/BF533-STAMP_defconfig - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF533-STAMP_defconfig.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h arch/sparc64/kernel/sysfs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/sysfs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/volatile-considered-harmful.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/volatile-considered-harmful.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91x40.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91x40.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/clock.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/clock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/ps3.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/ps3.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h crypto/async_tx/async_xor.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/async_tx/async_xor.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h crypto/async_tx/async_tx.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/async_tx/async_tx.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/boot/oflib.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/oflib.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h crypto/async_tx/async_memset.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/async_tx/async_memset.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/DocBook/uio-howto.tmpl - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/uio-howto.tmpl.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-davinci/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/mux.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/mux.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-imx/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-imx/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-iop13xx/adma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop13xx/adma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h crypto/async_tx/async_memcpy.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/async_tx/async_memcpy.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h block/bsg.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/bsg.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-arm/arch-iop32x/adma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop32x/adma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/sh/ssi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/sh/ssi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-iop33x/adma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-iop33x/adma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/sh/sh7760-ac97.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/sh/sh7760-ac97.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/sh/hac.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/sh/hac.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-ks8695/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ks8695/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-mxc/board-mx31ads.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/board-mx31ads.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/sh/dma-sh7760.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/sh/dma-sh7760.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/sh/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/sh/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/s3c24xx/smdk2443_wm9710.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/smdk2443_wm9710.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/common.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/s3c24xx/s3c24xx-ac97.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c24xx-ac97.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/s3c24xx/s3c2443-ac97.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c2443-ac97.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h sound/soc/s3c24xx/neo1973_wm8753.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/neo1973_wm8753.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-mxc/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/sh/aica.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/sh/aica.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/arch-mxc/entry-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/entry-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/hwmon/dme1737 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/dme1737.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/hardware.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/io.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/irqs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/irqs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/memory.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/memory.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/sh/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/sh/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-mxc/mx31.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/mx31.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/mxc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/mxc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/system.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/system.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/ja_JP/HOWTO - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ja_JP/HOWTO.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/pci-common.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/pci-common.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/kernel/signal.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/signal.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-mxc/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-mxc/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kernel/signal.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/signal.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-mxc/vmalloc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-mxc/vmalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/lguest/lguest.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/lguest/lguest.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/linux/uio_driver.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/uio_driver.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/networking/multiqueue.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/multiqueue.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/9p/trans_fd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/9p/trans_fd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/linux/power_supply.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/power_supply.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-s3c2400/map.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2400/map.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2400/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2400/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/of_device.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/of_device.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/hardware/iop3xx-adma.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/iop3xx-adma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/scsi/scsi_fc_transport.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scsi/scsi_fc_transport.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/of.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/of.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/hardware/iop_adma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/iop_adma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hwcap.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hwcap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/9p/mod.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/9p/mod.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/sysfs-rules.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/sysfs-rules.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c/iic.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/iic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/usb/persist.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/persist.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/plat-s3c/nand.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/nand.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/plat-s3c/regs-ac97.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-ac97.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c/regs-adc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-adc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c/regs-iic.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-iic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c/regs-nand.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-nand.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/plat-s3c/regs-rtc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c/regs-serial.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/9p/conv.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/9p/conv.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h Documentation/vm/numa_memory_policy.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/vm/numa_memory_policy.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/plat-s3c/regs-timer.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-timer.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-arm/plat-s3c/regs-watchdog.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c/regs-watchdog.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h net/9p/client.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/9p/client.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/plat-s3c24xx/regs-iis.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/regs-iis.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/8021q/vlan_netlink.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/8021q/vlan_netlink.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/83xx/usb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/usb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/Kconfig.cputype - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/Kconfig.cputype.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/powerpc/platforms/cell/axon_msi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/axon_msi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-arm/plat-s3c24xx/regs-spi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/regs-spi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/cbe_cpufreq_pmi.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/plat-s3c24xx/regs-udc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/regs-udc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-s3c24xx/udc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-s3c24xx/udc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/em_x270_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/em_x270_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/xen/xenbus/xenbus_xs.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/xenbus/xenbus_xs.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/lzo/lzo1x_decompress.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/lzo/lzo1x_decompress.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/xen/xenbus/xenbus_comms.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/xenbus/xenbus_comms.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sparc64/kernel/vio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/vio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/xen/xenbus/xenbus_client.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/xenbus/xenbus_client.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/xen/grant-table.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/grant-table.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/xen/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/sossi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/sossi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/rfbi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/rfbi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-davinci/clock.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/clock.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-davinci/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/omapfb_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/omapfb_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-davinci/mux.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-davinci/mux.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcdc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcdc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/lcd_sx1.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_sx1.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_palmz71.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_palmz71.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_palmtt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_palmtt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_palmte.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_palmte.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_osk.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_osk.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_inn1610.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_inn1610.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/lcd_inn1510.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_inn1510.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-iop32x/em7210.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-iop32x/em7210.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/lcd_h4.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_h4.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/omap/lcd_h3.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/lcd_h3.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/video/omap/hwa742.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/hwa742.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/dispc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/dispc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/omap/blizzard.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/omap/blizzard.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/geode/lxfb_ops.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/geode/lxfb_ops.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ixp4xx/gateway7001-pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/gateway7001-pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ixp4xx/gateway7001-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/gateway7001-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/geode/lxfb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/geode/lxfb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ixp4xx/wg302v2-pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/wg302v2-pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ixp4xx/wg302v2-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/wg302v2-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/oti6858.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/oti6858.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-ks8695/gpio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/gpio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-mx3/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-mx3/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-mx3/mm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/mm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-mx3/mx31ads.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/mx31ads.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-mx3/time.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-mx3/time.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/fixed_code.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/fixed_code.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/kgdb.h - 1.8 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/kgdb.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-blackfin/mach-bf533/portmux.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/portmux.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf537/portmux.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/portmux.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/anomaly.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/anomaly.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/bf548.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/bf548.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf548/bfin_serial_5xx.h - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-pxa/devices.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/devices.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pxa/em-x270.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/em-x270.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h kernel/user_namespace.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/user_namespace.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/fsl_uli1575.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/fsl_uli1575.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/r8a66597-hcd.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/r8a66597-hcd.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h kernel/sched_stats.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_stats.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/blackfin.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/blackfin.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/dma.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/dma.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/sched_rt.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_rt.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-blackfin/mach-bf548/irq.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/irq.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/mem_init.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/mem_init.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf548/mem_map.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/mem_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/gadget/s3c2410_udc.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/s3c2410_udc.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/usb/gadget/m66592-udc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/m66592-udc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf548/portmux.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/portmux.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf561/portmux.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/portmux.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/portmux.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/portmux.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/trace.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/trace.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/usb/gadget/amd5536udc.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/amd5536udc.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/uio/uio.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/uio/uio.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/uio/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/uio/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/uio/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/uio/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/spi/xilinx_spi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/xilinx_spi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/spi/omap2_mcspi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/spi/omap2_mcspi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/serial/zs.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/zs.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/serial/sb1250-duart.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sb1250-duart.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/scsi/qla2xxx/qla_mid.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/qla2xxx/qla_mid.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/lpfc/lpfc_vport.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_vport.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/block/xen-blkfront.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/xen-blkfront.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-sa1100/jornada720_ssp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/jornada720_ssp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/sched_fair.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_fair.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h drivers/scsi/lpfc/lpfc_debugfs.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/lpfc/lpfc_debugfs.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/scsi/libsas/sas_ata.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/libsas/sas_ata.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h kernel/sched_debug.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_debug.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h arch/sparc64/kernel/ldc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ldc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/ps3/device-init.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/ps3/device-init.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sparc64/kernel/ds.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/ds.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/char/vmur.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/vmur.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/plat-iop/adma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-iop/adma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-mxc/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/plat-mxc/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/plat-mxc/irq.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-mxc/irq.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/rtc/rtc-m41t80.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-m41t80.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/rtc/rtc-at32ap700x.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-at32ap700x.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/power/power_supply_sysfs.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/power_supply_sysfs.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/power/power_supply_core.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/power_supply_core.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/power/pda_power.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/pda_power.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/sysdev/axonram.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/axonram.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/sysdev/fsl_pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/power/olpc_battery.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/olpc_battery.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/netfilter/nf_conntrack_extend.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_extend.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/power/ds2760_battery.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/ds2760_battery.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mips-boards/malta/malta_platform.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/malta/malta_platform.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/fsl_pci.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/fsl_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/rtc_cmos_setup.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/rtc_cmos_setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/mm/numa.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/numa.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/9p/9p.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/9p/9p.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/xen/interface/xen.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/xen.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/power/apm_power.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/apm_power.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/power/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/memory.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/memory.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/power/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/power/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/configs/msp71xx_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/msp71xx_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/configs/fulong_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/fulong_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/hvc_xen.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/hvc_xen.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/features.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/features.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/elfnote.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/elfnote.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/hvc-console.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/hvc-console.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/grant_table.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/grant_table.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/of/platform.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/platform.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/9p/transport.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/9p/transport.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/xen/events.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/events.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/of/device.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/device.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/of/base.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/base.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/netfilter/nf_conntrack_extend.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netfilter/nf_conntrack_extend.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/kernel/cpu/irq/intc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/irq/intc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/configs/r7780mp_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/r7780mp_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/dma/iop-adma.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/iop-adma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/edac/edac_core.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/edac_core.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/edac/edac_mc_sysfs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/edac_mc_sysfs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/of/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/of/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/boards/atstk1000/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/xen-netfront.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/xen-netfront.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-h8300/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rtl818x.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl818x.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/rtl8187_rtl8225.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl8187_rtl8225.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rtl8187_rtl8225.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl8187_rtl8225.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rtl8187_dev.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl8187_dev.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/rtl8187.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl8187.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/avr32/mach-at32ap/pm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/ucc_geth_ethtool.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ucc_geth_ethtool.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ps3_gelic_net.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ps3_gelic_net.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/ps3_gelic_net.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ps3_gelic_net.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/configs/BF548-EZKIT_defconfig - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF548-EZKIT_defconfig.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/pppol2tp.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/pppol2tp.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/macvlan.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/macvlan.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/irda/ep7211-sir.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/irda/ep7211-sir.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/kernel/kgdb.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/kgdb.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h include/asm-m68knommu/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/hw_irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/bfin_mac.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bfin_mac.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h drivers/net/ax88796.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ax88796.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-mips/mach-generic/gpio.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-generic/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mmc/core/host.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/host.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mmc/core/bus.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/bus.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/mach-jmr3927/ioremap.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-jmr3927/ioremap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/misc/eeprom_93cx6.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/eeprom_93cx6.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/mach-mips/kernel-entry-init.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/kernel-entry-init.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/message/fusion/mptdebug.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptdebug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mach-bf548/boards/ezkit.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/boards/ezkit.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf548/head.S - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/head.S.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/blackfin/mach-bf548/ints-priority.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/ints-priority.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mips/txx9irq.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/txx9irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/mmu-8xx.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-8xx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/mmu-fsl-booke.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-fsl-booke.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/mmu-hash32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-hash32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/ps3stor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ps3stor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/diag.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/diag.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/wireless/radiotap.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wireless/radiotap.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/futex-irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/futex-irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/parport.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/parport.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/md/dm-mpath-rdac.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-mpath-rdac.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/lguest/page_tables.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/page_tables.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/lguest/lg.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/lg.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/lguest/interrupts_and_traps.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/interrupts_and_traps.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/lguest/core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/lguest/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/sparsemem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sparsemem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/fb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/fb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/of_platform.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/of_platform.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/mouse/gpio_mouse.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/mouse/gpio_mouse.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/fb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/fb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/hvtramp.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/hvtramp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/ldc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/ldc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/of_platform.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/of_platform.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sparc64/vio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/vio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/fb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/fb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/edac/edac_pci_sysfs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/edac_pci_sysfs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/i2c/busses/i2c-taos-evm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-taos-evm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/async_tx.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/async_tx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/thmc50.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/thmc50.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/exportfs.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/exportfs.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/i2c/busses/i2c-pmcmsp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-pmcmsp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/hwmon/dme1737.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/dme1737.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/abituguru3.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/abituguru3.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/i2c/chips/menelaus.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/menelaus.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/lm93.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/lm93.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/m32r/platforms/mappi/dot.gdbinit - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/mappi/dot.gdbinit.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h include/asm-ia64/hpsim.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/hpsim.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m32r/platforms/m32700ut/dot.gdbinit_200MHz_16MB - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/m32700ut/dot.gdbinit_200MHz_16MB.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/opsput/dot.gdbinit - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/opsput/dot.gdbinit.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/oaks32r/dot.gdbinit.nommu - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/oaks32r/dot.gdbinit.nommu.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/mappi3/dot.gdbinit - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/mappi3/dot.gdbinit.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/mappi2/dot.gdbinit.vdec2 - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/mappi2/dot.gdbinit.vdec2.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/m32700ut/dot.gdbinit_300MHz_32MB - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/m32700ut/dot.gdbinit_300MHz_32MB.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/m32700ut/dot.gdbinit_400MHz_32MB - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/m32700ut/dot.gdbinit_400MHz_32MB.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/mappi/dot.gdbinit.smp - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/mappi/dot.gdbinit.smp.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/m32r/platforms/mappi/dot.gdbinit.nommu - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m32r/platforms/mappi/dot.gdbinit.nommu.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h arch/x86/kernel/cpu/cyrix.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cyrix.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-prph.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-prph.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/intel.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/intel.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/intel_cacheinfo.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/intel_cacheinfo.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/cpu/mcheck/k7.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/k7.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/required-features.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/required-features.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/DocBook/s390-drivers.tmpl - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/s390-drivers.tmpl.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/Intel-IOMMU.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/Intel-IOMMU.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/resume-trace.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/resume-trace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl3945-base.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl3945-base.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/cpu/mcheck/mce_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/mce_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/cpu/mcheck/mce_amd_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/mce_amd_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/mcheck/non-fatal.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/non-fatal.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/iwlwifi/iwl4965-base.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl4965-base.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/seccomp_32.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/seccomp_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/seccomp_64.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/seccomp_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/segment.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/segment.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/mcheck/p4.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/p4.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/cpufeature.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/cpufeature.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/filesystems/quota.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/quota.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/spi/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/spi/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/cmpxchg_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/cmpxchg_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/semaphore.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/semaphore.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/codecs/cs4270.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/cs4270.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/cs4270.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/cs4270.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/setup.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/setup.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/calling.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/calling.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/libertas/if_cs.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/if_cs.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/cpu/mcheck/therm_throt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mcheck/therm_throt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/signal.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/signal.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/mtrr/generic.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mtrr/generic.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/smp.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/smp.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/mtrr/main.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mtrr/main.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/libertas/if_sdio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/if_sdio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/mtrr/mtrr.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/mtrr/mtrr.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/spinlock.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/spinlock.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/spinlock_types.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/spinlock_types.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/perfctr-watchdog.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/perfctr-watchdog.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/srat.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/srat.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/proc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/proc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/cpuid.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpuid.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/crash.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/crash.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/networking/tc-actions-env-rules.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/tc-actions-env-rules.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/power/00-INDEX - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/00-INDEX.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/string_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/string_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/e820_32.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/e820_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/suspend_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/suspend_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/e820_64.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/e820_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/reboot.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/reboot.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/early-quirks.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/early-quirks.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/rfkill.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/rfkill.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/early_printk.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/early_printk.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/efi_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/efi_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/ivtv/ivtvfb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/ivtv/ivtvfb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/entry_32.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/entry_32.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/swiotlb.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/swiotlb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/entry_64.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/entry_64.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/genapic_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/genapic_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/genapic_flat_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/genapic_flat_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/system.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/system.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/head64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/head64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/head_32.S - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/head_32.S.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/head_64.S - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/head_64.S.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/hpet.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/hpet.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/i386_ksyms_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/i386_ksyms_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/thread_info.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/thread_info.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/thread_info_32.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/thread_info_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/thread_info_64.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/thread_info_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/time.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/time.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/timer.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/timer.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/usb/authorization.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/authorization.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/usb/power-management.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/power-management.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/i8259_32.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/i8259_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/video4linux/CARDLIST.cx23885 - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/CARDLIST.cx23885.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/topology.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/topology.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/tsc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/tsc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/uaccess.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uaccess.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/i8259_64.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/i8259_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/bootparam.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/bootparam.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/uaccess_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uaccess_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/io_apic_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/io_apic_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/io_apic_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/io_apic_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/bitops.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/bitops.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/sound/cs4231-regs.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/sound/cs4231-regs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/irq_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/irq_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/irq_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/irq_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/machine_kexec_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/machine_kexec_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/machine_kexec_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/machine_kexec_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/uaccess_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uaccess_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/mfgpt_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/mfgpt_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/microcode.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/microcode.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/module_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/module_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/msr.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/msr.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/nmi_32.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/nmi_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/nmi_64.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/nmi_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/configs/cm_x270_defconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/cm_x270_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/unistd_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/unistd_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/configs/omap_osk_5912_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/omap_osk_5912_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/numaq_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/numaq_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/pci-calgary_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/pci-calgary_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/unistd_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/unistd_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-at91/at91x40.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91x40.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/at91x40_time.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91x40_time.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-eb01.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-eb01.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/tcm825x.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tcm825x.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/pci-gart_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/pci-gart_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-ep93xx/edb9307.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/edb9307.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sparc64/kernel/pci_msi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/pci_msi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/vm86.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/vm86.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/vmi_time.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/vmi_time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/tcm825x.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/tcm825x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/ptrace.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/ptrace.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-ns9xxx/gpio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/gpio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/ptrace-abi.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/ptrace-abi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/pci/hda/hda_hwdep.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/hda/hda_hwdep.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/proto.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/proto.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/vsyscall.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/vsyscall.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/xen/hypercall.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/hypercall.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/xen/hypervisor.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/hypervisor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/xen/interface.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/interface.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/board-palmtt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-palmtt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/board-palmz71.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-palmz71.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap1/board-sx1.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-sx1.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/cx23885/cx23885.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cx23885/cx23885-reg.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/cx23885/cx23885-i2c.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-i2c.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cx23885/cx23885-dvb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-dvb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/cx23885/cx23885-core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/cx23885/cx23885-cards.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-cards.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/cx23885/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-omap2/board-2430sdp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/board-2430sdp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/xor_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xor_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/xor_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xor_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/processor.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/processor.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/processor-flags.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/processor-flags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/videobuf-core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videobuf-core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-omap2/usb-tusb6010.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/usb-tusb6010.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/videobuf-dma-sg.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videobuf-dma-sg.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/videobuf-dvb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videobuf-dvb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/clock.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/clock.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/cm-x270-pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/cm-x270-pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pxa/cm-x270-pci.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/cm-x270-pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/cm-x270.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/cm-x270.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/video/videobuf-vmalloc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/videobuf-vmalloc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/pci-swiotlb_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/pci-swiotlb_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/atomic_64.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/atomic_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/vp27smpx.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/vp27smpx.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/dvb/frontends/s5h1409.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/s5h1409.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/pxa300.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa300.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/pxa320.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa320.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/pxa3xx.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pxa3xx.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/media/dvb/frontends/s5h1409.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/s5h1409.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/arm/mach-pxa/zylonite.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/zylonite.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/arm/mach-pxa/zylonite_pxa300.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/zylonite_pxa300.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/zylonite_pxa320.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/zylonite_pxa320.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/pgtable_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pgtable_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/pgtable_32.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pgtable_32.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/pgtable.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pgtable.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/pgtable-3level.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pgtable-3level.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/reboot.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/reboot.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/nand.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/nand.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-common/clocks.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-common/clocks.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf548/bf54x_keys.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/bf54x_keys.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf548/bf54x-lq043.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/bf54x-lq043.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/process_32.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/process_32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/process_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/process_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf527/portmux.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/portmux.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/quirks.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/quirks.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf527/mem_map.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/mem_map.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/mem_init.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/mem_init.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf527/irq.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/plat-omap/debug-devices.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/debug-devices.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/blackfin.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/blackfin.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf527/bfin_serial_5xx.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-blackfin/mach-bf527/bf527.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/bf527.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf527/anomaly.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/anomaly.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/gptimers.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/gptimers.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/early_printk.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/early_printk.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/message/fusion/mptsas.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/message/fusion/mptsas.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/atmel-ssc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/atmel-ssc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/misc/fujitsu-laptop.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/fujitsu-laptop.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/pgalloc.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pgalloc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/hardware/it8152.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/hardware/it8152.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/percpu.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/percpu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/kernel/vmlinux.lds.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/vmlinux.lds.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/pda.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pda.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/zylonite.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/zylonite.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/pxa3xx-regs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa3xx-regs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/md/dm-mpath-hp-sw.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/md/dm-mpath-hp-sw.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/mfp.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/mfp-pxa320.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa320.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-pxa/mfp-pxa300.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa300.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/pci_32.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pci_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/card/sdio_uart.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/card/sdio_uart.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/configs/BF527-EZKIT_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/BF527-EZKIT_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/pci-direct.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pci-direct.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/cm-x270.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/cm-x270.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/onenand.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/onenand.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/mmc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/mmc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/eac.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/eac.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/board-sx1.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-sx1.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/board-palmz71.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-palmz71.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/board-palmtt.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-palmtt.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/board-palmte.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-palmte.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-omap/board-2430sdp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/board-2430sdp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/blizzard.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/blizzard.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-davinci/i2c.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-davinci/i2c.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/paravirt.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/paravirt.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/page_64.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/page_64.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/page_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/page_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/page.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/page.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/numaq.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/numaq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/numa_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/numa_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-bf527/boards/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/boards/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-bf527/boards/ezkit.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/boards/ezkit.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/blackfin/mach-bf527/head.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/head.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-bf527/ints-priority.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/ints-priority.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mach-bf533/boards/H8606.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/H8606.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/lguest/x86/core.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/x86/core.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/mmc/core/sdio_cis.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/sdio_cis.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/core/sdio_io.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/core/sdio_io.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/lguest/lguest_device.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/lguest/lguest_device.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/numa_32.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/numa_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/nmi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/nmi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mmc/host/mmc_spi.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/host/mmc_spi.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/leds/leds-cm-x270.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-cm-x270.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-common/arch_checks.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/arch_checks.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/msr.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/msr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/msr-index.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/msr-index.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mpspec_def.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mpspec_def.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/cpufreq/speedstep-ich.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/speedstep-ich.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/iwlwifi/iwl-helpers.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-helpers.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-eeprom.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-eeprom.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/cpufreq/powernow-k8.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/powernow-k8.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-debug.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-debug.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/cpufreq/powernow-k7.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/powernow-k7.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/iwlwifi/iwl-commands.h - 1.3 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-commands.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mpspec.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mpspec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/cpufreq/p4-clockmod.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/p4-clockmod.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/cpufreq/elanfreq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/elanfreq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/cpufreq-nforce2.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/maps/pxa2xx-flash.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/maps/pxa2xx-flash.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mmzone_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mmzone_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/touchscreen/jornada720_ts.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/jornada720_ts.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/nand/bf5xx_nand.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/bf5xx_nand.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mmu_context_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mmu_context_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mmu_context_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mmu_context_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mmu_context.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mmu_context.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/proc/proc_net.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/proc/proc_net.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/mman.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mman.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mce.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mce.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/mach-voyager/irq_vectors.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-voyager/irq_vectors.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/reboot_fixups_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/reboot_fixups_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-voyager/entry_arch.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-voyager/entry_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/relocate_kernel_32.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/relocate_kernel_32.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rt2x00/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rt2x00/rt2400pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2400pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/input/keyboard/jornada720_kbd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/jornada720_kbd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2400pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2400pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/keyboard/bf54x-keys.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/bf54x-keys.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2500pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2500pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/mach-visws/smpboot_hooks.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/smpboot_hooks.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-visws/setup_arch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/setup_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2500pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2500pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-visws/piix4.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/piix4.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-visws/mach_apicdef.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/mach_apicdef.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-visws/mach_apic.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/mach_apic.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-visws/lithium.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/lithium.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-visws/irq_vectors.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/irq_vectors.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-visws/entry_arch.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/entry_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-visws/cobalt.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-visws/cobalt.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2500usb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2500usb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/rt2x00/rt2500usb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2500usb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2x00.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/mach-summit/mach_mpspec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-summit/mach_mpspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2x00config.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00config.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/mach-summit/mach_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-summit/mach_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2x00debug.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00debug.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-numaq/mach_mpspec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-numaq/mach_mpspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-numaq/mach_mpparse.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-numaq/mach_mpparse.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-numaq/mach_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-numaq/mach_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-generic/mach_mpspec.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-generic/mach_mpspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-generic/mach_mpparse.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-generic/mach_mpparse.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rt2x00/rt2x00dev.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00dev.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/mach-es7000/mach_mpspec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-es7000/mach_mpspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/mach-es7000/mach_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-es7000/mach_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-default/smpboot_hooks.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/smpboot_hooks.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-default/setup_arch.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/setup_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2x00firmware.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00firmware.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/cpmac.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/cpmac.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/cgroup.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/cgroup.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/rt2x00/rt2x00lib.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00lib.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/rt2x00/rt2x00mac.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00mac.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2x00pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-default/mach_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/mach_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2x00pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/mach-default/irq_vectors_limits.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/irq_vectors_limits.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2x00reg.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00reg.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt2x00rfkill.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00rfkill.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/rt2x00/rt2x00usb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00usb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/mach-default/irq_vectors.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/irq_vectors.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/cpu/cpufreq/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpufreq/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rt2x00/rt2x00usb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00usb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt61pci.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt61pci.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/rt2x00/rt61pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt61pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/cpu.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/cpu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/e1000e/defines.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000e/defines.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/cpu/common.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/common.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/cpu/centaur.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/centaur.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/bugs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/bugs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/amd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/amd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/cpu/addon_cpuid_features.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/addon_cpuid_features.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt73usb.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt73usb.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/cpu/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/bugs_64.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/bugs_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rt2x00/rt73usb.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt73usb.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-4965.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/asm-offsets_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/asm-offsets_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/arch_hooks.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/arch_hooks.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/iwlwifi/iwl-4965.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/asm-offsets_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/asm-offsets_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/iwlwifi/iwl-4965-rs.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965-rs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-4965-rs.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965-rs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/apm_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/apm_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/apic_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/apic_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/apic_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/apic_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/e1000e/e1000.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000e/e1000.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/aperture_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/aperture_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/setup64.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/setup64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/setup_32.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/setup_32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/alternative.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/alternative.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/setup_64.c - 1.6 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/setup_64.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/e1000e/ethtool.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000e/ethtool.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ide/legacy/ide_platform.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/ide_platform.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/alternative.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/alternative.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/e1000e/netdev.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000e/netdev.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/e1000e/param.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/e1000e/param.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/dca.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dca.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-default/entry_arch.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-default/entry_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/signal_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/signal_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/signal_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/signal_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/smpcommon_32.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/smpcommon_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/srat_32.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/srat_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/stacktrace.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/stacktrace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/summit_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/summit_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-bigsmp/mach_mpspec.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-bigsmp/mach_mpspec.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/i2c/busses/i2c-davinci.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-davinci.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/sys_i386_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/sys_i386_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/acpi.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/acpi.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/fec_mpc52xx.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/fec_mpc52xx.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/kernel/syscall_table_32.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/syscall_table_32.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/time_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/time_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/configs/rts7751r2dplus_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/rts7751r2dplus_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/time_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/time_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/configs/rts7751r2d1_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/rts7751r2d1_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/mach-bigsmp/mach_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/mach-bigsmp/mach_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/configs/magicpanelr2_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/magicpanelr2_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/pci/dmar.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/dmar.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/traps_32.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/traps_32.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/iwlwifi/iwl-4965-hw.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965-hw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/traps_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/traps_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/tsc_32.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tsc_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/tsc_64.c - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tsc_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/iwlwifi/iwl-3945.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/tsc_sync.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tsc_sync.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/vmi_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vmi_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pci/intel-iommu.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/intel-iommu.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/hwmon/i5k_amb.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/i5k_amb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/iwlwifi/iwl-3945.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ibm_emac/Kconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_emac/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/vmiclock_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vmiclock_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/vmlinux_32.lds.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vmlinux_32.lds.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/Kbuild - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/Kbuild.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/vmlinux_64.lds.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vmlinux_64.lds.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/renesas/x3proto/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/x3proto/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/x3proto/ilsel.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/x3proto/ilsel.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/x3proto/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/x3proto/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/vsmp_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vsmp_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/renesas/r7780rp/irq-r7780mp.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/r7780rp/irq-r7780mp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h kernel/cgroup.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/cgroup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/vsyscall_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/vsyscall_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/sh/boards/magicpanelr2/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/magicpanelr2/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/magicpanelr2/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/magicpanelr2/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/magicpanelr2/Kconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/magicpanelr2/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/x8664_ksyms_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/x8664_ksyms_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/lguest/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lguest/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/pcmcia/electra_cf.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/electra_cf.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/pcmcia/pxa2xx_cm_x270.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pcmcia/pxa2xx_cm_x270.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/iwlwifi/iwl-3945-rs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945-rs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/iwl-3945-hw.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945-hw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/lguest/boot.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lguest/boot.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/iwlwifi/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/lib/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/iwlwifi/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/current.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/current.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/current_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/current_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/current_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/current_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/desc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/desc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/desc_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/desc_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/device.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/device.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/copy_user_64.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/copy_user_64.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/lib/copy_user_nocache_64.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/copy_user_nocache_64.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-v850/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/rtc/rtc-ds1374.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-ds1374.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/acpi/processor.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/acpi/processor.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h kernel/marker.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/marker.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/kernel/acpi/boot.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/acpi/boot.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/lib/delay_32.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/delay_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/lib/delay_64.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/delay_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/dma-mapping.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/dma-mapping.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ibm_newemac/core.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_newemac/core.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/dmi.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/dmi.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/dwarf2.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/dwarf2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ibm_newemac/core.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_newemac/core.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mips/mach-jmr3927/war.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-jmr3927/war.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/dwarf2_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/dwarf2_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/dwarf2_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/dwarf2_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/e820.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/e820.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/xmit.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/xmit.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/xmit.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/xmit.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ibm_newemac/debug.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_newemac/debug.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/fschmd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/fschmd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/f75375s.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/f75375s.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/f71882fg.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/f71882fg.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/ibm_newemac/emac.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_newemac/emac.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/ibm_newemac/rgmii.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ibm_newemac/rgmii.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-mips/mach-mips/war.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mach-mips/war.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/hwmon/adt7470.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adt7470.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/radio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/radio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/pio.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/pio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43legacy/pio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/pio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/phy.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/phy.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/ia64/kernel/.gitignore - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kernel/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ipg.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ipg.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/Kconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/Kconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h kernel/ns_cgroup.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/ns_cgroup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/ipg.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ipg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/lib/getuser_32.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/getuser_32.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/getuser_64.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/getuser_64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/msr-on-cpu.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/msr-on-cpu.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/putuser_32.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/putuser_32.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/putuser_64.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/putuser_64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/lib/thunk_64.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/thunk_64.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/lib/usercopy_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/lib/usercopy_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hid/hidraw.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/hidraw.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/ivtv.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ivtv.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/ivtvfb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ivtvfb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ixgbe/ixgbe.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgbe/ixgbe.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ixgbe/ixgbe_82598.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgbe/ixgbe_82598.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ixgbe/ixgbe_ethtool.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgbe/ixgbe_ethtool.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/dma/ioat_dma.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioat_dma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/dma/ioat_dca.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioat_dca.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/ext4/group.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/group.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/dma/ioat.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/ioat.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ixgbe/ixgbe_main.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgbe/ixgbe_main.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h kernel/sysctl_check.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sysctl_check.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mach-default/setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-default/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/dca/dca-sysfs.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dca/dca-sysfs.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-es7000/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-es7000/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-es7000/es7000plat.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-es7000/es7000plat.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-generic/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-generic/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/cpm_common.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/cpm_common.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-generic/bigsmp.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-generic/bigsmp.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/sysdev/bestcomm/sram.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/bestcomm/sram.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/bestcomm/gen_bd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/bestcomm/gen_bd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/bestcomm/gen_bd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/bestcomm/gen_bd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/bestcomm/bestcomm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/bestcomm/bestcomm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/dca/dca-core.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dca/dca-core.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-generic/probe.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-generic/probe.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-visws/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-visws/mpparse.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/mpparse.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mach-visws/reboot.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/reboot.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-visws/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-visws/traps.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/traps.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-visws/visws_apic.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-visws/visws_apic.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-voyager/setup.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-voyager/setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mach-voyager/voyager_smp.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-voyager/voyager_smp.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/ixgbe/ixgbe_type.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ixgbe/ixgbe_type.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/cpuidle/sysfs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpuidle/sysfs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/cpuidle/governors/menu.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpuidle/governors/menu.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/cpuidle/governors/ladder.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpuidle/governors/ladder.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/cpuidle/cpuidle.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cpuidle/cpuidle.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h mm/page_isolation.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/page_isolation.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/math-emu/reg_constant.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/math-emu/reg_constant.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/kexec.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/kexec.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/maple.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/maple.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/marker.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/marker.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/au1000/mtx-1/platform.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/mtx-1/platform.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/8xx_immap.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/8xx_immap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/cell-regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cell-regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/clk_interface.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/clk_interface.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mmc/sdio_func.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mmc/sdio_func.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/cpm.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cpm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/irqflags.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/irqflags.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/irq_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/irq_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/irq_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/irq_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/irq.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/ipi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/ipi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/virtio_console.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/virtio_console.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/cpm2.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cpm2.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/cifs/cifsacl.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifsacl.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/mips/configs/lasat_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/lasat_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/cifs/cifs_spnego.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifs_spnego.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/cifs/cifs_spnego.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifs_spnego.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/iommu.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/iommu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mv643xx_eth.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mv643xx_eth.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/fw/arc/identify.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/fw/arc/identify.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/io_apic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/io_apic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/io_64.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/io_64.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/io_32.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/io_32.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/io.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/niu.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/niu.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/9p/trans_virtio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/9p/trans_virtio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/niu.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/niu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mm/discontig_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/discontig_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/mm/hugetlbpage.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/hugetlbpage.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/init_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/init_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/init_64.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/init_64.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/idle.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/idle.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mm/k8topology_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/k8topology_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/ide.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/ide.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/numa_64.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/numa_64.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sparc64/backoff.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/backoff.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mm/pgtable_32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pgtable_32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/mm/srat_64.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/srat_64.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/oprofile/nmi_int.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/oprofile/nmi_int.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/pci/Makefile_32 - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/Makefile_32.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc/irqflags.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/irqflags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/pci/Makefile_64 - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/Makefile_64.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/pci/acpi.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/acpi.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/pci/common.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/common.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/pci/direct.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/direct.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/early.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/early.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/pci/fixup.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/fixup.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/i386.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/i386.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/init.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/init.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/pci/irq.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/irq.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/lasat/serial.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/lasat/serial.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/pci/k8-bus_64.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/k8-bus_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/pci/legacy.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/legacy.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/mmconfig-shared.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/mmconfig-shared.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/i8259.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/i8259.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/phy/mdio-bitbang.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/phy/mdio-bitbang.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/86xx/mpc8610_hpcd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/mpc8610_hpcd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/numa.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/numa.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/platforms/85xx/mpc85xx_ds.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/mpc85xx_ds.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/pci/pci.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/pci.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/pageblock-flags.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pageblock-flags.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/i387.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/i387.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kdb/Makefile_64 - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kdb/Makefile_64.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/hw_irq_64.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hw_irq_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/exception.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/exception.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/hw_irq_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hw_irq_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/highmem.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/highmem.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kdb/Makefile_32 - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kdb/Makefile_32.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kdb/ChangeLog - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kdb/ChangeLog.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/bluetooth/btusb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/bluetooth/btusb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/hydra.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hydra.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/hw_irq.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hw_irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/immap_cpm2.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/immap_cpm2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/hpet.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hpet.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/block/virtio_blk.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/virtio_blk.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-powerpc/kgdb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kgdb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/highmem.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/highmem.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/wireless/nl80211.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/wireless/nl80211.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/rfkill/rfkill-input.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/rfkill/rfkill-input.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/ia32/sys_ia32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/ia32/sys_ia32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-powerpc/mmu-40x.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mmu-40x.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/mpc52xx_psc.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc52xx_psc.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/xilinx_intc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/xilinx_intc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/hardirq.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hardirq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/wdt_pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wdt_pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/wdt977.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wdt977.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/wdt285.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wdt285.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/wdrtas.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wdrtas.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/wd501p.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wd501p.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/wafer5823wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/wafer5823wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/w83977f_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/w83977f_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/w83877f_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/w83877f_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/ia32/ia32entry.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/ia32/ia32entry.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/ia32/ia32_signal.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/ia32/ia32_signal.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/ia32/ia32_aout.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/ia32/ia32_aout.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/w83697hf_wdt.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/w83697hf_wdt.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/watchdog/w83627hf_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/w83627hf_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/softdog.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/softdog.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/smsc37b787_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/smsc37b787_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/shwdt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/shwdt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/scx200_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/scx200_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/sc520_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sc520_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/sc1200wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sc1200wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/configs/x86_64_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/configs/x86_64_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/configs/i386_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/configs/i386_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/sbc_epx_c3.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sbc_epx_c3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/sbc8360.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sbc8360.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/boot/video-vga.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/video-vga.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/sbc60xxwdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sbc60xxwdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/sa1100_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sa1100_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/s3c2410_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/s3c2410_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/rm9k_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/rm9k_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/pnx4008_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/pnx4008_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/pcwd_usb.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/pcwd_usb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/boot/pmjump.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/pmjump.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/pm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/pm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/memory.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/memory.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/main.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/main.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/pcwd_pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/pcwd_pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/pcwd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/pcwd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/pc87413_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/pc87413_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/boot/edd.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/edd.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/cpucheck.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/cpucheck.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/omap_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/omap_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/mv64x60_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mv64x60_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/mtx-1_wdt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mtx-1_wdt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/mpcore_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mpcore_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/mpc8xx_wdt.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mpc8xx_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/mpc83xx_wdt.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mpc83xx_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/mpc5200_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mpc5200_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/boot/cpu.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/cpu.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/mixcomwd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/mixcomwd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/machzwd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/machzwd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/ks8695_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ks8695_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/ixp4xx_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ixp4xx_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/boot/compressed/relocs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/compressed/relocs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/compressed/head_64.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/compressed/head_64.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/boot.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/boot.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/boot/a20.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/a20.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/ixp2000_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ixp2000_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/iop_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/iop_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/Kconfig.debug - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/Kconfig.debug.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/Kconfig.cpu - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/Kconfig.cpu.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/watchdog/indydog.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/indydog.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/ibmasr.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ibmasr.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/ib700wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ib700wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/iTCO_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/iTCO_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/iTCO_vendor_support.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/iTCO_vendor_support.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/i6300esb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/i6300esb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/eurotechwdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/eurotechwdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/ep93xx_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ep93xx_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/davinci_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/davinci_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/sctp/auth.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sctp/auth.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/watchdog/cpu5wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/cpu5wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/booke_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/booke_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/bamboo.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/bamboo.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/bfin_wdt.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/bfin_wdt.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/watchdog/at91rm9200_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/at91rm9200_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/kilauea.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/kilauea.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/at32ap700x_wdt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/at32ap700x_wdt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/watchdog/ar7_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/ar7_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/alim7101_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/alim7101_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/alim1535_wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/alim1535_wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/advantechwdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/advantechwdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/acquirewdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/acquirewdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/watchdog/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/virtio/virtio_ring.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/virtio/virtio_ring.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/sched/act_nat.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/act_nat.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/virtio/virtio.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/virtio/virtio.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-ppc/irq_regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/irq_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/cfg.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/cfg.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/geode.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/geode.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/genapic_64.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/genapic_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/video/uvesafb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/uvesafb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/genapic_32.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/genapic_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/mpc8572ds.dts - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8572ds.dts.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/boot/dts/mpc8610_hpcd.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8610_hpcd.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/netfilter/xt_time.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/xt_time.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h net/mac80211/util.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/util.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/tx.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/tx.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/sequoia.dts - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sequoia.dts.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/boot/dts/walnut.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/walnut.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/rx.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rx.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/mac80211/key.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/key.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43/debugfs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/debugfs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/tehuti.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tehuti.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/tehuti.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/tehuti.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/spi/mmc_spi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/mmc_spi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/ssb/ssb.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ssb/ssb.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-s390/cpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/cpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ata/pata_bf54x.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_bf54x.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ata/pata_at32.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_at32.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ata/pata_acpi.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/pata_acpi.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/configs/ep88xc_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ep88xc_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/ata/libata-pmp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ata/libata-pmp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/gart.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/gart.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/acpi/sbshc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/sbshc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/linux/usb/gadget.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/gadget.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-x86/fixmap_64.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/fixmap_64.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/fixmap_32.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/fixmap_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-x86/fixmap.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/fixmap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/configs/mpc8610_hpcd_defconfig - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc8610_hpcd_defconfig.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h crypto/authenc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/crypto/authenc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/video/bf54x-lq043fb.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/bf54x-lq043fb.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/configs/pq2fads_defconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/pq2fads_defconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/asm-sh/cpu-sh3/gpio.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh3/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/virtio_9p.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_9p.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/virtio_blk.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_blk.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/virtio_config.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_config.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/virtio_console.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_console.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kernel/cpu_setup_44x.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/cpu_setup_44x.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/virtio_net.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_net.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/virtio_ring.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_ring.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/elf.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/elf.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/kernel/head_40x.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/head_40x.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/virtio_net.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/virtio_net.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h include/asm-x86/e820_64.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/e820_64.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/media/videobuf-dma-sg.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/videobuf-dma-sg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/e820_32.h - 1.5 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/e820_32.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h include/media/videobuf-vmalloc.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/videobuf-vmalloc.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/adm8211.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/adm8211.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/adm8211.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/adm8211.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43/b43.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/b43.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43/debugfs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/debugfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/dma.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/dma.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/b43/dma.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/dma.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43/lo.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/lo.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43/lo.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/lo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/main.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/main.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/b43/main.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/main.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/xen/manage.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/manage.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/phy.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/phy.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/b43/phy.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/phy.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/serial/ch341.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/ch341.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43/pio.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/pio.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/dreamcast/maple.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/dreamcast/maple.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/pio.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/pio.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43/rfkill.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/rfkill.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/heartbeat.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/heartbeat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kernel/softemu8xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/softemu8xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/ilsel.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/ilsel.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/xmit.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/xmit.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43/xmit.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/xmit.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/b43legacy/b43legacy.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/b43legacy.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/magicpanelr2.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/magicpanelr2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/ohci-ssb.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-ssb.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/net_namespace.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/net_namespace.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/net/wireless/b43legacy/dma.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/dma.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h drivers/net/wireless/b43legacy/dma.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/main.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/main.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/xen/xen-ops.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/xen-ops.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/xen/xen-head.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/xen-head.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/xen/xen-asm.S - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/xen-asm.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/xen/time.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/time.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/xen/smp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/smp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/gadget/atmel_usba_udc.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/atmel_usba_udc.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/xen/setup.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/setup.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/xen/multicalls.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/multicalls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/xen/multicalls.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/multicalls.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/xen/mmu.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/mmu.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/xen/mmu.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/mmu.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h arch/x86/xen/enlighten.c - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/enlighten.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h net/ipv4/inet_fragment.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/inet_fragment.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/xen/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/xen/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/xen/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/vga.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/vga.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/vdso/vma.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/vma.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/vdso/vgetcpu.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/vgetcpu.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/vdso/vclock_gettime.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/vclock_gettime.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/ssb/pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ssb/pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/ssb/main.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ssb/main.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/powerpc/platforms/82xx/mpc8272_ads.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/82xx/mpc8272_ads.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/82xx/pq2ads-pci-pic.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/82xx/pq2ads-pci-pic.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ssb/Kconfig - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ssb/Kconfig.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h arch/x86/pci/visws.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/visws.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/sh/maple/maple.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/sh/maple/maple.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/vdso/Makefile - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/Makefile.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h drivers/serial/mcf.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/mcf.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/blackfin/mach-bf537/boards/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-bf533/boards/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf533/boards/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-bf527/boards/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf527/boards/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/H8606_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/H8606_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/Kconfig.debug - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/Kconfig.debug.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/kernel/stacktrace.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/kernel/stacktrace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/sbc7240_wdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sbc7240_wdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/it8712f_wdt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/it8712f_wdt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/x86_64/uefi.txt - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/uefi.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h virt/kvm/kvm_main.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/kvm_main.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/sched/cls_flow.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sched/cls_flow.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/ABI/testing/sysfs-block - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-block.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h virt/kvm/iodev.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/iodev.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/ABI/testing/sysfs-firmware-acpi - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ABI/testing/sysfs-firmware-acpi.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/block/brd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/block/brd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h virt/kvm/ioapic.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/ioapic.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/cdrom/gdrom.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/cdrom/gdrom.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/iocontext.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/iocontext.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/ipc_namespace.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/ipc_namespace.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/kvm_host.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/kvm_host.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/memcontrol.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/memcontrol.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/memstick.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/memstick.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/mfd/asic3.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mfd/asic3.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/acpi/wmi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/acpi/wmi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/controllers/memory.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/controllers/memory.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/edac.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/edac.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/pcmcia/ipwireless/hardware.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/hardware.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/pcmcia/ipwireless/hardware.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/hardware.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/pcmcia/ipwireless/main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/pcmcia/ipwireless/main.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/main.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/pcmcia/ipwireless/network.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/network.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/pcmcia/ipwireless/network.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/network.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/pcmcia/ipwireless/tty.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/pcmcia/ipwireless/tty.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h block/blk.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h block/blk-tag.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-tag.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h block/blk-settings.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-settings.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h block/blk-merge.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-merge.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h block/blk-map.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-map.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h block/blk-exec.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-exec.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h block/blk-core.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/block/blk-core.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/xtensa/platforms/iss/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/xtensa/platforms/iss/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/xilinx_hwicap/buffer_icap.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/xilinx_hwicap/buffer_icap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/i2c/chips/pcf8575 - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/i2c/chips/pcf8575.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/xilinx_hwicap/fifo_icap.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/xilinx_hwicap/fifo_icap.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/char/xilinx_hwicap/xilinx_hwicap.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/xilinx_hwicap/xilinx_hwicap.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/char/xilinx_hwicap/xilinx_hwicap.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/xilinx_hwicap/xilinx_hwicap.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/crypto/hifn_795x.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/crypto/hifn_795x.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/edac/cell_edac.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/cell_edac.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/edac/mpc85xx_edac.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/mpc85xx_edac.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/edac/mv64x60_edac.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/edac/mv64x60_edac.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/laptops/acer-wmi.txt - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/laptops/acer-wmi.txt.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/laptops/thinkpad-acpi.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/laptops/thinkpad-acpi.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/s3c24xx/s3c2412-i2s.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c2412-i2s.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/s3c24xx/s3c2412-i2s.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/s3c24xx/s3c2412-i2s.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/networking/can.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/networking/can.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/pxa/e800_wm9712.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/pxa/e800_wm9712.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/vdso/vdso32.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/vdso32.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/vdso/vdso32-setup.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/vdso/vdso32-setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/fsl/mpc8610_hpcd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/mpc8610_hpcd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/pm_qos_params.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pm_qos_params.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/fsl/fsl_ssi.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/fsl_ssi.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/fsl/fsl_ssi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/fsl_ssi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/fsl/fsl_dma.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/fsl_dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/gpio/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/soc/fsl/fsl_dma.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/fsl_dma.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/gpio/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/fsl/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/fsl/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/powerpc/qe_firmware.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/powerpc/qe_firmware.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/power/hibernate_asm_32.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/power/hibernate_asm_32.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/power/hibernate_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/power/hibernate_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/tlv320aic3x.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/tlv320aic3x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/tlv320aic3x.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/tlv320aic3x.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/power/cpu_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/power/cpu_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/gpio/gpiolib.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/gpiolib.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/gpio/mcp23s08.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/mcp23s08.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h Documentation/scheduler/sched-domains.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scheduler/sched-domains.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/gpio/pca953x.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/pca953x.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/gpio/pcf857x.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/gpio/pcf857x.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hid/hid-input-quirks.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hid/hid-input-quirks.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/rcuclassic.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rcuclassic.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/rcupreempt.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rcupreempt.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/hwmon/ads7828.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ads7828.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/adt7473.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/adt7473.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/res_counter.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/res_counter.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/mm/pageattr.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pageattr.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/pageattr-test.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pageattr-test.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/unaligned-memory-access.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/unaligned-memory-access.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/hwmon/w83l786ng.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/w83l786ng.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mm/ioremap.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/ioremap.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/mm/fault.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/fault.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/spi/mcp23s08.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/spi/mcp23s08.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/i2c/chips/pcf8575.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/chips/pcf8575.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/sunrpc/svc_rdma.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/sunrpc/svc_rdma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ide/arm/palm_bk3710.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/arm/palm_bk3710.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/ide/ide-cd_ioctl.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/ide-cd_ioctl.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/thermal.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/thermal.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h Documentation/x86_64/00-INDEX - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/x86_64/00-INDEX.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mach-rdc321x/platform.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mach-rdc321x/platform.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/Kconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/Kconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/linux/usb/rndis_host.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/usb/rndis_host.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/linux/virtio_balloon.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_balloon.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/virtio_pci.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kvm/x86_emulate.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/x86_emulate.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kvm/x86.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/x86.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/vmx.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/vmx.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kvm/vmx.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/vmx.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/svm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/svm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/paging_tmpl.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/paging_tmpl.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/mmu.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/mmu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kvm/mmu.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/mmu.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/lapic.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/lapic.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kvm/lapic.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/lapic.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kvm/irq.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/irq.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kvm/i8259.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/i8259.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/at91cap9adk_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/at91cap9adk_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kvm/Makefile - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/Makefile.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/configs/eseries_pxa_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/eseries_pxa_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kvm/Kconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/Kconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/media/v4l2-i2c-drv-legacy.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/v4l2-i2c-drv-legacy.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/virtuoso.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/virtuoso.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/kernel/atags.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/atags.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/step.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/step.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/kernel/kprobes.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/kernel/kprobes.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h sound/pci/oxygen/oxygen_pcm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen_pcm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/reboot.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/reboot.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/netns/ipv4.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netns/ipv4.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/oxygen_mixer.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen_mixer.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/oxygen_lib.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen_lib.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/oxygen_io.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen_io.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/at91cap9.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91cap9.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/at91cap9_devices.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/at91cap9_devices.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/oxygen.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/oxygen.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/oxygen.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h sound/pci/oxygen/hifier.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/pci/oxygen/hifier.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/acpi/reboot.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/acpi/reboot.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-alpha/a.out-core.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/a.out-core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/a.out-core.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/a.out-core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91cap9.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91cap9.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-at91/board-cap9adk.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-cap9adk.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-at91/at91cap9_matrix.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91cap9_matrix.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/npe.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/npe.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ixp4xx/qmgr.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ixp4xx/qmgr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/board.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/board.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/entry-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/entry-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/ptrace.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/ptrace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/net/netns/ipv6.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/netns/ipv6.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-msm/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/paravirt_patch_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/paravirt_patch_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/paravirt_patch_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/paravirt_patch_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/paravirt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/paravirt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/net/sctp/checksum.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/net/sctp/checksum.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/vdso.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/vdso.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/kvm_x86_emulate.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/kvm_x86_emulate.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/kvm_host.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/kvm_host.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/ldt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/ldt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/msm_iomap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/msm_iomap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ixp4xx/ixp4xx_npe.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/ixp4xx_npe.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-ixp4xx/ixp4xx_qmgr.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ixp4xx/ixp4xx_qmgr.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-msm/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/migrate.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/migrate.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/ext4/mballoc.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/mballoc.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-msm/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-msm/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-msm/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ks8695/pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/kvm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/kvm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/gpio.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/kprobes.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/kprobes.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-msm/board-halibut.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/board-halibut.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/common.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/common.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/dma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/dma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/idle.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/idle.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/io.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/io.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-msm/timer.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-msm/timer.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/kdebugfs.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/kdebugfs.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/efi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/efi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-x86/asm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/asm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/io_delay.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/io_delay.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/board-h2-mmc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-h2-mmc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap1/board-h3-mmc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-h3-mmc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/nes/nes.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/nes/nes.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/nes/nes_cm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_cm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/nes/nes_cm.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_cm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-omap1/board-sx1-mmc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/board-sx1-mmc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/i387.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/i387.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/infiniband/hw/nes/nes_hw.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_hw.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-arm/arch-omap/nand.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/nand.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/nes/nes_hw.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_hw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/colibri.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/colibri.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/cpu-pxa.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/cpu-pxa.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/devices.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/devices.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/eseries.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/eseries.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/nes/nes_utils.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_utils.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/infiniband/hw/nes/nes_verbs.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/nes/nes_verbs.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-pxa/gpio.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/gpio.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/syscalls.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/syscalls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/littleton.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/littleton.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/magician.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/magician.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/colibri.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/colibri.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/pcm027.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pcm027.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/mach-pxa/pcm990-baseboard.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/pcm990-baseboard.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/efi_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/efi_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/littleton.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/littleton.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/magician.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/magician.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/mfp-pxa3xx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa3xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pcm027.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pcm027.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pcm990_baseboard.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pcm990_baseboard.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/reboot.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/reboot.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pxa27x_keypad.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa27x_keypad.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/arch-pxa/pxa2xx-regs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa2xx-regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/regs-ssp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/regs-ssp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/board-eb.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/board-eb.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/efi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/efi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/input/keyboard/pxa27x_keypad.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/pxa27x_keypad.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/input/keyboard/tosakbd.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/tosakbd.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/x86/kernel/cpu/feature_names.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/cpu/feature_names.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/backtracetest.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/backtracetest.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/leds/leds-atmel-pwm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-atmel-pwm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/cifs/dns_resolve.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/dns_resolve.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/x86/kernel/acpi/sleep.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/acpi/sleep.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/pid_namespace.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/pid_namespace.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/pm_qos_params.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/pm_qos_params.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2412/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/cifs/cifs_dfs_ref.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/cifs/cifs_dfs_ref.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mach-s3c2412/sleep.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2412/sleep.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/rcuclassic.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rcuclassic.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h kernel/rcupreempt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rcupreempt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h kernel/rcupreempt_trace.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/rcupreempt_trace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/res_counter.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/res_counter.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/arm/mm/proc-feroceon.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mm/proc-feroceon.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h lib/scatterlist.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/scatterlist.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/radio/radio-si470x.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/radio/radio-si470x.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/arm/plat-omap/i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-omap/i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/boot/compressed/misc.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/boot/compressed/misc.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/cs5345.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cs5345.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/cx23885/cx23885-vbi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-vbi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx23885/cx23885-video.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-video.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/unistd_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/unistd_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-s3c24xx/s3c244x-clock.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-s3c24xx/s3c244x-clock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/unistd_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/unistd_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h mm/memcontrol.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/mm/memcontrol.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/uaccess_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/uaccess_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/uaccess_32.h - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/uaccess_32.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/tlb_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/tlb_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/system_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/system_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/system_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/system_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/string_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/string_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/string_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/string_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/spi.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/spi.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/m52790.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/m52790.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/sdk7780.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sdk7780.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/processor_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/processor_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/kprobes.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/kprobes.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/txx9wdt.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/txx9wdt.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/sb_wdog.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/sb_wdog.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/boards/atstk1000/atstk1003.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/atstk1003.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/boards/atstk1000/atstk1004.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/boards/atstk1000/atstk1004.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/watchdog/hpwdt.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/hpwdt.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/avr32/configs/atstk1003_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/configs/atstk1003_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/avr32/configs/atstk1004_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/configs/atstk1004_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-avr32/arch-at32ap/at32ap700x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/at32ap700x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/cplb-mpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/cplb-mpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/virtio/virtio_pci.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/virtio/virtio_pci.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/virtio/virtio_balloon.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/virtio/virtio_balloon.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-blackfin/mach-bf548/cdefBF547.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/cdefBF547.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-blackfin/mach-bf548/defBF547.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/defBF547.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/processor_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/processor_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/posix_types_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/posix_types_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/posix_types_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/posix_types_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/pgtable_64.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pgtable_64.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/pgtable_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/pgtable_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/media/video/pvrusb2/pvrusb2-devattr.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-devattr.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/media/video/pvrusb2/pvrusb2-devattr.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-devattr.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-sh/mmu_context_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mmu_context_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/mach-at32ap/at32ap700x.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/at32ap700x.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/mmu_context_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/mmu_context_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/irqflags_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/irqflags_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/irqflags_32.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/irqflags_32.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/io_trapped.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/io_trapped.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/fpu.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/fpu.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh5/timer.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/timer.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/registers.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/registers.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/mmu_context.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/mmu_context.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/backlight/omap1_bl.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/backlight/omap1_bl.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/cacheflush.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/cacheflush.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/cache.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/cache.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh5/addrspace.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh5/addrspace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/kernel/cplb-mpu/cacheinit.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/cplb-mpu/cacheinit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/kernel/cplb-nompu/cacheinit.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/cplb-nompu/cacheinit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/kernel/cplb-nompu/cplbhdlr.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/cplb-nompu/cplbhdlr.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/kernel/cplb-nompu/cplbinit.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/kernel/cplb-nompu/cplbinit.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh4/fpu.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh4/fpu.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/stk-webcam.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/stk-webcam.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/cpu-sh2a/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2a/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cpu-sh2/rtc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cpu-sh2/rtc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cmpxchg-irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cmpxchg-irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/cmpxchg-grb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/cmpxchg-grb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/checksum_64.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/checksum_64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/checksum_32.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/checksum_32.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/bitops-irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/bitops-irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/bitops-grb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/bitops-grb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/atomic-grb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/atomic-grb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/iuu_phoenix.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/iuu_phoenix.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/blackfin/mach-bf537/boards/minotaur.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf537/boards/minotaur.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/memstick/core/memstick.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/memstick/core/memstick.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/memstick/core/mspro_block.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/memstick/core/mspro_block.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/memstick/host/tifm_ms.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/memstick/host/tifm_ms.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mfd/asic3.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/asic3.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/misc/acer-wmi.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/acer-wmi.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/misc/atmel_pwm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/atmel_pwm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/host/ohci-sm501.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-sm501.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/usb/host/ohci-sh.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ohci-sh.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/airq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/airq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mach-common/ints-priority.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/ints-priority.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/mtd/nand/fsl_elbc_nand.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/fsl_elbc_nand.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/mtd/nand/orion_nand.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/orion_nand.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-ppc/cpm1.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ppc/cpm1.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/setjmp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/setjmp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/reg_fsl_emb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/reg_fsl_emb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/pasemi_dma.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/pasemi_dma.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/mpc512x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/mpc512x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/dcr-regs.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/dcr-regs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/cputhreads.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cputhreads.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-powerpc/cpm1.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/cpm1.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/bnx2x.c - 1.4 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/bnx2x.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/bnx2x_fw_defs.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_fw_defs.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/bnx2x_hsi.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_hsi.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/bnx2x_init.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_init.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/bnx2x_init_values.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_init_values.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/bnx2x_reg.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/bnx2x_reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v10/drivers/sync_serial.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v10/drivers/sync_serial.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/mm/tlb-sh5.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/tlb-sh5.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/mm/fault_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/fault_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/mm/fault_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/fault_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/mm/Makefile_32 - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/mm/Makefile_32.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/lib64/panic.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/lib64/panic.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/ehci-orion.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-orion.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/host/ehci-ixp4xx.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/ehci-ixp4xx.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/usb/gadget/printer.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/printer.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/vmlinux_64.lds.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/vmlinux_64.lds.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/vmlinux_32.lds.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/vmlinux_32.lds.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/traps_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/traps_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/cris/arch-v32/drivers/mach-a3/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/mach-a3/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/cris/arch-v32/drivers/mach-fs/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/drivers/mach-fs/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/time_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/time_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/time_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/time_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/syscalls_64.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/syscalls_64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/syscalls_32.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/syscalls_32.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/sys_sh32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/sys_sh32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/signal_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/signal_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/signal_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/signal_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/sh_ksyms_32.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/sh_ksyms_32.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/ptrace_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/ptrace_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/serial/ucc_uart.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/ucc_uart.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/ptrace_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/ptrace_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/process_64.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/process_64.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/process_32.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/process_32.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/serial/sc26xx.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/sc26xx.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/head_64.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/head_64.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/head_32.S - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/head_32.S.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v32/mach-a3/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/mach-a3/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/cris/arch-v32/mach-fs/Makefile - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/cris/arch-v32/mach-fs/Makefile.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/cpu/sh5/entry.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh5/entry.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mn10300/unistd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/unistd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/cpu/sh4a/setup-sh7763.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7763.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/kernel/cpu/sh4a/setup-sh7366.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7366.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/cpu/sh4/softfloat.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4/softfloat.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/thread_info.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/thread_info.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/cpu/irq/intc-sh5.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/irq/intc-sh5.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/kernel/Makefile_32 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/Makefile_32.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/drivers/pci/pci-sh5.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/pci-sh5.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/ses.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/ses.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/drivers/pci/ops-cayman.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/drivers/pci/ops-cayman.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/can/af_can.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/can/af_can.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mn10300/semaphore.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/semaphore.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mn10300/scatterlist.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/scatterlist.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/configs/sdk7780_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/sdk7780_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/can/bcm.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/can/bcm.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/can/raw.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/can/raw.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/configs/migor_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/migor_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-mn10300/ptrace.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/ptrace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/enc28j60.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/enc28j60.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boot/compressed/misc_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/misc_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boot/compressed/misc_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/misc_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boot/compressed/head_64.S - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/head_64.S.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boot/compressed/Makefile_64 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/Makefile_64.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boot/compressed/Makefile_32 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boot/compressed/Makefile_32.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/enc28j60_hw.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/enc28j60_hw.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/sh/boards/renesas/sdk7780/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/sdk7780/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/sdk7780/irq.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/sdk7780/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/sdk7780/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/sdk7780/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/sdk7780/Kconfig - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/sdk7780/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/renesas/migor/setup.c - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/migor/setup.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sh/boards/renesas/migor/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/renesas/migor/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/pci.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/pci.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/cayman/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/cayman/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/cayman/led.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/cayman/led.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/cayman/irq.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/cayman/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/cayman/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/cayman/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_82575.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_82575.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_82575.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_82575.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/igb/e1000_defines.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_defines.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_hw.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_hw.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/igb/e1000_mac.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_mac.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_mac.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_mac.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_nvm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_nvm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_phy.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_phy.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/e1000_regs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/e1000_regs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/igb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/igb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/igb_ethtool.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/igb_ethtool.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/igb/igb_main.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/igb/igb_main.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-mn10300/page.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/page.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/namei.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/namei.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/io.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/ide.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/ide.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68knommu/platform/coldfire/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/platform/coldfire/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68knommu/platform/coldfire/head.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/platform/coldfire/head.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68knommu/platform/coldfire/pit.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68knommu/platform/coldfire/pit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/ppc4xx_pci.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/ppc4xx_pci.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/sysdev/mpic_pasemi_msi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/mpic_pasemi_msi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/dma-mapping.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/dma-mapping.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/sysdev/cpm2.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/cpm2.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/sysdev/cpm1.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/sysdev/cpm1.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/configs/bcm47xx_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/bcm47xx_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/ps3_gelic_wireless.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ps3_gelic_wireless.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/ps3_gelic_wireless.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/ps3_gelic_wireless.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/r6040.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/r6040.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/configs/ip28_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/configs/ip28_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/scsi/aic94xx/aic94xx_sds.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/scsi/aic94xx/aic94xx_sds.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/ipv6/addrlabel.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/addrlabel.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/cell/spufs/sputrace.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spufs/sputrace.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/ath5k/ath5k.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/ath5k.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/base.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/base.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/base.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/base.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/debug.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/debug.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/debug.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/debug.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/hw.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/hw.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/ath5k/initvals.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/initvals.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/phy.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/phy.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/ath5k/reg.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/reg.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/85xx/tqm85xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/tqm85xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/85xx/sbc8560.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/sbc8560.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/b43/nphy.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43/nphy.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/83xx/sbc834x.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/sbc834x.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/83xx/mpc837x_rdb.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc837x_rdb.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/83xx/mpc837x_mds.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc837x_mds.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/b43legacy/rfkill.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/b43legacy/rfkill.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/83xx/mpc831x_rdb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/83xx/mpc831x_rdb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-4965-commands.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-4965-commands.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/mac80211/rc80211_pid.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rc80211_pid.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/mac80211/rc80211_pid_algo.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rc80211_pid_algo.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/mac80211/rc80211_pid_debugfs.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rc80211_pid_debugfs.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/libertas/cmd.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/libertas/cmd.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/512x/mpc5121_ads.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/mpc5121_ads.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/512x/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/512x/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/512x/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/44x/warp.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/warp.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/platforms/44x/warp-nand.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/44x/warp-nand.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h drivers/net/wireless/rndis_wlan.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rndis_wlan.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/net/wireless/rtl8180_dev.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rtl8180_dev.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/mips/mm/uasm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/uasm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mips/mm/uasm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mm/uasm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h security/smack/smack_lsm.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/smack/smack_lsm.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h security/selinux/netnode.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/netnode.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/arch-v32/mach-fs/hwregs/timer_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/timer_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/strmux_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/strmux_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/reg_map.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/reg_map.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/cio/io_sch.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/cio/io_sch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/storcenter_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/storcenter_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/pinmux_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/pinmux_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/marb_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/marb_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/sunrpc/xprtrdma/svc_rdma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprtrdma/svc_rdma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/ppc44x_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ppc44x_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h net/sunrpc/xprtrdma/svc_rdma_recvfrom.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/configs/mpc85xx_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc85xx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/configs/mpc83xx_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/mpc83xx_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/sunrpc/xprtrdma/svc_rdma_sendto.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprtrdma/svc_rdma_sendto.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h net/sunrpc/xprtrdma/svc_rdma_transport.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/sunrpc/xprtrdma/svc_rdma_transport.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/mn10300/boot/compressed/misc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/boot/compressed/misc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/kernel/entry.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/kernel/entry.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/kernel/gdb-stub.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/kernel/gdb-stub.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/kernel/mn10300-serial.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/kernel/mn10300-serial.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/kernel/module.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/kernel/module.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/mm/fault.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/mm/fault.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/kernel/time.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/kernel/time.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/char/sclp_cpi_sys.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_cpi_sys.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/mm/init.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/mm/init.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mn10300/mm/pgtable.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mn10300/mm/pgtable.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/mach-fs/hwregs/marb_bp_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/marb_bp_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/intr_vect_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/intr_vect_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/configs/ep8248e_defconfig - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ep8248e_defconfig.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/rtc/rtc-at91sam9.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-at91sam9.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/gio_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/gio_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/config_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/config_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/bif_slave_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/bif_slave_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/bif_dma_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/bif_dma_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/bif_core_defs.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/bif_core_defs.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/cuboot-warp.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/cuboot-warp.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/timer_defs_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/timer_defs_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/char/sclp_cmd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/char/sclp_cmd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/ep405.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/ep405.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/haleakala.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/haleakala.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/katmai.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/katmai.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/reg_map_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/reg_map_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/pinmux_defs_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/pinmux_defs_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/makalu.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/makalu.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/mpc5121ads.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc5121ads.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/mpc8315erdb.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8315erdb.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/mpc8378_rdb.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8378_rdb.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/mpc8377_mds.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8377_mds.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/mpc8377_rdb.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8377_rdb.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/mpc8378_mds.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8378_mds.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/mpc8379_mds.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8379_mds.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/mpc8379_rdb.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/mpc8379_rdb.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/s390/block/dasd_alias.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/block/dasd_alias.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/gio_defs_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/gio_defs_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h drivers/rtc/rtc-r9701.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/rtc/rtc-r9701.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/config_defs_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/config_defs_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h include/asm-cris/arch-v32/mach-fs/hwregs/asm/bif_core_defs_asm.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/arch-v32/mach-fs/hwregs/asm/bif_core_defs_asm.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/sbc8548.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sbc8548.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h samples/kobject/kset-example.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/samples/kobject/kset-example.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/rainier.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/rainier.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/sbc8349.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sbc8349.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/tqm8540.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8540.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/sbc8560.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sbc8560.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/storcenter.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/storcenter.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/stx_gp3_8560.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/stx_gp3_8560.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/taishan.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/taishan.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/tqm5200.dts - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm5200.dts.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h arch/powerpc/boot/dts/tqm8555.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8555.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/tqm8541.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8541.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/warp.dts - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/warp.dts.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/powerpc/boot/dts/tqm8560.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/tqm8560.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-frv/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-frv/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/bfin-t350mcqb-fb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/bfin-t350mcqb-fb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-h8300/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-h8300/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/kvm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kvm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-m32r/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m32r/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68k/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68k/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-m68knommu/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-m68knommu/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-cris/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-cris/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/dma/fsldma.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/dma/fsldma.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-alpha/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-alpha/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/adder875_defconfig - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/adder875_defconfig.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-arm/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mn10300/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mn10300/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-parisc/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-parisc/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kvm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kvm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h arch/sparc64/kernel/entry.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/entry.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-s390/kvm.h - 1.3 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kvm.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sh/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/power/pm.txt - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/pm.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/power/pm_qos_interface.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/pm_qos_interface.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/power/power_supply_class.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/power/power_supply_class.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/stacktrace.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/stacktrace.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/memstick/host/jmb38x_ms.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/memstick/host/jmb38x_ms.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-sparc64/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-um/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-um/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/scheduler/sched-rt-group.txt - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/scheduler/sched-rt-group.txt.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h include/asm-xtensa/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-xtensa/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-v850/kvm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-v850/kvm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/gpio.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/gpio.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h virt/kvm/kvm_trace.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/virt/kvm/kvm_trace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/omap/omap-pcm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/omap/omap-pcm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/DMA-attributes.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DMA-attributes.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/omap/omap-mcbsp.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/omap/omap-mcbsp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/omap/omap-mcbsp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/omap/omap-mcbsp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/omap/n810.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/omap/n810.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/DocBook/kgdb.tmpl - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/DocBook/kgdb.tmpl.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/omap/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/omap/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/davinci/davinci-pcm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/davinci/davinci-pcm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/davinci/davinci-i2s.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/davinci/davinci-i2s.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/davinci/davinci-i2s.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/davinci/davinci-i2s.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/davinci/davinci-evm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/davinci/davinci-evm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/davinci/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/davinci/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/wm9713.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm9713.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h sound/soc/codecs/wm9713.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/sound/soc/codecs/wm9713.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h security/selinux/netport.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/netport.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/filesystems/nfs-rdma.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/nfs-rdma.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h security/selinux/include/audit.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/selinux/include/audit.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h security/device_cgroup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/security/device_cgroup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h samples/firmware_class/firmware_sample_firmware_class.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/samples/firmware_class/firmware_sample_firmware_class.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/netfilter/nf_conntrack_proto_dccp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/netfilter/nf_conntrack_proto_dccp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/wext.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/wext.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/ftrace.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ftrace.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/rate.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rate.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/rate.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/rate.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mlme.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mlme.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mesh_plink.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mesh_plink.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mesh_pathtbl.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mesh_pathtbl.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mesh_hwmp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mesh_hwmp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/hwmon/ibmaem - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/hwmon/ibmaem.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mesh.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mesh.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/mesh.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/mesh.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/key.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/key.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/ia64/kvm.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/ia64/kvm.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/mac80211/iface.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/mac80211/iface.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/ipv6/syncookies.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/syncookies.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/ipv6/ip6mr.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv6/ip6mr.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/ipv4/netfilter/nf_nat_proto_sctp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_nat_proto_sctp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h net/ipv4/netfilter/nf_nat_proto_common.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/net/ipv4/netfilter/nf_nat_proto_common.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/ratelimit.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/ratelimit.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/lmb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/lmb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/debugobjects.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/debugobjects.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h lib/Kconfig.kgdb - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/lib/Kconfig.kgdb.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/semaphore.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/semaphore.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/sched_features.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_features.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/sched_clock.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sched_clock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kernel/kgdb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/kgdb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/lc_eval.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/lc_eval.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/klib.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/klib.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_types.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_typeinfo.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_typeinfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_task.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_task.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_sym.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_sym.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_stringtab.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_stringtab.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_stabs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_stabs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_queue.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_queue.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_module.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_mem_ia64.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_mem_ia64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_mem.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_mem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_libutil.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_libutil.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_lib.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_lib.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_htnode.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_htnode.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_error.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_error.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_dwarfs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_dwarfs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_dump_ia64.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_dump_ia64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_dump_arch.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_dump_arch.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_dump.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_dump.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_debug.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_debug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_copt.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_copt.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_cmp.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_cmp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_btnode.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_btnode.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_bfd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_bfd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/kl_alloc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/kl_alloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/asm/kl_types.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/asm/kl_types.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h kdb/modules/lcrash/asm/kl_dump_ia64.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kdb/modules/lcrash/asm/kl_dump_ia64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/timers/highres.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/timers/highres.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/usb/anchors.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/usb/anchors.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/video4linux/CARDLIST.au0828 - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/CARDLIST.au0828.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h ipc/ipcns_notifier.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/ipc/ipcns_notifier.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/xen-ops.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/xen-ops.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/io/kbdif.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/io/kbdif.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h Documentation/video4linux/cx18.txt - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/video4linux/cx18.txt.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/io/fbif.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/io/fbif.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/xen/interface/callback.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/xen/interface/callback.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/media/soc_camera.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/media/soc_camera.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/virtio_rng.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/virtio_rng.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/smc91x.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/smc91x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/seq_file_net.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/seq_file_net.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/semaphore.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/semaphore.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/rculist.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/rculist.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/pm_wakeup.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pm_wakeup.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/pim.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pim.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/pci-aspm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/pci-aspm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/of_gpio.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/of_gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/mroute6.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/mroute6.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/cam60_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/cam60_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/linux/dma-attrs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/dma-attrs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/ecbat91_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/ecbat91_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/orion5x_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/orion5x_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/sam9_l9260_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/sam9_l9260_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/tct_hammer_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/tct_hammer_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/configs/yl9200_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/configs/yl9200_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/xen/page.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/page.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/xen/events.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/xen/events.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/uv/uv_mmrs.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uv/uv_mmrs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/uv/uv_hub.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/uv/uv_hub.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/pat.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/pat.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/kgdb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/kgdb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/hugetlb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-x86/bios_ebda.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-x86/bios_ebda.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/mmzone.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/mmzone.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/lmb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/lmb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/kgdb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/kgdb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sparc64/hugetlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sparc64/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/sh_keysc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/sh_keysc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/se7721.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/se7721.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/migor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/migor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/i2c-sh7760.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/i2c-sh7760.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-sh/hugetlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-sh/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/sysinfo.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sysinfo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/sparsemem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/sparsemem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/kvm_virtio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kvm_virtio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/kvm_para.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kvm_para.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/kvm_host.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/kvm_host.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-s390/hugetlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-s390/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/rio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/rio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-cam60.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-cam60.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/ppc4xx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/ppc4xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/phyp_dump.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/phyp_dump.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kvm_ppc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kvm_ppc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kvm_para.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kvm_para.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kvm_host.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kvm_host.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-ecbat91.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-ecbat91.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-sam9-l9260.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-sam9-l9260.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/kvm_asm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/kvm_asm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/iseries/alpaca.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/iseries/alpaca.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/hugetlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-at91/board-yl-9200.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-at91/board-yl-9200.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/fsl_lbc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/fsl_lbc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-powerpc/fixmap.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-powerpc/fixmap.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-mips/mips-boards/maltasmp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-mips/mips-boards/maltasmp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ep93xx/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ep93xx/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/uv/uv_mmrs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/uv/uv_mmrs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/uv/uv_hub.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/uv/uv_hub.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/machvec_uv.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/machvec_uv.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/kvm_para.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kvm_para.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/kvm_host.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/kvm_host.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-ia64/hugetlb.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-ia64/hugetlb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-generic/int-ll64.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-generic/int-ll64.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf561/bfin_sir.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf561/bfin_sir.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf548/bfin_sir.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf548/bfin_sir.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf537/bfin_sir.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf537/bfin_sir.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf533/bfin_sir.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf533/bfin_sir.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ks8695/leds.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ks8695/leds.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/mach-bf527/bfin_sir.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/mach-bf527/bfin_sir.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-blackfin/.gitignore - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-blackfin/.gitignore.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/xor.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/xor.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/serial.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/serial.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-avr32/arch-at32ap/pm.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-avr32/arch-at32ap/pm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/sparsemem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/sparsemem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ns9xxx/clock.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/clock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-orion/time.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-orion/time.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-orion/pcie.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-orion/pcie.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ns9xxx/gpio-ns9360.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/gpio-ns9360.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-orion/orion_nand.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-orion/orion_nand.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-orion/irq.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-orion/irq.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/plat-orion/ehci-orion.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/plat-orion/ehci-orion.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2410/system-reset.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/system-reset.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ns9xxx/plat-serial8250.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/plat-serial8250.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ns9xxx/processor-ns9360.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/processor-ns9360.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-ns9xxx/time-ns9360.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-ns9xxx/time-ns9360.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-s3c2410/regs-s3c2412-mem.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-s3c2410/regs-s3c2412-mem.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/board-pb11mp.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/board-pb11mp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-realview/board-pb1176.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-realview/board-pb1176.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/regs-lcd.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/regs-lcd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pxa3xx_nand.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa3xx_nand.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/pxa2xx-gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/pxa2xx-gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/mfp-pxa2xx.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa2xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/mfp-pxa27x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa27x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/mfp-pxa25x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/mfp-pxa25x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/gumstix.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/gumstix.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap1/timer32k.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap1/timer32k.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-pxa/camera.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-pxa/camera.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/vmalloc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/vmalloc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/uncompress.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/uncompress.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/timex.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/timex.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/system.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/system.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/orion5x.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/orion5x.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/memory.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/memory.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/clock24xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock24xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/clock24xx.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock24xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/clock34xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock34xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/clock34xx.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/clock34xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/cm-regbits-34xx.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/cm-regbits-34xx.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/cm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/cm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/control.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/control.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/irqs.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/irqs.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/io.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/io.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/hardware.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/hardware.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/gpio.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/entry-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/entry-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/dma.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/dma.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-orion5x/debug-macro.S - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-orion5x/debug-macro.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/prcm-common.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/prcm-common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/sdrc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/sdrc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-omap/control.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-omap/control.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/prm.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/prm.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-omap2/sdrc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-omap2/sdrc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/regs-sys-ns9360.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/regs-sys-ns9360.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/regs-sys-common.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/regs-sys-common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/processor-ns9360.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/processor-ns9360.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-ns9xxx/module.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-ns9xxx/module.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91sam9_smc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9_smc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91sam9_sdramc.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91sam9_sdramc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h include/asm-arm/arch-at91/at91cap9_ddrsdr.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/asm-arm/arch-at91/at91cap9_ddrsdr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ocfs2/stackglue.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/stackglue.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ocfs2/stack_user.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/stack_user.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ocfs2/cluster/netdebug.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ocfs2/cluster/netdebug.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/hppfs/hppfs.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/hppfs/hppfs.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/mballoc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/mballoc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/ext4_sb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ext4_sb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/ext4_jbd2.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ext4_jbd2.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/ext4_i.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ext4_i.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/ext4_extents.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ext4_extents.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/addr-map.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/addr-map.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/common.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/common.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/common.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/db88f5281-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/db88f5281-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/dns323-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/dns323-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/kurobox_pro-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/kurobox_pro-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/rd88f5182-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/rd88f5182-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-orion5x/ts209-setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-orion5x/ts209-setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ext4/ext4.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ext4/ext4.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/ecryptfs/miscdev.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/ecryptfs/miscdev.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/dlm/plock.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/dlm/plock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/xen/events.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/events.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/xen/balloon.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/xen/balloon.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/watchdog/geodewdt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/watchdog/geodewdt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/xen-fbfront.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/xen-fbfront.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/fsl-diu-fb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/fsl-diu-fb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/video/am200epd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/video/am200epd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/gumstix.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/gumstix.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/serial/spcp8x5.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/serial/spcp8x5.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/misc/isight_firmware.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/misc/isight_firmware.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/isp1760-if.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/isp1760-if.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/isp1760-hcd.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/isp1760-hcd.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/host/isp1760-hcd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/host/isp1760-hcd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/mfp-pxa2xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/mfp-pxa2xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-pxa/mfp-pxa3xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-pxa/mfp-pxa3xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/gadget/pxa27x_udc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa27x_udc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/gadget/pxa27x_udc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/gadget/pxa27x_udc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/usb/class/cdc-wdm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/usb/class/cdc-wdm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/serial/bfin_sport_uart.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/serial/bfin_sport_uart.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/scsi/zfcp_dbf.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/scsi/zfcp_dbf.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/qeth_l3_sys.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/qeth_l3_sys.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/qeth_l3_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/qeth_l3_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/qeth_l2_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/qeth_l2_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-realview/realview_pb1176.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/realview_pb1176.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-realview/realview_pb11mp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-realview/realview_pb11mp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/qeth_core_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/qeth_core_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-s3c2410/mach-tct_hammer.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-s3c2410/mach-tct_hammer.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/qeth_core.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/qeth_core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_mpc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_mpc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_mpc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_mpc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_main.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_main.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_fsms.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_fsms.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/mach-sa1100/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/mach-sa1100/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_dbug.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_dbug.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/net/ctcm_dbug.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/net/ctcm_dbug.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/kvm/kvm_virtio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/kvm/kvm_virtio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/s390/kvm/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/s390/kvm/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/pci/pcie/aspm.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/pci/pcie/aspm.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/of/of_i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/of_i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/of/gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/of/gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2x00queue.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00queue.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/rt2x00/rt2x00queue.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/rt2x00/rt2x00queue.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/p54/p54usb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/p54/p54usb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/p54/p54pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/p54/p54pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/p54/p54common.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/p54/p54common.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/p54/p54common.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/p54/p54common.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/p54/p54.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/p54/p54.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-sta.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-sta.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-sta.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-sta.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-rfkill.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-rfkill.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-rfkill.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-rfkill.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-led.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-led.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-led.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-led.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-hcmd.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-hcmd.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-eeprom.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-eeprom.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-debugfs.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-debugfs.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-csr.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-csr.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-core.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-core.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-core.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-3945-led.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945-led.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/iwlwifi/iwl-3945-led.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/iwlwifi/iwl-3945-led.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/wireless/ath5k/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/wireless/ath5k/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/tx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/tx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-orion/irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-orion/pcie.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/pcie.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/arm/plat-orion/time.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/arm/plat-orion/time.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/sfe4001.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/sfe4001.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/rx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/rx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/net_driver.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/net_driver.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/i2c-direct.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/i2c-direct.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/i2c-direct.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/i2c-direct.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/falcon.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/falcon.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/efx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/efx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/boards.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/boards.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/avr32/mach-at32ap/pm-at32ap700x.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/avr32/mach-at32ap/pm-at32ap700x.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/boards.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/boards.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/sfc/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/sfc/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/atlx/atl1.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/atlx/atl1.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/net/arm/ixp4xx_eth.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/net/arm/ixp4xx_eth.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/CM-BF533_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF533_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/CM-BF537E_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF537E_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/CM-BF537U_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF537U_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/CM-BF548_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF548_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/CM-BF561_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/CM-BF561_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/ubi/ubi-media.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/ubi/ubi-media.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/IP0X_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/IP0X_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mtd/nand/pxa3xx_nand.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mtd/nand/pxa3xx_nand.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/configs/SRV1_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/configs/SRV1_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mmc/card/mmc_test.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mmc/card/mmc_test.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xpnet.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpnet.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xpc_partition.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc_partition.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xpc_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xpc_channel.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc_channel.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xpc.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xpc.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xp_main.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xp_main.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/xp.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/xp.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/sgi-xp/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/sgi-xp/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/misc/eeepc-laptop.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/misc/eeepc-laptop.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mfd/htc-pasic3.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/htc-pasic3.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/mfd/htc-egpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/mfd/htc-egpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvcvideo.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvcvideo.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_video.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_video.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_v4l2.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_v4l2.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_status.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_status.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_queue.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_queue.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_driver.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_driver.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/uvc/uvc_ctrl.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/uvc/uvc_ctrl.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/soc_camera.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/soc_camera.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/saa717x.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/saa717x.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/pxa_camera.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pxa_camera.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/pvrusb2/pvrusb2-dvb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/pvrusb2/pvrusb2-dvb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/mt9v022.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/mt9v022.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/mt9m001.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/mt9m001.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/em28xx/em28xx-dvb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/em28xx/em28xx-dvb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx23885/cx23885-417.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx23885/cx23885-417.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx23418.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx23418.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-streams.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-streams.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-queue.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-queue.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-queue.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-queue.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-mailbox.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-mailbox.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-irq.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-ioctl.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-ioctl.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-ioctl.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-ioctl.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-gpio.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-gpio.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-gpio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-gpio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mach-bf548/boards/cm_bf548.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-bf548/boards/cm_bf548.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-firmware.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-firmware.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-dvb.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-dvb.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-dvb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-dvb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-driver.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-driver.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-driver.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-driver.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-controls.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-controls.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-controls.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-controls.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-cards.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-cards.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-cards.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-cards.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-av-vbi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-av-vbi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-av-firmware.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-av-firmware.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-av-core.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-av-core.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/blackfin/mach-common/dpmc_modes.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/blackfin/mach-common/dpmc_modes.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-av-core.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-av-core.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-av-audio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-av-audio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/cx18-audio.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/cx18-audio.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/cx18/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/cx18/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-reg.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-reg.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-i2c.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-i2c.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-dvb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-dvb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-core.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-core.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-cards.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-cards.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/au0828-cards.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/au0828-cards.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/video/au0828/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/video/au0828/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/tda10048.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/tda10048.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/tda10048.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/tda10048.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/s5h1411.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/s5h1411.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/s5h1411.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/s5h1411.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/au8522.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/au8522.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/dvb/frontends/au8522.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/dvb/frontends/au8522.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/xc5000_priv.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/xc5000_priv.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/xc5000.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/xc5000.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/xc5000.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/xc5000.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/tuner-xc2028.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/tuner-xc2028.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/tuner-simple.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/tuner-simple.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/tda9887.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/tda9887.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/tda18271-maps.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/tda18271-maps.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mxl5005s.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mxl5005s.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mxl5005s.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mxl5005s.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mt2131_priv.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mt2131_priv.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mt2131.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mt2131.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mt2131.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mt2131.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/mt20xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/mt20xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/media/common/tuners/Kconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/media/common/tuners/Kconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/leds/leds-fsg.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/leds/leds-fsg.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/xen-kbdfront.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/xen-kbdfront.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/touchscreen/wm97xx-core.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/wm97xx-core.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/touchscreen/wm9713.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/wm9713.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/touchscreen/wm9712.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/wm9712.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/touchscreen/wm9705.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/wm9705.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/touchscreen/mainstone-wm97xx.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/touchscreen/mainstone-wm97xx.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/input/keyboard/sh_keysc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/input/keyboard/sh_keysc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/ulp/ipoib/ipoib_ethtool.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ipath/ipath_user_sdma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_user_sdma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ipath/ipath_sdma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_sdma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/infiniband/hw/ipath/ipath_iba7220.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/infiniband/hw/ipath/ipath_iba7220.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/ide/legacy/ide-4drives.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/ide/legacy/ide-4drives.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ia64/kvm/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kvm/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ia64/kvm/kvm-ia64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kvm/kvm-ia64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/ia64/kvm/kvm_fw.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/ia64/kvm/kvm_fw.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/i2c/busses/i2c-sh_mobile.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-sh_mobile.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/i2c/busses/i2c-pca-platform.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/i2c/busses/i2c-pca-platform.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/hwmon/ibmaem.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/hwmon/ibmaem.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/firmware/iscsi_ibft_find.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/iscsi_ibft_find.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/firmware/iscsi_ibft.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/firmware/iscsi_ibft.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h drivers/char/drm/radeon_microcode.h - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/drivers/char/drm/radeon_microcode.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/pci/mp_bus_to_node.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/pci/mp_bus_to_node.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mm/pgtable.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pgtable.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mm/pat.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/pat.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/mm/dump_pagetables.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/mm/dump_pagetables.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kvm/i8254.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kvm/i8254.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/trampoline.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/trampoline.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/tlb_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tlb_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/tlb_32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/tlb_32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/smpcommon.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/smpcommon.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/smpboot.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/smpboot.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/smp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/smp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/process.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/process.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/pci-nommu.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/pci-nommu.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/pci-dma.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/pci-dma.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/mpparse.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/mpparse.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/mmconf-fam10h_64.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/mmconf-fam10h_64.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/kvmclock.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/kvmclock.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/m68k/configs/multi_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/m68k/configs/multi_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/kgdb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/kgdb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/ipi.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/ipi.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/head32.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/head32.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/x86/kernel/genx2apic_uv_x.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/x86/kernel/genx2apic_uv_x.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sparc64/kernel/syscalls.S - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sparc64/kernel/syscalls.S.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/kernel/cpu/sh4a/setup-sh7723.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/kernel/cpu/sh4a/setup-sh7723.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/configs/rsk7203_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/configs/rsk7203_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7721/setup.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7721/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7721/irq.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7721/irq.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/sh/boards/se/7721/Makefile - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/sh/boards/se/7721/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/mm/hugetlbpage.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/mm/hugetlbpage.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/sigp.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/sigp.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/priv.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/priv.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/kvm-s390.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/kvm-s390.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/interrupt.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/interrupt.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/intercept.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/intercept.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kvm/gaccess.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kvm/gaccess.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/s390/kernel/topology.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/s390/kernel/topology.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/pseries/hotplug-memory.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/pseries/hotplug-memory.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/cell/spider-pci.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/spider-pci.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/cell/celleb_scc_pciex.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/celleb_scc_pciex.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/cell/beat_htab.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/cell/beat_htab.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/86xx/sbc8641d.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/86xx/sbc8641d.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/platforms/85xx/ksi8560.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/platforms/85xx/ksi8560.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/au1000/pb1200/platform.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/au1000/pb1200/platform.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kvm/powerpc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kvm/powerpc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kvm/emulate.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kvm/emulate.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kvm/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kvm/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kvm/44x_tlb.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kvm/44x_tlb.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/kernel/stacktrace.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/kernel/stacktrace.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/sbc8641d_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/sbc8641d_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/ppc40x_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/ppc40x_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/tqm8560_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/tqm8560_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/tqm8555_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/tqm8555_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/tqm8541_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/tqm8541_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/tqm8540_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/tqm8540_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/stx_gp3_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/stx_gp3_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/sbc8560_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/sbc8560_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/sbc8548_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/sbc8548_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc85xx_cds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc8572_ds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8572_ds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc8568mds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8568mds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc8560_ads_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8560_ads_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc8544_ds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8544_ds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/mpc8540_ads_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/mpc8540_ads_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/85xx/ksi8560_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/85xx/ksi8560_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/kernel/gpio_txx9.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/kernel/gpio_txx9.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/sbc834x_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/sbc834x_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc837x_rdb_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc837x_mds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc837x_mds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc836x_mds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc836x_mds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc834x_mds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc834x_mds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc834x_itx_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc834x_itx_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc832x_rdb_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc832x_mds_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc832x_mds_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc8315_rdb_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/83xx/mpc8313_rdb_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/warp_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/warp_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/taishan_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/taishan_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/sequoia_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/sequoia_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/rainier_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/rainier_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/katmai_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/katmai_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/ebony_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/ebony_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/canyonlands_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/canyonlands_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/mips-boards/generic/amon.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/mips-boards/generic/amon.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/44x/bamboo_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/44x/bamboo_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/40x/walnut_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/40x/walnut_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/40x/makalu_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/40x/makalu_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/40x/kilauea_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/40x/kilauea_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/configs/40x/ep405_defconfig - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/configs/40x/ep405_defconfig.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/simpleboot.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/simpleboot.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/yosemite.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/yosemite.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/sbc8641d.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/sbc8641d.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/ksi8560.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/ksi8560.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/glacier.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/glacier.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/powerpc/boot/dts/canyonlands.dts - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/powerpc/boot/dts/canyonlands.dts.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/Makefile - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/Makefile.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/gdb_hook.c - 1.2 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/gdb_hook.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/int.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/int.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/platform.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/platform.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/proc.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/proc.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h arch/mips/nxp/pnx8550/common/setup.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/arch/mips/nxp/pnx8550/common/setup.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h From owner-xfs@oss.sgi.com Thu Oct 2 23:33:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m936XGJC007280 for ; Thu, 2 Oct 2008 23:33:17 -0700 X-ASG-Debug-ID: 1223015692-748e02e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from wf-out-1314.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D3534A9CDB for ; Thu, 2 Oct 2008 23:34:52 -0700 (PDT) Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.170]) by cuda.sgi.com with ESMTP id a4homfsmnFqgYvlN for ; Thu, 02 Oct 2008 23:34:52 -0700 (PDT) Received: by wf-out-1314.google.com with SMTP id 26so1486793wfd.32 for ; Thu, 02 Oct 2008 23:34:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=Y+L/vBd3EFFpqeUF3NK4ID1BJ3FGynRgv5KYlEw9Idw=; b=cnjDOm+usmJJuMwMFRChs77Zz+wTi9mBCtl1X+Hl7OtFRfvaocaTrrL7lUIkKJNQJv 48EDwbSytaKYCPSkau1uWgNK6IH1DJrMzm4vgPgMU1ssunoaVG+z4yBnPk2BK6UHmJUt a2XzhEC/9g592dO5UA1zjLMLM6ksxNmeZJX7Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=r28q4OJmxrMVC79Eq7Qb/XH9LjgMgoIM1KmuGSUHa6d519argdTuVTddpO9R7zb1sK nGP0tyGYdZqUaMpLSSth0auCnbu4Dp4uLG8hqLWK1XYrc3AnOVQcs8Tc2tLVVW7Cu2mG /uQw9yrW12bzHmVbNvRNDxFfHH47rWgH9ZBWE= Received: by 10.142.232.20 with SMTP id e20mr209338wfh.138.1223015692263; Thu, 02 Oct 2008 23:34:52 -0700 (PDT) Received: by 10.143.4.3 with HTTP; Thu, 2 Oct 2008 23:34:52 -0700 (PDT) Message-ID: <50ed5c760810022334j69befdb9pa0bf5ec29aad9126@mail.gmail.com> Date: Fri, 3 Oct 2008 08:34:52 +0200 From: "=?ISO-8859-2?Q?S=B3awomir_Nowakowski?=" To: xfs@oss.sgi.com X-ASG-Orig-Subj: XFS on 2.6.25.17 kernel issue Subject: XFS on 2.6.25.17 kernel issue MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Barracuda-Connect: wf-out-1314.google.com[209.85.200.170] X-Barracuda-Start-Time: 1223015694 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7133 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dear All, We use kernel 2.6.25.17, Promise STEX 8650 RAID controller, LVM2 and snapshots. After about 3 hours of working (using SAMBA, RSYNC etc) dmesg showed following errors: XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1546 of file fs/xfs/xfs_alloc.c. Caller 0xc024f387 Pid: 16557, comm: smbd Not tainted 2.6.25.17-oe32-00000-g553425c #18 [] xfs_free_ag_extent+0x2fe/0x670 [] xfs_free_extent+0xc7/0xf0 [] xfs_free_extent+0xc7/0xf0 [] xfs_bmap_finish+0xdb/0x160 [] xfs_itruncate_finish+0x240/0x3d0 [] xfs_inactive+0x3f2/0x460 [] inotify_inode_is_dead+0x17/0x70 [] xfs_fs_clear_inode+0x8e/0xd0 [] clear_inode+0xb3/0x140 [] generic_delete_inode+0xe2/0x120 [] iput+0x54/0x60 [] do_unlinkat+0xd9/0x130 [] syscall_call+0x7/0xb [] abituguru_detect_no_pwms+0xc0/0x260 ======================= xfs_force_shutdown(dm-6,0x8) called from line 4258 of file fs/xfs/xfs_bmap.c. Return address = 0xc0261a9b Filesystem "dm-6": Corruption of in-memory data detected. Shutting down filesystem: dm-6 Please umount the filesystem, and rectify the problem(s) Filesystem "dm-8": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-8 Starting XFS recovery on filesystem: dm-8 (logdev: internal) XFS resetting qflags for filesystem dm-8 Ending XFS recovery on filesystem: dm-8 (logdev: internal) program scsiinfo is using a deprecated SCSI ioctl, please convert it to SG_IO program scsiinfo is using a deprecated SCSI ioctl, please convert it to SG_IO program scsiinfo is using a deprecated SCSI ioctl, please convert it to SG_IO xfs_force_shutdown(dm-6,0x1) called from line 420 of file fs/xfs/xfs_rw.c. Return address = 0xc02a2be0 and after rebooting of the system: Filesystem "dm-6": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-6 Starting XFS recovery on filesystem: dm-6 (logdev: internal) XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1546 of file fs/xfs/xfs_alloc.c. Caller 0xc024f387 Pid: 10396, comm: mount Not tainted 2.6.25.17-oe32-00000-g553425c #18 [] xfs_free_ag_extent+0x2fe/0x670 [] xfs_free_extent+0xc7/0xf0 [] xfs_free_extent+0xc7/0xf0 [] cache_alloc_refill+0xca/0x1f0 [] xfs_trans_log_efd_extent+0xb/0x40 [] xlog_recover_process_efi+0x1c6/0x240 [] xlog_recover_process_efis+0x3b/0x60 [] xlog_recover_finish+0x14/0x90 [] xfs_log_mount_finish+0x2f/0x40 [] xfs_mountfs+0x301/0x650 [] icmn_err+0x6e/0x90 [] kmem_alloc+0x58/0xe0 [] xfs_mru_cache_create+0xf4/0x160 [] xfs_mount+0x1fa/0x370 [] xfs_fs_fill_super+0xad/0x1e0 [] get_sb_bdev+0xe2/0x110 [] __alloc_pages+0x49/0x330 [] xfs_fs_get_sb+0x12/0x20 [] xfs_fs_fill_super+0x0/0x1e0 [] vfs_kern_mount+0x58/0x110 [] do_kern_mount+0x2a/0x70 [] do_new_mount+0x5e/0x90 [] do_mount+0x176/0x190 [] sys_mount+0x71/0xb0 [] syscall_call+0x7/0xb ======================= Filesystem "dm-6": corrupt dinode 680795173, (btree extents). Unmount and run xfs_repair. Filesystem "dm-6": XFS internal error xfs_bmap_read_extents(1) at line 4549 of file fs/xfs/xfs_bmap.c. Caller 0xc0282091 Pid: 10396, comm: mount Not tainted 2.6.25.17-oe32-00000-g553425c #18 [] xfs_bmap_read_extents+0x466/0x4b0 [] xfs_iread_extents+0x61/0xb0 [] xfs_iext_inline_to_direct+0x1b/0x80 [] xfs_iext_realloc_direct+0xba/0x100 [] xfs_iread_extents+0x61/0xb0 [] xfs_bunmapi+0xc23/0x1150 [] buffered_rmqueue+0x14d/0x240 [] get_page_from_freelist+0x79/0xc0 [] __alloc_pages+0x49/0x330 [] cache_grow+0xc4/0x140 [] xfs_itruncate_finish+0x224/0x3d0 [] xfs_inactive+0x3f2/0x460 [] xfs_buf_offset+0x31/0x40 [] xfs_itobp+0x77/0x100 [] xfs_fs_clear_inode+0x8e/0xd0 [] clear_inode+0xb3/0x140 [] generic_delete_inode+0xe2/0x120 [] iput+0x54/0x60 [] xlog_recover_process_iunlinks+0x3f8/0x420 [] xlog_recover_finish+0x8d/0x90 [] xfs_log_mount_finistfs+0x301/0x650 [] icmn_err+0x6e/0x90 [] kmem_alloc+0x58/0xe0 [] xfs_mru_cache_create+0xf4/0x160 [] xfs_mount+0x1fa/0x370 [] xfs_fs_fill_super+0xad/0x1e0 [] get_sb_bdev+0xe2/0x110 [] __alloc_pages+0x49/0x330 [] xfs_fs_get_sb+0x12/0x20 [] xfs_fs_fill_super+0x0/0x1e0 [] vfs_kern_mount+0x58/0x110 [] do_kern_mount+0x2a/0x70 [] do_new_mount+0x5e/0x90 [] do_mount+0x176/0x190 [] sys_mount+0x71/0xb0 [] syscall_call+0x7/0xb ======================= Ending XFS recovery on filesystem: dm-6 (logdev: internal) Filesystem "dm-9": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-9 Ending clean XFS mount for filesystem: dm-9 Filesystem "dm-8": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-8 Ending clean XFS mount for filesystem: dm-8 After reboot access do volume (size ~1TB) was not possible. Additionally to this kernel we used following patches: ommit a3f74ffb6d1448d9a8f482e593b80ec15f1695d4 Author: David Chinner Date: Thu Mar 6 13:43:42 2008 +1100 [XFS] Don't block pdflush when writing back inodes commit 4ae29b4321b99b711bcfde5527c4fbf249eac60f Author: David Chinner Date: Thu Mar 6 13:43:34 2008 +1100 [XFS] Factor xfs_itobp() and xfs_inotobp(). Can these pathces be the reason of these errors? Or is there maybe some issue in this kernel version (2.6.25.17) or what can be the reason of above errors? Some additional parts of information: at /proc/modules iscsi_trgt 64316 3 - Live 0xf91e8000 st 35964 0 - Live 0xf8ee9000 sg 31688 2 - Live 0xf8eb8000 scst_vdisk 31124 0 - Live 0xf8eaf000 scst 120564 1 scst_vdisk, Live 0xf8eca000 ipmi_watchdog 18080 0 - Live 0xf8e9d000 ipmi_devintf 7732 0 - Live 0xf8e93000 drbd 201236 0 - Live 0xf8e03000 bonding 85512 0 - Live 0xf8b21000 iscsi_tcp 17520 0 - Live 0xf887a000 libiscsi 23464 1 iscsi_tcp, Live 0xf8a79000 scsi_transport_iscsi 28480 3 iscsi_tcp,libiscsi, Live 0xf8adb000 stex 12424 8 - Live 0xf8a74000 e1000 187780 0 - Live 0xf8aac000 button 7160 0 - Live 0xf8a71000 ftdi_sio 33948 0 - Live 0xf8a56000 usbserial 27248 1 ftdi_sio, Live 0xf8872000 cat /proc/meminfo MemTotal: 2067392 kB MemFree: 701324 kB Buffers: 720852 kB Cached: 457844 kB SwapCached: 0 kB Active: 139468 kB Inactive: 1103564 kB HighTotal: 1173980 kB HighFree: 623144 kB LowTotal: 893412 kB LowFree: 78180 kB SwapTotal: 4194296 kB SwapFree: 4194296 kB Dirty: 288 kB Writeback: 0 kB AnonPages: 64484 kB Mapped: 29664 kB Slab: 64984 kB SReclaimable: 47444 kB SUnreclaim: 17540 kB PageTables: 2236 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 5227992 kB Committed_AS: 289468 kB VmallocTotal: 116728 kB VmallocUsed: 10080 kB VmallocChunk: 106516 kB slabinfo # name : tunables : slabdata tio 0 0 24 145 1 : tunables 120 60 8 : slabdata 0 0 0 iscsi_cmnd 0 0 140 28 1 : tunables 120 60 8 : slabdata 0 0 0 scst_vdisk_thr 0 0 40 92 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-4096K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-2048K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-1024K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-512K 0 0 2612 3 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-dma-256K 0 0 1332 3 1 : tunables 24 12 8 : slabdata 0 0 0 sgv-dma-128K 0 0 692 11 2 : tunables 54 27 8 : slabdata 0 0 0 sgv-dma-64K 0 0 372 10 1 : tunables 54 27 8 : slabdata 0 0 0 sgv-dma-32K 0 0 212 18 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-16K 0 0 132 29 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-8K 0 0 92 42 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-dma-4K 0 0 72 53 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-clust-4096K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-clust-2048K 0 0 2100 3 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-clust-1024K 0 0 1076 7 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-clust-512K 0 0 3124 2 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-clust-256K 0 0 1588 5 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-clust-128K 0 0 820 9 2 : tunables 54 27 8 : slabdata 0 0 0 sgv-clust-64K 0 0 436 9 1 : tunables 54 27 8 : slabdata 0 0 0 sgv-clust-32K 0 0 244 16 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-clust-16K 0 0 148 26 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-clust-8K 0 0 100 39 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-clust-4K 0 0 76 50 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-4096K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-2048K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-1024K 0 0 52 72 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-512K 0 0 2612 3 2 : tunables 24 12 8 : slabdata 0 0 0 sgv-256K 0 0 1332 3 1 : tunables 24 12 8 : slabdata 0 0 0 sgv-128K 0 0 692 11 2 : tunables 54 27 8 : slabdata 0 0 0 sgv-64K 0 0 372 10 1 : tunables 54 27 8 : slabdata 0 0 0 sgv-32K 0 0 212 18 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-16K 0 0 132 29 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-8K 0 0 92 42 1 : tunables 120 60 8 : slabdata 0 0 0 sgv-4K 0 0 72 53 1 : tunables 120 60 8 : slabdata 0 0 0 scst_acg_dev 0 0 36 101 1 : tunables 120 60 8 : slabdata 0 0 0 scst_tgt_dev 0 0 200 19 1 : tunables 120 60 8 : slabdata 0 0 0 scst_session 0 0 368 10 1 : tunables 54 27 8 : slabdata 0 0 0 scst_cmd 0 0 240 16 1 : tunables 120 60 8 : slabdata 0 0 0 scst_sense 128 160 96 40 1 : tunables 120 60 8 : slabdata 4 4 0 scst_tgt_dev_UA 64 74 104 37 1 : tunables 120 60 8 : slabdata 2 2 0 scst_mgmt_cmd_stub 1024 1270 12 254 1 : tunables 120 60 8 : slabdata 5 5 0 scst_mgmt_cmd 64 106 72 53 1 : tunables 120 60 8 : slabdata 2 2 0 xfs_dqtrx 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_dquots 4 24 332 12 1 : tunables 54 27 8 : slabdata 2 2 0 drbd_ee_cache 2040 2079 60 63 1 : tunables 120 60 8 : slabdata 33 33 0 drbd_req_cache 2040 2072 68 56 1 : tunables 120 60 8 : slabdata 37 37 0 kcopyd_job 512 525 264 15 1 : tunables 54 27 8 : slabdata 35 35 0 rpc_buffers 8 8 2048 2 1 : tunables 24 12 8 : slabdata 4 4 0 rpc_tasks 8 20 192 20 1 : tunables 120 60 8 : slabdata 1 1 0 rpc_inode_cache 0 0 448 9 1 : tunables 54 27 8 : slabdata 0 0 0 UNIX 189 189 448 9 1 : tunables 54 27 8 : slabdata 21 21 0 flow_cache 0 0 80 48 1 : tunables 120 60 8 : slabdata 0 0 0 ib_mad 0 0 448 9 1 : tunables 54 27 8 : slabdata 0 0 0 dm_snap_pending_exception 128 177 64 59 1 : tunables 120 60 8 : slabdata 3 3 0 dm_snap_exception 30 145 24 145 1 : tunables 120 60 8 : slabdata 1 1 0 dm_mpath_io 0 0 28 127 1 : tunables 120 60 8 : slabdata 0 0 0 dm_crypt_io 70 294 92 42 1 : tunables 120 60 8 : slabdata 7 7 0 dm_target_io 3111 3451 16 203 1 : tunables 120 60 8 : slabdata 17 17 0 dm_io 3096 3380 20 169 1 : tunables 120 60 8 : slabdata 20 20 0 uhci_urb_priv 0 0 28 127 1 : tunables 120 60 8 : slabdata 0 0 0 scsi_sense_cache 84 180 128 30 1 : tunables 120 60 8 : slabdata 6 6 0 scsi_cmd_cache 86 140 192 20 1 : tunables 120 60 8 : slabdata 7 7 0 cfq_io_context 0 0 96 40 1 : tunables 120 60 8 : slabdata 0 0 0 cfq_queue 0 0 84 46 1 : tunables 120 60 8 : slabdata 0 0 0 mqueue_inode_cache 1 7 576 7 1 : tunables 54 27 8 : slabdata 1 1 0 xfs_icluster 38 169 20 169 1 : tunables 120 60 8 : slabdata 1 1 0 xfs_ili 23 56 140 28 1 : tunables 120 60 8 : slabdata 2 2 0 xfs_inode 575 600 384 10 1 : tunables 54 27 8 : slabdata 60 60 0 xfs_efi_item 0 0 260 15 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_efd_item 0 0 260 15 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_buf_item 0 0 148 26 1 : tunables 120 60 8 : slabdata 0 0 0 fstrm_item 0 0 12 254 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_mru_cache_elem 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_acl 0 0 304 13 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_ifork 1 67 56 67 1 : tunables 120 60 8 : slabdata 1 1 0 xfs_dabuf 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_da_state 0 0 336 11 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_trans 0 0 632 6 1 : tunables 54 27 8 : slabdata 0 0 0 xfs_btree_cur 0 0 140 28 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_bmap_free_item 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 xfs_buf 30 80 192 20 1 : tunables 120 60 8 : slabdata 4 4 0 xfs_ioend 32 67 56 67 1 : tunables 120 60 8 : slabdata 1 1 0 xfs_vnode 575 600 384 10 1 : tunables 54 27 8 : slabdata 60 60 0 udf_inode_cache 0 0 396 10 1 : tunables 54 27 8 : slabdata 0 0 0 nfsd4_delegations 0 0 212 18 1 : tunables 120 60 8 : slabdata 0 0 0 nfsd4_stateids 0 0 72 53 1 : tunables 120 60 8 : slabdata 0 0 0 nfsd4_files 0 0 40 92 1 : tunables 120 60 8 : slabdata 0 0 0 nfsd4_stateowners 0 0 344 11 1 : tunables 54 27 8 : slabdata 0 0 0 nfs_direct_cache 0 0 76 50 1 : tunables 120 60 8 : slabdata 0 0 0 nfs_write_data 36 36 448 9 1 : tunables 54 27 8 : slabdata 4 4 0 nfs_read_data 32 36 448 9 1 : tunables 54 27 8 : slabdata 4 4 0 nfs_inode_cache 0 0 636 6 1 : tunables 54 27 8 : slabdata 0 0 0 nfs_page 0 0 64 59 1 : tunables 120 60 8 : slabdata 0 0 0 isofs_inode_cache 0 0 368 10 1 : tunables 54 27 8 : slabdata 0 0 0 squashfs_inode_cache 11069 11090 384 10 1 : tunables 54 27 8 : slabdata 1109 1109 0 ext2_inode_cache 12 16 464 8 1 : tunables 54 27 8 : slabdata 2 2 0 journal_handle 42 169 20 169 1 : tunables 120 60 8 : slabdata 1 1 0 journal_head 74 432 52 72 1 : tunables 120 60 8 : slabdata 6 6 0 revoke_table 14 254 12 254 1 : tunables 120 60 8 : slabdata 1 1 0 revoke_record 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 ext3_inode_cache 16431 16440 484 8 1 : tunables 54 27 8 : slabdata 2055 2055 0 ext3_xattr 0 0 48 78 1 : tunables 120 60 8 : slabdata 0 0 0 dnotify_cache 0 0 20 169 1 : tunables 120 60 8 : slabdata 0 0 0 dquot 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 inotify_event_cache 0 0 28 127 1 : tunables 120 60 8 : slabdata 0 0 0 inotify_watch_cache 0 0 40 92 1 : tunables 120 60 8 : slabdata 0 0 0 kioctx 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 kiocb 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 fasync_cache 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 shmem_inode_cache 1078 1116 436 9 1 : tunables 54 27 8 : slabdata 124 124 0 nsproxy 0 0 28 127 1 : tunables 120 60 8 : slabdata 0 0 0 posix_timers_cache 0 0 104 37 1 : tunables 120 60 8 : slabdata 0 0 0 uid_cache 3 30 128 30 1 : tunables 120 60 8 : slabdata 1 1 0 UDP-Lite 0 0 512 7 1 : tunables 54 27 8 : slabdata 0 0 0 tcp_bind_bucket 45 226 32 113 1 : tunables 120 60 8 : slabdata 2 2 0 inet_peer_cache 1 59 64 59 1 : tunables 120 60 8 : slabdata 1 1 0 secpath_cache 0 0 32 113 1 : tunables 120 60 8 : slabdata 0 0 0 xfrm_dst_cache 0 0 320 12 1 : tunables 54 27 8 : slabdata 0 0 0 ip_fib_alias 0 0 16 203 1 : tunables 120 60 8 : slabdata 0 0 0 ip_fib_hash 15 101 36 101 1 : tunables 120 60 8 : slabdata 1 1 0 ip_dst_cache 59 75 256 15 1 : tunables 120 60 8 : slabdata 5 5 0 arp_cache 7 40 192 20 1 : tunables 120 60 8 : slabdata 2 2 0 RAW 9 14 512 7 1 : tunables 54 27 8 : slabdata 2 2 0 UDP 15 42 512 7 1 : tunables 54 27 8 : slabdata 6 6 0 tw_sock_TCP 3 30 128 30 1 : tunables 120 60 8 : slabdata 1 1 0 request_sock_TCP 0 0 64 59 1 : tunables 120 60 8 : slabdata 0 0 0 TCP 52 77 1152 7 2 : tunables 24 12 8 : slabdata 11 11 0 eventpoll_pwq 39 101 36 101 1 : tunables 120 60 8 : slabdata 1 1 0 eventpoll_epi 39 60 128 30 1 : tunables 120 60 8 : slabdata 2 2 0 sgpool-128 2 3 2560 3 2 : tunables 24 12 8 : slabdata 1 1 0 sgpool-64 2 3 1280 3 1 : tunables 24 12 8 : slabdata 1 1 0 sgpool-32 2 6 640 6 1 : tunables 54 27 8 : slabdata 1 1 0 sgpool-16 2 12 320 12 1 : tunables 54 27 8 : slabdata 1 1 0 sgpool-8 91 120 192 20 1 : tunables 120 60 8 : slabdata 6 6 0 scsi_bidi_sdb 0 0 20 169 1 : tunables 120 60 8 : slabdata 0 0 0 scsi_io_context 8 37 104 37 1 : tunables 120 60 8 : slabdata 1 1 0 blkdev_queue 80 80 1012 4 1 : tunables 54 27 8 : slabdata 20 20 0 blkdev_requests 214 220 192 20 1 : tunables 120 60 8 : slabdata 11 11 0 blkdev_ioc 0 0 48 78 1 : tunables 120 60 8 : slabdata 0 0 0 biovec-256 274 274 3072 2 2 : tunables 24 12 8 : slabdata 137 137 0 biovec-128 274 280 1536 5 2 : tunables 24 12 8 : slabdata 56 56 0 biovec-64 274 305 768 5 1 : tunables 54 27 8 : slabdata 61 61 0 biovec-16 274 340 192 20 1 : tunables 120 60 8 : slabdata 17 17 0 biovec-4 295 472 64 59 1 : tunables 120 60 8 : slabdata 8 8 0 biovec-1 563 2233 16 203 1 : tunables 120 60 8 : slabdata 11 11 68 bio 568 1440 128 30 1 : tunables 120 60 8 : slabdata 48 48 24 sock_inode_cache 262 280 384 10 1 : tunables 54 27 8 : slabdata 28 28 0 skbuff_fclone_cache 2 24 320 12 1 : tunables 54 27 8 : slabdata 2 2 0 skbuff_head_cache 611 720 192 20 1 : tunables 120 60 8 : slabdata 36 36 0 file_lock_cache 100 156 100 39 1 : tunables 120 60 8 : slabdata 4 4 0 Acpi-Operand 950 1012 40 92 1 : tunables 120 60 8 : slabdata 11 11 0 Acpi-ParseExt 0 0 44 84 1 : tunables 120 60 8 : slabdata 0 0 0 Acpi-Parse 0 0 28 127 1 : tunables 120 60 8 : slabdata 0 0 0 Acpi-State 0 0 44 84 1 : tunables 120 60 8 : slabdata 0 0 0 Acpi-Namespace 631 676 20 169 1 : tunables 120 60 8 : slabdata 4 4 0 proc_inode_cache 3299 3311 356 11 1 : tunables 54 27 8 : slabdata 301 301 0 sigqueue 101 108 144 27 1 : tunables 120 60 8 : slabdata 4 4 0 radix_tree_node 8952 9659 288 13 1 : tunables 54 27 8 : slabdata 743 743 0 bdev_cache 61 70 512 7 1 : tunables 54 27 8 : slabdata 10 10 0 sysfs_dir_cache 10644 10668 44 84 1 : tunables 120 60 8 : slabdata 127 127 0 mnt_cache 62 150 128 30 1 : tunables 120 60 8 : slabdata 5 5 0 inode_cache 1683 1683 340 11 1 : tunables 54 27 8 : slabdata 153 153 0 dentry 36870 36870 128 30 1 : tunables 120 60 8 : slabdata 1229 1229 0 filp 2084 3400 192 20 1 : tunables 120 60 8 : slabdata 170 170 0 names_cache 110 110 4096 1 1 : tunables 24 12 8 : slabdata 110 110 0 idr_layer_cache 172 203 136 29 1 : tunables 120 60 8 : slabdata 7 7 0 buffer_head 343193 431480 56 67 1 : tunables 120 60 8 : slabdata 6440 6440 0 mm_struct 234 333 448 9 1 : tunables 54 27 8 : slabdata 37 37 0 vm_area_struct 3621 3784 88 44 1 : tunables 120 60 8 : slabdata 86 86 180 fs_cache 343 590 64 59 1 : tunables 120 60 8 : slabdata 10 10 0 files_cache 300 450 256 15 1 : tunables 120 60 8 : slabdata 30 30 0 signal_cache 444 513 448 9 1 : tunables 54 27 8 : slabdata 57 57 0 sighand_cache 402 402 1344 3 1 : tunables 24 12 8 : slabdata 134 134 12 task_struct 501 510 1392 5 2 : tunables 24 12 8 : slabdata 102 102 0 anon_vma 1465 1778 12 254 1 : tunables 120 60 8 : slabdata 7 7 180 pid 900 1003 64 59 1 : tunables 120 60 8 : slabdata 17 17 0 size-4194304(DMA) 0 0 4194304 1 1024 : tunables 1 1 0 : slabdata 0 0 0 size-4194304 0 0 4194304 1 1024 : tunables 1 1 0 : slabdata 0 0 0 size-2097152(DMA) 0 0 2097152 1 512 : tunables 1 1 0 : slabdata 0 0 0 size-2097152 0 0 2097152 1 512 : tunables 1 1 0 : slabdata 0 0 0 size-1048576(DMA) 0 0 1048576 1 256 : tunables 1 1 0 : slabdata 0 0 0 size-1048576 0 0 1048576 1 256 : tunables 1 1 0 : slabdata 0 0 0 size-524288(DMA) 0 0 524288 1 128 : tunables 1 1 0 : slabdata 0 0 0 size-524288 0 0 524288 1 128 : tunables 1 1 0 : slabdata 0 0 0 size-262144(DMA) 0 0 262144 1 64 : tunables 1 1 0 : slabdata 0 0 0 size-262144 1 1 262144 1 64 : tunables 1 1 0 : slabdata 1 1 0 size-131072(DMA) 0 0 131072 1 32 : tunables 8 4 0 : slabdata 0 0 0 size-131072 0 0 131072 1 32 : tunables 8 4 0 : slabdata 0 0 0 size-65536(DMA) 0 0 65536 1 16 : tunables 8 4 0 : slabdata 0 0 0 size-65536 0 0 65536 1 16 : tunables 8 4 0 : slabdata 0 0 0 size-32768(DMA) 0 0 32768 1 8 : tunables 8 4 0 : slabdata 0 0 0 size-32768 1 1 32768 1 8 : tunables 8 4 0 : slabdata 1 1 0 size-16384(DMA) 0 0 16384 1 4 : tunables 8 4 0 : slabdata 0 0 0 size-16384 5 5 16384 1 4 : tunables 8 4 0 : slabdata 5 5 0 size-8192(DMA) 0 0 8192 1 2 : tunables 8 4 0 : slabdata 0 0 0 size-8192 31 31 8192 1 2 : tunables 8 4 0 : slabdata 31 31 0 size-4096(DMA) 0 0 4096 1 1 : tunables 24 12 8 : slabdata 0 0 0 size-4096 140 140 4096 1 1 : tunables 24 12 8 : slabdata 140 140 0 size-2048(DMA) 0 0 2048 2 1 : tunables 24 12 8 : slabdata 0 0 0 size-2048 823 824 2048 2 1 : tunables 24 12 8 : slabdata 412 412 0 size-1024(DMA) 0 0 1024 4 1 : tunables 54 27 8 : slabdata 0 0 0 size-1024 436 436 1024 4 1 : tunables 54 27 8 : slabdata 109 109 0 size-512(DMA) 0 0 512 8 1 : tunables 54 27 8 : slabdata 0 0 0 size-512 2216 2272 512 8 1 : tunables 54 27 8 : slabdata 284 284 0 size-256(DMA) 0 0 256 15 1 : tunables 120 60 8 : slabdata 0 0 0 size-256 941 1065 256 15 1 : tunables 120 60 8 : slabdata 70 71 0 size-192(DMA) 0 0 192 20 1 : tunables 120 60 8 : slabdata 0 0 0 size-192 281 420 192 20 1 : tunables 120 60 8 : slabdata 21 21 0 size-128(DMA) 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 size-128 384 570 128 30 1 : tunables 120 60 8 : slabdata 19 19 0 size-96(DMA) 0 0 128 30 1 : tunables 120 60 8 : slabdata 0 0 0 size-96 603 690 128 30 1 : tunables 120 60 8 : slabdata 23 23 0 size-64(DMA) 0 0 64 59 1 : tunables 120 60 8 : slabdata 0 0 0 size-32(DMA) 0 0 32 113 1 : tunables 120 60 8 : slabdata 0 0 0 size-64 8083 8083 64 59 1 : tunables 120 60 8 : slabdata 137 137 0 size-32 10087 10170 32 113 1 : tunables 120 60 8 : slabdata 90 90 0 kmem_cache 218 225 256 15 1 : tunables 120 60 8 : slabdata 15 15 0 Thank you in advance for your help Regards Roland From owner-xfs@oss.sgi.com Fri Oct 3 01:32:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m938WuBn022468 for ; Fri, 3 Oct 2008 01:32:56 -0700 X-ASG-Debug-ID: 1223022873-3e80033c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B5289CB005 for ; Fri, 3 Oct 2008 01:34:33 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id waqYGDB7keSE0QJ4 for ; Fri, 03 Oct 2008 01:34:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhUDACN15Uh5LF82iGdsb2JhbACTYQEBARUip16BaA X-IronPort-AV: E=Sophos;i="4.33,355,1220193000"; d="scan'208";a="219610676" Received: from ppp121-44-95-54.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.95.54]) by ipmail04.adl2.internode.on.net with ESMTP; 03 Oct 2008 18:04:20 +0930 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Klg74-0006a6-L2; Fri, 03 Oct 2008 18:34:14 +1000 Date: Fri, 3 Oct 2008 18:34:14 +1000 From: Dave Chinner To: =?utf-8?B?U8WCYXdvbWly?= Nowakowski Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS on 2.6.25.17 kernel issue Subject: Re: XFS on 2.6.25.17 kernel issue Message-ID: <20081003083414.GM30001@disturbed> Mail-Followup-To: =?utf-8?B?U8WCYXdvbWly?= Nowakowski , xfs@oss.sgi.com References: <50ed5c760810022334j69befdb9pa0bf5ec29aad9126@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <50ed5c760810022334j69befdb9pa0bf5ec29aad9126@mail.gmail.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1223022874 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7138 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 03, 2008 at 08:34:52AM +0200, SƂawomir Nowakowski wrote: > Dear All, > > We use kernel 2.6.25.17, Promise STEX 8650 RAID controller, LVM2 and > snapshots. After about 3 hours of working (using SAMBA, RSYNC etc) > dmesg showed following errors: > > XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1546 of file > fs/xfs/xfs_alloc.c. Caller 0xc024f387 > Pid: 16557, comm: smbd Not tainted 2.6.25.17-oe32-00000-g553425c #18 > [] xfs_free_ag_extent+0x2fe/0x670 > [] xfs_free_extent+0xc7/0xf0 > [] xfs_free_extent+0xc7/0xf0 Freespace btree corruption. Run xfs_repair on tぞe filesystem to fix the corruption, upgrade to 2.6.27 when it is released to get all the fixes for known corruptions. FWIW, I see iSCSI and DRBD are in use on your machine. In the past, XFS on top of either of these two transports would randomly suffer from freespace btree corruptions which were not reproducable on normal local block devices. So the cause of your problem may not be XFS at all.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 3 02:08:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9398P3g024914 for ; Fri, 3 Oct 2008 02:08:26 -0700 X-ASG-Debug-ID: 1223025001-486903530000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A326137080E; Fri, 3 Oct 2008 02:10:01 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3QTw3D33vVPw5cg6; Fri, 03 Oct 2008 02:10:01 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Klgfh-00038c-Ja; Fri, 03 Oct 2008 09:10:01 +0000 Date: Fri, 3 Oct 2008 05:10:01 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Subject: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Message-ID: <20081003091001.GA11627@infradead.org> References: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223025003 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7140 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- So this patch now has made it out to the CVS on oss, but not the actual update of the surrouding kernel tree. Any chance to fix that before the weekend so we'll actually have a tree the builds? On Fri, Oct 03, 2008 at 01:12:58PM +1000, Lachlan McIlroy wrote: > Merge up to 2.6.27-rc8 > > Date: Fri Oct 3 12:16:52 AEST 2008 > Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-fresh > Inspected by: lachlan > Author: lachlan > > The following file(s) were checked into: > longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb > > > Modid: xfs-linux-melb:xfs-kern:32254a > fs/xfs/xfs_vnodeops.c - 1.775 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_vnodeops.c.diff?r1=text&tr1=1.775&r2=text&tr2=1.774&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.775&r2=text&tr2=1.774&f=h > fs/xfs/xfs_inode.c - 1.525 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_inode.c.diff?r1=text&tr1=1.525&r2=text&tr2=1.524&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.525&r2=text&tr2=1.524&f=h > fs/xfs/linux-2.6/xfs_lrw.c - 1.283 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_lrw.c.diff?r1=text&tr1=1.283&r2=text&tr2=1.282&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_lrw.c.diff?r1=text&tr1=1.283&r2=text&tr2=1.282&f=h > fs/xfs/linux-2.6/xfs_ioctl.c - 1.172 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.172&r2=text&tr2=1.171&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.172&r2=text&tr2=1.171&f=h > fs/xfs/linux-2.6/xfs_linux.h - 1.171 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.171&r2=text&tr2=1.170&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.171&r2=text&tr2=1.170&f=h > fs/xfs/linux-2.6/xfs_super.c - 1.450 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_super.c.diff?r1=text&tr1=1.450&r2=text&tr2=1.449&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.450&r2=text&tr2=1.449&f=h > fs/xfs/linux-2.6/xfs_iops.c - 1.300 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.300&r2=text&tr2=1.299&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.300&r2=text&tr2=1.299&f=h > fs/xfs/linux-2.6/xfs_aops.c - 1.165 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.165&r2=text&tr2=1.164&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.165&r2=text&tr2=1.164&f=h > fs/xfs/linux-2.6/kmem.h - 1.48 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> linux-2.6/kmem.h.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/kmem.h.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h > > > ---end quoted text--- From owner-xfs@oss.sgi.com Fri Oct 3 02:33:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_23, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m939XNoT026777 for ; Fri, 3 Oct 2008 02:33:24 -0700 X-ASG-Debug-ID: 1223026500-24d901bf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from wf-out-1314.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A0F19CB54D for ; Fri, 3 Oct 2008 02:35:00 -0700 (PDT) Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.174]) by cuda.sgi.com with ESMTP id 5vNemmtyhS6fAKam for ; Fri, 03 Oct 2008 02:35:00 -0700 (PDT) Received: by wf-out-1314.google.com with SMTP id 26so1539382wfd.32 for ; Fri, 03 Oct 2008 02:34:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=AQGeFUXDjq9aWwuyXWy5ixfcgVjVwtFR26Et1T9MyP4=; b=cnC9xuxPhyCHbPGCh2ZEobdvZ9/JMXwnNMVNXyiG6Wrm+7RKvueocR8MWGlSf5gm0Z h4kjM7780GKClBJf7lsemjklgsM2rDYknZKum/7LE83fs5nJ+tDyiCZdCb8hR41kvUJO dhtAgKOTlhWAwGdHWPYKkaOxQOITlzqyobq4w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=HXbVUiUU+mcPM49OSAoVxNFRQf2rgltQrKA+CYCjKzN94ZRwIWgn4bnNRh16mT/1MF 3FNPynWM9UuIkyW6hNH4ywhmlpqqQQl6+i422ygJYBspvmSb56ftBTeDyiLEUzCSBvwy yqbsf1FsEYeoGowYI1MWRWWpdxCDoVD8MfMgQ= Received: by 10.142.251.9 with SMTP id y9mr294450wfh.46.1223026499653; Fri, 03 Oct 2008 02:34:59 -0700 (PDT) Received: by 10.143.4.3 with HTTP; Fri, 3 Oct 2008 02:34:59 -0700 (PDT) Message-ID: <50ed5c760810030234p3c1c5f4at152bad9062188230@mail.gmail.com> Date: Fri, 3 Oct 2008 11:34:59 +0200 From: "=?ISO-8859-2?Q?S=B3awomir_Nowakowski?=" To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS on 2.6.25.17 kernel issue Subject: Re: XFS on 2.6.25.17 kernel issue In-Reply-To: <20081003083414.GM30001@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Disposition: inline References: <50ed5c760810022334j69befdb9pa0bf5ec29aad9126@mail.gmail.com> <20081003083414.GM30001@disturbed> X-Barracuda-Connect: wf-out-1314.google.com[209.85.200.174] X-Barracuda-Start-Time: 1223026501 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0009 1.0000 -2.0153 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7140 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by oss.sgi.com id m939XOoT026778 2008/10/3 Dave Chinner : > On Fri, Oct 03, 2008 at 08:34:52AM +0200, S©©awomir Nowakowski wrote: >> Dear All, >> >> We use kernel 2.6.25.17, Promise STEX 8650 RAID controller, LVM2 and >> snapshots. After about 3 hours of working (using SAMBA, RSYNC etc) >> dmesg showed following errors: >> >> XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1546 of file >> fs/xfs/xfs_alloc.c. Caller 0xc024f387 >> Pid: 16557, comm: smbd Not tainted 2.6.25.17-oe32-00000-g553425c #18 >> [] xfs_free_ag_extent+0x2fe/0x670 >> [] xfs_free_extent+0xc7/0xf0 >> [] xfs_free_extent+0xc7/0xf0 > > Freespace btree corruption. Run xfs_repair on tȘŰe filesystem > to fix the corruption, upgrade to 2.6.27 when it is released to > get all the fixes for known corruptions. > > FWIW, I see iSCSI and DRBD are in use on your machine. In the past, > XFS on top of either of these two transports would randomly suffer > from freespace btree corruptions which were not reproducable on > normal local block devices. So the cause of your problem may not be > XFS at all.... > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > Dear Dave, We do not use iSCSI and DRBD, only modules are loaded. In our test scenario it looks like the following: -RAID unit -> LVM2 -> LV with XFS file system. On this LV we made writting action using SAMBA and RSYNC. Can you please help me with another case? We made a different type of test using 2.6.25.17 kernel. We created one Logical Volume and 3 snapshots that are connected with this LV. The 3 snapshots were started and stopped around and we have run fsstress utility from SGI. After about 10 hours we get the following errors: Pid: 15004, comm: fsstress Not tainted (2.6.25.17-oe32-00000-g553425c #18) EIP: 0060:[] EFLAGS: 00010286 CPU: 0 EIP is at xfs_readlink+0x7/0x90 EAX: 00000000 EBX: 00000000 ECX: c0534000 EDX: c7bd7000 ESI: d60bbedc EDI: f689ea94 EBP: fffffff4 ESP: d60bbeb0 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process fsstress (pid: 15004, ti=d60ba000 task=e5feeb50 task.ti=d60ba000) Stack: d60bbedc c7bd7000 d60bbedc f689ea94 fffffff4 c02a9a92 c0534000 f689ea94 00001000 bfc02e90 c017def6 f61da8c0 c0188313 00000000 d60bbf40 c017b5f8 f61da8c0 c8e9ba94 00000000 ffffff9c 00000000 c017b8aa f3e8a000 f3e8a000 Call Trace: [] xfs_vn_follow_link+0x32/0x60 [] generic_readlink+0x26/0x70 [] mntput_no_expire+0x13/0x60 [] path_walk+0x58/0xc0 [] do_path_lookup+0xea/0x1a0 [] __user_walk_fd+0x33/0x40 [] sys_readlinkat+0x85/0x90 [] _atomic_dec_and_lock+0x2b/0x50 [] dput+0x1d/0xc0 [] __fput+0xf5/0x170 [] mntput_no_expire+0x13/0x60 [] sys_readlink+0x16/0x20 [] syscall_call+0x7/0xb ======================= Code: 8b 82 0c 01 00 00 c6 04 08 00 83 c4 68 89 f0 5b 5e 5f 5d c3 89 d8 e8 e9 7a 00 00 eb c8 8d b4 26 00 00 00 00 55 57 56 53 56 89 c3 <8b> 40 08 c7 04 24 00 00 00 00 89 d5 8b 80 04 02 00 00 31 d2 83 EIP: [] xfs_readlink+0x7/0x90 SS:ESP 0068:d60bbeb0 Do you know what can be the reason of this issue? If you need any other information, please do not hesitate to ask. Thank you very much for your help Best Regards Roland From owner-xfs@oss.sgi.com Fri Oct 3 02:53:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m939rrhg028053 for ; Fri, 3 Oct 2008 02:53:53 -0700 X-ASG-Debug-ID: 1223027730-37a700100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF3261370DB7 for ; Fri, 3 Oct 2008 02:55:31 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id XFiWDyNTURoNTihg for ; Fri, 03 Oct 2008 02:55:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhUDAASH5Uh5LF82iGdsb2JhbACTYQEBARUip2CBaA X-IronPort-AV: E=Sophos;i="4.33,356,1220193000"; d="scan'208";a="219640579" Received: from ppp121-44-95-54.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.95.54]) by ipmail04.adl2.internode.on.net with ESMTP; 03 Oct 2008 19:25:29 +0930 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KlhNf-0007et-Ni; Fri, 03 Oct 2008 19:55:27 +1000 Date: Fri, 3 Oct 2008 19:55:27 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Lachlan McIlroy , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Subject: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Message-ID: <20081003095527.GN30001@disturbed> Mail-Followup-To: Christoph Hellwig , Lachlan McIlroy , xfs@oss.sgi.com References: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> <20081003091001.GA11627@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081003091001.GA11627@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1223027731 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7144 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 03, 2008 at 05:10:01AM -0400, Christoph Hellwig wrote: > So this patch now has made it out to the CVS on oss, but not the actual > update of the surrouding kernel tree. Any chance to fix that before the > weekend so we'll actually have a tree the builds? I just noticed the master branch on the git tree on oss has been updated - it's got all the btree patches in it. It seems to build just fine - I haven't run it through xfsqa yet - still updating patches.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 3 08:03:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93F3Apg024546 for ; Fri, 3 Oct 2008 08:03:10 -0700 X-ASG-Debug-ID: 1223046287-732300ce0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp2-g19.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3DCB813782DD for ; Fri, 3 Oct 2008 08:04:47 -0700 (PDT) Received: from smtp2-g19.free.fr (smtp2-g19.free.fr [212.27.42.28]) by cuda.sgi.com with ESMTP id SSgzIVx1bZR8xiAV for ; Fri, 03 Oct 2008 08:04:47 -0700 (PDT) Received: from smtp2-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp2-g19.free.fr (Postfix) with ESMTP id E45A212B782 for ; Fri, 3 Oct 2008 17:04:46 +0200 (CEST) Received: from harpe.intellique.com (labo.djinux.com [82.225.196.72]) by smtp2-g19.free.fr (Postfix) with ESMTP id 972A912B75F for ; Fri, 3 Oct 2008 17:04:46 +0200 (CEST) Date: Fri, 3 Oct 2008 17:04:52 +0200 From: Emmanuel Florac To: xfs@oss.sgi.com X-ASG-Orig-Subj: what is the FS size limit for xfs_repair ? Subject: what is the FS size limit for xfs_repair ? Message-ID: <20081003170452.50a7ec78@harpe.intellique.com> Organization: Intellique X-Mailer: Claws Mail 3.0.2 (GTK+ 2.12.9; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Barracuda-Connect: smtp2-g19.free.fr[212.27.42.28] X-Barracuda-Start-Time: 1223046288 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7152 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- After a system crash on a system with a 40TB XFS filesystem, xfs_repair (32 bits binary, with a 64 bits 2.6.24 kernel) refused to work ("cannot allocate block map, size xxx"). The 64 bits xfs_repair did the trick fine. I tried to reproduce the problem today by corrupting a 22TB filesystem. However, 32 bits xfs_repair repaired the 22 TB FS just fine in the very same configuration (64 bits kernel, etc). I thought the limit would be at 16TB (32 bits limit for a filesystem) but obviously this isn't the case. Is the limitation higher (like 32 TB) or is it a bug of etch 4.0r4 xfs_repair? -- ---------------------------------------- Emmanuel Florac | Intellique ---------------------------------------- From owner-xfs@oss.sgi.com Fri Oct 3 08:22:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93FM58H030968 for ; Fri, 3 Oct 2008 08:22:06 -0700 X-ASG-Debug-ID: 1223047422-5399010b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ey-out-1920.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 216864ABC79 for ; Fri, 3 Oct 2008 08:23:43 -0700 (PDT) Received: from ey-out-1920.google.com (ey-out-1920.google.com [74.125.78.150]) by cuda.sgi.com with ESMTP id HFHJoRQZ5AzuDxbs for ; Fri, 03 Oct 2008 08:23:43 -0700 (PDT) Received: by ey-out-1920.google.com with SMTP id 21so501973eyc.32 for ; Fri, 03 Oct 2008 08:23:42 -0700 (PDT) Received: by 10.187.240.1 with SMTP id s1mr285266far.61.1223047421853; Fri, 03 Oct 2008 08:23:41 -0700 (PDT) Received: by 10.187.227.10 with HTTP; Fri, 3 Oct 2008 08:23:41 -0700 (PDT) Message-ID: <25446eb90810030823g70506145o9aef9ed3832abfe@mail.gmail.com> Date: Fri, 3 Oct 2008 16:23:41 +0100 From: "James Braid" To: "Emmanuel Florac" X-ASG-Orig-Subj: Re: what is the FS size limit for xfs_repair ? Subject: Re: what is the FS size limit for xfs_repair ? Cc: xfs@oss.sgi.com In-Reply-To: <20081003170452.50a7ec78@harpe.intellique.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081003170452.50a7ec78@harpe.intellique.com> X-Barracuda-Connect: ey-out-1920.google.com[74.125.78.150] X-Barracuda-Start-Time: 1223047424 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7153 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2008/10/3 Emmanuel Florac : > I thought the limit would be at 16TB (32 bits limit for a filesystem) > but obviously this isn't the case. Is the limitation higher (like 32 > TB) or is it a bug of etch 4.0r4 xfs_repair? The limit is how much memory a 32-bit process can allocate - it's not a limit of xfs_repair itself. xfs_repair uses different amounts of memory depending on the filesystem characteristics (number of inodes etc) - so a 32-bit xfs_repair might work fine on an empty filesystem but not on a filesystem with loads of files on it. e.g. we had a ~2TB filesystem with millions of inodes and 32-bit xfs_repair failed. From owner-xfs@oss.sgi.com Fri Oct 3 12:50:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93Jo7W8024051 for ; Fri, 3 Oct 2008 12:50:10 -0700 X-ASG-Debug-ID: 1223063501-4eac02790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0B499CE231; Fri, 3 Oct 2008 12:51:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id FehhfMbsvNNWJFjM; Fri, 03 Oct 2008 12:51:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Klqgf-0004wW-4v; Fri, 03 Oct 2008 19:51:41 +0000 Date: Fri, 3 Oct 2008 15:51:41 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Subject: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Message-ID: <20081003195141.GA18988@infradead.org> References: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> <20081003091001.GA11627@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081003091001.GA11627@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223063505 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7169 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 03, 2008 at 05:10:01AM -0400, Christoph Hellwig wrote: > So this patch now has made it out to the CVS on oss, but not the actual > update of the surrouding kernel tree. Any chance to fix that before the > weekend so we'll actually have a tree the builds? Ok, everything is fine now. Looks like the ptools to cvs push being fragile as usual.. From owner-xfs@oss.sgi.com Fri Oct 3 13:38:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93Kc8Bl027612 for ; Fri, 3 Oct 2008 13:38:08 -0700 X-ASG-Debug-ID: 1223066384-14ac02530000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp1-g19.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 265DB9D53F2 for ; Fri, 3 Oct 2008 13:39:44 -0700 (PDT) Received: from smtp1-g19.free.fr (smtp1-g19.free.fr [212.27.42.27]) by cuda.sgi.com with ESMTP id LRFM200PGLPoHOCj for ; Fri, 03 Oct 2008 13:39:44 -0700 (PDT) Received: from smtp1-g19.free.fr (localhost.localdomain [127.0.0.1]) by smtp1-g19.free.fr (Postfix) with ESMTP id 2A4861AB30C; Fri, 3 Oct 2008 22:39:43 +0200 (CEST) Received: from galadriel.home (pla78-1-82-235-234-79.fbx.proxad.net [82.235.234.79]) by smtp1-g19.free.fr (Postfix) with ESMTP id AA9681AB2F6; Fri, 3 Oct 2008 22:39:42 +0200 (CEST) Date: Fri, 3 Oct 2008 22:39:20 +0200 From: Emmanuel Florac To: "James Braid" Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: what is the FS size limit for xfs_repair ? Subject: Re: what is the FS size limit for xfs_repair ? Message-ID: <20081003223920.107aeb43@galadriel.home> In-Reply-To: <25446eb90810030823g70506145o9aef9ed3832abfe@mail.gmail.com> References: <20081003170452.50a7ec78@harpe.intellique.com> <25446eb90810030823g70506145o9aef9ed3832abfe@mail.gmail.com> Organization: Intellique X-Mailer: Claws Mail 3.0.2 (GTK+ 2.12.9; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: smtp1-g19.free.fr[212.27.42.27] X-Barracuda-Start-Time: 1223066385 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7172 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m93Kc8Bl027613 Le Fri, 3 Oct 2008 16:23:41 +0100 vous écriviez: > The limit is how much memory a 32-bit process can allocate - it's not > a limit of xfs_repair itself. OK, that makes sense. I'll keep my 64 bits xfs_repair at hand :) -- -------------------------------------------------- Emmanuel Florac www.intellique.com -------------------------------------------------- From owner-xfs@oss.sgi.com Fri Oct 3 13:57:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.6 required=5.0 tests=AWL,BAYES_20,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93Kv8r0029239 for ; Fri, 3 Oct 2008 13:57:09 -0700 X-ASG-Debug-ID: 1223067525-622901ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from yw-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D17E7137EBA8 for ; Fri, 3 Oct 2008 13:58:45 -0700 (PDT) Received: from yw-out-1718.google.com (yw-out-1718.google.com [74.125.46.152]) by cuda.sgi.com with ESMTP id 9Nb9XEO7fx776JRz for ; Fri, 03 Oct 2008 13:58:45 -0700 (PDT) Received: by yw-out-1718.google.com with SMTP id 5so294451ywm.32 for ; Fri, 03 Oct 2008 13:58:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=hVYEHzSulcM2YYaXs2bM5E3eHg8KzRbY5IZc4X2Z0gM=; b=NUTCRpy7hW0DYIYYZrUFURCzvXFUuK3Y25kZ8VbA96W8fPqeJ5vfW8v0qlnmh+Qknt cCg3Dcz7jnG5P5vzfmrqOFAVEDiFPY8S4D3l0FRSteJXEkhXjLM0uihriyBVlGsHKv2P 0Dew9+1Qf5KHL7fdp7aY7ZuLm/wPueKhuAD08= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=mUxesLI616a283t7T5Zwf1ZgYHycPlhk6u0RKAxZrDQOcgVZRskbWBhnFf2We9PTsf wNFlu0ZDLfEpaLwIufyO9qDxrSXSYR5Czx3VpPCnlQOv98wKCMIrz4ZbsNsTlyQvm7p6 zszY/LUDMzigM7woXXZk3n6DiwpeQFZCsIokA= Received: by 10.151.51.18 with SMTP id d18mr2500956ybk.245.1223067524862; Fri, 03 Oct 2008 13:58:44 -0700 (PDT) Received: by 10.150.154.1 with HTTP; Fri, 3 Oct 2008 13:58:44 -0700 (PDT) Message-ID: <4f52331f0810031358y6702581ft8b255df1305e5368@mail.gmail.com> Date: Fri, 3 Oct 2008 13:58:44 -0700 From: "Fong Vang" To: xfs@oss.sgi.com X-ASG-Orig-Subj: how to determine version of XFS Subject: how to determine version of XFS MIME-Version: 1.0 X-Barracuda-Connect: yw-out-1718.google.com[74.125.46.152] X-Barracuda-Start-Time: 1223067526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0184 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7173 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 296 How does one determine the version of XFS being used in a kernel. I'm running the CentOS 4.7 plus kernel, but I'm not sure what version of XFS that is. modinfo only provide info about the kernel version. I don't see anything in dmesg and in /proc. thanks [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Fri Oct 3 13:59:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m93KxZEN029556 for ; Fri, 3 Oct 2008 13:59:36 -0700 X-ASG-Debug-ID: 1223067673-622c01b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F9EB137EFCB for ; Fri, 3 Oct 2008 14:01:13 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id XaqCzbQC8J97vZw1 for ; Fri, 03 Oct 2008 14:01:13 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id E86DEA9ABD0; Fri, 3 Oct 2008 16:01:12 -0500 (CDT) Message-ID: <48E68818.308@sandeen.net> Date: Fri, 03 Oct 2008 16:01:12 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Fong Vang CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: how to determine version of XFS Subject: Re: how to determine version of XFS References: <4f52331f0810031358y6702581ft8b255df1305e5368@mail.gmail.com> In-Reply-To: <4f52331f0810031358y6702581ft8b255df1305e5368@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223067673 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7173 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Fong Vang wrote: > How does one determine the version of XFS being used in a kernel. I'm > running the CentOS 4.7 plus kernel, but I'm not sure what version of XFS > that is. modinfo only provide info about the kernel version. I don't see > anything in dmesg and in /proc. > > thanks "uname -r" :) There really isn't a "version" of xfs anymore; it just lives upstream. The xfs module in centos is roughly xfs from the 2.6.9 era, IIRC. -Eric From owner-xfs@oss.sgi.com Fri Oct 3 17:21:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m940LOTv015794 for ; Fri, 3 Oct 2008 17:21:24 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 5F2519095C; Fri, 3 Oct 2008 17:22:58 -0700 (PDT) Received: from [134.15.251.3] (melb-sw-corp-251-3.corp.sgi.com [134.15.251.3]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA24343; Sat, 4 Oct 2008 10:22:41 +1000 Message-ID: <48E6B731.8020806@sgi.com> Date: Sat, 04 Oct 2008 10:22:09 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Emmanuel Florac CC: James Braid , xfs@oss.sgi.com Subject: Re: what is the FS size limit for xfs_repair ? References: <20081003170452.50a7ec78@harpe.intellique.com> <25446eb90810030823g70506145o9aef9ed3832abfe@mail.gmail.com> <20081003223920.107aeb43@galadriel.home> In-Reply-To: <20081003223920.107aeb43@galadriel.home> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Emmanuel Florac wrote: > Le Fri, 3 Oct 2008 16:23:41 +0100 vous écriviez: > >> The limit is how much memory a 32-bit process can allocate - it's not >> a limit of xfs_repair itself. > > OK, that makes sense. I'll keep my 64 bits xfs_repair at hand :) > As a rule of thumb with a fairly recent xfs_repair, you need approx 128MB RAM per TB filesystem size (but it also depends on number of inodes too). Cheers -- Mark From owner-xfs@oss.sgi.com Sat Oct 4 03:13:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.2 required=5.0 tests=AWL,BAYES_50,HTML_MESSAGE, MIME_HTML_MOSTLY,MPART_ALT_DIFF autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m94ADXoE030597 for ; Sat, 4 Oct 2008 03:13:33 -0700 X-ASG-Debug-ID: 1223115310-50fc01f60000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-2.orange.nl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ADA1E4B137C for ; Sat, 4 Oct 2008 03:15:10 -0700 (PDT) Received: from smtp-2.orange.nl (smtp-2.orange.nl [193.252.22.242]) by cuda.sgi.com with ESMTP id XqSEHqkh36eGFaWp for ; Sat, 04 Oct 2008 03:15:10 -0700 (PDT) Received: from me-wanadoo.net (localhost [127.0.0.1]) by mwinf6108.online.nl (SMTP Server) with ESMTP id CCC3E70000AF; Sat, 4 Oct 2008 12:15:09 +0200 (CEST) Received: from kkll-PC (unknown [62.234.208.168]) by mwinf6108.online.nl (SMTP Server) with SMTP id D290270000A7; Sat, 4 Oct 2008 12:14:21 +0200 (CEST) X-ME-UUID: 20081004101422862.D290270000A7@mwinf6108.online.nl Message-ID: <002a01c9266c$e0fa0aa4$5ab8a07d@devilqf> From: "David Ibrahim" X-ASG-Orig-Subj: Reply Soon ! Subject: Reply Soon ! Date: Sat, 4 Oct 2008 12:11:26 +0200 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 To: undisclosed-recipients: ; X-Barracuda-Connect: smtp-2.orange.nl[193.252.22.242] X-Barracuda-Start-Time: 1223115311 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5166 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.90 X-Barracuda-Spam-Status: No, SCORE=1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC3_TG077, HTML_MESSAGE, MIME_HTML_MOSTLY, MPART_ALT_DIFF X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7205 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_MOSTLY BODY: Multipart message mostly text/html MIME 0.00 HTML_MESSAGE BODY: HTML included in message 0.14 MPART_ALT_DIFF BODY: HTML and text parts are different 1.00 BSF_SC3_TG077 Custom rule TG077 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 37 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Sat Oct 4 05:57:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m94CvbHN013722 for ; Sat, 4 Oct 2008 05:57:38 -0700 X-ASG-Debug-ID: 1223125155-5dce010d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from web65705.mail.ac4.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 53EF94B1A79 for ; Sat, 4 Oct 2008 05:59:15 -0700 (PDT) Received: from web65705.mail.ac4.yahoo.com (web65705.mail.ac4.yahoo.com [76.13.9.97]) by cuda.sgi.com with SMTP id 3zlVevzvud5mXoaH for ; Sat, 04 Oct 2008 05:59:15 -0700 (PDT) Received: (qmail 79823 invoked by uid 60001); 4 Oct 2008 12:59:14 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type:Message-ID; b=Jh+wC9EMPNzgVTGwOxS75Yg4KobY/k8c/SE950nYOQCoTI85f7ZiR8lFOzxLBviZlOuuW9GFAhaPLtPpfVoDLeADvphC7zKTrsfJpYOnhw4exozOBLuudArbA28Ux1iu3dAedA7UMlArolAeDHGMnONrW8/CQb725mFyQkc8kW4=; X-YMail-OSG: HkIxRgkVM1nzlK6PJEk5_sewOVbkdanL.loowQZsteCLs.AM.J0y7nY9TleK06BKMWUIcv.17uRjV15gziqa2dDSzl9f6D3SV.gZQ1ODQu2abMUJ4yc37UHQUEwsrBxvQqIHdMKC6OFjIv.B9UxKbtGQpmjfm8PJ.utXi2BR.Ji_HuvgP.M- Received: from [203.111.229.110] by web65705.mail.ac4.yahoo.com via HTTP; Sat, 04 Oct 2008 05:59:14 PDT X-Mailer: YahooMailWebService/0.7.218.2 Date: Sat, 4 Oct 2008 05:59:14 -0700 (PDT) From: "Wilfredo Jr. Badoy" Reply-To: wbadoy@yahoo.com X-ASG-Orig-Subj: implementing trees Subject: implementing trees To: xfs@oss.sgi.com MIME-Version: 1.0 Message-ID: <836721.79808.qm@web65705.mail.ac4.yahoo.com> X-Barracuda-Connect: web65705.mail.ac4.yahoo.com[76.13.9.97] X-Barracuda-Start-Time: 1223125156 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5083 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7215 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 746 good day, =C2=A0i am wilfredo b. badoy jr., a graduate student of ateneo de davao, ph= ilippines. i am interested in implementing a B* structure, in replacement of the B+ st= ructure you implemented in XFS. i would like to try and compare the perform= ance of both implementations, and see if there is any difference in reads a= nd writes. i did tried to change the code four years ago. it crashed my pc. :-) i would like to ask for your help regarding this. if you can point to me wh= ich code to change, i would appreciate it very much.=20 thank you and more power. Get your preferred Email name! Now you can @ymail.com and @rocketmail.com.=20 http://mail.promotions.yahoo.com/newdomains/aa/ [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Sun Oct 5 02:59:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m959xOV3023297 for ; Sun, 5 Oct 2008 02:59:24 -0700 X-ASG-Debug-ID: 1223200844-6b07013c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from UNKNOWN (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E80264B8183 for ; Sun, 5 Oct 2008 03:00:47 -0700 (PDT) Received: from UNKNOWN (gprs189-60.eurotel.cz [160.218.189.60]) by cuda.sgi.com with ESMTP id EmPjQGmTBU2p8jyt for ; Sun, 05 Oct 2008 03:00:47 -0700 (PDT) Received: by UNKNOWN (Postfix, from userid 1001) id BEC2B12039; Sun, 5 Oct 2008 12:00:38 +0200 (CEST) Date: Sun, 5 Oct 2008 12:00:38 +0200 From: Pavel Machek To: Eric Sandeen Cc: Christoph Hellwig , Takashi Sato , Ric Wheeler , Andrew Morton , Oleg Nesterov , linux-fsdevel@vger.kernel.org, dm-devel@redhat.com, viro@ZenIV.linux.org.uk, linux-ext4@vger.kernel.org, xfs@oss.sgi.com, axboe@kernel.dk, mtk.manpages@googlemail.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 3/3] Add timeout feature Subject: Re: [PATCH 3/3] Add timeout feature Message-ID: <20081005100037.GB2351@ucw.cz> References: <20080908205337t-sato@mail.jp.nec.com> <20080908171119.GB22521@infradead.org> <48DBFD42.6030307@redhat.com> <20080929141326.GA31781@infradead.org> <48E0E7D4.1090409@sandeen.net> <20080929143749.GA13286@infradead.org> <48E0EA0B.7000701@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48E0EA0B.7000701@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: gprs189-60.eurotel.cz[160.218.189.60] X-Barracuda-Start-Time: 1223200859 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.72 X-Barracuda-Spam-Status: No, SCORE=-1.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=TVD_RCVD_SINGLE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7286 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.30 TVD_RCVD_SINGLE TVD_RCVD_SINGLE On Mon 2008-09-29 09:45:31, Eric Sandeen wrote: > Christoph Hellwig wrote: > > On Mon, Sep 29, 2008 at 09:36:04AM -0500, Eric Sandeen wrote: > >> Christoph Hellwig wrote: > >>> On Fri, Sep 26, 2008 at 05:52:35PM +0900, Takashi Sato wrote: > >>>> I think that your concern is that the freezer cannot recognize the occurrence > >>>> of a timeout and it continues the backup process and the backup data is > >>>> corrupted finally. > >>> What timeout should happen? the freeze ioctl must not return until the > >>> filesystem is a clean state and all writes are blocked. > >> The suggestion was that *UN*freeze would return ETIMEDOUT if the > >> filesystem had already unfrozen itself, I think. That way you know that > >> the snapshot you just took is worthless, at least. > > > > But why would the filesystem every unfreeze itself? That defeats the > > whole point of freezing it. > > I agree. Was just trying to clarify the above point. > > But there have been what, 12 submissions now, with the unfreeze timeout > in place so it's a persistent theme ;) > > Perhaps a demonstration of just how easy (or not easy) it is to deadlock > a filesystem by freezing the root might be in order, at least. > > And even if it is relatively easy, I still maintain that it is the > administrator's role to not inflict damage on the machine being > administered. There are a lot of potentially dangerous tools at root's > disposal; why this particular one needs a nanny I'm still not quite sure. Can you docuument what administrator must not do for freezing to be safe? What if so much dirty data accumulates on frozen filesystem that there's not enough memory for the unfreeze tool? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html From owner-xfs@oss.sgi.com Sun Oct 5 04:54:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m95BsYG8003626 for ; Sun, 5 Oct 2008 04:54:34 -0700 X-ASG-Debug-ID: 1223207771-5cc401600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 767CC1B56C06 for ; Sun, 5 Oct 2008 04:56:11 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id srCLJp2xlqYXcGOq for ; Sun, 05 Oct 2008 04:56:11 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id E4708AC3591; Sun, 5 Oct 2008 06:56:10 -0500 (CDT) Message-ID: <48E8AB5A.7080301@sandeen.net> Date: Sun, 05 Oct 2008 06:56:10 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Lachlan McIlroy CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). Subject: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). References: <20080923032821.A91D758C52AE@chook.melbourne.sgi.com> In-Reply-To: <20080923032821.A91D758C52AE@chook.melbourne.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223207773 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7294 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Lachlan McIlroy wrote: > Fix extent list corruption in xfs_iext_irec_compact_full(). > > If we don't move all the records from the next buffer into the current buffer > then we need to update the er_extoff field of the next buffer as we shift the > remaining records to the start of the buffer. > > Date: Tue Sep 23 13:20:30 AEST 2008 > Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-xfs > Inspected by: > sandeen@sandeen.net > cattelan@thebarn.com > Author: lachlan > > The following file(s) were checked into: > longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb > > > Modid: xfs-linux-melb:xfs-kern:32165a > fs/xfs/xfs_inode.c - 1.521 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/> xfs_inode.c.diff?r1=text&tr1=1.521&r2=text&tr2=1.520&f=h > http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.521&r2=text&tr2=1.520&f=h > - Fix extent list corruption in xfs_iext_irec_compact_full(). Are there plans to try to get this, and possibly the compact_full removal pushed into 2.6.27 still? (and maybe even 2.6.26.x?) -Eric From owner-xfs@oss.sgi.com Sun Oct 5 04:58:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m95BwiVI004279 for ; Sun, 5 Oct 2008 04:58:50 -0700 X-ASG-Debug-ID: 1223208023-5cc701910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F2C7D1B56C81 for ; Sun, 5 Oct 2008 05:00:23 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id i36uJZelyAlXHiPr for ; Sun, 05 Oct 2008 05:00:23 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 8E67FAC3591; Sun, 5 Oct 2008 07:00:23 -0500 (CDT) Message-ID: <48E8AC57.4050503@sandeen.net> Date: Sun, 05 Oct 2008 07:00:23 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Lachlan McIlroy CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). Subject: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). References: <20080923032821.A91D758C52AE@chook.melbourne.sgi.com> <48E8AB5A.7080301@sandeen.net> In-Reply-To: <48E8AB5A.7080301@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223208023 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7294 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Eric Sandeen wrote: > Lachlan McIlroy wrote: >> - Fix extent list corruption in xfs_iext_irec_compact_full(). > > Are there plans to try to get this, and possibly the compact_full > removal pushed into 2.6.27 still? (and maybe even 2.6.26.x?) > > -Eric > > ugh already in, sorry. ignore me! -Eric From owner-xfs@oss.sgi.com Sun Oct 5 16:59:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m95Nx5u7030468 for ; Sun, 5 Oct 2008 16:59:06 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 49A398F820C; Sun, 5 Oct 2008 17:00:37 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA01747; Mon, 6 Oct 2008 11:00:34 +1100 Message-ID: <48E9631A.8050404@sgi.com> Date: Mon, 06 Oct 2008 11:00:10 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Eric Sandeen CC: Lachlan McIlroy , xfs@oss.sgi.com Subject: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). References: <20080923032821.A91D758C52AE@chook.melbourne.sgi.com> <48E8AB5A.7080301@sandeen.net> <48E8AC57.4050503@sandeen.net> In-Reply-To: <48E8AC57.4050503@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Eric Sandeen wrote: > Eric Sandeen wrote: >> Lachlan McIlroy wrote: > > >>> - Fix extent list corruption in xfs_iext_irec_compact_full(). >> Are there plans to try to get this, and possibly the compact_full >> removal pushed into 2.6.27 still? (and maybe even 2.6.26.x?) >> >> -Eric >> >> > > ugh already in, sorry. ignore me! yes, already in .27, but not yet .26 as far as I know. Cheers -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Sun Oct 5 17:56:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.3 required=5.0 tests=BAYES_20,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m960uZqT001746 for ; Sun, 5 Oct 2008 17:56:35 -0700 Received: from cf--amer001e--3.americas.sgi.com (cf--amer001e--3.americas.sgi.com [137.38.100.5]) by relay1.corp.sgi.com (Postfix) with ESMTP id 432728F820C for ; Sun, 5 Oct 2008 17:58:12 -0700 (PDT) X-MimeOLE: Produced By Microsoft Exchange V6.5.7226.0 MIME-Version: 1.0 Subject: xfs_admin -U generate Date: Sun, 5 Oct 2008 19:58:12 -0500 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: xfs_admin -U generate Thread-Index: Acklo1xqDT8VemsgR3ekzQ9DDpAOmABqu/OA From: "Carolyn Knox" To: "Carolyn Knox" , Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 450 Hello, Our group is looking into using `xfs_admin -U generate` command on a couple of SVM MultiMirror views (with xfs filesystem source) to be able to mount multiple views of the filesystem to more than one mount point at the same time (SLES 9 platform). I'm wondering if there is a downside or known issues that I should be made aware of, or if this is practice is frowned upon. Thanks, Carrie [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Sun Oct 5 18:28:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m961SrEf004054 for ; Sun, 5 Oct 2008 18:28:53 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 3C58F90891; Sun, 5 Oct 2008 18:30:24 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA03134; Mon, 6 Oct 2008 12:30:21 +1100 Message-ID: <48E96C6B.7000009@sgi.com> Date: Mon, 06 Oct 2008 11:39:55 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: Re: TAKE 957103 - Merge up to 2.6.27-rc8 References: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> <20081003091001.GA11627@infradead.org> <20081003195141.GA18988@infradead.org> In-Reply-To: <20081003195141.GA18988@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Fri, Oct 03, 2008 at 05:10:01AM -0400, Christoph Hellwig wrote: >> So this patch now has made it out to the CVS on oss, but not the actual >> update of the surrouding kernel tree. Any chance to fix that before the >> weekend so we'll actually have a tree the builds? > > Ok, everything is fine now. Looks like the ptools to cvs push being > fragile as usual.. Both changes (ie fs/xfs and everything else) went in at the same time. Probably just ptools congestion. From owner-xfs@oss.sgi.com Sun Oct 5 21:03:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9643hst019108 for ; Sun, 5 Oct 2008 21:03:43 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 2714290891; Sun, 5 Oct 2008 21:05:18 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA06327; Mon, 6 Oct 2008 15:05:17 +1100 Message-ID: <48E990BA.3080306@sgi.com> Date: Mon, 06 Oct 2008 14:14:50 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Eric Sandeen , xfs@oss.sgi.com Subject: Re: [PATCH] XFS: Check for valid transaction headers in recovery References: <1222218974-5161-1-git-send-email-david@fromorbit.com> <48D9AF0C.3050404@sandeen.net> <20080924034120.GG5448@disturbed> In-Reply-To: <20080924034120.GG5448@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Looks fine now Dave. Dave Chinner wrote: > On Tue, Sep 23, 2008 at 10:07:56PM -0500, Eric Sandeen wrote: >> Dave Chinner wrote: >>> When we are about to add a new item to a transaction in recovery, >>> we need to check that it is valid first. Current we just assert >>> that header magic number matches, but in production systems >>> that is not done add a corrupted transaction to the list to be >>> processed. This results in a kernel oops later when processing the >>> corrupted transaction. >>> >>> Instead, if we detect a corrupted transaction, abort recovery and >>> leave the user to clean up the mess that has occurred. >>> >>> Signed-off-by: Dave Chinner >> Seems fine to me (I guess you tried the provided corrupt image?) > > Yes, I tried to mount it. > >> but the >> commit message could be made a bit more ... English ;) > > Right. Updated patch (description) below ;) > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Mon Oct 6 10:22:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96HMNrS001766 for ; Mon, 6 Oct 2008 10:22:23 -0700 X-ASG-Debug-ID: 1223313842-1a1302c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 278A4139EDF7 for ; Mon, 6 Oct 2008 10:24:02 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id wQDoRaJD387tY34D for ; Mon, 06 Oct 2008 10:24:02 -0700 (PDT) Received: from funky.thebarn.com (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m96HO1v5016563; Mon, 6 Oct 2008 12:24:01 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <48EA49B1.2000500@thebarn.com> Date: Mon, 06 Oct 2008 12:24:01 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: markgw@sgi.com CC: Eric Sandeen , Lachlan McIlroy , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). Subject: Re: PARTIAL TAKE 987159 - Fix extent list corruption in xfs_iext_irec_compact_full(). References: <20080923032821.A91D758C52AE@chook.melbourne.sgi.com> <48E8AB5A.7080301@sandeen.net> <48E8AC57.4050503@sandeen.net> <48E9631A.8050404@sgi.com> In-Reply-To: <48E9631A.8050404@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8378/Mon Oct 6 07:51:03 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1223313843 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0164 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7402 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Mark Goodwin wrote: > > > Eric Sandeen wrote: >> Eric Sandeen wrote: >>> Lachlan McIlroy wrote: >> >> >>>> - Fix extent list corruption in xfs_iext_irec_compact_full(). >>> Are there plans to try to get this, and possibly the compact_full >>> removal pushed into 2.6.27 still? (and maybe even 2.6.26.x?) >>> >>> -Eric >>> >>> >> >> ugh already in, sorry. ignore me! > > yes, already in .27, but not yet .26 as far as I know. > > Cheers > BTW can we get xfsidbg fixed up so it compiles. Also it would be nice to add the extra debug patch into the extent list print function. From owner-xfs@oss.sgi.com Mon Oct 6 11:14:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96IEoXt005555 for ; Mon, 6 Oct 2008 11:14:50 -0700 X-ASG-Debug-ID: 1223316987-1f5700d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B51234BDBA1 for ; Mon, 6 Oct 2008 11:16:28 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id XdCCbASYKQdggy8D for ; Mon, 06 Oct 2008 11:16:28 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m96IGQIF015469 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Mon, 6 Oct 2008 20:16:26 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m96IGQqN015467 for xfs@oss.sgi.com; Mon, 6 Oct 2008 20:16:26 +0200 Date: Mon, 6 Oct 2008 20:16:26 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] remove exports of inline functions Subject: [PATCH] remove exports of inline functions Message-ID: <20081006181626.GA15388@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223316989 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7404 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Recent gcc starts to complain about exports of functions marked static inline, so let's get rid of those. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:08:33.000000000 +0000 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:09:58.000000000 +0000 @@ -153,8 +153,6 @@ EXPORT_SYMBOL(kmem_zalloc); EXPORT_SYMBOL(kmem_zone_alloc); EXPORT_SYMBOL(kmem_zalloc_greedy); -EXPORT_SYMBOL(kmem_zone_free); -EXPORT_SYMBOL(kmem_zone_init); EXPORT_SYMBOL(kmem_zone_zalloc); EXPORT_SYMBOL(xfs_address_space_operations); EXPORT_SYMBOL(xfs_dir_file_operations); @@ -217,8 +215,6 @@ EXPORT_SYMBOL(xfs_finish_reclaim_all); EXPORT_SYMBOL(xfs_freesb); EXPORT_SYMBOL(xfs_fs_cmn_err); -EXPORT_SYMBOL(xfs_highbit32); -EXPORT_SYMBOL(xfs_highbit64); EXPORT_SYMBOL(xfs_idestroy); EXPORT_SYMBOL(xfs_iextract); EXPORT_SYMBOL(xfs_iext_add); @@ -227,10 +223,7 @@ EXPORT_SYMBOL(xfs_iext_idx_to_irec); EXPORT_SYMBOL(xfs_iext_insert); EXPORT_SYMBOL(xfs_iext_remove); -EXPORT_SYMBOL(xfs_iflock); -EXPORT_SYMBOL(xfs_iflock_nowait); EXPORT_SYMBOL(xfs_iflush); -EXPORT_SYMBOL(xfs_ifunlock); EXPORT_SYMBOL(xfs_iget); EXPORT_SYMBOL(xfs_ilock); EXPORT_SYMBOL(xfs_ilock_map_shared); From owner-xfs@oss.sgi.com Mon Oct 6 13:28:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96KSkKF020773 for ; Mon, 6 Oct 2008 13:28:47 -0700 X-ASG-Debug-ID: 1223325023-074902200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 462A29F110B for ; Mon, 6 Oct 2008 13:30:23 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id GDcpjmMFs6CjAlFZ for ; Mon, 06 Oct 2008 13:30:23 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id E7A74EF512; Mon, 6 Oct 2008 16:30:22 -0400 (EDT) Date: Mon, 6 Oct 2008 16:30:22 -0400 (EDT) From: Justin Piszcz To: xfs@oss.sgi.com cc: Lennart Hansen X-ASG-Orig-Subj: XFS: "slow at directory traversal .. after 3 years of use" Subject: XFS: "slow at directory traversal .. after 3 years of use" In-Reply-To: <1c08324d0810061325kdd1453alb9eab9ceb769b1cf@mail.gmail.com> Message-ID: References: <1c08324d0810061325kdd1453alb9eab9ceb769b1cf@mail.gmail.com> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1223325025 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7413 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Someone pointed me to the following paper: http://www.stdlib.net/~colmmacc/Apachecon-EU2005/scaling-apache-handout.pdf Which states: After nearly 3 years of use, some problems with XFS became noticeable. As the number of used inodes in the filesystem grows XFS becomes very slow at directory traversal. Although this did not impede web-serving it did have a heavy impact on how quickly we could synchronise content with the primary sources. Dave / Eric, comments here? Does ext3 suffer from the same problem? Have these issues been fixed since 2005? Would inode64 alleviate some of these problems? Justin. From owner-xfs@oss.sgi.com Mon Oct 6 15:24:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_23 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96MONiI028381 for ; Mon, 6 Oct 2008 15:24:24 -0700 X-ASG-Debug-ID: 1223331961-0f62004c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail1.g-b.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 03CF74BECFE for ; Mon, 6 Oct 2008 15:26:01 -0700 (PDT) Received: from mail1.g-b.net (mail1.g-b.net [64.191.66.247]) by cuda.sgi.com with ESMTP id KcyzlRuDYNkLqpLU for ; Mon, 06 Oct 2008 15:26:01 -0700 (PDT) Received: from [192.168.10.1] (agraham [93.97.176.102]) by mail1.g-b.net (8.13.8/8.13.8) with ESMTP id m96MPxu2014939 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 6 Oct 2008 23:26:00 +0100 Message-ID: <48EA9076.5030800@g-b.net> Date: Mon, 06 Oct 2008 23:25:58 +0100 From: Albert Graham Reply-To: albert.graham@g-b.net User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Albert Graham , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS Regression Issue in kernel 2.6.26.3 Subject: Re: XFS Regression Issue in kernel 2.6.26.3 References: <48E51BF5.3080100@g-b.net> <20081002235211.GI30001@disturbed> In-Reply-To: <20081002235211.GI30001@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail1.g-b.net[64.191.66.247] X-Barracuda-Start-Time: 1223331963 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7421 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > On Thu, Oct 02, 2008 at 08:07:33PM +0100, Albert Graham wrote: >> Hi Guys, >> >> I use Fedora 8 as my MythTV backend server which uses XFS, ISince >> upgrading from kernel-2.6.25 to kernel-2.6.26 I've been getting the >> following errors (see below). > > The freespace btrees are getting out of sync for some reason. > > That is, when we go to allocate an extent, we have to update two > free space btrees. This shutdown: > >> XFS internal error XFS_WANT_CORRUPTED_RETURN at line 280 of file fs/xfs/xfs_alloc.c. Caller 0xf88e0018 > > Indicates the extent being allocated was not found in one of the > two trees. > > This corruption could have happened a long time ago in the past, and > it may simply be coincidental that you've tripped over this at > roughly the same time you upgraded the kernel. > > Can you run xfs_check on the filesystem to determine if a freespace > tree is corrupted (post the output if it is), then run xfs_repair > to rebuild them? > > Cheers, > > Dave. Hi Dave, Thanks for responding, I've just spotted your mail. You are correct on all assumptions. 1. The disk was almost full - 8G free of 1024G 2. I do think this happened sometime ago and the kernel update was coincidental - as previous kernels had same response. 3. xfs_repair did fix it (output was lost as I repaired it before reading your response - but see below) In my case I have a 1TB file/dd image using XFS which is sitting on a 7TB XFS formatted disk. The 1TB file was where there error was occuring, this file was mounted via losetup (/dev/loop7), however when I tried to mount it I got a segmentation fault and the following message /usr/sbin/xfs_check: line 28: 3230 Floating point exceptionxfs_db$DBOPTS -i -p xfs_check -c "check$OPTS" $1 I did search google for it (and google saved it for me, which is how I recalled it) I also got a kernel panic/trace error which was logged via syslog, so that is posted below - hope this helps. I had to use "xfs_repair -L /dev/loop7" to fix it as I was unable to replay the log via mounting, all seems fine now :) I'm not able to show the output of the fixing process, but it was only about 20 lines long, mostly stating: ag1 ag2 some other stuff.. ag3 etc.. Hope this helps - and thanks for your response. Albert. syslog output ============== Oct 6 08:09:43 agraham kernel: BUG: unable to handle kernel NULL pointer dereference at 0000005c Oct 6 08:09:43 agraham kernel: IP: [] :xfs:xfs_alloc_increment+0xd9/0x155 Oct 6 08:09:43 agraham kernel: *pdpt = 0000000036451001 *pde = 000000023d1fc067 Oct 6 08:09:43 agraham kernel: Oops: 0000 [#1] SMP Oct 6 08:09:43 agraham kernel: Modules linked in: sha256_generic aes_i586 aes_generic cbc dm_crypt crypto_blkcipher aoe nvidia(P)(U) tun saa7134_alsa loop nfsd lockd nfs_acl auth_rpcgss exportfs coretemp w83627ehf w83791d hwmon_vid hwmon sunrpc ipv6 bridge ext3 jbd mbcache dm_mirror dm_log dm_multipath dm_mod snd_emu10k1_synth snd_emux_synth sr_mod cdrom snd_seq_virmidi snd_seq_midi_emul ata_generic tuner_simple tuner_types tuner snd_emu10k1 snd_ac97_codec ac97_bus snd_usb_audio snd_usb_lib snd_rawmidi pata_acpi snd_hda_intel snd_seq_dummy snd_seq_oss snd_seq_midi_event saa7134 snd_seq videodev snd_pcm_oss v4l1_compat snd_mixer_oss compat_ioctl32 v4l2_common videobuf_dma_sg videobuf_core snd_pcm ir_kbd_i2c snd_seq_device ir_common snd_timer snd_util_mem tveeprom snd_page_alloc pata_jmicron snd_hwdep firewire_ohci firewire_core pcspkr snd sky2 crc_itu_t iTCO_wdt i2c_i801 iTCO_vendor_support soundcore sg i2c_core ata_piix sata_promise ahci libata 3w_9xxx sd_mod scsi_mod xfs uhci_hcd ohci_hcd ehci_hcd [last unloade Oct 6 08:09:43 agraham kernel: d: nvidia] Oct 6 08:09:43 agraham kernel: Oct 6 08:09:43 agraham kernel: Pid: 15036, comm: mount Tainted: P (2.6.26.3-14.fc8PAE #1) Oct 6 08:09:43 agraham kernel: EIP: 0060:[] EFLAGS: 00010246 CPU: 3 Oct 6 08:09:43 agraham kernel: EIP is at xfs_alloc_increment+0xd9/0x155 [xfs] Oct 6 08:09:43 agraham kernel: EAX: 00000000 EBX: f7d3af58 ECX: ee8ce000 EDX: 00000003 Oct 6 08:09:43 agraham kernel: ESI: f7d3af30 EDI: 00000002 EBP: f6d69b74 ESP: f6d69b58 Oct 6 08:09:43 agraham kernel: DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Oct 6 08:09:43 agraham kernel: Process mount (pid: 15036, ti=f6d69000 task=f5063200 task.ti=f6d69000) Oct 6 08:09:43 agraham kernel: Stack: f6d69bf8 00000000 f7d3af95 00000000 000000fe 000000fd 00000000 f6d69c08 Oct 6 08:09:43 agraham kernel: f88e1fb8 2c0018f8 ee8ce800 00000008 00000000 f6d69ba4 f6d69c14 00000000 Oct 6 08:09:43 agraham kernel: f7d3a000 00000000 ee8d3200 ee8ce000 f6d69bc0 f51d8a80 0001f9c1 ee8ce000 Oct 6 08:09:43 agraham kernel: Call Trace: Oct 6 08:09:43 agraham kernel: [] ? xfs_alloc_delrec+0x3b4/0x991 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_alloc_delete+0x23/0x72 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_free_ag_extent+0x36d/0x574 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_free_extent+0xa9/0xc5 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xlog_grant_log_space+0x1ad/0x1f2 [xfs] Oct 6 08:09:43 agraham kernel: [] ? kmem_zone_alloc+0x4a/0x90 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xlog_recover_process_efi+0x185/0x1df [xfs] Oct 6 08:09:43 agraham kernel: [] ? xlog_recover_process_efis+0x42/0x73 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xlog_recover_finish+0x15/0x9c [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_log_mount_finish+0x2c/0x35 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_mountfs+0x46a/0x607 [xfs] Oct 6 08:09:43 agraham kernel: [] ? kmem_zalloc+0x10/0x38 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_mru_cache_create+0xdf/0x10f [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_mount+0x25f/0x2fa [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_fs_fill_super+0xa7/0x1bf [xfs] Oct 6 08:09:43 agraham kernel: [] ? get_sb_bdev+0xca/0x110 Oct 6 08:09:43 agraham kernel: [] ? xfs_fs_get_sb+0x13/0x15 [xfs] Oct 6 08:09:43 agraham kernel: [] ? xfs_fs_fill_super+0x0/0x1bf [xfs] Oct 6 08:09:43 agraham kernel: [] ? vfs_kern_mount+0x81/0xf7 Oct 6 08:09:43 agraham kernel: [] ? do_kern_mount+0x32/0xb9 Oct 6 08:09:43 agraham kernel: [] ? do_new_mount+0x46/0x71 Oct 6 08:09:43 agraham kernel: [] ? do_mount+0x1b0/0x1ce Oct 6 08:09:43 agraham kernel: [] ? __get_free_pages+0x1b/0x21 Oct 6 08:09:43 agraham kernel: [] ? copy_mount_options+0x27/0x10b Oct 6 08:09:43 agraham kernel: [] ? sys_mount+0x64/0x9b Oct 6 08:09:43 agraham kernel: [] ? sysenter_past_esp+0x78/0xb1 Oct 6 08:09:43 agraham kernel: ======================= Oct 6 08:09:43 agraham kernel: Code: 83 c8 02 39 d0 74 0e b9 02 00 00 00 89 fa 89 f0 e8 09 51 01 00 ff 45 ec 47 83 c3 04 0f b6 46 6c 39 c7 7c b4 8b 44 be 24 89 45 f0 <8b> 58 5c eb 5f 8b 46 04 8b 54 be 44 8b 88 98 01 00 00 c1 e2 02 Oct 6 08:09:43 agraham kernel: EIP: [] xfs_alloc_increment+0xd9/0x155 [xfs] SS:ESP 0068:f6d69b58 Oct 6 08:09:43 agraham kernel: ---[ end trace 90b4802fd284c865 ]--- From owner-xfs@oss.sgi.com Mon Oct 6 15:32:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_93 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96MWIrU029200 for ; Mon, 6 Oct 2008 15:32:19 -0700 X-ASG-Debug-ID: 1223332436-17be00820000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BDDA13A26A9 for ; Mon, 6 Oct 2008 15:33:56 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id sajCAbB5ese1Jg6G for ; Mon, 06 Oct 2008 15:33:56 -0700 (PDT) Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 07 Oct 2008 09:01:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kmyc9-0003cl-2N; Tue, 07 Oct 2008 09:31:41 +1100 Date: Tue, 7 Oct 2008 09:31:41 +1100 From: Dave Chinner To: Justin Piszcz Cc: xfs@oss.sgi.com, Lennart Hansen X-ASG-Orig-Subj: Re: XFS: "slow at directory traversal .. after 3 years of use" Subject: Re: XFS: "slow at directory traversal .. after 3 years of use" Message-ID: <20081006223141.GS30001@disturbed> Mail-Followup-To: Justin Piszcz , xfs@oss.sgi.com, Lennart Hansen References: <1c08324d0810061325kdd1453alb9eab9ceb769b1cf@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223332438 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7421 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 06, 2008 at 04:30:22PM -0400, Justin Piszcz wrote: > Someone pointed me to the following paper: > > http://www.stdlib.net/~colmmacc/Apachecon-EU2005/scaling-apache-handout.pdf > > Which states: > > After nearly 3 years of use, some problems with XFS became > noticeable. As the number of used inodes in the filesystem grows > XFS becomes very slow at directory traversal. Although this did > not impede web-serving it did have a heavy impact on how quickly > we could synchronise content with the primary sources. There's no detail of what the problem was, just that it slowed down. Could have been many things, and one of the possibilities was the in-core XFS inode hash scalability problems (that you could work around with an ihashsize=XXX mount option).... > Dave / Eric, comments here? Does ext3 suffer from the same > problem? An ext3 filesystem being faster than a 3 year old production XFS filesystem - no surprise there as the XFS directories were probably fragmented. After three years of continual use, I'd be extremely surprised if the ext3 H-tree directory structures perform anywhere near as well as XFS as the fragmentation characteristics of ext3 directories are far worse than XFS and ext3 does not have directory readahead like XFS does. An example - kernel.org moved from ext3 to XFS primarily because the directory performance of XFS is better than ext3 on these sorts of workloads.... > Have these issues been fixed since 2005? Would inode64 alleviate > some of these problems? Well, the incore inode hashes have no problems now they have been converted to radix trees. Witout any further detail of what the problem was, I can't really say anything else.... Barry - sounds like you need to make xfs_fsr defrag directories. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 6 16:59:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m96NxSpQ007655 for ; Mon, 6 Oct 2008 16:59:29 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 5CC269089E; Mon, 6 Oct 2008 17:01:04 -0700 (PDT) Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA27517; Tue, 7 Oct 2008 11:01:02 +1100 Date: Tue, 07 Oct 2008 11:04:32 +1100 To: "xfs@oss.sgi.com" , xfs-dev Subject: Adding attr, inode reference query From: "Barry Naujok" Organization: SGI Content-Type: text/plain; format=flowed; delsp=yes; charset=utf-8 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Message-ID: User-Agent: Opera Mail/9.52 (Win32) I'm doing a bit of debugging with attr creation in xfs_repair which uses libxfs which has it's own simple cache/ref counting/transaction mechanism for inodes and buffers. I came across a refcounting issue when adding an extended attribute to an inode, calling xfs_attr_set_int (indirectly in Phase 6): - if there are no extended attributes, a attr fork area is created within the inode (calling xfs_bmap_add_attrfork). After this call in libxfs, the inode is derefenced. - if extended attributes already exist, the inode isn't dereferenced after calling xfs_attr_set_int. I seem to have traced this down to xfs_bmap_add_attrfork not calling xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. BUT, it does call IHOLD(ip). It seems most other routines do call xfs_trans_ihold, esp in the attr code. Also, it seems IHOLD isn't normally called in these routine in the core XFS code. Is this a bug in xfs_bmap_add_attrfork? From owner-xfs@oss.sgi.com Mon Oct 6 17:43:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m970hdSj010449 for ; Mon, 6 Oct 2008 17:43:39 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 3DBF08F81D9; Mon, 6 Oct 2008 17:45:15 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA28556; Tue, 7 Oct 2008 11:45:12 +1100 Message-ID: <48EAB118.7070606@sgi.com> Date: Tue, 07 Oct 2008 11:45:12 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Barry Naujok CC: "xfs@oss.sgi.com" , xfs-dev Subject: Re: Adding attr, inode reference query References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Barry Naujok wrote: > I'm doing a bit of debugging with attr creation in xfs_repair which uses > libxfs which has it's own simple cache/ref counting/transaction mechanism > for inodes and buffers. > > I came across a refcounting issue when adding an extended attribute to an > inode, calling xfs_attr_set_int (indirectly in Phase 6): > - if there are no extended attributes, a attr fork area is created within > the inode (calling xfs_bmap_add_attrfork). After this call in libxfs, > the inode is derefenced. > - if extended attributes already exist, the inode isn't dereferenced > after calling xfs_attr_set_int. > > I seem to have traced this down to xfs_bmap_add_attrfork not calling > xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. > BUT, it does call IHOLD(ip). > > It seems most other routines do call xfs_trans_ihold, esp in the attr code. > > Also, it seems IHOLD isn't normally called in these routine in the > core XFS code. > > Is this a bug in xfs_bmap_add_attrfork? Yeah, it looks wrong to me too. doucette |1.153| | ASSERT(ip->i_d.di_anextents == 0); doucette |1.148| | VN_HOLD(XFS_ITOV(ip)); doucette |1.146| | xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); doucette |1.213| | xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); ---------------------------- revision 1.148 date: 1995/05/19 22:41:52; author: doucette; state: Exp; lines: +5 -4 More progress on attributes: fix the transaction reservation in xfs_bmap_add_attrfork (to be permanent). Hold the vnode so it won't go away at transaction commit. ---------------------------- So the xfs_trans_ihold sets a flag on item: ip->i_itemp->ili_flags |= XFS_ILI_HOLD; preventing an xfs_iput (unlock, irele) from xfs_inode_item_unlock, from IOP_UNLOCK, from xfs_trans_unlock_chunk() from xfs_trans_unlock_items() from _xfs_trans_commit etc... i.e. from unlocking,unrefing on transaction commit. So I guess, in current code we are taking an extra reference here instead of just stopping the inode from being unlocked, and a ref dropped at commit time. Be interesting to see where we do this throughout the code -> audit. And why have we normally gotten away with this? --Tim From owner-xfs@oss.sgi.com Mon Oct 6 17:54:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m970sKLr011341 for ; Mon, 6 Oct 2008 17:54:20 -0700 X-ASG-Debug-ID: 1223340958-3e0103940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 035119F293D for ; Mon, 6 Oct 2008 17:55:58 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id DZAOQJII1QzjuHox for ; Mon, 06 Oct 2008 17:55:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAKBO6kh5LGor/2dsb2JhbAC9VYFq X-IronPort-AV: E=Sophos;i="4.33,370,1220193000"; d="scan'208";a="223447434" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 07 Oct 2008 11:25:44 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kn0q2-0004fe-7X; Tue, 07 Oct 2008 11:54:10 +1100 Date: Tue, 7 Oct 2008 11:54:10 +1100 From: Dave Chinner To: Barry Naujok Cc: "xfs@oss.sgi.com" , xfs-dev X-ASG-Orig-Subj: Re: Adding attr, inode reference query Subject: Re: Adding attr, inode reference query Message-ID: <20081007005409.GD12509@disturbed> Mail-Followup-To: Barry Naujok , "xfs@oss.sgi.com" , xfs-dev References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223340960 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7430 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 11:04:32AM +1100, Barry Naujok wrote: > I'm doing a bit of debugging with attr creation in xfs_repair which uses > libxfs which has it's own simple cache/ref counting/transaction mechanism > for inodes and buffers. > > I came across a refcounting issue when adding an extended attribute to an > inode, calling xfs_attr_set_int (indirectly in Phase 6): > - if there are no extended attributes, a attr fork area is created within > the inode (calling xfs_bmap_add_attrfork). After this call in libxfs, > the inode is derefenced. > - if extended attributes already exist, the inode isn't dereferenced > after calling xfs_attr_set_int. > > I seem to have traced this down to xfs_bmap_add_attrfork not calling > xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. > BUT, it does call IHOLD(ip). The difference between the two is kinda subtle. IHOLD() increments the reference count to ensure the transaction commit doesn't drop the last reference to the inode when it unlocks it and hence cause us to enter reclaim in the commit code. OTOH, xfs_trans_ihold() holds the inode across the transaction commit so that it is still locked when xfs_trans_commit() completes. This is needed for rolling transactions to be able to continue across duplication and commit without needing to relock inodes. > It seems most other routines do call xfs_trans_ihold, esp in the attr code. That's because most of those are in the scope of rolling transactions, whereas xfs_bmap_add_attrfork() runs a completely self-contained transaction. Hence we are only concerned about reference counts to prevent inode reclaim, not continuing to hold the inode locked for a rolling transaction. > Also, it seems IHOLD isn't normally called in these routine in the > core XFS code. > > Is this a bug in xfs_bmap_add_attrfork? No - the inode should exit xfs_bmap_add_attrfork() with the same reference count it entered with. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 6 18:21:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m971LSQT013191 for ; Mon, 6 Oct 2008 18:21:28 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 749A9304218; Mon, 6 Oct 2008 18:23:04 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA00587; Tue, 7 Oct 2008 12:23:02 +1100 Message-ID: <48EAB9F6.4090102@sgi.com> Date: Tue, 07 Oct 2008 12:23:02 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Dave Chinner , "xfs@oss.sgi.com" , xfs-dev Subject: Re: Adding attr, inode reference query References: <20081007005409.GD12509@disturbed> In-Reply-To: <20081007005409.GD12509@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Tue, Oct 07, 2008 at 11:04:32AM +1100, Barry Naujok wrote: >> I'm doing a bit of debugging with attr creation in xfs_repair which uses >> libxfs which has it's own simple cache/ref counting/transaction mechanism >> for inodes and buffers. >> >> I came across a refcounting issue when adding an extended attribute to an >> inode, calling xfs_attr_set_int (indirectly in Phase 6): >> - if there are no extended attributes, a attr fork area is created within >> the inode (calling xfs_bmap_add_attrfork). After this call in libxfs, >> the inode is derefenced. >> - if extended attributes already exist, the inode isn't dereferenced >> after calling xfs_attr_set_int. >> >> I seem to have traced this down to xfs_bmap_add_attrfork not calling >> xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. >> BUT, it does call IHOLD(ip). > > The difference between the two is kinda subtle. IHOLD() increments > the reference count to ensure the transaction commit doesn't drop > the last reference to the inode when it unlocks it and hence > cause us to enter reclaim in the commit code. > > OTOH, xfs_trans_ihold() holds the inode across the transaction > commit so that it is still locked when xfs_trans_commit() completes. > This is needed for rolling transactions to be able to continue > across duplication and commit without needing to relock inodes. > Oh okay. Want a reference held in both cases, but don't always want it locked after commit. One way, we take an extra reference and then drop it at commit, the other we just don't drop the reference at commit. --Tim From owner-xfs@oss.sgi.com Mon Oct 6 18:28:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m971SXM3013658 for ; Mon, 6 Oct 2008 18:28:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 7CD618F81A5; Mon, 6 Oct 2008 18:30:08 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA00788; Tue, 7 Oct 2008 12:30:06 +1100 Message-ID: <48EABB9E.9090302@sgi.com> Date: Tue, 07 Oct 2008 12:30:06 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Dave Chinner , "xfs@oss.sgi.com" , xfs-dev Subject: Re: Adding attr, inode reference query References: <20081007005409.GD12509@disturbed> <48EAB9F6.4090102@sgi.com> In-Reply-To: <48EAB9F6.4090102@sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Timothy Shimmin wrote: > Dave Chinner wrote: >> On Tue, Oct 07, 2008 at 11:04:32AM +1100, Barry Naujok wrote: >>> I'm doing a bit of debugging with attr creation in xfs_repair which uses >>> libxfs which has it's own simple cache/ref counting/transaction mechanism >>> for inodes and buffers. >>> >>> I came across a refcounting issue when adding an extended attribute to an >>> inode, calling xfs_attr_set_int (indirectly in Phase 6): >>> - if there are no extended attributes, a attr fork area is created within >>> the inode (calling xfs_bmap_add_attrfork). After this call in libxfs, >>> the inode is derefenced. >>> - if extended attributes already exist, the inode isn't dereferenced >>> after calling xfs_attr_set_int. >>> >>> I seem to have traced this down to xfs_bmap_add_attrfork not calling >>> xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. >>> BUT, it does call IHOLD(ip). >> The difference between the two is kinda subtle. IHOLD() increments >> the reference count to ensure the transaction commit doesn't drop >> the last reference to the inode when it unlocks it and hence >> cause us to enter reclaim in the commit code. >> >> OTOH, xfs_trans_ihold() holds the inode across the transaction >> commit so that it is still locked when xfs_trans_commit() completes. >> This is needed for rolling transactions to be able to continue >> across duplication and commit without needing to relock inodes. >> > Oh okay. > Want a reference held in both cases, but don't always want it locked > after commit. > One way, we take an extra reference and then drop it at commit, > the other we just don't drop the reference at commit. > > --Tim This sounds like a very implicit way of doing things IMHO (i.e. not clear from the hold that it is about a reference being dropped at commit time). It almost seems like a different kind of trans-ihold flag would have made things clearer (one for unlock, one for rele). --Tim From owner-xfs@oss.sgi.com Mon Oct 6 19:17:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m972HFZi016392 for ; Mon, 6 Oct 2008 19:17:16 -0700 X-ASG-Debug-ID: 1223345929-0cc9001b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B7A9C13A521A for ; Mon, 6 Oct 2008 19:18:53 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id R1mhhA8SxO9bTGsR for ; Mon, 06 Oct 2008 19:18:53 -0700 (PDT) Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 07 Oct 2008 12:47:16 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kn1jP-0003Wf-U7; Tue, 07 Oct 2008 12:51:23 +1100 Date: Tue, 7 Oct 2008 12:51:23 +1100 From: Dave Chinner To: Timothy Shimmin Cc: "xfs@oss.sgi.com" , xfs-dev X-ASG-Orig-Subj: Re: Adding attr, inode reference query Subject: Re: Adding attr, inode reference query Message-ID: <20081007015123.GG12509@disturbed> Mail-Followup-To: Timothy Shimmin , "xfs@oss.sgi.com" , xfs-dev References: <20081007005409.GD12509@disturbed> <48EAB9F6.4090102@sgi.com> <48EABB9E.9090302@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48EABB9E.9090302@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223345934 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7435 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 12:30:06PM +1100, Timothy Shimmin wrote: > Timothy Shimmin wrote: > > Dave Chinner wrote: > >> On Tue, Oct 07, 2008 at 11:04:32AM +1100, Barry Naujok wrote: > >>> I seem to have traced this down to xfs_bmap_add_attrfork not calling > >>> xfs_trans_ihold after calling xfs_trans_ijoin like other similar functions. > >>> BUT, it does call IHOLD(ip). > >> The difference between the two is kinda subtle. IHOLD() increments > >> the reference count to ensure the transaction commit doesn't drop > >> the last reference to the inode when it unlocks it and hence > >> cause us to enter reclaim in the commit code. > >> > >> OTOH, xfs_trans_ihold() holds the inode across the transaction > >> commit so that it is still locked when xfs_trans_commit() completes. > >> This is needed for rolling transactions to be able to continue > >> across duplication and commit without needing to relock inodes. > >> > > Oh okay. > > Want a reference held in both cases, but don't always want it locked > > after commit. > > One way, we take an extra reference and then drop it at commit, > > the other we just don't drop the reference at commit. > > This sounds like a very implicit way of doing things IMHO > (i.e. not clear from the hold that it is about a reference > being dropped at commit time). > It almost seems like a different kind of trans-ihold flag > would have made things clearer (one for unlock, one for rele). Go look in fs/xfs/xfs_vnodeops.c - every IHOLD is called during a transaction there is a different reason given, but they all boil down to one thing - ensuring the transaction commit doesn't drop the final reference on the inode. e.g. in xfs_link(): 2141 /* 2142 * Increment vnode ref counts since xfs_trans_commit & 2143 * xfs_trans_cancel will both unlock the inodes and 2144 * decrement the associated ref counts. 2145 */ 2146 IHOLD(sip); 2147 IHOLD(tdp); 2148 xfs_trans_ijoin(tp, sip, XFS_ILOCK_EXCL); 2149 xfs_trans_ijoin(tp, tdp, XFS_ILOCK_EXCL); Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 6 21:49:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_46,J_CHICKENPOX_47 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m974ncAB028244 for ; Mon, 6 Oct 2008 21:49:39 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 157BE90898; Mon, 6 Oct 2008 21:51:14 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA03994; Tue, 7 Oct 2008 15:51:13 +1100 Message-ID: <48EAEADD.7030602@sgi.com> Date: Tue, 07 Oct 2008 15:51:41 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Barry Naujok CC: "xfs@oss.sgi.com" Subject: Re: [REVIEW] Fix two mkfs.xfs bugs References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Barry Naujok wrote: > #1. -i maxpct option is not honoured (or ever used). Looks good Barry. Don > > > Index: xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c > =================================================================== > --- xfs-cmds.orig/xfsprogs/mkfs/xfs_mkfs.c > +++ xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c > @@ -1808,6 +1808,9 @@ _("size %s specified for log subvolume i > > validate_ag_geometry(blocklog, dblocks, agsize, agcount); > > + if (!imflag) > + imaxpct = calc_default_imaxpct(blocklog, dblocks); > + > if (!nodsflag) { > if (dsunit) { > if (xlv_dsunit && xlv_dsunit != dsunit) { > @@ -2023,8 +2026,7 @@ an AG size that is one stripe unit small > "realtime =%-22s extsz=%-6d blocks=%lld, rtextents=%lld\n"), > dfile, isize, (long long)agcount, (long long)agsize, > "", sectorsize, attrversion, > - "", blocksize, (long long)dblocks, > - calc_default_imaxpct(blocklog, dblocks), > + "", blocksize, (long long)dblocks, imaxpct, > "", dsunit, dswidth, > dirversion, dirblocksize, nci, > logfile, 1 << blocklog, (long long)logblocks, > @@ -2061,7 +2063,7 @@ an AG size that is one stripe unit small > (__uint8_t)(rtextents ? > libxfs_highbit32((unsigned int)rtextents) : 0); > sbp->sb_inprogress = 1; /* mkfs is in progress */ > - sbp->sb_imax_pct = calc_default_imaxpct(blocklog, dblocks); > + sbp->sb_imax_pct = imaxpct; > sbp->sb_icount = 0; > sbp->sb_ifree = 0; > sbp->sb_fdblocks = dblocks - agcount * XFS_PREALLOC_BLOCKS(mp) - > > > =================================================================== > > #2. If specifying a custom AG count (-d agcount) with stripe unit and > the calculated AG size from the AG count is not stripe unit aligned, > it refused to adjust the AG size and make the filesystem. > > The final geometry check is also moved after the sunit adjustments > might have been made. > > > Index: xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c > =================================================================== > --- xfs-cmds.orig/xfsprogs/mkfs/xfs_mkfs.c > +++ xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c > @@ -1795,22 +1795,6 @@ _("size %s specified for log subvolume i > calc_default_ag_geometry(blocklog, dblocks, > xlv_dsunit | xlv_dswidth, &agsize, &agcount); > > - /* > - * If the last AG is too small, reduce the filesystem size > - * and drop the blocks. > - */ > - if ( dblocks % agsize != 0 && > - (dblocks % agsize < XFS_AG_MIN_BLOCKS(blocklog))) { > - dblocks = (xfs_drfsbno_t)((agcount - 1) * agsize); > - agcount--; > - ASSERT(agcount != 0); > - } > - > - validate_ag_geometry(blocklog, dblocks, agsize, agcount); > - > - if (!imflag) > - imaxpct = calc_default_imaxpct(blocklog, dblocks); > - > if (!nodsflag) { > if (dsunit) { > if (xlv_dsunit && xlv_dsunit != dsunit) { > @@ -1861,13 +1845,14 @@ _("size %s specified for log subvolume i > */ > if (tmp_agsize > XFS_AG_MAX_BLOCKS(blocklog)) > tmp_agsize = ((agsize) / dsunit) * dsunit; > + > if ((tmp_agsize >= XFS_AG_MIN_BLOCKS(blocklog)) && > - (tmp_agsize <= XFS_AG_MAX_BLOCKS(blocklog)) && > - !daflag) { > + (tmp_agsize <= XFS_AG_MAX_BLOCKS(blocklog))) { > agsize = tmp_agsize; > - agcount = dblocks/agsize + > + if (!daflag) > + agcount = dblocks/agsize + > (dblocks % agsize != 0); > - if (dasize || daflag) > + if (dasize) > fprintf(stderr, > _("agsize rounded to %lld, swidth = %d\n"), > (long long)agsize, dswidth); > @@ -1932,6 +1917,23 @@ an AG size that is one stripe unit small > } > > /* > + * If the last AG is too small, reduce the filesystem size > + * and drop the blocks. > + */ > + if ( dblocks % agsize != 0 && > + (dblocks % agsize < XFS_AG_MIN_BLOCKS(blocklog))) { > + ASSERT(!daflag); > + dblocks = (xfs_drfsbno_t)((agcount - 1) * agsize); > + agcount--; > + ASSERT(agcount != 0); > + } > + > + validate_ag_geometry(blocklog, dblocks, agsize, agcount); > + > + if (!imflag) > + imaxpct = calc_default_imaxpct(blocklog, dblocks); > + > + /* > * check that log sunit is modulo fsblksize or default it to dsunit. > */ > From owner-xfs@oss.sgi.com Tue Oct 7 00:16:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m977G1ko006789 for ; Tue, 7 Oct 2008 00:16:01 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 67FEF9088A; Tue, 7 Oct 2008 00:17:37 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA06589; Tue, 7 Oct 2008 18:17:35 +1100 Message-ID: <48EB1ABD.3020503@sgi.com> Date: Tue, 07 Oct 2008 18:15:57 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs-oss , xfs-dev Subject: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit If we get an error in xfs_page_state_convert() - and it's not EAGAIN - then we throw away the dirty page without converting the delayed allocation. This leaves delayed allocations that can never be removed and confuses code that expects a flush of the file to clear them. We need to re-dirty the page on error so we can try again later or report that the flush failed. This change is needed to handle the condition where we are at ENOSPC and we exhaust the reserved block pool (because many transactions are executing concurrently) and calls to xfs_trans_reserve() start failing with ENOSPC errors. Version 2 wont return EAGAIN from xfs_vm_writepage() and also converts an ENOSPC error to an EAGAIN for asynchronous writeback to avoid setting an error in the inode mapping when we don't need to. --- a/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:02:04.000000000 +1000 +++ b/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:58:04.000000000 +1000 @@ -1147,16 +1147,6 @@ error: if (iohead) xfs_cancel_ioend(iohead); - /* - * If it's delalloc and we have nowhere to put it, - * throw it away, unless the lower layers told - * us to try again. - */ - if (err != -EAGAIN) { - if (!unmapped) - block_invalidatepage(page, 0); - ClearPageUptodate(page); - } return err; } @@ -1185,7 +1175,7 @@ xfs_vm_writepage( struct page *page, struct writeback_control *wbc) { - int error; + int error = 0; int need_trans; int delalloc, unmapped, unwritten; struct inode *inode = page->mapping->host; @@ -1231,19 +1221,16 @@ xfs_vm_writepage( * to real space and flush out to disk. */ error = xfs_page_state_convert(inode, page, wbc, 1, unmapped); - if (error == -EAGAIN) - goto out_fail; if (unlikely(error < 0)) - goto out_unlock; + goto out_fail; return 0; out_fail: redirty_page_for_writepage(wbc, page); unlock_page(page); - return 0; -out_unlock: - unlock_page(page); + if (error == -EAGAIN) + error = 0; return error; } --- a/fs/xfs/xfs_iomap.c 2008-10-07 17:02:04.000000000 +1000 +++ b/fs/xfs/xfs_iomap.c 2008-10-07 17:58:04.000000000 +1000 @@ -269,6 +269,8 @@ xfs_iomap( error = xfs_iomap_write_allocate(ip, offset, count, &imap, &nimaps); + if ((flags & BMAPI_TRYLOCK) && error == ENOSPC) + error = EAGAIN; break; } From owner-xfs@oss.sgi.com Tue Oct 7 06:56:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,J_CHICKENPOX_13 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97DuAwN008591 for ; Tue, 7 Oct 2008 06:56:10 -0700 X-ASG-Debug-ID: 1223387869-212d01da0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server59.ih-server.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 65DE19F9863 for ; Tue, 7 Oct 2008 06:57:49 -0700 (PDT) Received: from server59.ih-server.net (server59.ih-server.net [75.126.189.185]) by cuda.sgi.com with ESMTP id lLUXvcmAA76OZECE for ; Tue, 07 Oct 2008 06:57:49 -0700 (PDT) Received: from nobody by server59.ih-server.net with local (Exim 4.69) (envelope-from ) id 1KnD4P-0006FI-Cz for linux-xfs@oss.sgi.com; Tue, 07 Oct 2008 08:57:49 -0500 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Periodic Account Update Subject: Periodic Account Update X-PHP-Script: kingkongwebsites.com/product2.php for 67.15.221.2 From: James Speed Reply-To: mailhelpdesk@mail2create.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Sender: Nobody Date: Tue, 07 Oct 2008 08:57:49 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server59.ih-server.net X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [99 32002] / [47 12] X-AntiAbuse: Sender Address Domain - server59.ih-server.net X-Source: X-Source-Args: /usr/local/apache/bin/httpd -DSSL X-Source-Dir: kingkongwebsites.com:/public_html X-Barracuda-Connect: server59.ih-server.net[75.126.189.185] X-Barracuda-Start-Time: 1223387870 X-Barracuda-Bayes: INNOCENT GLOBAL 0.6637 1.0000 1.1100 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.11 X-Barracuda-Spam-Status: No, SCORE=1.11 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7478 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dear S4all Subscriber, To complete your S4all account, you must reply to this email Immediately and enter your Username: (*********) Password: (*********) Failure to do this will immediately render your email address deactivated from our database. We apologize for the inconvenience that this will cause you during this period, but trust you understand that our primary concern is for our customers and for the security of their data. our customers are totally secure Regards S4all Support Team From owner-xfs@oss.sgi.com Tue Oct 7 07:07:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_50 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97E7mnZ009147 for ; Tue, 7 Oct 2008 07:07:48 -0700 X-ASG-Debug-ID: 1223388567-215c01ff0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server59.ih-server.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C6659F9404 for ; Tue, 7 Oct 2008 07:09:27 -0700 (PDT) Received: from server59.ih-server.net (server59.ih-server.net [75.126.189.185]) by cuda.sgi.com with ESMTP id yivAYC2E6TrCInyv for ; Tue, 07 Oct 2008 07:09:27 -0700 (PDT) Received: from nobody by server59.ih-server.net with local (Exim 4.69) (envelope-from ) id 1KnDFf-0008WV-CR for linux-xfs@oss.sgi.com; Tue, 07 Oct 2008 09:09:27 -0500 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Periodic Account Update Subject: Periodic Account Update X-PHP-Script: kingkongwebsites.com/product2.php for 67.15.221.2 From: James Speed Reply-To: mailhelpdesk@mail2create.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Sender: Nobody Date: Tue, 07 Oct 2008 09:09:27 -0500 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server59.ih-server.net X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [99 32002] / [47 12] X-AntiAbuse: Sender Address Domain - server59.ih-server.net X-Source: X-Source-Args: /usr/local/apache/bin/httpd -DSSL X-Source-Dir: kingkongwebsites.com:/public_html X-Barracuda-Connect: server59.ih-server.net[75.126.189.185] X-Barracuda-Start-Time: 1223388568 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5092 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dear abo Subscriber, To complete your abo account, you must reply to this email Immediately and enter your Username: (*********) Password: (*********) Failure to do this will immediately render your email address deactivated from our database. We apologize for the inconvenience that this will cause you during this period, but trust you understand that our primary concern is for our customers and for the security of their data. our customers are totally secure Regards abo Support Team From owner-xfs@oss.sgi.com Tue Oct 7 13:20:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97KKGJO018984 for ; Tue, 7 Oct 2008 13:20:18 -0700 X-ASG-Debug-ID: 1223410914-55b202b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B0AAE4C5BF1 for ; Tue, 7 Oct 2008 13:21:55 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id gyx5X1tp2Ua041xh for ; Tue, 07 Oct 2008 13:21:55 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97KLrIF016709 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 7 Oct 2008 22:21:53 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97KLr6D016707 for xfs@oss.sgi.com; Tue, 7 Oct 2008 22:21:53 +0200 Date: Tue, 7 Oct 2008 22:21:53 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] kill XFS_LITINO Subject: [PATCH 1/3] kill XFS_LITINO Message-ID: <20081007202153.GA16485@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223410916 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 No point having a macro that just derefences a member of the struct pointer passed in. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_attr_leaf.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_attr_leaf.c 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_attr_leaf.c 2008-10-07 19:51:10.000000000 +0200 @@ -106,7 +106,7 @@ xfs_attr_namesp_match(int arg_flags, int /*======================================================================== - * External routines when attribute fork size < XFS_LITINO(mp). + * External routines when attribute fork size < mp->m_litino. *========================================================================*/ /* @@ -127,7 +127,7 @@ xfs_attr_shortform_bytesfit(xfs_inode_t int dsize; xfs_mount_t *mp = dp->i_mount; - offset = (XFS_LITINO(mp) - bytes) >> 3; /* rounded down */ + offset = (mp->m_litino - bytes) >> 3; /* rounded down */ switch (dp->i_d.di_format) { case XFS_DINODE_FMT_DEV: @@ -184,7 +184,7 @@ xfs_attr_shortform_bytesfit(xfs_inode_t minforkoff = roundup(minforkoff, 8) >> 3; /* attr fork btree root can have at least this many key/ptr pairs */ - maxforkoff = XFS_LITINO(mp) - XFS_BMDR_SPACE_CALC(MINABTPTRS); + maxforkoff = mp->m_litino - XFS_BMDR_SPACE_CALC(MINABTPTRS); maxforkoff = maxforkoff >> 3; /* rounded down */ if (offset >= minforkoff && offset < maxforkoff) Index: linux-2.6-xfs/fs/xfs/xfs_attr_leaf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_attr_leaf.h 2008-10-07 19:50:45.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_attr_leaf.h 2008-10-07 19:51:10.000000000 +0200 @@ -218,7 +218,7 @@ typedef struct xfs_attr_inactive_list { *========================================================================*/ /* - * Internal routines when attribute fork size < XFS_LITINO(mp). + * Internal routines when attribute fork size < mp->m_litino. */ void xfs_attr_shortform_create(struct xfs_da_args *args); void xfs_attr_shortform_add(struct xfs_da_args *args, int forkoff); Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-07 19:51:22.000000000 +0200 @@ -76,10 +76,6 @@ typedef struct xfs_dinode_core { typedef struct xfs_dinode { xfs_dinode_core_t di_core; - /* - * In adding anything between the core and the union, be - * sure to update the macros like XFS_LITINO below. - */ __be32 di_next_unlinked;/* agi unlinked list ptr */ union { xfs_bmdr_block_t di_bmbt; /* btree root block */ @@ -160,10 +156,6 @@ typedef enum xfs_dinode_fmt #define XFS_DINODE_MIN_SIZE (1 << XFS_DINODE_MIN_LOG) #define XFS_DINODE_MAX_SIZE (1 << XFS_DINODE_MAX_LOG) -/* - * Inode size for given fs. - */ -#define XFS_LITINO(mp) ((mp)->m_litino) #define XFS_BROOT_SIZE_ADJ \ (XFS_BTREE_LBLOCK_LEN - sizeof(xfs_bmdr_block_t)) @@ -176,10 +168,10 @@ typedef enum xfs_dinode_fmt #define XFS_DFORK_DSIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ XFS_DFORK_BOFF(dip) : \ - XFS_LITINO(mp)) + (mp)->m_litino) #define XFS_DFORK_ASIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ - XFS_LITINO(mp) - XFS_DFORK_BOFF(dip) : \ + (mp)->m_litino - XFS_DFORK_BOFF(dip) : \ 0) #define XFS_DFORK_SIZE(dip,mp,w) \ ((w) == XFS_DATA_FORK ? \ Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-07 19:50:45.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-07 19:51:10.000000000 +0200 @@ -177,10 +177,10 @@ typedef struct xfs_icdinode { #define XFS_IFORK_DSIZE(ip) \ (XFS_IFORK_Q(ip) ? \ XFS_IFORK_BOFF(ip) : \ - XFS_LITINO((ip)->i_mount)) + (ip)->i_mount->m_litino) #define XFS_IFORK_ASIZE(ip) \ (XFS_IFORK_Q(ip) ? \ - XFS_LITINO((ip)->i_mount) - XFS_IFORK_BOFF(ip) : \ + (ip)->i_mount->m_litino - XFS_IFORK_BOFF(ip) : \ 0) #define XFS_IFORK_SIZE(ip,w) \ ((w) == XFS_DATA_FORK ? \ Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-07 19:51:10.000000000 +0200 @@ -590,8 +590,8 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb ASSERT(sbp->sb_inodesize >= 256 && sbp->sb_inodesize <= 2048); switch (sbp->sb_inodesize) { case 256: - mp->m_attroffset = XFS_LITINO(mp) - - XFS_BMDR_SPACE_CALC(MINABTPTRS); + mp->m_attroffset = + mp->m_litino - XFS_BMDR_SPACE_CALC(MINABTPTRS); break; case 512: case 1024: @@ -601,7 +601,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb default: ASSERT(0); } - ASSERT(mp->m_attroffset < XFS_LITINO(mp)); + ASSERT(mp->m_attroffset < mp->m_litino); mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1); mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0); Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-07 19:50:45.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-07 19:51:10.000000000 +0200 @@ -2406,7 +2406,7 @@ xfs_symlink( * The symlink will fit into the inode data fork? * There can't be any attributes so we get the whole variable part. */ - if (pathlen <= XFS_LITINO(mp)) + if (pathlen <= mp->m_litino) fs_blocks = 0; else fs_blocks = XFS_B_TO_FSB(mp, pathlen); From owner-xfs@oss.sgi.com Tue Oct 7 13:20:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97KKMrq019008 for ; Tue, 7 Oct 2008 13:20:22 -0700 X-ASG-Debug-ID: 1223410919-312703d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7DD3A13B2B64 for ; Tue, 7 Oct 2008 13:21:59 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id UdxILoF2U4RV0Z24 for ; Tue, 07 Oct 2008 13:21:59 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97KLwIF016726 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 7 Oct 2008 22:21:58 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97KLv4n016724 for xfs@oss.sgi.com; Tue, 7 Oct 2008 22:21:57 +0200 Date: Tue, 7 Oct 2008 22:21:57 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] kill xfs_ialloc_log_di Subject: [PATCH 2/3] kill xfs_ialloc_log_di Message-ID: <20081007202157.GB16485@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223410922 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_ialloc_log_di alwasy logs the full inode core + di_next_unlinked, so there's really no need for all the offset magic and we can just call xfs_trans_log_buf directly from it's only user. Also add a comment describing what we should do here instead. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-07 19:50:47.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-07 19:57:41.000000000 +0200 @@ -41,68 +41,6 @@ #include "xfs_error.h" #include "xfs_bmap.h" -/* - * Log specified fields for the inode given by bp and off. - */ -STATIC void -xfs_ialloc_log_di( - xfs_trans_t *tp, /* transaction pointer */ - xfs_buf_t *bp, /* inode buffer */ - int off, /* index of inode in buffer */ - int fields) /* bitmask of fields to log */ -{ - int first; /* first byte number */ - int ioffset; /* off in bytes */ - int last; /* last byte number */ - xfs_mount_t *mp; /* mount point structure */ - static const short offsets[] = { /* field offsets */ - /* keep in sync with bits */ - offsetof(xfs_dinode_core_t, di_magic), - offsetof(xfs_dinode_core_t, di_mode), - offsetof(xfs_dinode_core_t, di_version), - offsetof(xfs_dinode_core_t, di_format), - offsetof(xfs_dinode_core_t, di_onlink), - offsetof(xfs_dinode_core_t, di_uid), - offsetof(xfs_dinode_core_t, di_gid), - offsetof(xfs_dinode_core_t, di_nlink), - offsetof(xfs_dinode_core_t, di_projid), - offsetof(xfs_dinode_core_t, di_pad), - offsetof(xfs_dinode_core_t, di_atime), - offsetof(xfs_dinode_core_t, di_mtime), - offsetof(xfs_dinode_core_t, di_ctime), - offsetof(xfs_dinode_core_t, di_size), - offsetof(xfs_dinode_core_t, di_nblocks), - offsetof(xfs_dinode_core_t, di_extsize), - offsetof(xfs_dinode_core_t, di_nextents), - offsetof(xfs_dinode_core_t, di_anextents), - offsetof(xfs_dinode_core_t, di_forkoff), - offsetof(xfs_dinode_core_t, di_aformat), - offsetof(xfs_dinode_core_t, di_dmevmask), - offsetof(xfs_dinode_core_t, di_dmstate), - offsetof(xfs_dinode_core_t, di_flags), - offsetof(xfs_dinode_core_t, di_gen), - offsetof(xfs_dinode_t, di_next_unlinked), - offsetof(xfs_dinode_t, di_u), - offsetof(xfs_dinode_t, di_a), - sizeof(xfs_dinode_t) - }; - - - ASSERT(offsetof(xfs_dinode_t, di_core) == 0); - ASSERT((fields & (XFS_DI_U|XFS_DI_A)) == 0); - mp = tp->t_mountp; - /* - * Get the inode-relative first and last bytes for these fields - */ - xfs_btree_offsets(fields, offsets, XFS_DI_NUM_BITS, &first, &last); - /* - * Convert to buffer offsets and log it. - */ - ioffset = off << mp->m_sb.sb_inodelog; - first += ioffset; - last += ioffset; - xfs_trans_log_buf(tp, bp, first, last); -} /* * Allocation group level functions. @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( XFS_BUF_LOCK); ASSERT(fbuf); ASSERT(!XFS_BUF_GETERROR(fbuf)); + /* - * Set initial values for the inodes in this buffer. + * Initialize all inodes in this buffer and then log them. + * + * XXX: It would be much better if we had just one transaction to + * log a whole cluster of inodes instead of all the indivdual + * transactions causing a lot of log traffic. */ xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { + int ioffset = i << args.mp->m_sb.sb_inodelog; + uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + free = XFS_MAKE_IPTR(args.mp, fbuf, i); free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); free->di_core.di_version = version; free->di_core.di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); - xfs_ialloc_log_di(tp, fbuf, i, - XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); + xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } xfs_trans_inode_alloc_buf(tp, fbuf); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-07 19:51:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-07 19:56:16.000000000 +0200 @@ -102,40 +102,6 @@ typedef struct xfs_dinode #define XFS_MAXLINK_1 65535U /* - * Bit names for logging disk inodes only - */ -#define XFS_DI_MAGIC 0x0000001 -#define XFS_DI_MODE 0x0000002 -#define XFS_DI_VERSION 0x0000004 -#define XFS_DI_FORMAT 0x0000008 -#define XFS_DI_ONLINK 0x0000010 -#define XFS_DI_UID 0x0000020 -#define XFS_DI_GID 0x0000040 -#define XFS_DI_NLINK 0x0000080 -#define XFS_DI_PROJID 0x0000100 -#define XFS_DI_PAD 0x0000200 -#define XFS_DI_ATIME 0x0000400 -#define XFS_DI_MTIME 0x0000800 -#define XFS_DI_CTIME 0x0001000 -#define XFS_DI_SIZE 0x0002000 -#define XFS_DI_NBLOCKS 0x0004000 -#define XFS_DI_EXTSIZE 0x0008000 -#define XFS_DI_NEXTENTS 0x0010000 -#define XFS_DI_NAEXTENTS 0x0020000 -#define XFS_DI_FORKOFF 0x0040000 -#define XFS_DI_AFORMAT 0x0080000 -#define XFS_DI_DMEVMASK 0x0100000 -#define XFS_DI_DMSTATE 0x0200000 -#define XFS_DI_FLAGS 0x0400000 -#define XFS_DI_GEN 0x0800000 -#define XFS_DI_NEXT_UNLINKED 0x1000000 -#define XFS_DI_U 0x2000000 -#define XFS_DI_A 0x4000000 -#define XFS_DI_NUM_BITS 27 -#define XFS_DI_ALL_BITS ((1 << XFS_DI_NUM_BITS) - 1) -#define XFS_DI_CORE_BITS (XFS_DI_ALL_BITS & ~(XFS_DI_U|XFS_DI_A)) - -/* * Values for di_format */ typedef enum xfs_dinode_fmt From owner-xfs@oss.sgi.com Tue Oct 7 13:20:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97KKQl1019027 for ; Tue, 7 Oct 2008 13:20:26 -0700 X-ASG-Debug-ID: 1223410923-591f028b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6801C4C5BFD for ; Tue, 7 Oct 2008 13:22:03 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id zBnUeKABWSDCztOj for ; Tue, 07 Oct 2008 13:22:03 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97KM1IF016744 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 7 Oct 2008 22:22:01 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97KM1Ic016742 for xfs@oss.sgi.com; Tue, 7 Oct 2008 22:22:01 +0200 Date: Tue, 7 Oct 2008 22:22:01 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] kill xfs_dinode_core_t Subject: [PATCH 3/3] kill xfs_dinode_core_t Message-ID: <20081007202201.GC16485@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223410925 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 No that we have a separate xfs_icdinode_t for the in-core inode that get's logged there's absolutely no reason for the xfs_dinode vs xfs_dinode_core split - the fact that part of the structure gets logged through the inode log item and a small part not can better be described in a comment. The few places that uses sizeof() on the dinode_core are replaced with macros that also prepare for the variable size inode core we'll need for adding checksums to the inodes. Removing the data and attribute fork unions also has the advantage that xfs_dinode.h doesn't need to pull in every header under the sun. While we're at it also add some more comments describing the dinode structure. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-07 19:50:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-07 19:57:47.000000000 +0200 @@ -303,7 +303,7 @@ STATIC uint xfs_dic2dmflags( xfs_dinode_t *dip) { - return _xfs_dic2dmflags(be16_to_cpu(dip->di_core.di_flags)) | + return _xfs_dic2dmflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? DM_XFLAG_HASATTR : 0); } @@ -317,11 +317,9 @@ STATIC void xfs_dip_to_stat( xfs_mount_t *mp, xfs_ino_t ino, - xfs_dinode_t *dip, + xfs_dinode_t *dic, dm_stat_t *buf) { - xfs_dinode_core_t *dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -349,7 +347,7 @@ xfs_dip_to_stat( buf->dt_atime = be32_to_cpu(dic->di_atime.t_sec); buf->dt_mtime = be32_to_cpu(dic->di_mtime.t_sec); buf->dt_ctime = be32_to_cpu(dic->di_ctime.t_sec); - buf->dt_xfs_xflags = xfs_dic2dmflags(dip); + buf->dt_xfs_xflags = xfs_dic2dmflags(dic); buf->dt_xfs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->dt_xfs_extents = be32_to_cpu(dic->di_nextents); @@ -359,7 +357,7 @@ xfs_dip_to_stat( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->dt_rdev = be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(mp, dic)); buf->dt_blksize = BLKDEV_IOSIZE; buf->dt_blocks = 0; break; @@ -543,14 +541,14 @@ xfs_dm_inline_attr( caddr_t attr_buf, int *value_lenp) { - if (dip->di_core.di_aformat == XFS_DINODE_FMT_LOCAL) { + if (dip->di_aformat == XFS_DINODE_FMT_LOCAL) { xfs_attr_shortform_t *sf; xfs_attr_sf_entry_t *sfe; unsigned int namelen = strlen(attr_name); unsigned int valuelen = *value_lenp; int i; - sf = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); + sf = (xfs_attr_shortform_t *)XFS_DFORK_APTR(mp, dip); sfe = &sf->list[0]; for (i = 0; i < sf->hdr.count; sfe = XFS_ATTR_SF_NEXTENTRY(sfe), i++) { @@ -585,7 +583,7 @@ dm_dip_to_handle( fid.dm_fid_len = sizeof(struct dm_fid) - sizeof(fid.dm_fid_len); fid.dm_fid_pad = 0; fid.dm_fid_ino = ino; - fid.dm_fid_gen = be32_to_cpu(dip->di_core.di_gen); + fid.dm_fid_gen = be32_to_cpu(dip->di_gen); memcpy(&handlep->ha_fsid, fsid, sizeof(*fsid)); memcpy(&handlep->ha_fid, &fid, fid.dm_fid_len + sizeof(fid.dm_fid_len)); @@ -610,7 +608,7 @@ xfs_dm_bulkall_inline_one( int value_len = *value_lenp; int error; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, &xbuf->dx_statinfo); @@ -782,7 +780,7 @@ xfs_dm_bulkattr_inline_one( { dm_handle_t handle; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, sbuf); dm_dip_to_handle(ino, dip, fsid, &handle); Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-07 19:56:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-07 22:09:55.000000000 +0200 @@ -18,32 +18,32 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -struct xfs_buf; -struct xfs_mount; - #define XFS_DINODE_VERSION_1 1 #define XFS_DINODE_VERSION_2 2 #define XFS_DINODE_GOOD_VERSION(v) \ (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) #define XFS_DINODE_MAGIC 0x494e /* 'IN' */ -/* - * Disk inode structure. - * This is just the header; the inode is expanded to fill a variable size - * with the last field expanding. It is split into the core and "other" - * because we only need the core part in the in-core inode. - */ typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ __be32 t_nsec; /* timestamp nanoseconds */ } xfs_timestamp_t; /* - * Note: Coordinate changes to this structure with the XFS_DI_* #defines - * below, the offsets table in xfs_ialloc_log_di() and struct xfs_icdinode - * in xfs_inode.h. + * On-disk inode structure. + * + * This is just the header or "dinode core", the inode is expanded to fill a + * variable size the leftover area split into a data and an attribute fork. + * The format of the data and attribute fork depends on the format of the + * inode as indicated by di_format and di_aformat. To access the data and + * attribute use the XFS_DFORK_PTR, XFS_DFORK_DPTR, and XFS_DFORK_PTR macro: + * below. + * + * There is a very similar struct icdinode in xfs_inode which matches the + * layout of the first 96 bytes of this structure, but is kept in native + * format instead of big endian. */ -typedef struct xfs_dinode_core { +typedef struct xfs_dinode { __be16 di_magic; /* inode magic # = XFS_DINODE_MAGIC */ __be16 di_mode; /* mode and type of file */ __u8 di_version; /* inode version */ @@ -69,30 +69,16 @@ typedef struct xfs_dinode_core { __be16 di_dmstate; /* DMIG state info */ __be16 di_flags; /* random flags, XFS_DIFLAG_... */ __be32 di_gen; /* generation number */ -} xfs_dinode_core_t; -#define DI_MAX_FLUSH 0xffff - -typedef struct xfs_dinode -{ - xfs_dinode_core_t di_core; - __be32 di_next_unlinked;/* agi unlinked list ptr */ - union { - xfs_bmdr_block_t di_bmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_bmx[1]; /* extent list */ - xfs_dir2_sf_t di_dir2sf; /* shortform directory v2 */ - char di_c[1]; /* local contents */ - __be32 di_dev; /* device for S_IFCHR/S_IFBLK */ - uuid_t di_muuid; /* mount point value */ - char di_symlink[1]; /* local symbolic link */ - } di_u; - union { - xfs_bmdr_block_t di_abmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_abmx[1]; /* extent list */ - xfs_attr_shortform_t di_attrsf; /* shortform attribute list */ - } di_a; + /* di_next_unlinked is the only non-core field in the old dinode */ + __be32 di_next_unlinked;/* agi unlinked list ptr */ } xfs_dinode_t; +#define XFS_DINODE_CORE_SIZE(mp) (96) +#define XFS_DINODE_SIZE(mp) (96 + sizeof(__be32)) + +#define DI_MAX_FLUSH 0xffff + /* * The 32 bit link count in the inode theoretically maxes out at UINT_MAX. * Since the pathconf interface is signed, we use 2^31 - 1 instead. @@ -104,14 +90,12 @@ typedef struct xfs_dinode /* * Values for di_format */ -typedef enum xfs_dinode_fmt -{ - XFS_DINODE_FMT_DEV, /* CHR, BLK: di_dev */ - XFS_DINODE_FMT_LOCAL, /* DIR, REG: di_c */ - /* LNK: di_symlink */ - XFS_DINODE_FMT_EXTENTS, /* DIR, REG, LNK: di_bmx */ - XFS_DINODE_FMT_BTREE, /* DIR, REG, LNK: di_bmbt */ - XFS_DINODE_FMT_UUID /* MNT: di_uuid */ +typedef enum xfs_dinode_fmt { + XFS_DINODE_FMT_DEV, /* xfs_dev_t */ + XFS_DINODE_FMT_LOCAL, /* bulk data */ + XFS_DINODE_FMT_EXTENTS, /* struct xfs_bmbt_rec */ + XFS_DINODE_FMT_BTREE, /* struct xfs_bmdr_block */ + XFS_DINODE_FMT_UUID /* uuid_t */ } xfs_dinode_fmt_t; /* @@ -128,14 +112,14 @@ typedef enum xfs_dinode_fmt /* * Inode data & attribute fork sizes, per inode. */ -#define XFS_DFORK_Q(dip) ((dip)->di_core.di_forkoff != 0) -#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_core.di_forkoff << 3)) +#define XFS_DFORK_Q(dip) ((dip)->di_forkoff != 0) +#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_forkoff << 3)) #define XFS_DFORK_DSIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ XFS_DFORK_BOFF(dip) : \ (mp)->m_litino) -#define XFS_DFORK_ASIZE(dip,mp) \ +#define XFS_DFORK_ASIZE(dip, mp) \ (XFS_DFORK_Q(dip) ? \ (mp)->m_litino - XFS_DFORK_BOFF(dip) : \ 0) @@ -144,19 +128,26 @@ typedef enum xfs_dinode_fmt XFS_DFORK_DSIZE(dip, mp) : \ XFS_DFORK_ASIZE(dip, mp)) -#define XFS_DFORK_DPTR(dip) ((dip)->di_u.di_c) -#define XFS_DFORK_APTR(dip) \ - ((dip)->di_u.di_c + XFS_DFORK_BOFF(dip)) -#define XFS_DFORK_PTR(dip,w) \ - ((w) == XFS_DATA_FORK ? XFS_DFORK_DPTR(dip) : XFS_DFORK_APTR(dip)) +/* + * Return pointers to the data or attribute forks. + */ +#define XFS_DFORK_DPTR(mp, dip) \ + ((char *)dip + XFS_DINODE_SIZE(mp)) +#define XFS_DFORK_APTR(mp, dip) \ + (XFS_DFORK_DPTR(mp, dip) + XFS_DFORK_BOFF(dip)) +#define XFS_DFORK_PTR(mp, dip, w) \ + ((w) == XFS_DATA_FORK ? \ + XFS_DFORK_DPTR(mp, dip) : \ + XFS_DFORK_APTR(mp, dip)) + #define XFS_DFORK_FORMAT(dip,w) \ ((w) == XFS_DATA_FORK ? \ - (dip)->di_core.di_format : \ - (dip)->di_core.di_aformat) + (dip)->di_format : \ + (dip)->di_aformat) #define XFS_DFORK_NEXTENTS(dip,w) \ ((w) == XFS_DATA_FORK ? \ - be32_to_cpu((dip)->di_core.di_nextents) : \ - be16_to_cpu((dip)->di_core.di_anextents)) + be32_to_cpu((dip)->di_nextents) : \ + be16_to_cpu((dip)->di_anextents)) #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-07 19:59:57.000000000 +0200 @@ -174,8 +174,8 @@ xfs_imap_to_bp( dip = (xfs_dinode_t *)xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); - di_ok = be16_to_cpu(dip->di_core.di_magic) == XFS_DINODE_MAGIC && - XFS_DINODE_GOOD_VERSION(dip->di_core.di_version); + di_ok = be16_to_cpu(dip->di_magic) == XFS_DINODE_MAGIC && + XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { @@ -191,7 +191,7 @@ xfs_imap_to_bp( "daddr %lld #%d (magic=%x)", XFS_BUFTARG_NAME(mp->m_ddev_targp), (unsigned long long)imap->im_blkno, i, - be16_to_cpu(dip->di_core.di_magic)); + be16_to_cpu(dip->di_magic)); #endif xfs_trans_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); @@ -349,26 +349,26 @@ xfs_iformat( XFS_IFORK_DSIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); error = 0; - if (unlikely(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents) > - be64_to_cpu(dip->di_core.di_nblocks))) { + if (unlikely(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents) > + be64_to_cpu(dip->di_nblocks))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.", (unsigned long long)ip->i_ino, - (int)(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents)), + (int)(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents)), (unsigned long long) - be64_to_cpu(dip->di_core.di_nblocks)); + be64_to_cpu(dip->di_nblocks)); XFS_CORRUPTION_ERROR("xfs_iformat(1)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } - if (unlikely(dip->di_core.di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { + if (unlikely(dip->di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, forkoff = 0x%x.", (unsigned long long)ip->i_ino, - dip->di_core.di_forkoff); + dip->di_forkoff); XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); @@ -379,25 +379,26 @@ xfs_iformat( case S_IFCHR: case S_IFBLK: case S_IFSOCK: - if (unlikely(dip->di_core.di_format != XFS_DINODE_FMT_DEV)) { + if (unlikely(dip->di_format != XFS_DINODE_FMT_DEV)) { XFS_CORRUPTION_ERROR("xfs_iformat(3)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } ip->i_d.di_size = 0; ip->i_size = 0; - ip->i_df.if_u2.if_rdev = be32_to_cpu(dip->di_u.di_dev); + ip->i_df.if_u2.if_rdev = + be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(mp, dip)); break; case S_IFREG: case S_IFLNK: case S_IFDIR: - switch (dip->di_core.di_format) { + switch (dip->di_format) { case XFS_DINODE_FMT_LOCAL: /* * no local regular files yet */ - if (unlikely((be16_to_cpu(dip->di_core.di_mode) & S_IFMT) == S_IFREG)) { + if (unlikely((be16_to_cpu(dip->di_mode) & S_IFMT) == S_IFREG)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " "(local format for regular file).", @@ -408,7 +409,7 @@ xfs_iformat( return XFS_ERROR(EFSCORRUPTED); } - di_size = be64_to_cpu(dip->di_core.di_size); + di_size = be64_to_cpu(dip->di_size); if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " @@ -450,9 +451,9 @@ xfs_iformat( ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP); ip->i_afp->if_ext_max = XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); - switch (dip->di_core.di_aformat) { + switch (dip->di_aformat) { case XFS_DINODE_FMT_LOCAL: - atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); + atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(mp, dip); size = be16_to_cpu(atp->hdr.totsize); error = xfs_iformat_local(ip, dip, XFS_ATTR_FORK, size); break; @@ -521,8 +522,11 @@ xfs_iformat_local( } ifp->if_bytes = size; ifp->if_real_bytes = real_size; - if (size) - memcpy(ifp->if_u1.if_data, XFS_DFORK_PTR(dip, whichfork), size); + if (size) { + memcpy(ifp->if_u1.if_data, + XFS_DFORK_PTR(ip->i_mount, dip, whichfork), + size); + } ifp->if_flags &= ~XFS_IFEXTENTS; ifp->if_flags |= XFS_IFINLINE; return 0; @@ -577,7 +581,8 @@ xfs_iformat_extents( ifp->if_bytes = size; if (size) { - dp = (xfs_bmbt_rec_t *) XFS_DFORK_PTR(dip, whichfork); + dp = (xfs_bmbt_rec_t *) + XFS_DFORK_PTR(ip->i_mount, dip, whichfork); xfs_validate_extents(ifp, nex, XFS_EXTFMT_INODE(ip)); for (i = 0; i < nex; i++, dp++) { xfs_bmbt_rec_host_t *ep = xfs_iext_get_ext(ifp, i); @@ -620,7 +625,7 @@ xfs_iformat_btree( int size; ifp = XFS_IFORK_PTR(ip, whichfork); - dfp = (xfs_bmdr_block_t *)XFS_DFORK_PTR(dip, whichfork); + dfp = (xfs_bmdr_block_t *)XFS_DFORK_PTR(ip->i_mount, dip, whichfork); size = XFS_BMAP_BROOT_SPACE(dfp); nrecs = be16_to_cpu(dfp->bb_numrecs); @@ -662,7 +667,7 @@ xfs_iformat_btree( void xfs_dinode_from_disk( xfs_icdinode_t *to, - xfs_dinode_core_t *from) + xfs_dinode_t *from) { to->di_magic = be16_to_cpu(from->di_magic); to->di_mode = be16_to_cpu(from->di_mode); @@ -696,7 +701,7 @@ xfs_dinode_from_disk( void xfs_dinode_to_disk( - xfs_dinode_core_t *to, + xfs_dinode_t *to, xfs_icdinode_t *from) { to->di_magic = cpu_to_be16(from->di_magic); @@ -783,9 +788,7 @@ uint xfs_dic2xflags( xfs_dinode_t *dip) { - xfs_dinode_core_t *dic = &dip->di_core; - - return _xfs_dic2xflags(be16_to_cpu(dic->di_flags)) | + return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); } @@ -896,14 +899,14 @@ xfs_iread( * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC) { xfs_idestroy(ip); xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " - "dip->di_core.di_magic (0x%x) != " + "di_magic (0x%x) != " "XFS_DINODE_MAGIC (0x%x)", - be16_to_cpu(dip->di_core.di_magic), + be16_to_cpu(dip->di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ return XFS_ERROR(EINVAL); @@ -916,8 +919,8 @@ xfs_iread( * specific information. * Otherwise, just get the truly permanent information. */ - if (dip->di_core.di_mode) { - xfs_dinode_from_disk(&ip->i_d, &dip->di_core); + if (dip->di_mode) { + xfs_dinode_from_disk(&ip->i_d, dip); error = xfs_iformat(ip, dip); if (error) { xfs_idestroy(ip); @@ -930,10 +933,10 @@ xfs_iread( return error; } } else { - ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); - ip->i_d.di_version = dip->di_core.di_version; - ip->i_d.di_gen = be32_to_cpu(dip->di_core.di_gen); - ip->i_d.di_flushiter = be16_to_cpu(dip->di_core.di_flushiter); + ip->i_d.di_magic = be16_to_cpu(dip->di_magic); + ip->i_d.di_version = dip->di_version; + ip->i_d.di_gen = be32_to_cpu(dip->di_gen); + ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter); /* * Make sure to pull in the mode here as well in * case the inode is released without being used. @@ -2274,7 +2277,7 @@ xfs_ifree( * This is a temporary hack that would require a proper fix * in the future. */ - dip->di_core.di_mode = 0; + dip->di_mode = 0; if (delete) { xfs_ifree_cluster(ip, tp, first_ino); @@ -2841,8 +2844,8 @@ xfs_iflush_fork( ASSERT(whichfork == XFS_ATTR_FORK); return; } - cp = XFS_DFORK_PTR(dip, whichfork); mp = ip->i_mount; + cp = XFS_DFORK_PTR(mp, dip, whichfork); switch (XFS_IFORK_FORMAT(ip, whichfork)) { case XFS_DINODE_FMT_LOCAL: if ((iip->ili_format.ilf_fields & dataflag[whichfork]) && @@ -2884,15 +2887,17 @@ xfs_iflush_fork( case XFS_DINODE_FMT_DEV: if (iip->ili_format.ilf_fields & XFS_ILOG_DEV) { ASSERT(whichfork == XFS_DATA_FORK); - dip->di_u.di_dev = cpu_to_be32(ip->i_df.if_u2.if_rdev); + *(__be32 *)XFS_DFORK_DPTR(mp, dip) = + cpu_to_be32(ip->i_df.if_u2.if_rdev); } break; case XFS_DINODE_FMT_UUID: if (iip->ili_format.ilf_fields & XFS_ILOG_UUID) { ASSERT(whichfork == XFS_DATA_FORK); - memcpy(&dip->di_u.di_muuid, &ip->i_df.if_u2.if_uuid, - sizeof(uuid_t)); + memcpy(XFS_DFORK_DPTR(mp, dip), + &ip->i_df.if_u2.if_uuid, + sizeof(uuid_t)); } break; @@ -3270,11 +3275,11 @@ xfs_iflush_int( */ xfs_synchronize_atime(ip); - if (XFS_TEST_ERROR(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC, + if (XFS_TEST_ERROR(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC, mp, XFS_ERRTAG_IFLUSH_1, XFS_RANDOM_IFLUSH_1)) { xfs_cmn_err(XFS_PTAG_IFLUSH, CE_ALERT, mp, "xfs_iflush: Bad inode %Lu magic number 0x%x, ptr 0x%p", - ip->i_ino, be16_to_cpu(dip->di_core.di_magic), dip); + ip->i_ino, be16_to_cpu(dip->di_magic), dip); goto corrupt_out; } if (XFS_TEST_ERROR(ip->i_d.di_magic != XFS_DINODE_MAGIC, @@ -3337,7 +3342,7 @@ xfs_iflush_int( * because if the inode is dirty at all the core must * be. */ - xfs_dinode_to_disk(&dip->di_core, &ip->i_d); + xfs_dinode_to_disk(dip, &ip->i_d); /* Wrap, we never let the log put out DI_MAX_FLUSH */ if (ip->i_d.di_flushiter == DI_MAX_FLUSH) @@ -3357,7 +3362,7 @@ xfs_iflush_int( * Convert it back. */ ASSERT(ip->i_d.di_nlink <= XFS_MAXLINK_1); - dip->di_core.di_onlink = cpu_to_be16(ip->i_d.di_nlink); + dip->di_onlink = cpu_to_be16(ip->i_d.di_nlink); } else { /* * The superblock version has already been bumped, @@ -3365,12 +3370,12 @@ xfs_iflush_int( * format permanent. */ ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_core.di_version = XFS_DINODE_VERSION_2; + dip->di_version = XFS_DINODE_VERSION_2; ip->i_d.di_onlink = 0; - dip->di_core.di_onlink = 0; + dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); - memset(&(dip->di_core.di_pad[0]), 0, - sizeof(dip->di_core.di_pad)); + memset(&(dip->di_pad[0]), 0, + sizeof(dip->di_pad)); ASSERT(ip->i_d.di_projid == 0); } } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-07 19:57:47.000000000 +0200 @@ -2316,7 +2316,7 @@ xlog_recover_do_inode_trans( * Make sure the place we're flushing out to really looks * like an inode! */ - if (unlikely(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC)) { + if (unlikely(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC)) { xfs_buf_relse(bp); xfs_fs_cmn_err(CE_ALERT, mp, "xfs_inode_recover: Bad inode magic number, dino ptr = 0x%p, dino bp = 0x%p, ino = %Ld", @@ -2339,12 +2339,12 @@ xlog_recover_do_inode_trans( } /* Skip replay when the on disk inode is newer than the log one */ - if (dicp->di_flushiter < be16_to_cpu(dip->di_core.di_flushiter)) { + if (dicp->di_flushiter < be16_to_cpu(dip->di_flushiter)) { /* * Deal with the wrap case, DI_MAX_FLUSH is less * than smaller numbers */ - if (be16_to_cpu(dip->di_core.di_flushiter) == DI_MAX_FLUSH && + if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && dicp->di_flushiter < (DI_MAX_FLUSH >> 1)) { /* do nothing */ } else { @@ -2404,7 +2404,7 @@ xlog_recover_do_inode_trans( error = EFSCORRUPTED; goto error; } - if (unlikely(item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t))) { + if (unlikely(item->ri_buf[1].i_len > XFS_DINODE_CORE_SIZE(mp))) { XFS_CORRUPTION_ERROR("xlog_recover_do_inode_trans(7)", XFS_ERRLEVEL_LOW, mp, dicp); xfs_buf_relse(bp); @@ -2416,23 +2416,25 @@ xlog_recover_do_inode_trans( } /* The core is in in-core format */ - xfs_dinode_to_disk(&dip->di_core, - (xfs_icdinode_t *)item->ri_buf[1].i_addr); + xfs_dinode_to_disk(dip, (xfs_icdinode_t *)item->ri_buf[1].i_addr); /* the rest is in on-disk format */ - if (item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t)) { - memcpy((xfs_caddr_t) dip + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_addr + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_len - sizeof(xfs_dinode_core_t)); + if (item->ri_buf[1].i_len > XFS_DINODE_CORE_SIZE(mp)) { + memcpy((xfs_caddr_t) dip + XFS_DINODE_CORE_SIZE(mp), + item->ri_buf[1].i_addr + XFS_DINODE_CORE_SIZE(mp), + item->ri_buf[1].i_len - XFS_DINODE_CORE_SIZE(mp)); } fields = in_f->ilf_fields; switch (fields & (XFS_ILOG_DEV | XFS_ILOG_UUID)) { case XFS_ILOG_DEV: - dip->di_u.di_dev = cpu_to_be32(in_f->ilf_u.ilfu_rdev); + *(__u32 *)XFS_DFORK_DPTR(mp, dip) = + cpu_to_be32(in_f->ilf_u.ilfu_rdev); break; case XFS_ILOG_UUID: - dip->di_u.di_muuid = in_f->ilf_u.ilfu_uuid; + memcpy(XFS_DFORK_DPTR(mp, dip), + &in_f->ilf_u.ilfu_uuid, + sizeof(uuid_t)); break; } @@ -2448,12 +2450,12 @@ xlog_recover_do_inode_trans( switch (fields & XFS_ILOG_DFORK) { case XFS_ILOG_DDATA: case XFS_ILOG_DEXT: - memcpy(&dip->di_u, src, len); + memcpy(XFS_DFORK_DPTR(mp, dip), src, len); break; case XFS_ILOG_DBROOT: xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, - &dip->di_u.di_bmbt, + (xfs_bmdr_block_t *)XFS_DFORK_DPTR(mp, dip), XFS_DFORK_DSIZE(dip, mp)); break; @@ -2483,13 +2485,13 @@ xlog_recover_do_inode_trans( switch (in_f->ilf_fields & XFS_ILOG_AFORK) { case XFS_ILOG_ADATA: case XFS_ILOG_AEXT: - dest = XFS_DFORK_APTR(dip); + dest = XFS_DFORK_APTR(mp, dip); ASSERT(len <= XFS_DFORK_ASIZE(dip, mp)); memcpy(dest, src, len); break; case XFS_ILOG_ABROOT: - dest = XFS_DFORK_APTR(dip); + dest = XFS_DFORK_APTR(mp, dip); xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, (xfs_bmdr_block_t*)dest, XFS_DFORK_ASIZE(dip, mp)); Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-07 19:51:10.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-07 19:57:47.000000000 +0200 @@ -19,7 +19,6 @@ #define __XFS_INODE_H__ struct xfs_dinode; -struct xfs_dinode_core; struct xfs_inode; /* @@ -112,7 +111,7 @@ typedef struct xfs_ictimestamp { } xfs_ictimestamp_t; /* - * NOTE: This structure must be kept identical to struct xfs_dinode_core + * NOTE: This structure must be kept identical to struct xfs_dinode * in xfs_dinode.h except for the endianess annotations. */ typedef struct xfs_icdinode { @@ -539,8 +538,8 @@ int xfs_itobp(struct xfs_mount *, struc struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, - struct xfs_dinode_core *); -void xfs_dinode_to_disk(struct xfs_dinode_core *, + struct xfs_dinode *); +void xfs_dinode_to_disk(struct xfs_dinode *, struct xfs_icdinode *); void xfs_idestroy_fork(struct xfs_inode *, int); void xfs_idata_realloc(struct xfs_inode *, int, int); Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-07 19:50:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-07 19:57:47.000000000 +0200 @@ -125,13 +125,9 @@ STATIC void xfs_bulkstat_one_dinode( xfs_mount_t *mp, /* mount point for filesystem */ xfs_ino_t ino, /* inode number to get data for */ - xfs_dinode_t *dip, /* dinode inode pointer */ + xfs_dinode_t *dic, /* dinode inode pointer */ xfs_bstat_t *buf) /* return buffer */ { - xfs_dinode_core_t *dic; /* dinode core info pointer */ - - dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -162,7 +158,7 @@ xfs_bulkstat_one_dinode( buf->bs_mtime.tv_nsec = be32_to_cpu(dic->di_mtime.t_nsec); buf->bs_ctime.tv_sec = be32_to_cpu(dic->di_ctime.t_sec); buf->bs_ctime.tv_nsec = be32_to_cpu(dic->di_ctime.t_nsec); - buf->bs_xflags = xfs_dic2xflags(dip); + buf->bs_xflags = xfs_dic2xflags(dic); buf->bs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->bs_extents = be32_to_cpu(dic->di_nextents); buf->bs_gen = be32_to_cpu(dic->di_gen); @@ -173,7 +169,7 @@ xfs_bulkstat_one_dinode( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->bs_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->bs_rdev = be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(mp, dic)); buf->bs_blksize = BLKDEV_IOSIZE; buf->bs_blocks = 0; break; @@ -287,19 +283,19 @@ xfs_bulkstat_use_dinode( * to disk yet. This is a temporary hack that would require a proper * fix in the future. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC || - !XFS_DINODE_GOOD_VERSION(dip->di_core.di_version) || - !dip->di_core.di_mode) + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC || + !XFS_DINODE_GOOD_VERSION(dip->di_version) || + !dip->di_mode) return 0; if (flags & BULKSTAT_FG_QUICK) { *dipp = dip; return 1; } /* BULKSTAT_FG_INLINE: if attr fork is local, or not there, use it */ - aformat = dip->di_core.di_aformat; + aformat = dip->di_aformat; if ((XFS_DFORK_Q(dip) == 0) || (aformat == XFS_DINODE_FMT_LOCAL) || - (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_core.di_anextents)) { + (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_anextents)) { *dipp = dip; return 1; } Index: linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dir2_sf.h 2008-10-07 19:50:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h 2008-10-07 19:57:47.000000000 +0200 @@ -34,13 +34,6 @@ struct xfs_mount; struct xfs_trans; /* - * Maximum size of a shortform directory. - */ -#define XFS_DIR2_SF_MAX_SIZE \ - (XFS_DINODE_MAX_SIZE - (uint)sizeof(xfs_dinode_core_t) - \ - (uint)sizeof(xfs_agino_t)) - -/* * Inode number stored as 8 8-bit values. */ typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-07 19:57:41.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-07 19:57:47.000000000 +0200 @@ -355,12 +355,12 @@ xfs_ialloc_ag_alloc( xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { int ioffset = i << args.mp->m_sb.sb_inodelog; - uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + uint isize = XFS_DINODE_SIZE(mp); free = XFS_MAKE_IPTR(args.mp, fbuf, i); - free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); - free->di_core.di_version = version; - free->di_core.di_gen = cpu_to_be32(gen); + free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC); + free->di_version = version; + free->di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-07 19:50:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-07 19:57:47.000000000 +0200 @@ -280,8 +280,10 @@ xfs_inode_item_format( */ xfs_mark_inode_dirty_sync(ip); + mp = ip->i_mount; + vecp->i_addr = (xfs_caddr_t)&ip->i_d; - vecp->i_len = sizeof(xfs_dinode_core_t); + vecp->i_len = XFS_DINODE_CORE_SIZE(ip->i_mount); XLOG_VEC_SET_TYPE(vecp, XLOG_REG_TYPE_ICORE); vecp++; nvecs++; @@ -295,7 +297,6 @@ xfs_inode_item_format( * the old inode version number is there. If the superblock already * has a new version number, then we don't bother converting back. */ - mp = ip->i_mount; ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || xfs_sb_version_hasnlink(&mp->m_sb)); if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-07 19:51:10.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-07 19:57:47.000000000 +0200 @@ -575,8 +575,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; - mp->m_litino = sbp->sb_inodesize - - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); + mp->m_litino = sbp->sb_inodesize - XFS_DINODE_SIZE(mp); mp->m_blockmask = sbp->sb_blocksize - 1; mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; mp->m_blockwmask = mp->m_blockwsize - 1; Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-07 19:50:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-07 22:15:32.000000000 +0200 @@ -3625,19 +3625,22 @@ xfs_qoff_item_print(xfs_qoff_logitem_t * static void xfs_inodebuf(xfs_buf_t *bp) { + struct xfs_mount *mp; xfs_dinode_t *di; xfs_icdinode_t dic; int n, i; + mp = XFS_BUF_FSPRIVATE3(bp, xfs_mount_t *); n = XFS_BUF_COUNT(bp) >> 8; for (i = 0; i < n; i++) { di = (xfs_dinode_t *)xfs_buf_offset(bp, i * 256); - xfs_dinode_from_disk(&dic, &di->di_core); + xfs_dinode_from_disk(&dic, di); xfs_prdinode_incore(&dic); kdb_printf("next_unlinked 0x%x u@0x%p\n", - be32_to_cpu(di->di_next_unlinked), &di->di_u); + be32_to_cpu(di->di_next_unlinked), + XFS_DFORK_DPTR(mp, di)); } } @@ -4846,7 +4849,7 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum kdb_printf("buf 0x%p dir/attr node 0x%p\n", bp, node); xfsidbg_xdanode(node); } - } else if (be16_to_cpu((di = d)->di_core.di_magic) == XFS_DINODE_MAGIC) { + } else if (be16_to_cpu((di = d)->di_magic) == XFS_DINODE_MAGIC) { if (summary) { kdb_printf("Disk Inode (at 0x%p)\n", di); } else { From owner-xfs@oss.sgi.com Tue Oct 7 13:28:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97KSJSo020672 for ; Tue, 7 Oct 2008 13:28:19 -0700 X-ASG-Debug-ID: 1223411397-6ab9020d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA36F4C5D0B for ; Tue, 7 Oct 2008 13:29:57 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id ZxSOW3mke7Ei7npB for ; Tue, 07 Oct 2008 13:29:57 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97KTuIF017118 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 7 Oct 2008 22:29:56 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97KTu3P017116 for xfs@oss.sgi.com; Tue, 7 Oct 2008 22:29:56 +0200 Date: Tue, 7 Oct 2008 22:29:56 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] Remove restricted_chown parameter Subject: Re: [PATCH 2/3] Remove restricted_chown parameter Message-ID: <20081007202956.GA17005@lst.de> References: <20080929215325.GB30363@lst.de> <20081001133431.GA18672@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081001133431.GA18672@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223411398 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 01, 2008 at 03:34:31PM +0200, Christoph Hellwig wrote: > On Mon, Sep 29, 2008 at 11:53:25PM +0200, Christoph Hellwig wrote: > > From: Tim Shimmin > > > > On Linux all filesystems are supposed to be operating under > > Posix' restricted chown. Restricted chown means it restricts > > chown to the owner unless you have CAP_FOWNER. > > > > [hch: forward-ported to the current tree] > > > > Signed-off-by: Tim Shimmin > > Signed-off-by: Christoph Hellwig > > And here's a version that also updates Documentation/filesystems/xfs.txt > about the sysctl removal. Ad another respin because kernel/sysctl_check.c includes xfs_sysctl.h for some weird check that we need to remove, too. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-10-03 22:36:05.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-10-03 22:36:05.000000000 +0200 @@ -26,7 +26,6 @@ */ xfs_param_t xfs_params = { /* MIN DFLT MAX */ - .restrict_chown = { 0, 1, 1 }, .sgid_inherit = { 0, 0, 1 }, .symlink_mode = { 0, 0, 1 }, .panic_mask = { 0, 0, 255 }, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-03 06:30:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-07 19:50:50.000000000 +0200 @@ -112,7 +112,6 @@ #define HAVE_DMAPI #endif -#define restricted_chown xfs_params.restrict_chown.val #define irix_sgid_inherit xfs_params.sgid_inherit.val #define irix_symlink_mode xfs_params.symlink_mode.val #define xfs_panic_mask xfs_params.panic_mask.val Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.c 2008-06-25 06:16:47.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-03 22:36:05.000000000 +0200 @@ -56,17 +56,6 @@ xfs_stats_clear_proc_handler( static ctl_table xfs_table[] = { { - .ctl_name = XFS_RESTRICT_CHOWN, - .procname = "restrict_chown", - .data = &xfs_params.restrict_chown.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec_minmax, - .strategy = &sysctl_intvec, - .extra1 = &xfs_params.restrict_chown.min, - .extra2 = &xfs_params.restrict_chown.max - }, - { .ctl_name = XFS_SGID_INHERIT, .procname = "irix_sgid_inherit", .data = &xfs_params.sgid_inherit.val, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.h 2008-06-25 06:16:47.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-03 22:36:05.000000000 +0200 @@ -31,7 +31,6 @@ typedef struct xfs_sysctl_val { } xfs_sysctl_val_t; typedef struct xfs_param { - xfs_sysctl_val_t restrict_chown;/* Root/non-root can give away files.*/ xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is * not a member of parent dir GID. */ xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ @@ -68,7 +67,7 @@ typedef struct xfs_param { enum { /* XFS_REFCACHE_SIZE = 1 */ /* XFS_REFCACHE_PURGE = 2 */ - XFS_RESTRICT_CHOWN = 3, + /* XFS_RESTRICT_CHOWN = 3 */ XFS_SGID_INHERIT = 4, XFS_SYMLINK_MODE = 5, XFS_PANIC_MASK = 6, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-03 22:36:05.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-07 22:22:09.000000000 +0200 @@ -1104,10 +1104,6 @@ xfs_ioctl_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & FSX_PROJID) { /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-03 22:36:05.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-07 22:22:15.000000000 +0200 @@ -210,10 +210,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* @@ -237,9 +233,8 @@ xfs_setattr( * shall be equal to either the group ID or one of the * supplementary group IDs of the calling process. */ - if (restricted_chown && - (iuid != uid || (igid != gid && - !in_group_p((gid_t)gid))) && + if ((iuid != uid || + (igid != gid && !in_group_p((gid_t)gid))) && !capable(CAP_CHOWN)) { code = XFS_ERROR(EPERM); goto error_return; @@ -433,10 +428,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* Index: linux-2.6-xfs/Documentation/filesystems/xfs.txt =================================================================== --- linux-2.6-xfs.orig/Documentation/filesystems/xfs.txt 2008-08-04 19:03:13.000000000 +0200 +++ linux-2.6-xfs/Documentation/filesystems/xfs.txt 2008-10-03 22:36:05.000000000 +0200 @@ -229,10 +229,6 @@ The following sysctls are available for ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl is set. - fs.xfs.restrict_chown (Min: 0 Default: 1 Max: 1) - 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 xfs_io(8) chattr command on a directory to be Index: linux-2.6-xfs/kernel/sysctl_check.c =================================================================== --- linux-2.6-xfs.orig/kernel/sysctl_check.c 2008-10-07 22:26:34.000000000 +0200 +++ linux-2.6-xfs/kernel/sysctl_check.c 2008-10-07 22:26:47.000000000 +0200 @@ -731,7 +731,6 @@ static const struct trans_ctl_table tran }; static const struct trans_ctl_table trans_fs_xfs_table[] = { - { XFS_RESTRICT_CHOWN, "restrict_chown" }, { XFS_SGID_INHERIT, "irix_sgid_inherit" }, { XFS_SYMLINK_MODE, "irix_symlink_mode" }, { XFS_PANIC_MASK, "panic_mask" }, From owner-xfs@oss.sgi.com Tue Oct 7 13:29:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97KT21j020949 for ; Tue, 7 Oct 2008 13:29:02 -0700 X-ASG-Debug-ID: 1223411440-7b2f00880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E613913B2C3A for ; Tue, 7 Oct 2008 13:30:41 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id fermUwPHIkbJ5Bi5 for ; Tue, 07 Oct 2008 13:30:41 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97KUeIF017154 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 7 Oct 2008 22:30:40 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97KUefL017152 for xfs@oss.sgi.com; Tue, 7 Oct 2008 22:30:40 +0200 Date: Tue, 7 Oct 2008 22:30:40 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] use inode_change_ok for setattr permission checking Subject: Re: [PATCH 3/3] use inode_change_ok for setattr permission checking Message-ID: <20081007203040.GB17005@lst.de> References: <20080929215329.GC30363@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080929215329.GC30363@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223411441 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Sep 29, 2008 at 11:53:29PM +0200, Christoph Hellwig wrote: > Instead of implementing our own checks use inode_change_ok to check for > nessecary permission in setattr. There is a slight change in behaviour > as inode_change_ok doesn't allow i_mode updates to add the suid or sgid > without superuser privilegues while the old XFS code just stripped away > those bits from the file mode. This one needs a slight respin for the 2.6.27-rc8 merge: Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:32.000000000 +0200 @@ -70,7 +70,6 @@ xfs_setattr( gid_t gid=0, igid=0; int timeflags = 0; struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; - int file_owner; int need_iolock = 1; xfs_itrace_entry(ip); @@ -81,6 +80,10 @@ xfs_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); + code = -inode_change_ok(inode, iattr); + if (code) + return code; + olddquot1 = olddquot2 = NULL; udqp = gdqp = NULL; @@ -158,56 +161,6 @@ xfs_setattr( xfs_ilock(ip, lock_flags); - /* boolean: are we the file owner? */ - file_owner = (current_fsuid() == ip->i_d.di_uid); - - /* - * Change various properties of a file. - * Only the owner or users with CAP_FOWNER - * capability may do these things. - */ - if (mask & (ATTR_MODE|ATTR_UID|ATTR_GID)) { - /* - * CAP_FOWNER overrides the following restrictions: - * - * The user ID of the calling process must be equal - * to the file owner ID, except in cases where the - * CAP_FSETID capability is applicable. - */ - if (!file_owner && !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - - /* - * CAP_FSETID overrides the following restrictions: - * - * The effective user ID of the calling process shall match - * the file owner when setting the set-user-ID and - * set-group-ID bits on that file. - * - * The effective group ID or one of the supplementary group - * IDs of the calling process shall match the group owner of - * the file when setting the set-group-ID bit on that file - */ - if (mask & ATTR_MODE) { - mode_t m = 0; - - if ((iattr->ia_mode & S_ISUID) && !file_owner) - m |= S_ISUID; - if ((iattr->ia_mode & S_ISGID) && - !in_group_p((gid_t)ip->i_d.di_gid)) - m |= S_ISGID; -#if 0 - /* Linux allows this, Irix doesn't. */ - if ((iattr->ia_mode & S_ISVTX) && !S_ISDIR(ip->i_d.di_mode)) - m |= S_ISVTX; -#endif - if (m && !capable(CAP_FSETID)) - iattr->ia_mode &= ~m; - } - } - /* * Change file ownership. Must be the owner or privileged. */ @@ -224,22 +177,6 @@ xfs_setattr( uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; /* - * CAP_CHOWN overrides the following restrictions: - * - * If _POSIX_CHOWN_RESTRICTED is defined, this capability - * shall override the restriction that a process cannot - * change the user ID of a file it owns and the restriction - * that the group ID supplied to the chown() function - * shall be equal to either the group ID or one of the - * supplementary group IDs of the calling process. - */ - if ((iuid != uid || - (igid != gid && !in_group_p((gid_t)gid))) && - !capable(CAP_CHOWN)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - /* * Do a quota reservation only if uid/gid is actually * going to change. */ @@ -284,19 +221,6 @@ xfs_setattr( } /* - * Change file access or modified times. - */ - if (mask & (ATTR_ATIME|ATTR_MTIME)) { - if (!file_owner) { - if ((mask & (ATTR_MTIME_SET|ATTR_ATIME_SET)) && - !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - } - } - - /* * Now we can make the changes. Before we join the inode * to the transaction, if ATTR_SIZE is set then take care of * the part of the truncation that must be done without the From owner-xfs@oss.sgi.com Tue Oct 7 14:12:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LCqIU026115 for ; Tue, 7 Oct 2008 14:12:54 -0700 X-ASG-Debug-ID: 1223414061-3dad002f0002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A751A129B9D9; Tue, 7 Oct 2008 14:14:31 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id jfiULfqKvvEx6AkR; Tue, 07 Oct 2008 14:14:31 -0700 (PDT) Received: from funky.thebarn.com (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m97LEJhR051867; Tue, 7 Oct 2008 16:14:20 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <48EBD12B.6090504@thebarn.com> Date: Tue, 07 Oct 2008 16:14:19 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: lachlan@sgi.com CC: Christoph Hellwig , sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 957103 - Merge up to 2.6.27-rc8 Subject: Re: TAKE 957103 - Merge up to 2.6.27-rc8 References: <20081003031258.7886658C52B4@chook.melbourne.sgi.com> <20081003091001.GA11627@infradead.org> <20081003195141.GA18988@infradead.org> <48E96C6B.7000009@sgi.com> In-Reply-To: <48E96C6B.7000009@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8387/Tue Oct 7 10:37:07 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1223414072 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7506 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Lachlan McIlroy wrote: > Christoph Hellwig wrote: >> On Fri, Oct 03, 2008 at 05:10:01AM -0400, Christoph Hellwig wrote: >>> So this patch now has made it out to the CVS on oss, but not the actual >>> update of the surrouding kernel tree. Any chance to fix that before >>> the >>> weekend so we'll actually have a tree the builds? >> >> Ok, everything is fine now. Looks like the ptools to cvs push being >> fragile as usual.. > > Both changes (ie fs/xfs and everything else) went in at the same time. > Probably just ptools congestion. > In terms of ptools the xfs tree and the kernel tree are different "isms" and therefore are synced up separately from AU to CA via the nirvana script, so who knows what odd timing might have happened with the whole process. -Russell From owner-xfs@oss.sgi.com Tue Oct 7 14:17:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LH3U0027093 for ; Tue, 7 Oct 2008 14:17:03 -0700 X-ASG-Debug-ID: 1223414322-6ab703580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 938024C5EEE for ; Tue, 7 Oct 2008 14:18:42 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id BlIbnKHlIHPqsqBk for ; Tue, 07 Oct 2008 14:18:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAL1t60h5LGor/2dsb2JhbAC/KIFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224272721" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 07:48:40 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnJx1-00016o-J0; Wed, 08 Oct 2008 08:18:39 +1100 Date: Wed, 8 Oct 2008 08:18:39 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] kill XFS_LITINO Subject: Re: [PATCH 1/3] kill XFS_LITINO Message-ID: <20081007211839.GT30001@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081007202153.GA16485@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081007202153.GA16485@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223414323 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0151 1.0000 -1.9225 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 10:21:53PM +0200, Christoph Hellwig wrote: > No point having a macro that just derefences a member of the struct > pointer passed in. Looks ok. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 14:19:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LJke9027646 for ; Tue, 7 Oct 2008 14:19:47 -0700 X-ASG-Debug-ID: 1223414485-0665039d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0FB29FEB4C for ; Tue, 7 Oct 2008 14:21:26 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id hmPK1yQBkNRiGHZl for ; Tue, 07 Oct 2008 14:21:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAL1t60h5LGor/2dsb2JhbAC/KIFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224274325" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 07:51:25 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnJzg-0001Ap-0q; Wed, 08 Oct 2008 08:21:24 +1100 Date: Wed, 8 Oct 2008 08:21:23 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] kill xfs_ialloc_log_di Subject: Re: [PATCH 2/3] kill xfs_ialloc_log_di Message-ID: <20081007212123.GU30001@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081007202157.GB16485@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081007202157.GB16485@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223414486 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7506 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 10:21:57PM +0200, Christoph Hellwig wrote: > xfs_ialloc_log_di alwasy logs the full inode core + di_next_unlinked, so > there's really no need for all the offset magic and we can just call > xfs_trans_log_buf directly from it's only user. Also add a comment > describing what we should do here instead. Looks like a good idea. I'll have to redo some patches on top of this, but otherwise I think it's fine. > @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( > XFS_BUF_LOCK); > ASSERT(fbuf); > ASSERT(!XFS_BUF_GETERROR(fbuf)); > + > /* > - * Set initial values for the inodes in this buffer. > + * Initialize all inodes in this buffer and then log them. > + * > + * XXX: It would be much better if we had just one transaction to > + * log a whole cluster of inodes instead of all the indivdual > + * transactions causing a lot of log traffic. > */ That's the patch series I'll need to redo on top of this. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 14:23:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LNgXP028345 for ; Tue, 7 Oct 2008 14:23:42 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id B4E928F80E9; Tue, 7 Oct 2008 14:25:18 -0700 (PDT) Received: from [134.15.251.2] (melb-sw-corp-251-2.corp.sgi.com [134.15.251.2]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id IAA23422; Wed, 8 Oct 2008 08:25:15 +1100 Message-ID: <48EBE1B1.3090605@sgi.com> Date: Wed, 08 Oct 2008 08:24:49 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH 2/3] kill xfs_ialloc_log_di References: <20081007202157.GB16485@lst.de> In-Reply-To: <20081007202157.GB16485@lst.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Can we verify dirty log replay immediately after a kernel update works? (has there been any log fmt revision or is this just pure cleanup?) Cheers Christoph Hellwig wrote: > xfs_ialloc_log_di alwasy logs the full inode core + di_next_unlinked, so > there's really no need for all the offset magic and we can just call > xfs_trans_log_buf directly from it's only user. Also add a comment > describing what we should do here instead. > > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-07 19:50:47.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-07 19:57:41.000000000 +0200 > @@ -41,68 +41,6 @@ > #include "xfs_error.h" > #include "xfs_bmap.h" > > -/* > - * Log specified fields for the inode given by bp and off. > - */ > -STATIC void > -xfs_ialloc_log_di( > - xfs_trans_t *tp, /* transaction pointer */ > - xfs_buf_t *bp, /* inode buffer */ > - int off, /* index of inode in buffer */ > - int fields) /* bitmask of fields to log */ > -{ > - int first; /* first byte number */ > - int ioffset; /* off in bytes */ > - int last; /* last byte number */ > - xfs_mount_t *mp; /* mount point structure */ > - static const short offsets[] = { /* field offsets */ > - /* keep in sync with bits */ > - offsetof(xfs_dinode_core_t, di_magic), > - offsetof(xfs_dinode_core_t, di_mode), > - offsetof(xfs_dinode_core_t, di_version), > - offsetof(xfs_dinode_core_t, di_format), > - offsetof(xfs_dinode_core_t, di_onlink), > - offsetof(xfs_dinode_core_t, di_uid), > - offsetof(xfs_dinode_core_t, di_gid), > - offsetof(xfs_dinode_core_t, di_nlink), > - offsetof(xfs_dinode_core_t, di_projid), > - offsetof(xfs_dinode_core_t, di_pad), > - offsetof(xfs_dinode_core_t, di_atime), > - offsetof(xfs_dinode_core_t, di_mtime), > - offsetof(xfs_dinode_core_t, di_ctime), > - offsetof(xfs_dinode_core_t, di_size), > - offsetof(xfs_dinode_core_t, di_nblocks), > - offsetof(xfs_dinode_core_t, di_extsize), > - offsetof(xfs_dinode_core_t, di_nextents), > - offsetof(xfs_dinode_core_t, di_anextents), > - offsetof(xfs_dinode_core_t, di_forkoff), > - offsetof(xfs_dinode_core_t, di_aformat), > - offsetof(xfs_dinode_core_t, di_dmevmask), > - offsetof(xfs_dinode_core_t, di_dmstate), > - offsetof(xfs_dinode_core_t, di_flags), > - offsetof(xfs_dinode_core_t, di_gen), > - offsetof(xfs_dinode_t, di_next_unlinked), > - offsetof(xfs_dinode_t, di_u), > - offsetof(xfs_dinode_t, di_a), > - sizeof(xfs_dinode_t) > - }; > - > - > - ASSERT(offsetof(xfs_dinode_t, di_core) == 0); > - ASSERT((fields & (XFS_DI_U|XFS_DI_A)) == 0); > - mp = tp->t_mountp; > - /* > - * Get the inode-relative first and last bytes for these fields > - */ > - xfs_btree_offsets(fields, offsets, XFS_DI_NUM_BITS, &first, &last); > - /* > - * Convert to buffer offsets and log it. > - */ > - ioffset = off << mp->m_sb.sb_inodelog; > - first += ioffset; > - last += ioffset; > - xfs_trans_log_buf(tp, bp, first, last); > -} > > /* > * Allocation group level functions. > @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( > XFS_BUF_LOCK); > ASSERT(fbuf); > ASSERT(!XFS_BUF_GETERROR(fbuf)); > + > /* > - * Set initial values for the inodes in this buffer. > + * Initialize all inodes in this buffer and then log them. > + * > + * XXX: It would be much better if we had just one transaction to > + * log a whole cluster of inodes instead of all the indivdual > + * transactions causing a lot of log traffic. > */ > xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); > for (i = 0; i < ninodes; i++) { > + int ioffset = i << args.mp->m_sb.sb_inodelog; > + uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); > + > free = XFS_MAKE_IPTR(args.mp, fbuf, i); > free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); > free->di_core.di_version = version; > free->di_core.di_gen = cpu_to_be32(gen); > free->di_next_unlinked = cpu_to_be32(NULLAGINO); > - xfs_ialloc_log_di(tp, fbuf, i, > - XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); > + xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); > } > xfs_trans_inode_alloc_buf(tp, fbuf); > } > Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-07 19:51:22.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-07 19:56:16.000000000 +0200 > @@ -102,40 +102,6 @@ typedef struct xfs_dinode > #define XFS_MAXLINK_1 65535U > > /* > - * Bit names for logging disk inodes only > - */ > -#define XFS_DI_MAGIC 0x0000001 > -#define XFS_DI_MODE 0x0000002 > -#define XFS_DI_VERSION 0x0000004 > -#define XFS_DI_FORMAT 0x0000008 > -#define XFS_DI_ONLINK 0x0000010 > -#define XFS_DI_UID 0x0000020 > -#define XFS_DI_GID 0x0000040 > -#define XFS_DI_NLINK 0x0000080 > -#define XFS_DI_PROJID 0x0000100 > -#define XFS_DI_PAD 0x0000200 > -#define XFS_DI_ATIME 0x0000400 > -#define XFS_DI_MTIME 0x0000800 > -#define XFS_DI_CTIME 0x0001000 > -#define XFS_DI_SIZE 0x0002000 > -#define XFS_DI_NBLOCKS 0x0004000 > -#define XFS_DI_EXTSIZE 0x0008000 > -#define XFS_DI_NEXTENTS 0x0010000 > -#define XFS_DI_NAEXTENTS 0x0020000 > -#define XFS_DI_FORKOFF 0x0040000 > -#define XFS_DI_AFORMAT 0x0080000 > -#define XFS_DI_DMEVMASK 0x0100000 > -#define XFS_DI_DMSTATE 0x0200000 > -#define XFS_DI_FLAGS 0x0400000 > -#define XFS_DI_GEN 0x0800000 > -#define XFS_DI_NEXT_UNLINKED 0x1000000 > -#define XFS_DI_U 0x2000000 > -#define XFS_DI_A 0x4000000 > -#define XFS_DI_NUM_BITS 27 > -#define XFS_DI_ALL_BITS ((1 << XFS_DI_NUM_BITS) - 1) > -#define XFS_DI_CORE_BITS (XFS_DI_ALL_BITS & ~(XFS_DI_U|XFS_DI_A)) > - > -/* > * Values for di_format > */ > typedef enum xfs_dinode_fmt > > -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Tue Oct 7 14:25:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LPTRn028758 for ; Tue, 7 Oct 2008 14:25:29 -0700 X-ASG-Debug-ID: 1223414828-6a6000180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6B8FF4C64CC; Tue, 7 Oct 2008 14:27:08 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id MH5qVFeERLqJK00C; Tue, 07 Oct 2008 14:27:08 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m97LR7IF019624 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 7 Oct 2008 23:27:07 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m97LR7oG019622; Tue, 7 Oct 2008 23:27:07 +0200 Date: Tue, 7 Oct 2008 23:27:07 +0200 From: Christoph Hellwig To: Mark Goodwin Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] kill xfs_ialloc_log_di Subject: Re: [PATCH 2/3] kill xfs_ialloc_log_di Message-ID: <20081007212707.GA19580@lst.de> References: <20081007202157.GB16485@lst.de> <48EBE1B1.3090605@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48EBE1B1.3090605@sgi.com> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223414829 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 08:24:49AM +1000, Mark Goodwin wrote: > > Can we verify dirty log replay immediately after a kernel update works? > (has there been any log fmt revision or is this just pure cleanup?) This one is purely cleanup, but I also verified the log replay. The changes Dave has in the pipe will change the log format. From owner-xfs@oss.sgi.com Tue Oct 7 14:34:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LYYaH030070 for ; Tue, 7 Oct 2008 14:34:35 -0700 X-ASG-Debug-ID: 1223415373-024903290000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6F6771B57A6B for ; Tue, 7 Oct 2008 14:36:13 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id OkEEMaJZVU826M5r for ; Tue, 07 Oct 2008 14:36:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAD9x60h5LGor/2dsb2JhbAC/N4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224283087" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:06:11 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKDy-0001WZ-NT; Wed, 08 Oct 2008 08:36:10 +1100 Date: Wed, 8 Oct 2008 08:36:10 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] kill xfs_dinode_core_t Subject: Re: [PATCH 3/3] kill xfs_dinode_core_t Message-ID: <20081007213610.GV30001@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081007202201.GC16485@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081007202201.GC16485@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415374 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 10:22:01PM +0200, Christoph Hellwig wrote: > No that we have a separate xfs_icdinode_t for the in-core inode that > get's logged there's absolutely no reason for the xfs_dinode vs > xfs_dinode_core split - the fact that part of the structure gets logged > through the inode log item and a small part not can better be described > in a comment. The few places that uses sizeof() on the dinode_core > are replaced with macros that also prepare for the variable size inode > core we'll need for adding checksums to the inodes. > > Removing the data and attribute fork unions also has the advantage that > xfs_dinode.h doesn't need to pull in every header under the sun. > > While we're at it also add some more comments describing the dinode > structure. Nice. I haven't reviewed this fully yet, but a couple of things stand out: > @@ -359,7 +357,7 @@ xfs_dip_to_stat( > > switch (dic->di_format) { > case XFS_DINODE_FMT_DEV: > - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); > + buf->dt_rdev = be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(mp, dic)); That's not particularly obvious where the rdev value is stored. Perhaps a comment indicating that it's a direct dereference out of the start of the data area in the inode? > /* > - * Note: Coordinate changes to this structure with the XFS_DI_* #defines > - * below, the offsets table in xfs_ialloc_log_di() and struct xfs_icdinode > - * in xfs_inode.h. > + * On-disk inode structure. > + * > + * This is just the header or "dinode core", the inode is expanded to fill a > + * variable size the leftover area split into a data and an attribute fork. > + * The format of the data and attribute fork depends on the format of the > + * inode as indicated by di_format and di_aformat. To access the data and > + * attribute use the XFS_DFORK_PTR, XFS_DFORK_DPTR, and XFS_DFORK_PTR macro: macros > +#define XFS_DINODE_CORE_SIZE(mp) (96) > +#define XFS_DINODE_SIZE(mp) (96 + sizeof(__be32)) probably shouldn't hard-code the second "96" there. Perhaps the XFS_DINODE_SIZE() macro should be a sizeof(xfs_dinode_t)? That's as far as I've looked.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 14:39:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdsXk030953 for ; Tue, 7 Oct 2008 14:39:55 -0700 X-ASG-Debug-ID: 1223415693-3dac01560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D67BC129BB4C for ; Tue, 7 Oct 2008 14:41:34 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id D31xwmk3UIgyPmAR for ; Tue, 07 Oct 2008 14:41:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286137" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001g4-If for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Subject: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Date: Wed, 8 Oct 2008 08:41:26 +1100 Message-Id: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415694 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0173 1.0000 -1.9085 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The list of all inodes on a mount is superfluous. We can traverse all inodes now by walking the per-AG inode radix trees without needing a separate list. This enables us to remove a bunch of complex list traversal code and remove another two pointers from the xfs_inode. Also, by replacing the sync traversal with an ascending inode number traversal, we will issue better inode I/O patterns for writeback triggered by xfssyncd or unmount. Before we make this change, move all the relevant sync code into it's own file in the linux-2.6/ directory. This aggregates VFS specific sync interfacing in the one file and will allow all the subsequent change history to be associated with this file so it is easy to find in future. From owner-xfs@oss.sgi.com Tue Oct 7 14:39:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdvGm030973 for ; Tue, 7 Oct 2008 14:39:57 -0700 X-ASG-Debug-ID: 1223415695-612101830000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1C5194B2ACD for ; Tue, 7 Oct 2008 14:41:36 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 6R3Ie7QJtLGvUHHe for ; Tue, 07 Oct 2008 14:41:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286142" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:33 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001gB-OF for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] XFS: Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() V3 Subject: [PATCH 3/6] XFS: Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() V3 Date: Wed, 8 Oct 2008 08:41:29 +1100 Message-Id: <1223415692-6354-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415697 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B xfs_iflush_all() walks the m_inodes list to find inodes that need reclaiming. We already have such a list - the m_del_inodes list. Replace xfs_iflush_all() with a call to xfs_finish_reclaim_all() and clean up xfs_finish_reclaim_all() to handle the different flush modes now needed. Originally based on a patch from Christoph Hellwig. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o revert xfs_syncsub() inode reclaim behaviour back to original code o xfs_quiesce_fs() should use XFS_IFLUSH_DELWRI_ELSE_ASYNC, not XFS_IFLUSH_ASYNC, to prevent change of behaviour. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/xfs_inode.c | 35 ----------------------------------- fs/xfs/xfs_inode.h | 3 +-- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_vfsops.c | 2 +- fs/xfs/xfs_vnodeops.c | 42 ++++++++++++++++++------------------------ 6 files changed, 22 insertions(+), 64 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index a51534c..cd82ba5 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -504,7 +504,7 @@ xfs_syncsub( if (flags & (SYNC_ATTR|SYNC_DELWRI)) { if (flags & SYNC_BDFLUSH) - xfs_finish_reclaim_all(mp, 1); + xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); else error = xfs_sync_inodes(mp, flags, bypassed); } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 2b1294b..0c65ba2 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -3499,41 +3499,6 @@ corrupt_out: } -/* - * Flush all inactive inodes in mp. - */ -void -xfs_iflush_all( - xfs_mount_t *mp) -{ - xfs_inode_t *ip; - - again: - XFS_MOUNT_ILOCK(mp); - ip = mp->m_inodes; - if (ip == NULL) - goto out; - - do { - /* Make sure we skip markers inserted by sync */ - if (ip->i_mount == NULL) { - ip = ip->i_mnext; - continue; - } - - if (!VFS_I(ip)) { - XFS_MOUNT_IUNLOCK(mp); - xfs_finish_reclaim(ip, 0, XFS_IFLUSH_ASYNC); - goto again; - } - - ASSERT(vn_count(VFS_I(ip)) == 0); - - ip = ip->i_mnext; - } while (ip != mp->m_inodes); - out: - XFS_MOUNT_IUNLOCK(mp); -} #ifdef XFS_ILOCK_TRACE ktrace_t *xfs_ilock_trace_buf; diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 5784f8e..9e8e81d 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -502,7 +502,7 @@ uint xfs_ilock_map_shared(xfs_inode_t *); void xfs_iunlock_map_shared(xfs_inode_t *, uint); void xfs_ireclaim(xfs_inode_t *); int xfs_finish_reclaim(xfs_inode_t *, int, int); -int xfs_finish_reclaim_all(struct xfs_mount *, int); +int xfs_finish_reclaim_all(struct xfs_mount *, int, int); /* * xfs_inode.c prototypes. @@ -529,7 +529,6 @@ void xfs_iext_realloc(xfs_inode_t *, int, int); void xfs_ipin(xfs_inode_t *); void xfs_iunpin(xfs_inode_t *); int xfs_iflush(xfs_inode_t *, uint); -void xfs_iflush_all(struct xfs_mount *); void xfs_ichgtime(xfs_inode_t *, int); xfs_fsize_t xfs_file_last_byte(xfs_inode_t *); void xfs_lock_inodes(xfs_inode_t **, int, uint); diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 15f5dd2..5ec6032 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1241,7 +1241,7 @@ xfs_unmountfs( * need to force the log first. */ xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE | XFS_LOG_SYNC); - xfs_iflush_all(mp); + xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_ASYNC); XFS_QM_DQPURGEALL(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_UMOUNTING); diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 01e274b..0c5ee5e 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -66,7 +66,7 @@ xfs_quiesce_fs( int count = 0, pincount; xfs_flush_buftarg(mp->m_ddev_targp, 0); - xfs_finish_reclaim_all(mp, 0); + xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); /* This loop must run at least twice. * The first instance of the loop will flush diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 7a72b0a..8ab88ba 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2893,36 +2893,30 @@ xfs_finish_reclaim( } int -xfs_finish_reclaim_all(xfs_mount_t *mp, int noblock) +xfs_finish_reclaim_all( + xfs_mount_t *mp, + int noblock, + int mode) { - int purged; xfs_inode_t *ip, *n; - int done = 0; - while (!done) { - purged = 0; - XFS_MOUNT_ILOCK(mp); - list_for_each_entry_safe(ip, n, &mp->m_del_inodes, i_reclaim) { - if (noblock) { - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) - continue; - if (xfs_ipincount(ip) || - !xfs_iflock_nowait(ip)) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } +restart: + XFS_MOUNT_ILOCK(mp); + list_for_each_entry_safe(ip, n, &mp->m_del_inodes, i_reclaim) { + if (noblock) { + if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) + continue; + if (xfs_ipincount(ip) || + !xfs_iflock_nowait(ip)) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + continue; } - XFS_MOUNT_IUNLOCK(mp); - if (xfs_finish_reclaim(ip, noblock, - XFS_IFLUSH_DELWRI_ELSE_ASYNC)) - delay(1); - purged = 1; - break; } - - done = !purged; + XFS_MOUNT_IUNLOCK(mp); + if (xfs_finish_reclaim(ip, noblock, mode)) + delay(1); + goto restart; } - XFS_MOUNT_IUNLOCK(mp); return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:39:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdwRl030986 for ; Tue, 7 Oct 2008 14:39:58 -0700 X-ASG-Debug-ID: 1223415695-612101830001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3FFFB4B2ACF for ; Tue, 7 Oct 2008 14:41:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id KiysAhEFYVb2tzQA for ; Tue, 07 Oct 2008 14:41:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286152" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001gH-SK for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] XFS: Traverse inode trees when releasing dquots V3 Subject: [PATCH 5/6] XFS: Traverse inode trees when releasing dquots V3 Date: Wed, 8 Oct 2008 08:41:31 +1100 Message-Id: <1223415692-6354-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415698 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Make releasing all inode dquots traverse the per-ag inode radix trees rather than the mount inode list. This removes another user of the mount inode list. Version 3 o fix comment relating to avoiding trying to release the quota inodes and those in reclaim. Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_qm_syscalls.c | 127 ++++++++++++++++++--------------------- 1 files changed, 59 insertions(+), 68 deletions(-) diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 1a3b803..26152b9 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1022,101 +1022,92 @@ xfs_qm_export_flags( /* - * Go thru all the inodes in the file system, releasing their dquots. - * Note that the mount structure gets modified to indicate that quotas are off - * AFTER this, in the case of quotaoff. This also gets called from - * xfs_rootumount. + * Release all the dquots on the inodes in an AG. */ -void -xfs_qm_dqrele_all_inodes( - struct xfs_mount *mp, - uint flags) +STATIC void +xfs_qm_dqrele_inodes_ag( + xfs_mount_t *mp, + int ag, + uint flags) { - xfs_inode_t *ip, *topino; - uint ireclaims; - struct inode *vp; - boolean_t vnode_refd; + xfs_inode_t *ip = NULL; + struct inode *vp = NULL; + xfs_perag_t *pag = &mp->m_perag[ag]; + int first_index = 0; + int nr_found; - ASSERT(mp->m_quotainfo); - - XFS_MOUNT_ILOCK(mp); -again: - ip = mp->m_inodes; - if (ip == NULL) { - XFS_MOUNT_IUNLOCK(mp); - return; - } do { - /* Skip markers inserted by xfs_sync */ - if (ip->i_mount == NULL) { - ip = ip->i_mnext; - continue; - } - /* Root inode, rbmip and rsumip have associated blocks */ - if (ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { - ASSERT(ip->i_udquot == NULL); - ASSERT(ip->i_gdquot == NULL); - ip = ip->i_mnext; - continue; + boolean_t vnode_refd = B_FALSE; + + /* + * use a gang lookup to find the next inode in the tree + * as the tree is sparse and a gang lookup walks to find + * the number of objects requested. + */ + read_lock(&pag->pag_ici_lock); + nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, + (void**)&ip, first_index, 1); + + if (!nr_found) { + read_unlock(&pag->pag_ici_lock); + break; } + + /* update the index for the next lookup */ + first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + + /* skip quota inodes and those in reclaim */ vp = VFS_I(ip); - if (!vp) { + if (!vp || ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { ASSERT(ip->i_udquot == NULL); ASSERT(ip->i_gdquot == NULL); - ip = ip->i_mnext; + read_unlock(&pag->pag_ici_lock); continue; } - vnode_refd = B_FALSE; if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { - ireclaims = mp->m_ireclaims; - topino = mp->m_inodes; vp = vn_grab(vp); + read_unlock(&pag->pag_ici_lock); if (!vp) - goto again; - - XFS_MOUNT_IUNLOCK(mp); - /* XXX restart limit ? */ - xfs_ilock(ip, XFS_ILOCK_EXCL); + continue; vnode_refd = B_TRUE; + xfs_ilock(ip, XFS_ILOCK_EXCL); } else { - ireclaims = mp->m_ireclaims; - topino = mp->m_inodes; - XFS_MOUNT_IUNLOCK(mp); + read_unlock(&pag->pag_ici_lock); } - - /* - * We don't keep the mountlock across the dqrele() call, - * since it can take a while.. - */ if ((flags & XFS_UQUOTA_ACCT) && ip->i_udquot) { xfs_qm_dqrele(ip->i_udquot); ip->i_udquot = NULL; } - if (flags & (XFS_PQUOTA_ACCT|XFS_GQUOTA_ACCT) && ip->i_gdquot) { + if (flags & (XFS_PQUOTA_ACCT|XFS_GQUOTA_ACCT) && + ip->i_gdquot) { xfs_qm_dqrele(ip->i_gdquot); ip->i_gdquot = NULL; } xfs_iunlock(ip, XFS_ILOCK_EXCL); - /* - * Wait until we've dropped the ilock and mountlock to - * do the vn_rele. Or be condemned to an eternity in the - * inactive code in hell. - */ if (vnode_refd) IRELE(ip); - XFS_MOUNT_ILOCK(mp); - /* - * If an inode was inserted or removed, we gotta - * start over again. - */ - if (topino != mp->m_inodes || mp->m_ireclaims != ireclaims) { - /* XXX use a sentinel */ - goto again; - } - ip = ip->i_mnext; - } while (ip != mp->m_inodes); + } while (nr_found); +} - XFS_MOUNT_IUNLOCK(mp); +/* + * Go thru all the inodes in the file system, releasing their dquots. + * Note that the mount structure gets modified to indicate that quotas are off + * AFTER this, in the case of quotaoff. This also gets called from + * xfs_rootumount. + */ +void +xfs_qm_dqrele_all_inodes( + struct xfs_mount *mp, + uint flags) +{ + int i; + + ASSERT(mp->m_quotainfo); + for (i = 0; i < mp->m_sb.sb_agcount; i++) { + if (!mp->m_perag[i].pag_ici_init) + continue; + xfs_qm_dqrele_inodes_ag(mp, i, flags); + } } /*------------------------------------------------------------------------*/ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:39:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdwOg030987 for ; Tue, 7 Oct 2008 14:39:58 -0700 X-ASG-Debug-ID: 1223415693-3dac01560001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 39D3E129BB4E for ; Tue, 7 Oct 2008 14:41:35 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 5NBdxwqzRaeNBgAw for ; Tue, 07 Oct 2008 14:41:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC4OYcJgWo X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286139" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001g6-KV for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] XFS: move sync code to its own file Subject: [PATCH 1/6] XFS: move sync code to its own file Date: Wed, 8 Oct 2008 08:41:27 +1100 Message-Id: <1223415692-6354-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415697 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B The sync code in XFS is spread around several files. While it used to make sense to have such a distribution, the code is about to be cleaned up and so centralising it in one spot as the first step makes sense. Signed-off-by: Dave Chinner --- fs/xfs/Makefile | 1 + fs/xfs/linux-2.6/xfs_super.c | 1 + fs/xfs/linux-2.6/xfs_sync.c | 605 ++++++++++++++++++++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_sync.h | 7 + fs/xfs/xfs_vfsops.c | 560 +-------------------------------------- fs/xfs/xfs_vfsops.h | 1 - 6 files changed, 615 insertions(+), 560 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_sync.c create mode 100644 fs/xfs/linux-2.6/xfs_sync.h diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile index 75b2be7..51b87de 100644 --- a/fs/xfs/Makefile +++ b/fs/xfs/Makefile @@ -107,6 +107,7 @@ xfs-y += $(addprefix $(XFS_LINUX)/, \ xfs_iops.o \ xfs_lrw.o \ xfs_super.o \ + xfs_sync.o \ xfs_vnode.o \ xfs_xattr.o) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 3d1eb86..daf5a49 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -59,6 +59,7 @@ #include "xfs_extfree_item.h" #include "xfs_mru_cache.h" #include "xfs_inode_item.h" +#include "xfs_sync.h" #include #include diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c new file mode 100644 index 0000000..c765eb2 --- /dev/null +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -0,0 +1,605 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_types.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_dir2.h" +#include "xfs_dmapi.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_alloc_btree.h" +#include "xfs_ialloc_btree.h" +#include "xfs_btree.h" +#include "xfs_dir2_sf.h" +#include "xfs_attr_sf.h" +#include "xfs_inode.h" +#include "xfs_dinode.h" +#include "xfs_error.h" +#include "xfs_mru_cache.h" +#include "xfs_filestream.h" +#include "xfs_vnodeops.h" +#include "xfs_utils.h" +#include "xfs_buf_item.h" +#include "xfs_inode_item.h" +#include "xfs_rw.h" + +/* + * xfs_sync flushes any pending I/O to file system vfsp. + * + * This routine is called by vfs_sync() to make sure that things make it + * out to disk eventually, on sync() system calls to flush out everything, + * and when the file system is unmounted. For the vfs_sync() case, all + * we really need to do is sync out the log to make all of our meta-data + * updates permanent (except for timestamps). For calls from pflushd(), + * dirty pages are kept moving by calling pdflush() on the inodes + * containing them. We also flush the inodes that we can lock without + * sleeping and the superblock if we can lock it without sleeping from + * vfs_sync() so that items at the tail of the log are always moving out. + * + * Flags: + * SYNC_BDFLUSH - We're being called from vfs_sync() so we don't want + * to sleep if we can help it. All we really need + * to do is ensure that the log is synced at least + * periodically. We also push the inodes and + * superblock if we can lock them without sleeping + * and they are not pinned. + * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not + * set, then we really want to lock each inode and flush + * it. + * SYNC_WAIT - All the flushes that take place in this call should + * be synchronous. + * SYNC_DELWRI - This tells us to push dirty pages associated with + * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to + * determine if they should be flushed sync, async, or + * delwri. + * SYNC_CLOSE - This flag is passed when the system is being + * unmounted. We should sync and invalidate everything. + * SYNC_FSDATA - This indicates that the caller would like to make + * sure the superblock is safe on disk. We can ensure + * this by simply making sure the log gets flushed + * if SYNC_BDFLUSH is set, and by actually writing it + * out otherwise. + * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete + * before we return (including direct I/O). Forms the drain + * side of the write barrier needed to safely quiesce the + * filesystem. + * + */ +int +xfs_sync( + xfs_mount_t *mp, + int flags) +{ + int error; + + /* + * Get the Quota Manager to flush the dquots. + * + * If XFS quota support is not enabled or this filesystem + * instance does not use quotas XFS_QM_DQSYNC will always + * return zero. + */ + error = XFS_QM_DQSYNC(mp, flags); + if (error) { + /* + * If we got an IO error, we will be shutting down. + * So, there's nothing more for us to do here. + */ + ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp)); + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(error); + } + + if (flags & SYNC_IOWAIT) + xfs_filestream_flush(mp); + + return xfs_syncsub(mp, flags, NULL); +} + +/* + * xfs sync routine for internal use + * + * This routine supports all of the flags defined for the generic vfs_sync + * interface as explained above under xfs_sync. + * + */ +int +xfs_sync_inodes( + xfs_mount_t *mp, + int flags, + int *bypassed) +{ + xfs_inode_t *ip = NULL; + struct inode *vp = NULL; + int error; + int last_error; + uint64_t fflag; + uint lock_flags; + uint base_lock_flags; + boolean_t mount_locked; + boolean_t vnode_refed; + int preempt; + xfs_iptr_t *ipointer; +#ifdef DEBUG + boolean_t ipointer_in = B_FALSE; + +#define IPOINTER_SET ipointer_in = B_TRUE +#define IPOINTER_CLR ipointer_in = B_FALSE +#else +#define IPOINTER_SET +#define IPOINTER_CLR +#endif + + +/* Insert a marker record into the inode list after inode ip. The list + * must be locked when this is called. After the call the list will no + * longer be locked. + */ +#define IPOINTER_INSERT(ip, mp) { \ + ASSERT(ipointer_in == B_FALSE); \ + ipointer->ip_mnext = ip->i_mnext; \ + ipointer->ip_mprev = ip; \ + ip->i_mnext = (xfs_inode_t *)ipointer; \ + ipointer->ip_mnext->i_mprev = (xfs_inode_t *)ipointer; \ + preempt = 0; \ + XFS_MOUNT_IUNLOCK(mp); \ + mount_locked = B_FALSE; \ + IPOINTER_SET; \ + } + +/* Remove the marker from the inode list. If the marker was the only item + * in the list then there are no remaining inodes and we should zero out + * the whole list. If we are the current head of the list then move the head + * past us. + */ +#define IPOINTER_REMOVE(ip, mp) { \ + ASSERT(ipointer_in == B_TRUE); \ + if (ipointer->ip_mnext != (xfs_inode_t *)ipointer) { \ + ip = ipointer->ip_mnext; \ + ip->i_mprev = ipointer->ip_mprev; \ + ipointer->ip_mprev->i_mnext = ip; \ + if (mp->m_inodes == (xfs_inode_t *)ipointer) { \ + mp->m_inodes = ip; \ + } \ + } else { \ + ASSERT(mp->m_inodes == (xfs_inode_t *)ipointer); \ + mp->m_inodes = NULL; \ + ip = NULL; \ + } \ + IPOINTER_CLR; \ + } + +#define XFS_PREEMPT_MASK 0x7f + + ASSERT(!(flags & SYNC_BDFLUSH)); + + if (bypassed) + *bypassed = 0; + if (mp->m_flags & XFS_MOUNT_RDONLY) + return 0; + error = 0; + last_error = 0; + preempt = 0; + + /* Allocate a reference marker */ + ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); + + fflag = XFS_B_ASYNC; /* default is don't wait */ + if (flags & SYNC_DELWRI) + fflag = XFS_B_DELWRI; + if (flags & SYNC_WAIT) + fflag = 0; /* synchronous overrides all */ + + base_lock_flags = XFS_ILOCK_SHARED; + if (flags & (SYNC_DELWRI | SYNC_CLOSE)) { + /* + * We need the I/O lock if we're going to call any of + * the flush/inval routines. + */ + base_lock_flags |= XFS_IOLOCK_SHARED; + } + + XFS_MOUNT_ILOCK(mp); + + ip = mp->m_inodes; + + mount_locked = B_TRUE; + vnode_refed = B_FALSE; + + IPOINTER_CLR; + + do { + ASSERT(ipointer_in == B_FALSE); + ASSERT(vnode_refed == B_FALSE); + + lock_flags = base_lock_flags; + + /* + * There were no inodes in the list, just break out + * of the loop. + */ + if (ip == NULL) { + break; + } + + /* + * We found another sync thread marker - skip it + */ + if (ip->i_mount == NULL) { + ip = ip->i_mnext; + continue; + } + + vp = VFS_I(ip); + + /* + * If the vnode is gone then this is being torn down, + * call reclaim if it is flushed, else let regular flush + * code deal with it later in the loop. + */ + + if (vp == NULL) { + /* Skip ones already in reclaim */ + if (ip->i_flags & XFS_IRECLAIM) { + ip = ip->i_mnext; + continue; + } + if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { + ip = ip->i_mnext; + } else if ((xfs_ipincount(ip) == 0) && + xfs_iflock_nowait(ip)) { + IPOINTER_INSERT(ip, mp); + + xfs_finish_reclaim(ip, 1, + XFS_IFLUSH_DELWRI_ELSE_ASYNC); + + XFS_MOUNT_ILOCK(mp); + mount_locked = B_TRUE; + IPOINTER_REMOVE(ip, mp); + } else { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + ip = ip->i_mnext; + } + continue; + } + + if (VN_BAD(vp)) { + ip = ip->i_mnext; + continue; + } + + if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) { + XFS_MOUNT_IUNLOCK(mp); + kmem_free(ipointer); + return 0; + } + + /* + * Try to lock without sleeping. We're out of order with + * the inode list lock here, so if we fail we need to drop + * the mount lock and try again. If we're called from + * bdflush() here, then don't bother. + * + * The inode lock here actually coordinates with the + * almost spurious inode lock in xfs_ireclaim() to prevent + * the vnode we handle here without a reference from + * being freed while we reference it. If we lock the inode + * while it's on the mount list here, then the spurious inode + * lock in xfs_ireclaim() after the inode is pulled from + * the mount list will sleep until we release it here. + * This keeps the vnode from being freed while we reference + * it. + */ + if (xfs_ilock_nowait(ip, lock_flags) == 0) { + if (vp == NULL) { + ip = ip->i_mnext; + continue; + } + + vp = vn_grab(vp); + if (vp == NULL) { + ip = ip->i_mnext; + continue; + } + + IPOINTER_INSERT(ip, mp); + xfs_ilock(ip, lock_flags); + + ASSERT(vp == VFS_I(ip)); + ASSERT(ip->i_mount == mp); + + vnode_refed = B_TRUE; + } + + /* From here on in the loop we may have a marker record + * in the inode list. + */ + + /* + * If we have to flush data or wait for I/O completion + * we need to drop the ilock that we currently hold. + * If we need to drop the lock, insert a marker if we + * have not already done so. + */ + if ((flags & (SYNC_CLOSE|SYNC_IOWAIT)) || + ((flags & SYNC_DELWRI) && VN_DIRTY(vp))) { + if (mount_locked) { + IPOINTER_INSERT(ip, mp); + } + xfs_iunlock(ip, XFS_ILOCK_SHARED); + + if (flags & SYNC_CLOSE) { + /* Shutdown case. Flush and invalidate. */ + if (XFS_FORCED_SHUTDOWN(mp)) + xfs_tosspages(ip, 0, -1, + FI_REMAPF); + else + error = xfs_flushinval_pages(ip, + 0, -1, FI_REMAPF); + } else if ((flags & SYNC_DELWRI) && VN_DIRTY(vp)) { + error = xfs_flush_pages(ip, 0, + -1, fflag, FI_NONE); + } + + /* + * When freezing, we need to wait ensure all I/O (including direct + * I/O) is complete to ensure no further data modification can take + * place after this point + */ + if (flags & SYNC_IOWAIT) + vn_iowait(ip); + + xfs_ilock(ip, XFS_ILOCK_SHARED); + } + + if ((flags & SYNC_ATTR) && + (ip->i_update_core || + (ip->i_itemp && ip->i_itemp->ili_format.ilf_fields))) { + if (mount_locked) + IPOINTER_INSERT(ip, mp); + + if (flags & SYNC_WAIT) { + xfs_iflock(ip); + error = xfs_iflush(ip, XFS_IFLUSH_SYNC); + + /* + * If we can't acquire the flush lock, then the inode + * is already being flushed so don't bother waiting. + * + * If we can lock it then do a delwri flush so we can + * combine multiple inode flushes in each disk write. + */ + } else if (xfs_iflock_nowait(ip)) { + error = xfs_iflush(ip, XFS_IFLUSH_DELWRI); + } else if (bypassed) { + (*bypassed)++; + } + } + + if (lock_flags != 0) { + xfs_iunlock(ip, lock_flags); + } + + if (vnode_refed) { + /* + * If we had to take a reference on the vnode + * above, then wait until after we've unlocked + * the inode to release the reference. This is + * because we can be already holding the inode + * lock when IRELE() calls xfs_inactive(). + * + * Make sure to drop the mount lock before calling + * IRELE() so that we don't trip over ourselves if + * we have to go for the mount lock again in the + * inactive code. + */ + if (mount_locked) { + IPOINTER_INSERT(ip, mp); + } + + IRELE(ip); + + vnode_refed = B_FALSE; + } + + if (error) { + last_error = error; + } + + /* + * bail out if the filesystem is corrupted. + */ + if (error == EFSCORRUPTED) { + if (!mount_locked) { + XFS_MOUNT_ILOCK(mp); + IPOINTER_REMOVE(ip, mp); + } + XFS_MOUNT_IUNLOCK(mp); + ASSERT(ipointer_in == B_FALSE); + kmem_free(ipointer); + return XFS_ERROR(error); + } + + /* Let other threads have a chance at the mount lock + * if we have looped many times without dropping the + * lock. + */ + if ((++preempt & XFS_PREEMPT_MASK) == 0) { + if (mount_locked) { + IPOINTER_INSERT(ip, mp); + } + } + + if (mount_locked == B_FALSE) { + XFS_MOUNT_ILOCK(mp); + mount_locked = B_TRUE; + IPOINTER_REMOVE(ip, mp); + continue; + } + + ASSERT(ipointer_in == B_FALSE); + ip = ip->i_mnext; + + } while (ip != mp->m_inodes); + + XFS_MOUNT_IUNLOCK(mp); + + ASSERT(ipointer_in == B_FALSE); + + kmem_free(ipointer); + return XFS_ERROR(last_error); +} + +/* + * xfs sync routine for internal use + * + * This routine supports all of the flags defined for the generic vfs_sync + * interface as explained above under xfs_sync. + * + */ +int +xfs_syncsub( + xfs_mount_t *mp, + int flags, + int *bypassed) +{ + int error = 0; + int last_error = 0; + uint log_flags = XFS_LOG_FORCE; + xfs_buf_t *bp; + xfs_buf_log_item_t *bip; + + /* + * Sync out the log. This ensures that the log is periodically + * flushed even if there is not enough activity to fill it up. + */ + if (flags & SYNC_WAIT) + log_flags |= XFS_LOG_SYNC; + + xfs_log_force(mp, (xfs_lsn_t)0, log_flags); + + if (flags & (SYNC_ATTR|SYNC_DELWRI)) { + if (flags & SYNC_BDFLUSH) + xfs_finish_reclaim_all(mp, 1); + else + error = xfs_sync_inodes(mp, flags, bypassed); + } + + /* + * Flushing out dirty data above probably generated more + * log activity, so if this isn't vfs_sync() then flush + * the log again. + */ + if (flags & SYNC_DELWRI) { + xfs_log_force(mp, (xfs_lsn_t)0, log_flags); + } + + if (flags & SYNC_FSDATA) { + /* + * If this is vfs_sync() then only sync the superblock + * if we can lock it without sleeping and it is not pinned. + */ + if (flags & SYNC_BDFLUSH) { + bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); + if (bp != NULL) { + bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*); + if ((bip != NULL) && + xfs_buf_item_dirty(bip)) { + if (!(XFS_BUF_ISPINNED(bp))) { + XFS_BUF_ASYNC(bp); + error = xfs_bwrite(mp, bp); + } else { + xfs_buf_relse(bp); + } + } else { + xfs_buf_relse(bp); + } + } + } else { + bp = xfs_getsb(mp, 0); + /* + * If the buffer is pinned then push on the log so + * we won't get stuck waiting in the write for + * someone, maybe ourselves, to flush the log. + * Even though we just pushed the log above, we + * did not have the superblock buffer locked at + * that point so it can become pinned in between + * there and here. + */ + if (XFS_BUF_ISPINNED(bp)) + xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); + if (flags & SYNC_WAIT) + XFS_BUF_UNASYNC(bp); + else + XFS_BUF_ASYNC(bp); + error = xfs_bwrite(mp, bp); + } + if (error) { + last_error = error; + } + } + + /* + * Now check to see if the log needs a "dummy" transaction. + */ + if (!(flags & SYNC_REMOUNT) && xfs_log_need_covered(mp)) { + xfs_trans_t *tp; + xfs_inode_t *ip; + + /* + * Put a dummy transaction in the log to tell + * recovery that all others are OK. + */ + tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); + if ((error = xfs_trans_reserve(tp, 0, + XFS_ICHANGE_LOG_RES(mp), + 0, 0, 0))) { + xfs_trans_cancel(tp, 0); + return error; + } + + ip = mp->m_rootip; + xfs_ilock(ip, XFS_ILOCK_EXCL); + + xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); + xfs_trans_ihold(tp, ip); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + error = xfs_trans_commit(tp, 0); + xfs_iunlock(ip, XFS_ILOCK_EXCL); + xfs_log_force(mp, (xfs_lsn_t)0, log_flags); + } + + /* + * When shutting down, we need to insure that the AIL is pushed + * to disk or the filesystem can appear corrupt from the PROM. + */ + if ((flags & (SYNC_CLOSE|SYNC_WAIT)) == (SYNC_CLOSE|SYNC_WAIT)) { + XFS_bflush(mp->m_ddev_targp); + if (mp->m_rtdev_targp) { + XFS_bflush(mp->m_rtdev_targp); + } + } + + return XFS_ERROR(last_error); +} diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h new file mode 100644 index 0000000..f4c3b1e --- /dev/null +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -0,0 +1,7 @@ +#ifndef XFS_SYNC_H +#define XFS_SYNC_H 1 + +int xfs_sync(struct xfs_mount *mp, int flags); +int xfs_syncsub(struct xfs_mount *mp, int flags, int *bypassed); + +#endif diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 439dd39..01e274b 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -56,6 +56,7 @@ #include "xfs_vnodeops.h" #include "xfs_vfsops.h" #include "xfs_utils.h" +#include "xfs_sync.h" STATIC void @@ -196,562 +197,3 @@ fscorrupt_out2: return XFS_ERROR(EFSCORRUPTED); } -/* - * xfs_sync flushes any pending I/O to file system vfsp. - * - * This routine is called by vfs_sync() to make sure that things make it - * out to disk eventually, on sync() system calls to flush out everything, - * and when the file system is unmounted. For the vfs_sync() case, all - * we really need to do is sync out the log to make all of our meta-data - * updates permanent (except for timestamps). For calls from pflushd(), - * dirty pages are kept moving by calling pdflush() on the inodes - * containing them. We also flush the inodes that we can lock without - * sleeping and the superblock if we can lock it without sleeping from - * vfs_sync() so that items at the tail of the log are always moving out. - * - * Flags: - * SYNC_BDFLUSH - We're being called from vfs_sync() so we don't want - * to sleep if we can help it. All we really need - * to do is ensure that the log is synced at least - * periodically. We also push the inodes and - * superblock if we can lock them without sleeping - * and they are not pinned. - * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not - * set, then we really want to lock each inode and flush - * it. - * SYNC_WAIT - All the flushes that take place in this call should - * be synchronous. - * SYNC_DELWRI - This tells us to push dirty pages associated with - * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to - * determine if they should be flushed sync, async, or - * delwri. - * SYNC_CLOSE - This flag is passed when the system is being - * unmounted. We should sync and invalidate everything. - * SYNC_FSDATA - This indicates that the caller would like to make - * sure the superblock is safe on disk. We can ensure - * this by simply making sure the log gets flushed - * if SYNC_BDFLUSH is set, and by actually writing it - * out otherwise. - * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete - * before we return (including direct I/O). Forms the drain - * side of the write barrier needed to safely quiesce the - * filesystem. - * - */ -int -xfs_sync( - xfs_mount_t *mp, - int flags) -{ - int error; - - /* - * Get the Quota Manager to flush the dquots. - * - * If XFS quota support is not enabled or this filesystem - * instance does not use quotas XFS_QM_DQSYNC will always - * return zero. - */ - error = XFS_QM_DQSYNC(mp, flags); - if (error) { - /* - * If we got an IO error, we will be shutting down. - * So, there's nothing more for us to do here. - */ - ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp)); - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(error); - } - - if (flags & SYNC_IOWAIT) - xfs_filestream_flush(mp); - - return xfs_syncsub(mp, flags, NULL); -} - -/* - * xfs sync routine for internal use - * - * This routine supports all of the flags defined for the generic vfs_sync - * interface as explained above under xfs_sync. - * - */ -int -xfs_sync_inodes( - xfs_mount_t *mp, - int flags, - int *bypassed) -{ - xfs_inode_t *ip = NULL; - struct inode *vp = NULL; - int error; - int last_error; - uint64_t fflag; - uint lock_flags; - uint base_lock_flags; - boolean_t mount_locked; - boolean_t vnode_refed; - int preempt; - xfs_iptr_t *ipointer; -#ifdef DEBUG - boolean_t ipointer_in = B_FALSE; - -#define IPOINTER_SET ipointer_in = B_TRUE -#define IPOINTER_CLR ipointer_in = B_FALSE -#else -#define IPOINTER_SET -#define IPOINTER_CLR -#endif - - -/* Insert a marker record into the inode list after inode ip. The list - * must be locked when this is called. After the call the list will no - * longer be locked. - */ -#define IPOINTER_INSERT(ip, mp) { \ - ASSERT(ipointer_in == B_FALSE); \ - ipointer->ip_mnext = ip->i_mnext; \ - ipointer->ip_mprev = ip; \ - ip->i_mnext = (xfs_inode_t *)ipointer; \ - ipointer->ip_mnext->i_mprev = (xfs_inode_t *)ipointer; \ - preempt = 0; \ - XFS_MOUNT_IUNLOCK(mp); \ - mount_locked = B_FALSE; \ - IPOINTER_SET; \ - } - -/* Remove the marker from the inode list. If the marker was the only item - * in the list then there are no remaining inodes and we should zero out - * the whole list. If we are the current head of the list then move the head - * past us. - */ -#define IPOINTER_REMOVE(ip, mp) { \ - ASSERT(ipointer_in == B_TRUE); \ - if (ipointer->ip_mnext != (xfs_inode_t *)ipointer) { \ - ip = ipointer->ip_mnext; \ - ip->i_mprev = ipointer->ip_mprev; \ - ipointer->ip_mprev->i_mnext = ip; \ - if (mp->m_inodes == (xfs_inode_t *)ipointer) { \ - mp->m_inodes = ip; \ - } \ - } else { \ - ASSERT(mp->m_inodes == (xfs_inode_t *)ipointer); \ - mp->m_inodes = NULL; \ - ip = NULL; \ - } \ - IPOINTER_CLR; \ - } - -#define XFS_PREEMPT_MASK 0x7f - - ASSERT(!(flags & SYNC_BDFLUSH)); - - if (bypassed) - *bypassed = 0; - if (mp->m_flags & XFS_MOUNT_RDONLY) - return 0; - error = 0; - last_error = 0; - preempt = 0; - - /* Allocate a reference marker */ - ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); - - fflag = XFS_B_ASYNC; /* default is don't wait */ - if (flags & SYNC_DELWRI) - fflag = XFS_B_DELWRI; - if (flags & SYNC_WAIT) - fflag = 0; /* synchronous overrides all */ - - base_lock_flags = XFS_ILOCK_SHARED; - if (flags & (SYNC_DELWRI | SYNC_CLOSE)) { - /* - * We need the I/O lock if we're going to call any of - * the flush/inval routines. - */ - base_lock_flags |= XFS_IOLOCK_SHARED; - } - - XFS_MOUNT_ILOCK(mp); - - ip = mp->m_inodes; - - mount_locked = B_TRUE; - vnode_refed = B_FALSE; - - IPOINTER_CLR; - - do { - ASSERT(ipointer_in == B_FALSE); - ASSERT(vnode_refed == B_FALSE); - - lock_flags = base_lock_flags; - - /* - * There were no inodes in the list, just break out - * of the loop. - */ - if (ip == NULL) { - break; - } - - /* - * We found another sync thread marker - skip it - */ - if (ip->i_mount == NULL) { - ip = ip->i_mnext; - continue; - } - - vp = VFS_I(ip); - - /* - * If the vnode is gone then this is being torn down, - * call reclaim if it is flushed, else let regular flush - * code deal with it later in the loop. - */ - - if (vp == NULL) { - /* Skip ones already in reclaim */ - if (ip->i_flags & XFS_IRECLAIM) { - ip = ip->i_mnext; - continue; - } - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { - ip = ip->i_mnext; - } else if ((xfs_ipincount(ip) == 0) && - xfs_iflock_nowait(ip)) { - IPOINTER_INSERT(ip, mp); - - xfs_finish_reclaim(ip, 1, - XFS_IFLUSH_DELWRI_ELSE_ASYNC); - - XFS_MOUNT_ILOCK(mp); - mount_locked = B_TRUE; - IPOINTER_REMOVE(ip, mp); - } else { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - ip = ip->i_mnext; - } - continue; - } - - if (VN_BAD(vp)) { - ip = ip->i_mnext; - continue; - } - - if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) { - XFS_MOUNT_IUNLOCK(mp); - kmem_free(ipointer); - return 0; - } - - /* - * Try to lock without sleeping. We're out of order with - * the inode list lock here, so if we fail we need to drop - * the mount lock and try again. If we're called from - * bdflush() here, then don't bother. - * - * The inode lock here actually coordinates with the - * almost spurious inode lock in xfs_ireclaim() to prevent - * the vnode we handle here without a reference from - * being freed while we reference it. If we lock the inode - * while it's on the mount list here, then the spurious inode - * lock in xfs_ireclaim() after the inode is pulled from - * the mount list will sleep until we release it here. - * This keeps the vnode from being freed while we reference - * it. - */ - if (xfs_ilock_nowait(ip, lock_flags) == 0) { - if (vp == NULL) { - ip = ip->i_mnext; - continue; - } - - vp = vn_grab(vp); - if (vp == NULL) { - ip = ip->i_mnext; - continue; - } - - IPOINTER_INSERT(ip, mp); - xfs_ilock(ip, lock_flags); - - ASSERT(vp == VFS_I(ip)); - ASSERT(ip->i_mount == mp); - - vnode_refed = B_TRUE; - } - - /* From here on in the loop we may have a marker record - * in the inode list. - */ - - /* - * If we have to flush data or wait for I/O completion - * we need to drop the ilock that we currently hold. - * If we need to drop the lock, insert a marker if we - * have not already done so. - */ - if ((flags & (SYNC_CLOSE|SYNC_IOWAIT)) || - ((flags & SYNC_DELWRI) && VN_DIRTY(vp))) { - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } - xfs_iunlock(ip, XFS_ILOCK_SHARED); - - if (flags & SYNC_CLOSE) { - /* Shutdown case. Flush and invalidate. */ - if (XFS_FORCED_SHUTDOWN(mp)) - xfs_tosspages(ip, 0, -1, - FI_REMAPF); - else - error = xfs_flushinval_pages(ip, - 0, -1, FI_REMAPF); - } else if ((flags & SYNC_DELWRI) && VN_DIRTY(vp)) { - error = xfs_flush_pages(ip, 0, - -1, fflag, FI_NONE); - } - - /* - * When freezing, we need to wait ensure all I/O (including direct - * I/O) is complete to ensure no further data modification can take - * place after this point - */ - if (flags & SYNC_IOWAIT) - vn_iowait(ip); - - xfs_ilock(ip, XFS_ILOCK_SHARED); - } - - if ((flags & SYNC_ATTR) && - (ip->i_update_core || - (ip->i_itemp && ip->i_itemp->ili_format.ilf_fields))) { - if (mount_locked) - IPOINTER_INSERT(ip, mp); - - if (flags & SYNC_WAIT) { - xfs_iflock(ip); - error = xfs_iflush(ip, XFS_IFLUSH_SYNC); - - /* - * If we can't acquire the flush lock, then the inode - * is already being flushed so don't bother waiting. - * - * If we can lock it then do a delwri flush so we can - * combine multiple inode flushes in each disk write. - */ - } else if (xfs_iflock_nowait(ip)) { - error = xfs_iflush(ip, XFS_IFLUSH_DELWRI); - } else if (bypassed) { - (*bypassed)++; - } - } - - if (lock_flags != 0) { - xfs_iunlock(ip, lock_flags); - } - - if (vnode_refed) { - /* - * If we had to take a reference on the vnode - * above, then wait until after we've unlocked - * the inode to release the reference. This is - * because we can be already holding the inode - * lock when IRELE() calls xfs_inactive(). - * - * Make sure to drop the mount lock before calling - * IRELE() so that we don't trip over ourselves if - * we have to go for the mount lock again in the - * inactive code. - */ - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } - - IRELE(ip); - - vnode_refed = B_FALSE; - } - - if (error) { - last_error = error; - } - - /* - * bail out if the filesystem is corrupted. - */ - if (error == EFSCORRUPTED) { - if (!mount_locked) { - XFS_MOUNT_ILOCK(mp); - IPOINTER_REMOVE(ip, mp); - } - XFS_MOUNT_IUNLOCK(mp); - ASSERT(ipointer_in == B_FALSE); - kmem_free(ipointer); - return XFS_ERROR(error); - } - - /* Let other threads have a chance at the mount lock - * if we have looped many times without dropping the - * lock. - */ - if ((++preempt & XFS_PREEMPT_MASK) == 0) { - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } - } - - if (mount_locked == B_FALSE) { - XFS_MOUNT_ILOCK(mp); - mount_locked = B_TRUE; - IPOINTER_REMOVE(ip, mp); - continue; - } - - ASSERT(ipointer_in == B_FALSE); - ip = ip->i_mnext; - - } while (ip != mp->m_inodes); - - XFS_MOUNT_IUNLOCK(mp); - - ASSERT(ipointer_in == B_FALSE); - - kmem_free(ipointer); - return XFS_ERROR(last_error); -} - -/* - * xfs sync routine for internal use - * - * This routine supports all of the flags defined for the generic vfs_sync - * interface as explained above under xfs_sync. - * - */ -int -xfs_syncsub( - xfs_mount_t *mp, - int flags, - int *bypassed) -{ - int error = 0; - int last_error = 0; - uint log_flags = XFS_LOG_FORCE; - xfs_buf_t *bp; - xfs_buf_log_item_t *bip; - - /* - * Sync out the log. This ensures that the log is periodically - * flushed even if there is not enough activity to fill it up. - */ - if (flags & SYNC_WAIT) - log_flags |= XFS_LOG_SYNC; - - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - - if (flags & (SYNC_ATTR|SYNC_DELWRI)) { - if (flags & SYNC_BDFLUSH) - xfs_finish_reclaim_all(mp, 1); - else - error = xfs_sync_inodes(mp, flags, bypassed); - } - - /* - * Flushing out dirty data above probably generated more - * log activity, so if this isn't vfs_sync() then flush - * the log again. - */ - if (flags & SYNC_DELWRI) { - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - } - - if (flags & SYNC_FSDATA) { - /* - * If this is vfs_sync() then only sync the superblock - * if we can lock it without sleeping and it is not pinned. - */ - if (flags & SYNC_BDFLUSH) { - bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); - if (bp != NULL) { - bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*); - if ((bip != NULL) && - xfs_buf_item_dirty(bip)) { - if (!(XFS_BUF_ISPINNED(bp))) { - XFS_BUF_ASYNC(bp); - error = xfs_bwrite(mp, bp); - } else { - xfs_buf_relse(bp); - } - } else { - xfs_buf_relse(bp); - } - } - } else { - bp = xfs_getsb(mp, 0); - /* - * If the buffer is pinned then push on the log so - * we won't get stuck waiting in the write for - * someone, maybe ourselves, to flush the log. - * Even though we just pushed the log above, we - * did not have the superblock buffer locked at - * that point so it can become pinned in between - * there and here. - */ - if (XFS_BUF_ISPINNED(bp)) - xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); - if (flags & SYNC_WAIT) - XFS_BUF_UNASYNC(bp); - else - XFS_BUF_ASYNC(bp); - error = xfs_bwrite(mp, bp); - } - if (error) { - last_error = error; - } - } - - /* - * Now check to see if the log needs a "dummy" transaction. - */ - if (!(flags & SYNC_REMOUNT) && xfs_log_need_covered(mp)) { - xfs_trans_t *tp; - xfs_inode_t *ip; - - /* - * Put a dummy transaction in the log to tell - * recovery that all others are OK. - */ - tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); - if ((error = xfs_trans_reserve(tp, 0, - XFS_ICHANGE_LOG_RES(mp), - 0, 0, 0))) { - xfs_trans_cancel(tp, 0); - return error; - } - - ip = mp->m_rootip; - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); - xfs_trans_ihold(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - } - - /* - * When shutting down, we need to insure that the AIL is pushed - * to disk or the filesystem can appear corrupt from the PROM. - */ - if ((flags & (SYNC_CLOSE|SYNC_WAIT)) == (SYNC_CLOSE|SYNC_WAIT)) { - XFS_bflush(mp->m_ddev_targp); - if (mp->m_rtdev_targp) { - XFS_bflush(mp->m_rtdev_targp); - } - } - - return XFS_ERROR(last_error); -} diff --git a/fs/xfs/xfs_vfsops.h b/fs/xfs/xfs_vfsops.h index a74b050..6701d0e 100644 --- a/fs/xfs/xfs_vfsops.h +++ b/fs/xfs/xfs_vfsops.h @@ -8,7 +8,6 @@ struct kstatfs; struct xfs_mount; struct xfs_mount_args; -int xfs_sync(struct xfs_mount *mp, int flags); void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, int lnnum); void xfs_attr_quiesce(struct xfs_mount *mp); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:39:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdxiM031002 for ; Tue, 7 Oct 2008 14:39:59 -0700 X-ASG-Debug-ID: 1223415693-3dac01560002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A092F129BB50 for ; Tue, 7 Oct 2008 14:41:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 8B0uEPsV72uKDQAS for ; Tue, 07 Oct 2008 14:41:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286146" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:33 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001gE-QU for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] XFS: Use the inode tree for finding dirty inodes V3 Subject: [PATCH 4/6] XFS: Use the inode tree for finding dirty inodes V3 Date: Wed, 8 Oct 2008 08:41:30 +1100 Message-Id: <1223415692-6354-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415698 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Update xfs_sync_inodes to walk the inode radix tree cache to find dirty inodes. This removes a huge bunch of nasty, messy code for traversing the mount inode list safely and removes another user of the mount inode list. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 361 ++++++++++++------------------------------- 1 files changed, 101 insertions(+), 260 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index cd82ba5..53d85ec 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -121,356 +121,197 @@ xfs_sync( } /* - * xfs sync routine for internal use - * - * This routine supports all of the flags defined for the generic vfs_sync - * interface as explained above under xfs_sync. - * + * Sync all the inodes in the given AG according to the + * direction given by the flags. */ -int -xfs_sync_inodes( +STATIC int +xfs_sync_inodes_ag( xfs_mount_t *mp, + int ag, int flags, - int *bypassed) + int *bypassed) { xfs_inode_t *ip = NULL; struct inode *vp = NULL; - int error; - int last_error; - uint64_t fflag; - uint lock_flags; - uint base_lock_flags; - boolean_t mount_locked; - boolean_t vnode_refed; - int preempt; - xfs_iptr_t *ipointer; -#ifdef DEBUG - boolean_t ipointer_in = B_FALSE; - -#define IPOINTER_SET ipointer_in = B_TRUE -#define IPOINTER_CLR ipointer_in = B_FALSE -#else -#define IPOINTER_SET -#define IPOINTER_CLR -#endif - - -/* Insert a marker record into the inode list after inode ip. The list - * must be locked when this is called. After the call the list will no - * longer be locked. - */ -#define IPOINTER_INSERT(ip, mp) { \ - ASSERT(ipointer_in == B_FALSE); \ - ipointer->ip_mnext = ip->i_mnext; \ - ipointer->ip_mprev = ip; \ - ip->i_mnext = (xfs_inode_t *)ipointer; \ - ipointer->ip_mnext->i_mprev = (xfs_inode_t *)ipointer; \ - preempt = 0; \ - XFS_MOUNT_IUNLOCK(mp); \ - mount_locked = B_FALSE; \ - IPOINTER_SET; \ - } - -/* Remove the marker from the inode list. If the marker was the only item - * in the list then there are no remaining inodes and we should zero out - * the whole list. If we are the current head of the list then move the head - * past us. - */ -#define IPOINTER_REMOVE(ip, mp) { \ - ASSERT(ipointer_in == B_TRUE); \ - if (ipointer->ip_mnext != (xfs_inode_t *)ipointer) { \ - ip = ipointer->ip_mnext; \ - ip->i_mprev = ipointer->ip_mprev; \ - ipointer->ip_mprev->i_mnext = ip; \ - if (mp->m_inodes == (xfs_inode_t *)ipointer) { \ - mp->m_inodes = ip; \ - } \ - } else { \ - ASSERT(mp->m_inodes == (xfs_inode_t *)ipointer); \ - mp->m_inodes = NULL; \ - ip = NULL; \ - } \ - IPOINTER_CLR; \ - } - -#define XFS_PREEMPT_MASK 0x7f - - ASSERT(!(flags & SYNC_BDFLUSH)); - - if (bypassed) - *bypassed = 0; - if (mp->m_flags & XFS_MOUNT_RDONLY) - return 0; - error = 0; - last_error = 0; - preempt = 0; - - /* Allocate a reference marker */ - ipointer = (xfs_iptr_t *)kmem_zalloc(sizeof(xfs_iptr_t), KM_SLEEP); + xfs_perag_t *pag = &mp->m_perag[ag]; + boolean_t vnode_refed = B_FALSE; + int nr_found; + int first_index = 0; + int error = 0; + int last_error = 0; + int fflag = XFS_B_ASYNC; + int lock_flags = XFS_ILOCK_SHARED; - fflag = XFS_B_ASYNC; /* default is don't wait */ if (flags & SYNC_DELWRI) fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ - base_lock_flags = XFS_ILOCK_SHARED; if (flags & (SYNC_DELWRI | SYNC_CLOSE)) { /* * We need the I/O lock if we're going to call any of * the flush/inval routines. */ - base_lock_flags |= XFS_IOLOCK_SHARED; + lock_flags |= XFS_IOLOCK_SHARED; } - XFS_MOUNT_ILOCK(mp); - - ip = mp->m_inodes; - - mount_locked = B_TRUE; - vnode_refed = B_FALSE; - - IPOINTER_CLR; - do { - ASSERT(ipointer_in == B_FALSE); - ASSERT(vnode_refed == B_FALSE); - - lock_flags = base_lock_flags; - /* - * There were no inodes in the list, just break out - * of the loop. + * use a gang lookup to find the next inode in the tree + * as the tree is sparse and a gang lookup walks to find + * the number of objects requested. */ - if (ip == NULL) { - break; - } + read_lock(&pag->pag_ici_lock); + nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, + (void**)&ip, first_index, 1); - /* - * We found another sync thread marker - skip it - */ - if (ip->i_mount == NULL) { - ip = ip->i_mnext; - continue; + if (!nr_found) { + read_unlock(&pag->pag_ici_lock); + break; } - vp = VFS_I(ip); + /* update the index for the next lookup */ + first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); /* - * If the vnode is gone then this is being torn down, - * call reclaim if it is flushed, else let regular flush - * code deal with it later in the loop. + * skip inodes in reclaim. Let xfs_syncsub do that for + * us so we don't need to worry. */ - - if (vp == NULL) { - /* Skip ones already in reclaim */ - if (ip->i_flags & XFS_IRECLAIM) { - ip = ip->i_mnext; - continue; - } - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { - ip = ip->i_mnext; - } else if ((xfs_ipincount(ip) == 0) && - xfs_iflock_nowait(ip)) { - IPOINTER_INSERT(ip, mp); - - xfs_finish_reclaim(ip, 1, - XFS_IFLUSH_DELWRI_ELSE_ASYNC); - - XFS_MOUNT_ILOCK(mp); - mount_locked = B_TRUE; - IPOINTER_REMOVE(ip, mp); - } else { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - ip = ip->i_mnext; - } + vp = VFS_I(ip); + if (!vp) { + read_unlock(&pag->pag_ici_lock); continue; } + /* bad inodes are dealt with elsewhere */ if (VN_BAD(vp)) { - ip = ip->i_mnext; + read_unlock(&pag->pag_ici_lock); continue; } + /* nothing to sync during shutdown */ if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) { - XFS_MOUNT_IUNLOCK(mp); - kmem_free(ipointer); + read_unlock(&pag->pag_ici_lock); return 0; } /* - * Try to lock without sleeping. We're out of order with - * the inode list lock here, so if we fail we need to drop - * the mount lock and try again. If we're called from - * bdflush() here, then don't bother. - * - * The inode lock here actually coordinates with the - * almost spurious inode lock in xfs_ireclaim() to prevent - * the vnode we handle here without a reference from - * being freed while we reference it. If we lock the inode - * while it's on the mount list here, then the spurious inode - * lock in xfs_ireclaim() after the inode is pulled from - * the mount list will sleep until we release it here. - * This keeps the vnode from being freed while we reference - * it. + * The inode lock here actually coordinates with the almost + * spurious inode lock in xfs_ireclaim() to prevent the vnode + * we handle here without a reference from being freed while we + * reference it. If we lock the inode while it's on the mount + * list here, then the spurious inode lock in xfs_ireclaim() + * after the inode is pulled from the mount list will sleep + * until we release it here. This keeps the vnode from being + * freed while we reference it. */ if (xfs_ilock_nowait(ip, lock_flags) == 0) { - if (vp == NULL) { - ip = ip->i_mnext; - continue; - } - vp = vn_grab(vp); - if (vp == NULL) { - ip = ip->i_mnext; + read_unlock(&pag->pag_ici_lock); + if (!vp) continue; - } - - IPOINTER_INSERT(ip, mp); xfs_ilock(ip, lock_flags); ASSERT(vp == VFS_I(ip)); ASSERT(ip->i_mount == mp); vnode_refed = B_TRUE; + } else { + /* safe to unlock here as we have a reference */ + read_unlock(&pag->pag_ici_lock); } - - /* From here on in the loop we may have a marker record - * in the inode list. - */ - /* * If we have to flush data or wait for I/O completion * we need to drop the ilock that we currently hold. * If we need to drop the lock, insert a marker if we * have not already done so. */ - if ((flags & (SYNC_CLOSE|SYNC_IOWAIT)) || - ((flags & SYNC_DELWRI) && VN_DIRTY(vp))) { - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } + if (flags & SYNC_CLOSE) { xfs_iunlock(ip, XFS_ILOCK_SHARED); - - if (flags & SYNC_CLOSE) { - /* Shutdown case. Flush and invalidate. */ - if (XFS_FORCED_SHUTDOWN(mp)) - xfs_tosspages(ip, 0, -1, - FI_REMAPF); - else - error = xfs_flushinval_pages(ip, - 0, -1, FI_REMAPF); - } else if ((flags & SYNC_DELWRI) && VN_DIRTY(vp)) { - error = xfs_flush_pages(ip, 0, - -1, fflag, FI_NONE); - } - - /* - * When freezing, we need to wait ensure all I/O (including direct - * I/O) is complete to ensure no further data modification can take - * place after this point - */ + if (XFS_FORCED_SHUTDOWN(mp)) + xfs_tosspages(ip, 0, -1, FI_REMAPF); + else + error = xfs_flushinval_pages(ip, 0, -1, + FI_REMAPF); + /* wait for I/O on freeze */ if (flags & SYNC_IOWAIT) vn_iowait(ip); xfs_ilock(ip, XFS_ILOCK_SHARED); } - if ((flags & SYNC_ATTR) && - (ip->i_update_core || - (ip->i_itemp && ip->i_itemp->ili_format.ilf_fields))) { - if (mount_locked) - IPOINTER_INSERT(ip, mp); + if ((flags & SYNC_DELWRI) && VN_DIRTY(vp)) { + xfs_iunlock(ip, XFS_ILOCK_SHARED); + error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); + if (flags & SYNC_IOWAIT) + vn_iowait(ip); + xfs_ilock(ip, XFS_ILOCK_SHARED); + } + if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { if (flags & SYNC_WAIT) { xfs_iflock(ip); - error = xfs_iflush(ip, XFS_IFLUSH_SYNC); - - /* - * If we can't acquire the flush lock, then the inode - * is already being flushed so don't bother waiting. - * - * If we can lock it then do a delwri flush so we can - * combine multiple inode flushes in each disk write. - */ + if (!xfs_inode_clean(ip)) + error = xfs_iflush(ip, XFS_IFLUSH_SYNC); + else + xfs_ifunlock(ip); } else if (xfs_iflock_nowait(ip)) { - error = xfs_iflush(ip, XFS_IFLUSH_DELWRI); + if (!xfs_inode_clean(ip)) + error = xfs_iflush(ip, XFS_IFLUSH_DELWRI); + else + xfs_ifunlock(ip); } else if (bypassed) { (*bypassed)++; } } - if (lock_flags != 0) { + if (lock_flags) xfs_iunlock(ip, lock_flags); - } if (vnode_refed) { - /* - * If we had to take a reference on the vnode - * above, then wait until after we've unlocked - * the inode to release the reference. This is - * because we can be already holding the inode - * lock when IRELE() calls xfs_inactive(). - * - * Make sure to drop the mount lock before calling - * IRELE() so that we don't trip over ourselves if - * we have to go for the mount lock again in the - * inactive code. - */ - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } - IRELE(ip); - vnode_refed = B_FALSE; } - if (error) { + if (error) last_error = error; - } - /* * bail out if the filesystem is corrupted. */ - if (error == EFSCORRUPTED) { - if (!mount_locked) { - XFS_MOUNT_ILOCK(mp); - IPOINTER_REMOVE(ip, mp); - } - XFS_MOUNT_IUNLOCK(mp); - ASSERT(ipointer_in == B_FALSE); - kmem_free(ipointer); + if (error == EFSCORRUPTED) return XFS_ERROR(error); - } - - /* Let other threads have a chance at the mount lock - * if we have looped many times without dropping the - * lock. - */ - if ((++preempt & XFS_PREEMPT_MASK) == 0) { - if (mount_locked) { - IPOINTER_INSERT(ip, mp); - } - } - - if (mount_locked == B_FALSE) { - XFS_MOUNT_ILOCK(mp); - mount_locked = B_TRUE; - IPOINTER_REMOVE(ip, mp); - continue; - } - ASSERT(ipointer_in == B_FALSE); - ip = ip->i_mnext; + } while (nr_found); - } while (ip != mp->m_inodes); + return last_error; +} - XFS_MOUNT_IUNLOCK(mp); +int +xfs_sync_inodes( + xfs_mount_t *mp, + int flags, + int *bypassed) +{ + int error; + int last_error; + int i; - ASSERT(ipointer_in == B_FALSE); + if (bypassed) + *bypassed = 0; + if (mp->m_flags & XFS_MOUNT_RDONLY) + return 0; + error = 0; + last_error = 0; - kmem_free(ipointer); + for (i = 0; i < mp->m_sb.sb_agcount; i++) { + if (!mp->m_perag[i].pag_ici_init) + continue; + error = xfs_sync_inodes_ag(mp, i, flags, bypassed); + if (error) + last_error = error; + if (error == EFSCORRUPTED) + break; + } return XFS_ERROR(last_error); } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:39:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LdxaT031008 for ; Tue, 7 Oct 2008 14:39:59 -0700 X-ASG-Debug-ID: 1223415695-612101830002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 475BA4B2AD3 for ; Tue, 7 Oct 2008 14:41:38 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id nYzsKQAMmEGFFfvg for ; Tue, 07 Oct 2008 14:41:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286156" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001gL-Ur for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] XFS: remove the mount inode list Subject: [PATCH 6/6] XFS: remove the mount inode list Date: Wed, 8 Oct 2008 08:41:32 +1100 Message-Id: <1223415692-6354-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415699 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now we've removed all users of the mount inode list, we can kill it. This reduces the size of the xfs_inode by 2 pointers. Signed-off-by: Dave Chinner --- fs/xfs/xfs_iget.c | 42 +----------------------------------------- fs/xfs/xfs_inode.h | 8 -------- fs/xfs/xfs_mount.c | 5 ----- fs/xfs/xfs_mount.h | 1 - 4 files changed, 1 insertions(+), 55 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 4c92d19..1256746 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -76,7 +76,6 @@ xfs_iget_core( { struct inode *old_inode; xfs_inode_t *ip; - xfs_inode_t *iq; int error; unsigned long first_index, mask; xfs_perag_t *pag; @@ -255,24 +254,6 @@ finish_inode: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); - - /* - * Link ip to its mount and thread it on the mount's inode list. - */ - XFS_MOUNT_ILOCK(mp); - if ((iq = mp->m_inodes)) { - ASSERT(iq->i_mprev->i_mnext == iq); - ip->i_mprev = iq->i_mprev; - iq->i_mprev->i_mnext = ip; - iq->i_mprev = ip; - ip->i_mnext = iq; - } else { - ip->i_mnext = ip; - ip->i_mprev = ip; - } - mp->m_inodes = ip; - - XFS_MOUNT_IUNLOCK(mp); xfs_put_perag(mp, pag); return_ip: @@ -493,36 +474,15 @@ xfs_iextract( { xfs_mount_t *mp = ip->i_mount; xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); - xfs_inode_t *iq; write_lock(&pag->pag_ici_lock); radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); write_unlock(&pag->pag_ici_lock); xfs_put_perag(mp, pag); - /* - * Remove from mount's inode list. - */ - XFS_MOUNT_ILOCK(mp); - ASSERT((ip->i_mnext != NULL) && (ip->i_mprev != NULL)); - iq = ip->i_mnext; - iq->i_mprev = ip->i_mprev; - ip->i_mprev->i_mnext = iq; - - /* - * Fix up the head pointer if it points to the inode being deleted. - */ - if (mp->m_inodes == ip) { - if (ip == iq) { - mp->m_inodes = NULL; - } else { - mp->m_inodes = iq; - } - } - /* Deal with the deleted inodes list */ + XFS_MOUNT_ILOCK(mp); list_del_init(&ip->i_reclaim); - mp->m_ireclaims++; XFS_MOUNT_IUNLOCK(mp); } diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 9e8e81d..47265b8 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -233,16 +233,8 @@ typedef struct dm_attrs_s { __uint16_t da_pad; /* DMIG extra padding */ } dm_attrs_t; -typedef struct { - struct xfs_inode *ip_mnext; /* next inode in mount list */ - struct xfs_inode *ip_mprev; /* ptr to prev inode */ - struct xfs_mount *ip_mount; /* fs mount struct ptr */ -} xfs_iptr_t; - typedef struct xfs_inode { /* Inode linking and identification information. */ - struct xfs_inode *i_mnext; /* next inode in mount list */ - struct xfs_inode *i_mprev; /* ptr to prev inode */ struct xfs_mount *i_mount; /* fs mount struct ptr */ struct list_head i_reclaim; /* reclaim list */ struct inode *i_vnode; /* vnode backpointer */ diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 5ec6032..1e10882 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1288,11 +1288,6 @@ xfs_unmountfs( xfs_unmountfs_wait(mp); /* wait for async bufs */ xfs_log_unmount(mp); /* Done! No more fs ops. */ - /* - * All inodes from this mount point should be freed. - */ - ASSERT(mp->m_inodes == NULL); - if ((mp->m_flags & XFS_MOUNT_NOUUID) == 0) uuid_table_remove(&mp->m_sb.sb_uuid); diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 3c66a01..dfa307d 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -248,7 +248,6 @@ typedef struct xfs_mount { xfs_agnumber_t m_agirotor; /* last ag dir inode alloced */ spinlock_t m_agirotor_lock;/* .. and lock protecting it */ xfs_agnumber_t m_maxagi; /* highest inode alloc group */ - struct xfs_inode *m_inodes; /* active inode list */ struct list_head m_del_inodes; /* inodes to reclaim */ mutex_t m_ilock; /* inode list mutex */ uint m_ireclaims; /* count of calls to reclaim*/ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:39:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Ldxrq031007 for ; Tue, 7 Oct 2008 14:39:59 -0700 X-ASG-Debug-ID: 1223415696-6b9000ac0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CDB2A4B2AD2 for ; Tue, 7 Oct 2008 14:41:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id nAu3UpzBJiGIOBOq for ; Tue, 07 Oct 2008 14:41:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224286140" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:11:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKJA-0001g8-MM for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:41:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] XFS: move xfssyncd code to xfs_sync.c Subject: [PATCH 2/6] XFS: move xfssyncd code to xfs_sync.c Date: Wed, 8 Oct 2008 08:41:28 +1100 Message-Id: <1223415692-6354-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415698 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B Move all the xfssyncd code to the new xfs_sync.c file. This places it closer to the actual code that it interacts with, rather than just being associated with high level VFS code. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 151 +-------------------------------------- fs/xfs/linux-2.6/xfs_super.h | 3 - fs/xfs/linux-2.6/xfs_sync.c | 163 ++++++++++++++++++++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_sync.h | 56 ++++++++++++++ fs/xfs/linux-2.6/xfs_vfs.h | 31 -------- fs/xfs/xfs_mount.h | 1 + 6 files changed, 223 insertions(+), 182 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index daf5a49..ab09f6a 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -979,146 +979,6 @@ xfs_fs_clear_inode( ASSERT(XFS_I(inode) == NULL); } -/* - * Enqueue a work item to be picked up by the vfs xfssyncd thread. - * Doing this has two advantages: - * - It saves on stack space, which is tight in certain situations - * - It can be used (with care) as a mechanism to avoid deadlocks. - * Flushing while allocating in a full filesystem requires both. - */ -STATIC void -xfs_syncd_queue_work( - struct xfs_mount *mp, - void *data, - void (*syncer)(struct xfs_mount *, void *)) -{ - struct bhv_vfs_sync_work *work; - - work = kmem_alloc(sizeof(struct bhv_vfs_sync_work), KM_SLEEP); - INIT_LIST_HEAD(&work->w_list); - work->w_syncer = syncer; - work->w_data = data; - work->w_mount = mp; - spin_lock(&mp->m_sync_lock); - list_add_tail(&work->w_list, &mp->m_sync_list); - spin_unlock(&mp->m_sync_lock); - wake_up_process(mp->m_sync_task); -} - -/* - * Flush delayed allocate data, attempting to free up reserved space - * from existing allocations. At this point a new allocation attempt - * has failed with ENOSPC and we are in the process of scratching our - * heads, looking about for more room... - */ -STATIC void -xfs_flush_inode_work( - struct xfs_mount *mp, - void *arg) -{ - struct inode *inode = arg; - filemap_flush(inode->i_mapping); - iput(inode); -} - -void -xfs_flush_inode( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - - igrab(inode); - xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inode_work); - delay(msecs_to_jiffies(500)); -} - -/* - * This is the "bigger hammer" version of xfs_flush_inode_work... - * (IOW, "If at first you don't succeed, use a Bigger Hammer"). - */ -STATIC void -xfs_flush_device_work( - struct xfs_mount *mp, - void *arg) -{ - struct inode *inode = arg; - sync_blockdev(mp->m_super->s_bdev); - iput(inode); -} - -void -xfs_flush_device( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - - igrab(inode); - xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_device_work); - delay(msecs_to_jiffies(500)); - xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC); -} - -STATIC void -xfs_sync_worker( - struct xfs_mount *mp, - void *unused) -{ - int error; - - if (!(mp->m_flags & XFS_MOUNT_RDONLY)) - error = xfs_sync(mp, SYNC_FSDATA | SYNC_BDFLUSH | SYNC_ATTR); - mp->m_sync_seq++; - wake_up(&mp->m_wait_single_sync_task); -} - -STATIC int -xfssyncd( - void *arg) -{ - struct xfs_mount *mp = arg; - long timeleft; - bhv_vfs_sync_work_t *work, *n; - LIST_HEAD (tmp); - - set_freezable(); - timeleft = xfs_syncd_centisecs * msecs_to_jiffies(10); - for (;;) { - timeleft = schedule_timeout_interruptible(timeleft); - /* swsusp */ - try_to_freeze(); - if (kthread_should_stop() && list_empty(&mp->m_sync_list)) - break; - - spin_lock(&mp->m_sync_lock); - /* - * We can get woken by laptop mode, to do a sync - - * that's the (only!) case where the list would be - * empty with time remaining. - */ - if (!timeleft || list_empty(&mp->m_sync_list)) { - if (!timeleft) - timeleft = xfs_syncd_centisecs * - msecs_to_jiffies(10); - INIT_LIST_HEAD(&mp->m_sync_work.w_list); - list_add_tail(&mp->m_sync_work.w_list, - &mp->m_sync_list); - } - list_for_each_entry_safe(work, n, &mp->m_sync_list, w_list) - list_move(&work->w_list, &tmp); - spin_unlock(&mp->m_sync_lock); - - list_for_each_entry_safe(work, n, &tmp, w_list) { - (*work->w_syncer)(mp, work->w_data); - list_del(&work->w_list); - if (work == &mp->m_sync_work) - continue; - kmem_free(work); - } - } - - return 0; -} - STATIC void xfs_free_fsname( struct xfs_mount *mp) @@ -1137,8 +997,7 @@ xfs_fs_put_super( int unmount_event_flags = 0; int error; - kthread_stop(mp->m_sync_task); - + xfs_syncd_stop(mp); xfs_sync(mp, SYNC_ATTR | SYNC_DELWRI); #ifdef HAVE_DMAPI @@ -1808,13 +1667,9 @@ xfs_fs_fill_super( goto fail_vnrele; } - mp->m_sync_work.w_syncer = xfs_sync_worker; - mp->m_sync_work.w_mount = mp; - mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd"); - if (IS_ERR(mp->m_sync_task)) { - error = -PTR_ERR(mp->m_sync_task); + error = xfs_syncd_init(mp); + if (error) goto fail_vnrele; - } xfs_itrace_exit(XFS_I(sb->s_root->d_inode)); diff --git a/fs/xfs/linux-2.6/xfs_super.h b/fs/xfs/linux-2.6/xfs_super.h index fe2ef4e..56dc48a 100644 --- a/fs/xfs/linux-2.6/xfs_super.h +++ b/fs/xfs/linux-2.6/xfs_super.h @@ -101,9 +101,6 @@ struct block_device; extern __uint64_t xfs_max_file_offset(unsigned int); -extern void xfs_flush_inode(struct xfs_inode *); -extern void xfs_flush_device(struct xfs_inode *); - extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); extern const struct export_operations xfs_export_operations; diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index c765eb2..a51534c 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -44,6 +44,9 @@ #include "xfs_inode_item.h" #include "xfs_rw.h" +#include +#include + /* * xfs_sync flushes any pending I/O to file system vfsp. * @@ -603,3 +606,163 @@ xfs_syncsub( return XFS_ERROR(last_error); } + +/* + * Enqueue a work item to be picked up by the vfs xfssyncd thread. + * Doing this has two advantages: + * - It saves on stack space, which is tight in certain situations + * - It can be used (with care) as a mechanism to avoid deadlocks. + * Flushing while allocating in a full filesystem requires both. + */ +STATIC void +xfs_syncd_queue_work( + struct xfs_mount *mp, + void *data, + void (*syncer)(struct xfs_mount *, void *)) +{ + struct bhv_vfs_sync_work *work; + + work = kmem_alloc(sizeof(struct bhv_vfs_sync_work), KM_SLEEP); + INIT_LIST_HEAD(&work->w_list); + work->w_syncer = syncer; + work->w_data = data; + work->w_mount = mp; + spin_lock(&mp->m_sync_lock); + list_add_tail(&work->w_list, &mp->m_sync_list); + spin_unlock(&mp->m_sync_lock); + wake_up_process(mp->m_sync_task); +} + +/* + * Flush delayed allocate data, attempting to free up reserved space + * from existing allocations. At this point a new allocation attempt + * has failed with ENOSPC and we are in the process of scratching our + * heads, looking about for more room... + */ +STATIC void +xfs_flush_inode_work( + struct xfs_mount *mp, + void *arg) +{ + struct inode *inode = arg; + filemap_flush(inode->i_mapping); + iput(inode); +} + +void +xfs_flush_inode( + xfs_inode_t *ip) +{ + struct inode *inode = VFS_I(ip); + + igrab(inode); + xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_inode_work); + delay(msecs_to_jiffies(500)); +} + +/* + * This is the "bigger hammer" version of xfs_flush_inode_work... + * (IOW, "If at first you don't succeed, use a Bigger Hammer"). + */ +STATIC void +xfs_flush_device_work( + struct xfs_mount *mp, + void *arg) +{ + struct inode *inode = arg; + sync_blockdev(mp->m_super->s_bdev); + iput(inode); +} + +void +xfs_flush_device( + xfs_inode_t *ip) +{ + struct inode *inode = VFS_I(ip); + + igrab(inode); + xfs_syncd_queue_work(ip->i_mount, inode, xfs_flush_device_work); + delay(msecs_to_jiffies(500)); + xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC); +} + +STATIC void +xfs_sync_worker( + struct xfs_mount *mp, + void *unused) +{ + int error; + + if (!(mp->m_flags & XFS_MOUNT_RDONLY)) + error = xfs_sync(mp, SYNC_FSDATA | SYNC_BDFLUSH | SYNC_ATTR); + mp->m_sync_seq++; + wake_up(&mp->m_wait_single_sync_task); +} + +STATIC int +xfssyncd( + void *arg) +{ + struct xfs_mount *mp = arg; + long timeleft; + bhv_vfs_sync_work_t *work, *n; + LIST_HEAD (tmp); + + set_freezable(); + timeleft = xfs_syncd_centisecs * msecs_to_jiffies(10); + for (;;) { + timeleft = schedule_timeout_interruptible(timeleft); + /* swsusp */ + try_to_freeze(); + if (kthread_should_stop() && list_empty(&mp->m_sync_list)) + break; + + spin_lock(&mp->m_sync_lock); + /* + * We can get woken by laptop mode, to do a sync - + * that's the (only!) case where the list would be + * empty with time remaining. + */ + if (!timeleft || list_empty(&mp->m_sync_list)) { + if (!timeleft) + timeleft = xfs_syncd_centisecs * + msecs_to_jiffies(10); + INIT_LIST_HEAD(&mp->m_sync_work.w_list); + list_add_tail(&mp->m_sync_work.w_list, + &mp->m_sync_list); + } + list_for_each_entry_safe(work, n, &mp->m_sync_list, w_list) + list_move(&work->w_list, &tmp); + spin_unlock(&mp->m_sync_lock); + + list_for_each_entry_safe(work, n, &tmp, w_list) { + (*work->w_syncer)(mp, work->w_data); + list_del(&work->w_list); + if (work == &mp->m_sync_work) + continue; + kmem_free(work); + } + } + + return 0; +} + +int +xfs_syncd_init( + struct xfs_mount *mp) +{ + mp->m_sync_work.w_syncer = xfs_sync_worker; + mp->m_sync_work.w_mount = mp; + mp->m_sync_task = kthread_run(xfssyncd, mp, "xfssyncd"); + if (IS_ERR(mp->m_sync_task)) + return -PTR_ERR(mp->m_sync_task); + return 0; +} + +void +xfs_syncd_stop( + struct xfs_mount *mp) +{ + kthread_stop(mp->m_sync_task); +} + diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index f4c3b1e..3746d15 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -1,7 +1,63 @@ +/* + * Copyright (c) 2000-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it would be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ #ifndef XFS_SYNC_H #define XFS_SYNC_H 1 +struct xfs_mount; + +typedef struct bhv_vfs_sync_work { + struct list_head w_list; + struct xfs_mount *w_mount; + void *w_data; /* syncer routine argument */ + void (*w_syncer)(struct xfs_mount *, void *); +} bhv_vfs_sync_work_t; + +#define SYNC_ATTR 0x0001 /* sync attributes */ +#define SYNC_CLOSE 0x0002 /* close file system down */ +#define SYNC_DELWRI 0x0004 /* look at delayed writes */ +#define SYNC_WAIT 0x0008 /* wait for i/o to complete */ +#define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */ +#define SYNC_FSDATA 0x0020 /* flush fs data (e.g. superblocks) */ +#define SYNC_REFCACHE 0x0040 /* prune some of the nfs ref cache */ +#define SYNC_REMOUNT 0x0080 /* remount readonly, no dummy LRs */ +#define SYNC_IOWAIT 0x0100 /* wait for all I/O to complete */ + +/* + * When remounting a filesystem read-only or freezing the filesystem, + * we have two phases to execute. This first phase is syncing the data + * before we quiesce the fielsystem, and the second is flushing all the + * inodes out after we've waited for all the transactions created by + * the first phase to complete. The second phase uses SYNC_INODE_QUIESCE + * to ensure that the inodes are written to their location on disk + * rather than just existing in transactions in the log. This means + * after a quiesce there is no log replay required to write the inodes + * to disk (this is the main difference between a sync and a quiesce). + */ +#define SYNC_DATA_QUIESCE (SYNC_DELWRI|SYNC_FSDATA|SYNC_WAIT|SYNC_IOWAIT) +#define SYNC_INODE_QUIESCE (SYNC_REMOUNT|SYNC_ATTR|SYNC_WAIT) + +int xfs_syncd_init(struct xfs_mount *mp); +void xfs_syncd_stop(struct xfs_mount *mp); + int xfs_sync(struct xfs_mount *mp, int flags); int xfs_syncsub(struct xfs_mount *mp, int flags, int *bypassed); +void xfs_flush_inode(struct xfs_inode *ip); +void xfs_flush_device(struct xfs_inode *ip); + #endif diff --git a/fs/xfs/linux-2.6/xfs_vfs.h b/fs/xfs/linux-2.6/xfs_vfs.h index 7e60c77..0ab60bc 100644 --- a/fs/xfs/linux-2.6/xfs_vfs.h +++ b/fs/xfs/linux-2.6/xfs_vfs.h @@ -33,37 +33,6 @@ struct xfs_mount_args; typedef struct kstatfs bhv_statvfs_t; -typedef struct bhv_vfs_sync_work { - struct list_head w_list; - struct xfs_mount *w_mount; - void *w_data; /* syncer routine argument */ - void (*w_syncer)(struct xfs_mount *, void *); -} bhv_vfs_sync_work_t; - -#define SYNC_ATTR 0x0001 /* sync attributes */ -#define SYNC_CLOSE 0x0002 /* close file system down */ -#define SYNC_DELWRI 0x0004 /* look at delayed writes */ -#define SYNC_WAIT 0x0008 /* wait for i/o to complete */ -#define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */ -#define SYNC_FSDATA 0x0020 /* flush fs data (e.g. superblocks) */ -#define SYNC_REFCACHE 0x0040 /* prune some of the nfs ref cache */ -#define SYNC_REMOUNT 0x0080 /* remount readonly, no dummy LRs */ -#define SYNC_IOWAIT 0x0100 /* wait for all I/O to complete */ - -/* - * When remounting a filesystem read-only or freezing the filesystem, - * we have two phases to execute. This first phase is syncing the data - * before we quiesce the fielsystem, and the second is flushing all the - * inodes out after we've waited for all the transactions created by - * the first phase to complete. The second phase uses SYNC_INODE_QUIESCE - * to ensure that the inodes are written to their location on disk - * rather than just existing in transactions in the log. This means - * after a quiesce there is no log replay required to write the inodes - * to disk (this is the main difference between a sync and a quiesce). - */ -#define SYNC_DATA_QUIESCE (SYNC_DELWRI|SYNC_FSDATA|SYNC_WAIT|SYNC_IOWAIT) -#define SYNC_INODE_QUIESCE (SYNC_REMOUNT|SYNC_ATTR|SYNC_WAIT) - #define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ #define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ #define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index ad61380..3c66a01 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -18,6 +18,7 @@ #ifndef __XFS_MOUNT_H__ #define __XFS_MOUNT_H__ +#include "xfs_sync.h" typedef struct xfs_trans_reservations { uint tr_write; /* extent alloc trans */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg57S032738 for ; Tue, 7 Oct 2008 14:42:05 -0700 X-ASG-Debug-ID: 1223415823-3db8018c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 01036129BB9F for ; Tue, 7 Oct 2008 14:43:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id irgW8DmGw72vjINf for ; Tue, 07 Oct 2008 14:43:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287357" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:40 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001jw-2A for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 02/10] XFS: Use struct inodes instead of vnodes to kill vn_grab Subject: [PATCH 02/10] XFS: Use struct inodes instead of vnodes to kill vn_grab Date: Wed, 8 Oct 2008 08:43:31 +1100 Message-Id: <1223415819-6599-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415825 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- With the sync code relocated to the linux-2.6 directory we can use struct inodes directly. If we do the same thing for the quota release code, we can remove vn_grab altogether. While here, convert the VN_BAD() checks to is_bad_inode() so we can remove vnodes entirely from this code. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 53 +++++++++++++++++++-------------------- fs/xfs/linux-2.6/xfs_vnode.c | 6 ++-- fs/xfs/linux-2.6/xfs_vnode.h | 5 ---- fs/xfs/quota/xfs_qm_syscalls.c | 16 ++++++------ 4 files changed, 37 insertions(+), 43 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 59da332..461c1dc 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -131,10 +131,7 @@ xfs_sync_inodes_ag( int flags, int *bypassed) { - xfs_inode_t *ip = NULL; - struct inode *vp = NULL; xfs_perag_t *pag = &mp->m_perag[ag]; - boolean_t vnode_refed = B_FALSE; int nr_found; int first_index = 0; int error = 0; @@ -156,6 +153,10 @@ xfs_sync_inodes_ag( } do { + struct inode *inode; + boolean_t inode_refed; + xfs_inode_t *ip = NULL; + /* * use a gang lookup to find the next inode in the tree * as the tree is sparse and a gang lookup walks to find @@ -177,14 +178,14 @@ xfs_sync_inodes_ag( * skip inodes in reclaim. Let xfs_syncsub do that for * us so we don't need to worry. */ - vp = VFS_I(ip); - if (!vp) { + if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { read_unlock(&pag->pag_ici_lock); continue; } /* bad inodes are dealt with elsewhere */ - if (VN_BAD(vp)) { + inode = VFS_I(ip); + if (is_bad_inode(inode)) { read_unlock(&pag->pag_ici_lock); continue; } @@ -196,30 +197,29 @@ xfs_sync_inodes_ag( } /* - * The inode lock here actually coordinates with the almost - * spurious inode lock in xfs_ireclaim() to prevent the vnode - * we handle here without a reference from being freed while we - * reference it. If we lock the inode while it's on the mount - * list here, then the spurious inode lock in xfs_ireclaim() - * after the inode is pulled from the mount list will sleep - * until we release it here. This keeps the vnode from being - * freed while we reference it. + * If we can't get a reference on the VFS_I, the inode must be + * in reclaim. If we can get the inode lock without blocking, + * it is safe to flush the inode because we hold the tree lock + * and xfs_iextract will block right now. Hence if we lock the + * inode while holding the tree lock, xfs_ireclaim() is + * guaranteed to block on the inode lock we now hold and hence + * it is safe to reference the inode until we drop the inode + * locks completely. */ - if (xfs_ilock_nowait(ip, lock_flags) == 0) { - vp = vn_grab(vp); + inode_refed = B_FALSE; + if (igrab(inode)) { read_unlock(&pag->pag_ici_lock); - if (!vp) - continue; xfs_ilock(ip, lock_flags); - - ASSERT(vp == VFS_I(ip)); - ASSERT(ip->i_mount == mp); - - vnode_refed = B_TRUE; + inode_refed = B_TRUE; } else { - /* safe to unlock here as we have a reference */ + if (!xfs_ilock_nowait(ip, lock_flags)) { + /* leave it to reclaim */ + read_unlock(&pag->pag_ici_lock); + continue; + } read_unlock(&pag->pag_ici_lock); } + /* * If we have to flush data or wait for I/O completion * we need to drop the ilock that we currently hold. @@ -240,7 +240,7 @@ xfs_sync_inodes_ag( xfs_ilock(ip, XFS_ILOCK_SHARED); } - if ((flags & SYNC_DELWRI) && VN_DIRTY(vp)) { + if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { xfs_iunlock(ip, XFS_ILOCK_SHARED); error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); if (flags & SYNC_IOWAIT) @@ -268,9 +268,8 @@ xfs_sync_inodes_ag( if (lock_flags) xfs_iunlock(ip, lock_flags); - if (vnode_refed) { + if (inode_refed) { IRELE(ip); - vnode_refed = B_FALSE; } if (error) diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c index b52528b..dceb6db 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.c +++ b/fs/xfs/linux-2.6/xfs_vnode.c @@ -90,10 +90,10 @@ vn_ioerror( */ static inline int xfs_icount(struct xfs_inode *ip) { - struct inode *vp = VFS_I(ip); + struct inode *inode = VFS_I(ip); - if (vp) - return vn_count(vp); + if (!inode) + return atomic_read(&inode->i_count); return -1; } diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h index 683ce16..bf89e41 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.h +++ b/fs/xfs/linux-2.6/xfs_vnode.h @@ -80,11 +80,6 @@ do { \ iput(VFS_I(ip)); \ } while (0) -static inline struct inode *vn_grab(struct inode *vp) -{ - return igrab(vp); -} - /* * Dealing with bad inodes */ diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 26152b9..4254b07 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1031,13 +1031,13 @@ xfs_qm_dqrele_inodes_ag( uint flags) { xfs_inode_t *ip = NULL; - struct inode *vp = NULL; xfs_perag_t *pag = &mp->m_perag[ag]; int first_index = 0; int nr_found; do { - boolean_t vnode_refd = B_FALSE; + boolean_t inode_refed; + struct inode *inode; /* * use a gang lookup to find the next inode in the tree @@ -1057,19 +1057,19 @@ xfs_qm_dqrele_inodes_ag( first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); /* skip quota inodes and those in reclaim */ - vp = VFS_I(ip); - if (!vp || ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { + inode = VFS_I(ip); + if (!inode || ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { ASSERT(ip->i_udquot == NULL); ASSERT(ip->i_gdquot == NULL); read_unlock(&pag->pag_ici_lock); continue; } if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { - vp = vn_grab(vp); + inode = igrab(inode); read_unlock(&pag->pag_ici_lock); - if (!vp) + if (!inode) continue; - vnode_refd = B_TRUE; + inode_refed = B_TRUE; xfs_ilock(ip, XFS_ILOCK_EXCL); } else { read_unlock(&pag->pag_ici_lock); @@ -1084,7 +1084,7 @@ xfs_qm_dqrele_inodes_ag( ip->i_gdquot = NULL; } xfs_iunlock(ip, XFS_ILOCK_EXCL); - if (vnode_refd) + if (inode_refed) IRELE(ip); } while (nr_found); } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg4O4032736 for ; Tue, 7 Oct 2008 14:42:04 -0700 X-ASG-Debug-ID: 1223415822-25a401560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3F6461B57AF4 for ; Tue, 7 Oct 2008 14:43:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id mZYxWUAffFAuhTPc for ; Tue, 07 Oct 2008 14:43:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287356" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:40 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001ju-0E for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/10] XFS: split out two helpers from xfs_syncsub Subject: [PATCH 01/10] XFS: split out two helpers from xfs_syncsub Date: Wed, 8 Oct 2008 08:43:30 +1100 Message-Id: <1223415819-6599-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415824 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Christoph Hellwig Split out two helpers from xfs_syncsub for the dummy log commit and the superblock writeout. Signed-off-by: Christoph Hellwig Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 162 +++++++++++++++++++++++++------------------ 1 files changed, 93 insertions(+), 69 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 53d85ec..59da332 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -315,6 +315,93 @@ xfs_sync_inodes( return XFS_ERROR(last_error); } +STATIC int +xfs_commit_dummy_trans( + struct xfs_mount *mp, + uint log_flags) +{ + struct xfs_inode *ip = mp->m_rootip; + struct xfs_trans *tp; + int error; + + /* + * Put a dummy transaction in the log to tell recovery + * that all others are OK. + */ + tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); + error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (error) { + xfs_trans_cancel(tp, 0); + return error; + } + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); + xfs_trans_ihold(tp, ip); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + /* XXX(hch): ignoring the error here.. */ + error = xfs_trans_commit(tp, 0); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + xfs_log_force(mp, 0, log_flags); + return 0; +} + +STATIC int +xfs_sync_fsdata( + struct xfs_mount *mp, + int flags) +{ + struct xfs_buf *bp; + struct xfs_buf_log_item *bip; + int error = 0; + + /* + * If this is xfssyncd() then only sync the superblock if we can + * lock it without sleeping and it is not pinned. + */ + if (flags & SYNC_BDFLUSH) { + ASSERT(!(flags & SYNC_WAIT)); + + bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); + if (!bp) + goto out; + + bip = XFS_BUF_FSPRIVATE(bp, struct xfs_buf_log_item *); + if (!bip || !xfs_buf_item_dirty(bip) || XFS_BUF_ISPINNED(bp)) + goto out_brelse; + } else { + bp = xfs_getsb(mp, 0); + + /* + * If the buffer is pinned then push on the log so we won't + * get stuck waiting in the write for someone, maybe + * ourselves, to flush the log. + * + * Even though we just pushed the log above, we did not have + * the superblock buffer locked at that point so it can + * become pinned in between there and here. + */ + if (XFS_BUF_ISPINNED(bp)) + xfs_log_force(mp, 0, XFS_LOG_FORCE); + } + + + if (flags & SYNC_WAIT) + XFS_BUF_UNASYNC(bp); + else + XFS_BUF_ASYNC(bp); + + return xfs_bwrite(mp, bp); + + out_brelse: + xfs_buf_relse(bp); + out: + return error; +} + /* * xfs sync routine for internal use * @@ -331,8 +418,6 @@ xfs_syncsub( int error = 0; int last_error = 0; uint log_flags = XFS_LOG_FORCE; - xfs_buf_t *bp; - xfs_buf_log_item_t *bip; /* * Sync out the log. This ensures that the log is periodically @@ -355,83 +440,22 @@ xfs_syncsub( * log activity, so if this isn't vfs_sync() then flush * the log again. */ - if (flags & SYNC_DELWRI) { - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - } + if (flags & SYNC_DELWRI) + xfs_log_force(mp, 0, log_flags); if (flags & SYNC_FSDATA) { - /* - * If this is vfs_sync() then only sync the superblock - * if we can lock it without sleeping and it is not pinned. - */ - if (flags & SYNC_BDFLUSH) { - bp = xfs_getsb(mp, XFS_BUF_TRYLOCK); - if (bp != NULL) { - bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*); - if ((bip != NULL) && - xfs_buf_item_dirty(bip)) { - if (!(XFS_BUF_ISPINNED(bp))) { - XFS_BUF_ASYNC(bp); - error = xfs_bwrite(mp, bp); - } else { - xfs_buf_relse(bp); - } - } else { - xfs_buf_relse(bp); - } - } - } else { - bp = xfs_getsb(mp, 0); - /* - * If the buffer is pinned then push on the log so - * we won't get stuck waiting in the write for - * someone, maybe ourselves, to flush the log. - * Even though we just pushed the log above, we - * did not have the superblock buffer locked at - * that point so it can become pinned in between - * there and here. - */ - if (XFS_BUF_ISPINNED(bp)) - xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); - if (flags & SYNC_WAIT) - XFS_BUF_UNASYNC(bp); - else - XFS_BUF_ASYNC(bp); - error = xfs_bwrite(mp, bp); - } - if (error) { + error = xfs_sync_fsdata(mp, flags); + if (error) last_error = error; - } } /* * Now check to see if the log needs a "dummy" transaction. */ if (!(flags & SYNC_REMOUNT) && xfs_log_need_covered(mp)) { - xfs_trans_t *tp; - xfs_inode_t *ip; - - /* - * Put a dummy transaction in the log to tell - * recovery that all others are OK. - */ - tp = xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); - if ((error = xfs_trans_reserve(tp, 0, - XFS_ICHANGE_LOG_RES(mp), - 0, 0, 0))) { - xfs_trans_cancel(tp, 0); + error = xfs_commit_dummy_trans(mp, log_flags); + if (error) return error; - } - - ip = mp->m_rootip; - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); - xfs_trans_ihold(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); } /* -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg5fp032756 for ; Tue, 7 Oct 2008 14:42:05 -0700 X-ASG-Debug-ID: 1223415824-3db701730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2BB7129BB9F for ; Tue, 7 Oct 2008 14:43:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id YTeWH9ZaSUjabFCY for ; Tue, 07 Oct 2008 14:43:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287361" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001k5-7Q for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/10] XFS: xfssyncd: don't call xfs_sync Subject: [PATCH 05/10] XFS: xfssyncd: don't call xfs_sync Date: Wed, 8 Oct 2008 08:43:34 +1100 Message-Id: <1223415819-6599-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415825 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Start de-multiplexing xfs_sync() by making xfs_sync_worker() call the specific sync functions it needs. This is only a small, unique subset of the entire xfs_sync() code so is easier to follow. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 16 ++++++++++++++-- 1 files changed, 14 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index d4b7b21..3c31137 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -526,6 +526,11 @@ xfs_flush_device( xfs_log_force(ip->i_mount, (xfs_lsn_t)0, XFS_LOG_FORCE|XFS_LOG_SYNC); } +/* + * Every sync period we need to unpin all items, reclaim inodes, sync + * quota and write out the superblock. We might need to cover the log + * to indicate it is idle. + */ STATIC void xfs_sync_worker( struct xfs_mount *mp, @@ -533,8 +538,15 @@ xfs_sync_worker( { int error; - if (!(mp->m_flags & XFS_MOUNT_RDONLY)) - error = xfs_sync(mp, SYNC_FSDATA | SYNC_BDFLUSH | SYNC_ATTR); + if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { + xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); + xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); + /* dgc: errors ignored here */ + error = XFS_QM_DQSYNC(mp, SYNC_BDFLUSH); + error = xfs_sync_fsdata(mp, SYNC_BDFLUSH); + if (xfs_log_need_covered(mp)) + error = xfs_commit_dummy_trans(mp, XFS_LOG_FORCE); + } mp->m_sync_seq++; wake_up(&mp->m_wait_single_sync_task); } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg5Zc032754 for ; Tue, 7 Oct 2008 14:42:05 -0700 X-ASG-Debug-ID: 1223415822-25a401560001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 87F4B1B57AF0 for ; Tue, 7 Oct 2008 14:43:44 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id kMQzufAf2jfJ2jOz for ; Tue, 07 Oct 2008 14:43:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287358" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLD-0001js-Uq for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:39 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/10] XFS: clean up sync code Subject: [PATCH 0/10] XFS: clean up sync code Date: Wed, 8 Oct 2008 08:43:29 +1100 Message-Id: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415825 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3593 1.0000 -0.1207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.12 X-Barracuda-Spam-Status: No, SCORE=-0.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_sync and xfs_syncsub are multiplexed interfaces that shares relatively little code between callers. Because it is a multiplexed interface, it's hard to tell what is executed in each context it is called. Factor out the sync code and explicitly call the sync functions needed rather than the multiplexed interfaces. Once this is done, we can remove xfs_syncsub and xfs_sync altogether. From owner-xfs@oss.sgi.com Tue Oct 7 14:42:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_65 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg6uw032762 for ; Tue, 7 Oct 2008 14:42:06 -0700 X-ASG-Debug-ID: 1223415823-3db8018c0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5A88D129BB9F for ; Tue, 7 Oct 2008 14:43:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 4GM8iQsHEKHuUknx for ; Tue, 07 Oct 2008 14:43:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287359" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001k2-5X for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/10] XFS: kill xfs_syncsub Subject: [PATCH 04/10] XFS: kill xfs_syncsub Date: Wed, 8 Oct 2008 08:43:33 +1100 Message-Id: <1223415819-6599-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415826 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that the only caller is xfs_sync(), merge the two together as it makes no sense to keep them separate. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 141 +++++++++++++++++++------------------------ 1 files changed, 62 insertions(+), 79 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 7e9fb52..d4b7b21 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -48,79 +48,6 @@ #include /* - * xfs_sync flushes any pending I/O to file system vfsp. - * - * This routine is called by vfs_sync() to make sure that things make it - * out to disk eventually, on sync() system calls to flush out everything, - * and when the file system is unmounted. For the vfs_sync() case, all - * we really need to do is sync out the log to make all of our meta-data - * updates permanent (except for timestamps). For calls from pflushd(), - * dirty pages are kept moving by calling pdflush() on the inodes - * containing them. We also flush the inodes that we can lock without - * sleeping and the superblock if we can lock it without sleeping from - * vfs_sync() so that items at the tail of the log are always moving out. - * - * Flags: - * SYNC_BDFLUSH - We're being called from vfs_sync() so we don't want - * to sleep if we can help it. All we really need - * to do is ensure that the log is synced at least - * periodically. We also push the inodes and - * superblock if we can lock them without sleeping - * and they are not pinned. - * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not - * set, then we really want to lock each inode and flush - * it. - * SYNC_WAIT - All the flushes that take place in this call should - * be synchronous. - * SYNC_DELWRI - This tells us to push dirty pages associated with - * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to - * determine if they should be flushed sync, async, or - * delwri. - * SYNC_CLOSE - This flag is passed when the system is being - * unmounted. We should sync and invalidate everything. - * SYNC_FSDATA - This indicates that the caller would like to make - * sure the superblock is safe on disk. We can ensure - * this by simply making sure the log gets flushed - * if SYNC_BDFLUSH is set, and by actually writing it - * out otherwise. - * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete - * before we return (including direct I/O). Forms the drain - * side of the write barrier needed to safely quiesce the - * filesystem. - * - */ -int -xfs_sync( - xfs_mount_t *mp, - int flags) -{ - int error; - - /* - * Get the Quota Manager to flush the dquots. - * - * If XFS quota support is not enabled or this filesystem - * instance does not use quotas XFS_QM_DQSYNC will always - * return zero. - */ - error = XFS_QM_DQSYNC(mp, flags); - if (error) { - /* - * If we got an IO error, we will be shutting down. - * So, there's nothing more for us to do here. - */ - ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp)); - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(error); - } - - if (flags & SYNC_IOWAIT) - xfs_filestream_flush(mp); - - return xfs_syncsub(mp, flags); -} - -/* * Sync all the inodes in the given AG according to the * direction given by the flags. */ @@ -396,22 +323,78 @@ xfs_sync_fsdata( } /* - * xfs sync routine for internal use + * xfs_sync flushes any pending I/O to file system vfsp. * - * This routine supports all of the flags defined for the generic vfs_sync - * interface as explained above under xfs_sync. + * This routine is called by vfs_sync() to make sure that things make it + * out to disk eventually, on sync() system calls to flush out everything, + * and when the file system is unmounted. For the vfs_sync() case, all + * we really need to do is sync out the log to make all of our meta-data + * updates permanent (except for timestamps). For calls from pflushd(), + * dirty pages are kept moving by calling pdflush() on the inodes + * containing them. We also flush the inodes that we can lock without + * sleeping and the superblock if we can lock it without sleeping from + * vfs_sync() so that items at the tail of the log are always moving out. + * + * Flags: + * SYNC_BDFLUSH - We're being called from vfs_sync() so we don't want + * to sleep if we can help it. All we really need + * to do is ensure that the log is synced at least + * periodically. We also push the inodes and + * superblock if we can lock them without sleeping + * and they are not pinned. + * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not + * set, then we really want to lock each inode and flush + * it. + * SYNC_WAIT - All the flushes that take place in this call should + * be synchronous. + * SYNC_DELWRI - This tells us to push dirty pages associated with + * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to + * determine if they should be flushed sync, async, or + * delwri. + * SYNC_CLOSE - This flag is passed when the system is being + * unmounted. We should sync and invalidate everything. + * SYNC_FSDATA - This indicates that the caller would like to make + * sure the superblock is safe on disk. We can ensure + * this by simply making sure the log gets flushed + * if SYNC_BDFLUSH is set, and by actually writing it + * out otherwise. + * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete + * before we return (including direct I/O). Forms the drain + * side of the write barrier needed to safely quiesce the + * filesystem. * */ -STATIC int -xfs_syncsub( +int +xfs_sync( xfs_mount_t *mp, int flags) { - int error = 0; + int error; int last_error = 0; uint log_flags = XFS_LOG_FORCE; /* + * Get the Quota Manager to flush the dquots. + * + * If XFS quota support is not enabled or this filesystem + * instance does not use quotas XFS_QM_DQSYNC will always + * return zero. + */ + error = XFS_QM_DQSYNC(mp, flags); + if (error) { + /* + * If we got an IO error, we will be shutting down. + * So, there's nothing more for us to do here. + */ + ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp)); + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(error); + } + + if (flags & SYNC_IOWAIT) + xfs_filestream_flush(mp); + + /* * Sync out the log. This ensures that the log is periodically * flushed even if there is not enough activity to fill it up. */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_65 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg8S7000319 for ; Tue, 7 Oct 2008 14:42:08 -0700 X-ASG-Debug-ID: 1223415822-25a401560003-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 03E1B1B57AF6 for ; Tue, 7 Oct 2008 14:43:47 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id nWxVKxnjgjIhFENp for ; Tue, 07 Oct 2008 14:43:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287383" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:43 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLG-0001kF-6W for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:42 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/10] XFS: Kill SYNC_CLOSE Subject: [PATCH 08/10] XFS: Kill SYNC_CLOSE Date: Wed, 8 Oct 2008 08:43:37 +1100 Message-Id: <1223415819-6599-9-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415828 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- SYNC_CLOSE is only ever used and checked in conjunction with SYNC_WAIT, and this only done in one spot. The only thing this does is make XFS_bflush() calls to the data buftargs. This will happen very shortly afterwards the xfs_sync() call anyway in the unmount path via the xfs_close_devices(), so this code is redundant and can be removed. That only user of SYNC_CLOSE is now gone, so kill the flag completely. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 10 ---------- fs/xfs/linux-2.6/xfs_sync.c | 31 ++----------------------------- fs/xfs/linux-2.6/xfs_sync.h | 1 - 3 files changed, 2 insertions(+), 40 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 4d9762c..9cd49dc 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1026,16 +1026,6 @@ xfs_fs_put_super( error = xfs_unmount_flush(mp, 0); WARN_ON(error); - /* - * If we're forcing a shutdown, typically because of a media error, - * we want to make sure we invalidate dirty pages that belong to - * referenced vnodes as well. - */ - if (XFS_FORCED_SHUTDOWN(mp)) { - error = xfs_sync(mp, SYNC_WAIT | SYNC_CLOSE); - ASSERT(error != EFSCORRUPTED); - } - if (mp->m_flags & XFS_MOUNT_DMAPI) { XFS_SEND_UNMOUNT(mp, rip, DM_RIGHT_NULL, 0, 0, unmount_event_flags); diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 838070c..91a54a7 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -70,7 +70,7 @@ xfs_sync_inodes_ag( if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ - if (flags & (SYNC_DELWRI | SYNC_CLOSE)) { + if (flags & SYNC_DELWRI) { /* * We need the I/O lock if we're going to call any of * the flush/inval routines. @@ -117,7 +117,7 @@ xfs_sync_inodes_ag( } /* nothing to sync during shutdown */ - if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) { + if (XFS_FORCED_SHUTDOWN(mp)) { read_unlock(&pag->pag_ici_lock); return 0; } @@ -152,20 +152,6 @@ xfs_sync_inodes_ag( * If we need to drop the lock, insert a marker if we * have not already done so. */ - if (flags & SYNC_CLOSE) { - xfs_iunlock(ip, XFS_ILOCK_SHARED); - if (XFS_FORCED_SHUTDOWN(mp)) - xfs_tosspages(ip, 0, -1, FI_REMAPF); - else - error = xfs_flushinval_pages(ip, 0, -1, - FI_REMAPF); - /* wait for I/O on freeze */ - if (flags & SYNC_IOWAIT) - vn_iowait(ip); - - xfs_ilock(ip, XFS_ILOCK_SHARED); - } - if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { xfs_iunlock(ip, XFS_ILOCK_SHARED); error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); @@ -390,8 +376,6 @@ xfs_quiesce_data( * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to * determine if they should be flushed sync, async, or * delwri. - * SYNC_CLOSE - This flag is passed when the system is being - * unmounted. We should sync and invalidate everything. * SYNC_FSDATA - This indicates that the caller would like to make * sure the superblock is safe on disk. We can ensure * this by simply making sure the log gets flushed @@ -472,17 +456,6 @@ xfs_sync( return error; } - /* - * When shutting down, we need to insure that the AIL is pushed - * to disk or the filesystem can appear corrupt from the PROM. - */ - if ((flags & (SYNC_CLOSE|SYNC_WAIT)) == (SYNC_CLOSE|SYNC_WAIT)) { - XFS_bflush(mp->m_ddev_targp); - if (mp->m_rtdev_targp) { - XFS_bflush(mp->m_rtdev_targp); - } - } - return XFS_ERROR(last_error); } diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index fcd4040..2509db0 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -28,7 +28,6 @@ typedef struct bhv_vfs_sync_work { } bhv_vfs_sync_work_t; #define SYNC_ATTR 0x0001 /* sync attributes */ -#define SYNC_CLOSE 0x0002 /* close file system down */ #define SYNC_DELWRI 0x0004 /* look at delayed writes */ #define SYNC_WAIT 0x0008 /* wait for i/o to complete */ #define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg7gX000306 for ; Tue, 7 Oct 2008 14:42:07 -0700 X-ASG-Debug-ID: 1223415823-3db8018c0002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3AC0E129BBAC for ; Tue, 7 Oct 2008 14:43:46 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id mn7e98Eubwl16fgB for ; Tue, 07 Oct 2008 14:43:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287365" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001jz-3i for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/10] XFS: use xfs_sync_inodes rather than xfs_syncsub Subject: [PATCH 03/10] XFS: use xfs_sync_inodes rather than xfs_syncsub Date: Wed, 8 Oct 2008 08:43:32 +1100 Message-Id: <1223415819-6599-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415827 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Kill the unused arg in xfs_syncsub() and xfs_sync_inodes(). For callers of xfs_syncsub() that only want to flush inodes, replace xfs_syncsub() with direct calls to xfs_sync_inodes() as that is all that is being done with the specific flags being passed in. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 21 +++++++-------------- fs/xfs/linux-2.6/xfs_sync.h | 2 +- fs/xfs/quota/xfs_qm_syscalls.c | 2 +- fs/xfs/xfs_mount.h | 2 -- fs/xfs/xfs_vfsops.c | 14 +++++++------- 5 files changed, 16 insertions(+), 25 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 461c1dc..7e9fb52 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -117,7 +117,7 @@ xfs_sync( if (flags & SYNC_IOWAIT) xfs_filestream_flush(mp); - return xfs_syncsub(mp, flags, NULL); + return xfs_syncsub(mp, flags); } /* @@ -128,8 +128,7 @@ STATIC int xfs_sync_inodes_ag( xfs_mount_t *mp, int ag, - int flags, - int *bypassed) + int flags) { xfs_perag_t *pag = &mp->m_perag[ag]; int nr_found; @@ -260,8 +259,6 @@ xfs_sync_inodes_ag( error = xfs_iflush(ip, XFS_IFLUSH_DELWRI); else xfs_ifunlock(ip); - } else if (bypassed) { - (*bypassed)++; } } @@ -288,15 +285,12 @@ xfs_sync_inodes_ag( int xfs_sync_inodes( xfs_mount_t *mp, - int flags, - int *bypassed) + int flags) { int error; int last_error; int i; - if (bypassed) - *bypassed = 0; if (mp->m_flags & XFS_MOUNT_RDONLY) return 0; error = 0; @@ -305,7 +299,7 @@ xfs_sync_inodes( for (i = 0; i < mp->m_sb.sb_agcount; i++) { if (!mp->m_perag[i].pag_ici_init) continue; - error = xfs_sync_inodes_ag(mp, i, flags, bypassed); + error = xfs_sync_inodes_ag(mp, i, flags); if (error) last_error = error; if (error == EFSCORRUPTED) @@ -408,11 +402,10 @@ xfs_sync_fsdata( * interface as explained above under xfs_sync. * */ -int +STATIC int xfs_syncsub( xfs_mount_t *mp, - int flags, - int *bypassed) + int flags) { int error = 0; int last_error = 0; @@ -431,7 +424,7 @@ xfs_syncsub( if (flags & SYNC_BDFLUSH) xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); else - error = xfs_sync_inodes(mp, flags, bypassed); + error = xfs_sync_inodes(mp, flags); } /* diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 3746d15..2954861 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -55,7 +55,7 @@ int xfs_syncd_init(struct xfs_mount *mp); void xfs_syncd_stop(struct xfs_mount *mp); int xfs_sync(struct xfs_mount *mp, int flags); -int xfs_syncsub(struct xfs_mount *mp, int flags, int *bypassed); +int xfs_sync_inodes(struct xfs_mount *mp, int flags); void xfs_flush_inode(struct xfs_inode *ip); void xfs_flush_device(struct xfs_inode *ip); diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 4254b07..9ff28e6 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -127,7 +127,7 @@ xfs_qm_quotactl( break; case Q_XQUOTASYNC: - return (xfs_sync_inodes(mp, SYNC_DELWRI, NULL)); + return xfs_sync_inodes(mp, SYNC_DELWRI); default: break; diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index dfa307d..7e02a86 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -524,8 +524,6 @@ extern struct xfs_buf *xfs_getsb(xfs_mount_t *, int); extern int xfs_readsb(xfs_mount_t *, int); extern void xfs_freesb(xfs_mount_t *); extern int xfs_fs_writable(xfs_mount_t *); -extern int xfs_syncsub(xfs_mount_t *, int, int *); -extern int xfs_sync_inodes(xfs_mount_t *, int, int *); extern int xfs_sb_validate_fsb_count(struct xfs_sb *, __uint64_t); extern int xfs_dmops_get(struct xfs_mount *, struct xfs_mount_args *); diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 0c5ee5e..d5396d6 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -68,15 +68,15 @@ xfs_quiesce_fs( xfs_flush_buftarg(mp->m_ddev_targp, 0); xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); - /* This loop must run at least twice. - * The first instance of the loop will flush - * most meta data but that will generate more - * meta data (typically directory updates). - * Which then must be flushed and logged before - * we can write the unmount record. + /* + * This loop must run at least twice. The first instance of the loop + * will flush most meta data but that will generate more meta data + * (typically directory updates). Which then must be flushed and + * logged before we can write the unmount record. */ do { - xfs_syncsub(mp, SYNC_INODE_QUIESCE, NULL); + xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + xfs_sync_inodes(mp, SYNC_INODE_QUIESCE); pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); if (!pincount) { delay(50); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg7HF032765 for ; Tue, 7 Oct 2008 14:42:07 -0700 X-ASG-Debug-ID: 1223415822-25a401560002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0BE01B57AF6 for ; Tue, 7 Oct 2008 14:43:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 7VUXk0sC4eounKfH for ; Tue, 07 Oct 2008 14:43:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287360" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001k8-92 for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/10] XFS: make SYNC_ATTR no longer use xfs_sync Subject: [PATCH 06/10] XFS: make SYNC_ATTR no longer use xfs_sync Date: Wed, 8 Oct 2008 08:43:35 +1100 Message-Id: <1223415819-6599-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415826 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B Continue to de-multiplex xfs_sync be replacing all SYNC_ATTR callers with direct calls xfs_sync_inodes(). Add an assert into xfs_sync() to ensure we caught all the SYNC_ATTR callers. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 3 ++- fs/xfs/linux-2.6/xfs_sync.c | 23 +++++++++++------------ fs/xfs/linux-2.6/xfs_sync.h | 1 - fs/xfs/xfs_vfsops.c | 2 +- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index ab09f6a..17958b7 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -998,7 +998,8 @@ xfs_fs_put_super( int error; xfs_syncd_stop(mp); - xfs_sync(mp, SYNC_ATTR | SYNC_DELWRI); + xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + xfs_sync_inodes(mp, SYNC_ATTR|SYNC_DELWRI); #ifdef HAVE_DMAPI if (mp->m_flags & XFS_MOUNT_DMAPI) { diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 3c31137..002ccb6 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -342,9 +342,8 @@ xfs_sync_fsdata( * periodically. We also push the inodes and * superblock if we can lock them without sleeping * and they are not pinned. - * SYNC_ATTR - We need to flush the inodes. If SYNC_BDFLUSH is not - * set, then we really want to lock each inode and flush - * it. + * SYNC_ATTR - We need to flush the inodes. Now handled by direct calls + * to xfs_sync_inodes(). * SYNC_WAIT - All the flushes that take place in this call should * be synchronous. * SYNC_DELWRI - This tells us to push dirty pages associated with @@ -373,6 +372,8 @@ xfs_sync( int last_error = 0; uint log_flags = XFS_LOG_FORCE; + ASSERT(!(flags & SYNC_ATTR)); + /* * Get the Quota Manager to flush the dquots. * @@ -403,20 +404,18 @@ xfs_sync( xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - if (flags & (SYNC_ATTR|SYNC_DELWRI)) { + if (flags & SYNC_DELWRI) { if (flags & SYNC_BDFLUSH) xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); else error = xfs_sync_inodes(mp, flags); - } - - /* - * Flushing out dirty data above probably generated more - * log activity, so if this isn't vfs_sync() then flush - * the log again. - */ - if (flags & SYNC_DELWRI) + /* + * Flushing out dirty data above probably generated more + * log activity, so if this isn't vfs_sync() then flush + * the log again. + */ xfs_log_force(mp, 0, log_flags); + } if (flags & SYNC_FSDATA) { error = xfs_sync_fsdata(mp, flags); diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 2954861..5316915 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -49,7 +49,6 @@ typedef struct bhv_vfs_sync_work { * to disk (this is the main difference between a sync and a quiesce). */ #define SYNC_DATA_QUIESCE (SYNC_DELWRI|SYNC_FSDATA|SYNC_WAIT|SYNC_IOWAIT) -#define SYNC_INODE_QUIESCE (SYNC_REMOUNT|SYNC_ATTR|SYNC_WAIT) int xfs_syncd_init(struct xfs_mount *mp); void xfs_syncd_stop(struct xfs_mount *mp); diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index d5396d6..c82b955 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -76,7 +76,7 @@ xfs_quiesce_fs( */ do { xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); - xfs_sync_inodes(mp, SYNC_INODE_QUIESCE); + xfs_sync_inodes(mp, SYNC_ATTR|SYNC_WAIT); pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); if (!pincount) { delay(50); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg8cF000334 for ; Tue, 7 Oct 2008 14:42:09 -0700 X-ASG-Debug-ID: 1223415823-3db8018c0003-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AFC8E129BBAB for ; Tue, 7 Oct 2008 14:43:47 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id FekkspJbtTYDd4Av for ; Tue, 07 Oct 2008 14:43:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287393" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:44 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLH-0001kN-5e for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:43 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/10] XFS: Move remaining quiesce code. Subject: [PATCH 10/10] XFS: Move remaining quiesce code. Date: Wed, 8 Oct 2008 08:43:39 +1100 Message-Id: <1223415819-6599-11-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415828 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.50 BSF_RULE_7582B Custom Rule 7582B With all the other filesystem sync code it in xfs_sync.c including the data quiesce code, it makes sense to move the remaining quiesce code to the same place. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 6 ++-- fs/xfs/linux-2.6/xfs_sync.c | 55 ++++++++++++++++++++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_sync.h | 1 + fs/xfs/xfs_vfsops.c | 55 ------------------------------------------ fs/xfs/xfs_vfsops.h | 1 - 5 files changed, 59 insertions(+), 59 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 9cd49dc..1f9c5a9 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1212,7 +1212,7 @@ xfs_fs_remount( /* rw -> ro */ if (!(mp->m_flags & XFS_MOUNT_RDONLY) && (*flags & MS_RDONLY)) { xfs_quiesce_data(mp); - xfs_attr_quiesce(mp); + xfs_quiesce_attr(mp); mp->m_flags |= XFS_MOUNT_RDONLY; } @@ -1221,7 +1221,7 @@ xfs_fs_remount( /* * Second stage of a freeze. The data is already frozen so we only - * need to take care of themetadata. Once that's done write a dummy + * need to take care of the metadata. Once that's done write a dummy * record to dirty the log in case of a crash while frozen. */ STATIC void @@ -1230,7 +1230,7 @@ xfs_fs_lockfs( { struct xfs_mount *mp = XFS_M(sb); - xfs_attr_quiesce(mp); + xfs_quiesce_attr(mp); xfs_fs_log_dummy(mp); } diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index ed24435..b2b7082 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -357,6 +357,61 @@ xfs_quiesce_data( return error; } +STATIC void +xfs_quiesce_fs( + struct xfs_mount *mp) +{ + int count = 0, pincount; + + xfs_flush_buftarg(mp->m_ddev_targp, 0); + xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); + + /* + * This loop must run at least twice. The first instance of the loop + * will flush most meta data but that will generate more meta data + * (typically directory updates). Which then must be flushed and + * logged before we can write the unmount record. + */ + do { + xfs_sync_inodes(mp, SYNC_ATTR|SYNC_WAIT); + pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); + if (!pincount) { + delay(50); + count++; + } + } while (count < 2); +} + +/* + * Second stage of a quiesce. The data is already synced, now we have to take + * care of the metadata. New transactions are already blocked, so we need to + * wait for any remaining transactions to drain out before proceding. + */ +void +xfs_quiesce_attr( + struct xfs_mount *mp) +{ + int error = 0; + + /* wait for all modifications to complete */ + while (atomic_read(&mp->m_active_trans) > 0) + delay(100); + + /* flush inodes and push all remaining buffers out to disk */ + xfs_quiesce_fs(mp); + + ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0); + + /* Push the superblock and write an unmount record */ + error = xfs_log_sbcount(mp, 1); + if (error) + xfs_fs_cmn_err(CE_WARN, mp, + "xfs_attr_quiesce: failed to log sb changes. " + "Frozen image may not be consistent."); + xfs_log_unmount_write(mp); + xfs_unmountfs_writesb(mp); +} + /* * Enqueue a work item to be picked up by the vfs xfssyncd thread. * Doing this has two advantages: diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 4591dc0..3b49aa3 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -40,6 +40,7 @@ int xfs_sync_inodes(struct xfs_mount *mp, int flags); int xfs_sync_fsdata(struct xfs_mount *mp, int flags); int xfs_quiesce_data(struct xfs_mount *mp); +void xfs_quiesce_attr(struct xfs_mount *mp); void xfs_flush_inode(struct xfs_inode *ip); void xfs_flush_device(struct xfs_inode *ip); diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index b55a9bb..883dd0f 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -59,61 +59,6 @@ #include "xfs_sync.h" -STATIC void -xfs_quiesce_fs( - xfs_mount_t *mp) -{ - int count = 0, pincount; - - xfs_flush_buftarg(mp->m_ddev_targp, 0); - xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); - - /* - * This loop must run at least twice. The first instance of the loop - * will flush most meta data but that will generate more meta data - * (typically directory updates). Which then must be flushed and - * logged before we can write the unmount record. - */ - do { - xfs_sync_inodes(mp, SYNC_ATTR|SYNC_WAIT); - pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); - if (!pincount) { - delay(50); - count++; - } - } while (count < 2); -} - -/* - * Second stage of a quiesce. The data is already synced, now we have to take - * care of the metadata. New transactions are already blocked, so we need to - * wait for any remaining transactions to drain out before proceding. - */ -void -xfs_attr_quiesce( - xfs_mount_t *mp) -{ - int error = 0; - - /* wait for all modifications to complete */ - while (atomic_read(&mp->m_active_trans) > 0) - delay(100); - - /* flush inodes and push all remaining buffers out to disk */ - xfs_quiesce_fs(mp); - - ASSERT_ALWAYS(atomic_read(&mp->m_active_trans) == 0); - - /* Push the superblock and write an unmount record */ - error = xfs_log_sbcount(mp, 1); - if (error) - xfs_fs_cmn_err(CE_WARN, mp, - "xfs_attr_quiesce: failed to log sb changes. " - "Frozen image may not be consistent."); - xfs_log_unmount_write(mp); - xfs_unmountfs_writesb(mp); -} - /* * xfs_unmount_flush implements a set of flush operation on special * inodes, which are needed as a separate set of operations so that diff --git a/fs/xfs/xfs_vfsops.h b/fs/xfs/xfs_vfsops.h index 6701d0e..6b8e0b5 100644 --- a/fs/xfs/xfs_vfsops.h +++ b/fs/xfs/xfs_vfsops.h @@ -10,6 +10,5 @@ struct xfs_mount_args; void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, int lnnum); -void xfs_attr_quiesce(struct xfs_mount *mp); #endif /* _XFS_VFSOPS_H */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lg7GC032767 for ; Tue, 7 Oct 2008 14:42:07 -0700 X-ASG-Debug-ID: 1223415824-3db701730001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F0BB2129BBA8 for ; Tue, 7 Oct 2008 14:43:46 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id VOHdANjDjeZRx8Jr for ; Tue, 07 Oct 2008 14:43:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287362" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLE-0001kB-AX for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/10] XFS: make SYNC_DELWRI no longer use xfs_sync V2 Subject: [PATCH 07/10] XFS: make SYNC_DELWRI no longer use xfs_sync V2 Date: Wed, 8 Oct 2008 08:43:36 +1100 Message-Id: <1223415819-6599-8-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415826 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B Continue to de-multiplex xfs_sync be replacing all SYNC_DELWRI callers with direct calls functions that do the work. Isolate the data quiesce case to a function in xfs_sync.c. Isolate the FSDATA case with explicit calls to xfs_sync_fsdata(). Version 2: o Push delwri related log forces into xfs_sync_inodes(). Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 25 ++++++------------------- fs/xfs/linux-2.6/xfs_sync.c | 42 +++++++++++++++++++++++++++++++++++++++++- fs/xfs/linux-2.6/xfs_sync.h | 3 +++ fs/xfs/xfs_vfsops.c | 1 - 4 files changed, 50 insertions(+), 21 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 17958b7..4d9762c 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -998,7 +998,6 @@ xfs_fs_put_super( int error; xfs_syncd_stop(mp); - xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); xfs_sync_inodes(mp, SYNC_ATTR|SYNC_DELWRI); #ifdef HAVE_DMAPI @@ -1057,7 +1056,7 @@ xfs_fs_write_super( struct super_block *sb) { if (!(sb->s_flags & MS_RDONLY)) - xfs_sync(XFS_M(sb), SYNC_FSDATA); + xfs_sync_fsdata(XFS_M(sb), 0); sb->s_dirt = 0; } @@ -1068,7 +1067,6 @@ xfs_fs_sync_super( { struct xfs_mount *mp = XFS_M(sb); int error; - int flags; /* * Treat a sync operation like a freeze. This is to work @@ -1082,20 +1080,10 @@ xfs_fs_sync_super( * dirty the Linux inode until after the transaction I/O * completes. */ - if (wait || unlikely(sb->s_frozen == SB_FREEZE_WRITE)) { - /* - * First stage of freeze - no more writers will make progress - * now we are here, so we flush delwri and delalloc buffers - * here, then wait for all I/O to complete. Data is frozen at - * that point. Metadata is not frozen, transactions can still - * occur here so don't bother flushing the buftarg (i.e - * SYNC_QUIESCE) because it'll just get dirty again. - */ - flags = SYNC_DATA_QUIESCE; - } else - flags = SYNC_FSDATA; - - error = xfs_sync(mp, flags); + if (wait || unlikely(sb->s_frozen == SB_FREEZE_WRITE)) + error = xfs_quiesce_data(mp); + else + error = xfs_sync_fsdata(mp, 0); sb->s_dirt = 0; if (unlikely(laptop_mode)) { @@ -1233,8 +1221,7 @@ xfs_fs_remount( /* rw -> ro */ if (!(mp->m_flags & XFS_MOUNT_RDONLY) && (*flags & MS_RDONLY)) { - xfs_filestream_flush(mp); - xfs_sync(mp, SYNC_DATA_QUIESCE); + xfs_quiesce_data(mp); xfs_attr_quiesce(mp); mp->m_flags |= XFS_MOUNT_RDONLY; } diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 002ccb6..838070c 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -217,12 +217,16 @@ xfs_sync_inodes( int error; int last_error; int i; + int lflags = XFS_LOG_FORCE; if (mp->m_flags & XFS_MOUNT_RDONLY) return 0; error = 0; last_error = 0; + if (flags & SYNC_WAIT) + lflags |= XFS_LOG_SYNC; + for (i = 0; i < mp->m_sb.sb_agcount; i++) { if (!mp->m_perag[i].pag_ici_init) continue; @@ -232,6 +236,9 @@ xfs_sync_inodes( if (error == EFSCORRUPTED) break; } + if (flags & SYNC_DELWRI) + xfs_log_force(mp, 0, lflags); + return XFS_ERROR(last_error); } @@ -269,7 +276,7 @@ xfs_commit_dummy_trans( return 0; } -STATIC int +int xfs_sync_fsdata( struct xfs_mount *mp, int flags) @@ -323,6 +330,39 @@ xfs_sync_fsdata( } /* + * First stage of freeze - no more writers will make progress now we are here, + * so we flush delwri and delalloc buffers here, then wait for all I/O to + * complete. Data is frozen at that point. Metadata is not frozen, + * transactions can still occur here so don't bother flushing the buftarg (i.e + * SYNC_QUIESCE) because it'll just get dirty again. + */ +int +xfs_quiesce_data( + struct xfs_mount *mp) +{ + int error; + + /* push non-blocking */ + xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_BDFLUSH); + XFS_QM_DQSYNC(mp, SYNC_BDFLUSH); + xfs_filestream_flush(mp); + + /* push and block */ + xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_WAIT|SYNC_IOWAIT); + XFS_QM_DQSYNC(mp, SYNC_WAIT); + + /* write superblock and hoover shutdown errors */ + error = xfs_sync_fsdata(mp, 0); + + /* flush devices */ + XFS_bflush(mp->m_ddev_targp); + if (mp->m_rtdev_targp) + XFS_bflush(mp->m_rtdev_targp); + + return error; +} + +/* * xfs_sync flushes any pending I/O to file system vfsp. * * This routine is called by vfs_sync() to make sure that things make it diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 5316915..fcd4040 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -55,6 +55,9 @@ void xfs_syncd_stop(struct xfs_mount *mp); int xfs_sync(struct xfs_mount *mp, int flags); int xfs_sync_inodes(struct xfs_mount *mp, int flags); +int xfs_sync_fsdata(struct xfs_mount *mp, int flags); + +int xfs_quiesce_data(struct xfs_mount *mp); void xfs_flush_inode(struct xfs_inode *ip); void xfs_flush_device(struct xfs_inode *ip); diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index c82b955..b55a9bb 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c @@ -75,7 +75,6 @@ xfs_quiesce_fs( * logged before we can write the unmount record. */ do { - xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); xfs_sync_inodes(mp, SYNC_ATTR|SYNC_WAIT); pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); if (!pincount) { -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:42:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_65 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LgArK000348 for ; Tue, 7 Oct 2008 14:42:10 -0700 X-ASG-Debug-ID: 1223415824-3db701730002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D9F3C129BBAB for ; Tue, 7 Oct 2008 14:43:47 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id eFjxeEPGxdMN9bvY for ; Tue, 07 Oct 2008 14:43:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224287384" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:13:43 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKLG-0001kK-SG for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:43:42 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/10] XFS: Kill xfs_sync() Subject: [PATCH 09/10] XFS: Kill xfs_sync() Date: Wed, 8 Oct 2008 08:43:38 +1100 Message-Id: <1223415819-6599-10-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223415819-6599-1-git-send-email-david@fromorbit.com> References: <1223415819-6599-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223415829 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B There are no more callers to xfs_sync() now, so remove the function altogther. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 132 +++++-------------------------------------- fs/xfs/linux-2.6/xfs_sync.h | 25 +------- fs/xfs/quota/xfs_qm.c | 10 +-- fs/xfs/xfs_iget.c | 15 ++--- 4 files changed, 29 insertions(+), 153 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 91a54a7..ed24435 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -316,11 +316,21 @@ xfs_sync_fsdata( } /* - * First stage of freeze - no more writers will make progress now we are here, + * When remounting a filesystem read-only or freezing the filesystem, we have + * two phases to execute. This first phase is syncing the data before we + * quiesce the filesystem, and the second is flushing all the inodes out after + * we've waited for all the transactions created by the first phase to + * complete. The second phase ensures that the inodes are written to their + * location on disk rather than just existing in transactions in the log. This + * means after a quiesce there is no log replay required to write the inodes to + * disk (this is the main difference between a sync and a quiesce). + */ +/* + * First stage of freeze - no writers will make progress now we are here, * so we flush delwri and delalloc buffers here, then wait for all I/O to * complete. Data is frozen at that point. Metadata is not frozen, - * transactions can still occur here so don't bother flushing the buftarg (i.e - * SYNC_QUIESCE) because it'll just get dirty again. + * transactions can still occur here so don't bother flushing the buftarg + * because it'll just get dirty again. */ int xfs_quiesce_data( @@ -337,11 +347,10 @@ xfs_quiesce_data( xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_WAIT|SYNC_IOWAIT); XFS_QM_DQSYNC(mp, SYNC_WAIT); - /* write superblock and hoover shutdown errors */ + /* write superblock and hoover up shutdown errors */ error = xfs_sync_fsdata(mp, 0); - /* flush devices */ - XFS_bflush(mp->m_ddev_targp); + /* flush data-only devices */ if (mp->m_rtdev_targp) XFS_bflush(mp->m_rtdev_targp); @@ -349,117 +358,6 @@ xfs_quiesce_data( } /* - * xfs_sync flushes any pending I/O to file system vfsp. - * - * This routine is called by vfs_sync() to make sure that things make it - * out to disk eventually, on sync() system calls to flush out everything, - * and when the file system is unmounted. For the vfs_sync() case, all - * we really need to do is sync out the log to make all of our meta-data - * updates permanent (except for timestamps). For calls from pflushd(), - * dirty pages are kept moving by calling pdflush() on the inodes - * containing them. We also flush the inodes that we can lock without - * sleeping and the superblock if we can lock it without sleeping from - * vfs_sync() so that items at the tail of the log are always moving out. - * - * Flags: - * SYNC_BDFLUSH - We're being called from vfs_sync() so we don't want - * to sleep if we can help it. All we really need - * to do is ensure that the log is synced at least - * periodically. We also push the inodes and - * superblock if we can lock them without sleeping - * and they are not pinned. - * SYNC_ATTR - We need to flush the inodes. Now handled by direct calls - * to xfs_sync_inodes(). - * SYNC_WAIT - All the flushes that take place in this call should - * be synchronous. - * SYNC_DELWRI - This tells us to push dirty pages associated with - * inodes. SYNC_WAIT and SYNC_BDFLUSH are used to - * determine if they should be flushed sync, async, or - * delwri. - * SYNC_FSDATA - This indicates that the caller would like to make - * sure the superblock is safe on disk. We can ensure - * this by simply making sure the log gets flushed - * if SYNC_BDFLUSH is set, and by actually writing it - * out otherwise. - * SYNC_IOWAIT - The caller wants us to wait for all data I/O to complete - * before we return (including direct I/O). Forms the drain - * side of the write barrier needed to safely quiesce the - * filesystem. - * - */ -int -xfs_sync( - xfs_mount_t *mp, - int flags) -{ - int error; - int last_error = 0; - uint log_flags = XFS_LOG_FORCE; - - ASSERT(!(flags & SYNC_ATTR)); - - /* - * Get the Quota Manager to flush the dquots. - * - * If XFS quota support is not enabled or this filesystem - * instance does not use quotas XFS_QM_DQSYNC will always - * return zero. - */ - error = XFS_QM_DQSYNC(mp, flags); - if (error) { - /* - * If we got an IO error, we will be shutting down. - * So, there's nothing more for us to do here. - */ - ASSERT(error != EIO || XFS_FORCED_SHUTDOWN(mp)); - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(error); - } - - if (flags & SYNC_IOWAIT) - xfs_filestream_flush(mp); - - /* - * Sync out the log. This ensures that the log is periodically - * flushed even if there is not enough activity to fill it up. - */ - if (flags & SYNC_WAIT) - log_flags |= XFS_LOG_SYNC; - - xfs_log_force(mp, (xfs_lsn_t)0, log_flags); - - if (flags & SYNC_DELWRI) { - if (flags & SYNC_BDFLUSH) - xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); - else - error = xfs_sync_inodes(mp, flags); - /* - * Flushing out dirty data above probably generated more - * log activity, so if this isn't vfs_sync() then flush - * the log again. - */ - xfs_log_force(mp, 0, log_flags); - } - - if (flags & SYNC_FSDATA) { - error = xfs_sync_fsdata(mp, flags); - if (error) - last_error = error; - } - - /* - * Now check to see if the log needs a "dummy" transaction. - */ - if (!(flags & SYNC_REMOUNT) && xfs_log_need_covered(mp)) { - error = xfs_commit_dummy_trans(mp, log_flags); - if (error) - return error; - } - - return XFS_ERROR(last_error); -} - -/* * Enqueue a work item to be picked up by the vfs xfssyncd thread. * Doing this has two advantages: * - It saves on stack space, which is tight in certain situations diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 2509db0..4591dc0 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -28,31 +28,14 @@ typedef struct bhv_vfs_sync_work { } bhv_vfs_sync_work_t; #define SYNC_ATTR 0x0001 /* sync attributes */ -#define SYNC_DELWRI 0x0004 /* look at delayed writes */ -#define SYNC_WAIT 0x0008 /* wait for i/o to complete */ -#define SYNC_BDFLUSH 0x0010 /* BDFLUSH is calling -- don't block */ -#define SYNC_FSDATA 0x0020 /* flush fs data (e.g. superblocks) */ -#define SYNC_REFCACHE 0x0040 /* prune some of the nfs ref cache */ -#define SYNC_REMOUNT 0x0080 /* remount readonly, no dummy LRs */ -#define SYNC_IOWAIT 0x0100 /* wait for all I/O to complete */ - -/* - * When remounting a filesystem read-only or freezing the filesystem, - * we have two phases to execute. This first phase is syncing the data - * before we quiesce the fielsystem, and the second is flushing all the - * inodes out after we've waited for all the transactions created by - * the first phase to complete. The second phase uses SYNC_INODE_QUIESCE - * to ensure that the inodes are written to their location on disk - * rather than just existing in transactions in the log. This means - * after a quiesce there is no log replay required to write the inodes - * to disk (this is the main difference between a sync and a quiesce). - */ -#define SYNC_DATA_QUIESCE (SYNC_DELWRI|SYNC_FSDATA|SYNC_WAIT|SYNC_IOWAIT) +#define SYNC_DELWRI 0x0002 /* look at delayed writes */ +#define SYNC_WAIT 0x0004 /* wait for i/o to complete */ +#define SYNC_BDFLUSH 0x0008 /* BDFLUSH is calling -- don't block */ +#define SYNC_IOWAIT 0x0010 /* wait for all I/O to complete */ int xfs_syncd_init(struct xfs_mount *mp); void xfs_syncd_stop(struct xfs_mount *mp); -int xfs_sync(struct xfs_mount *mp, int flags); int xfs_sync_inodes(struct xfs_mount *mp, int flags); int xfs_sync_fsdata(struct xfs_mount *mp, int flags); diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 270f775..db1986a 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -987,14 +987,10 @@ xfs_qm_dqdetach( } /* - * This is called by VFS_SYNC and flags arg determines the caller, - * and its motives, as done in xfs_sync. - * - * vfs_sync: SYNC_FSDATA|SYNC_ATTR|SYNC_BDFLUSH 0x31 - * syscall sync: SYNC_FSDATA|SYNC_ATTR|SYNC_DELWRI 0x25 - * umountroot : SYNC_WAIT | SYNC_CLOSE | SYNC_ATTR | SYNC_FSDATA + * This is called to sync quotas. We can be told to use non-blocking + * semantics by either the SYNC_BDFLUSH flag or the absence of the + * SYNC_WAIT flag. */ - int xfs_qm_sync( xfs_mount_t *mp, diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 1256746..58865fe 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -431,14 +431,13 @@ xfs_ireclaim(xfs_inode_t *ip) xfs_iextract(ip); /* - * Here we do a spurious inode lock in order to coordinate with - * xfs_sync(). This is because xfs_sync() references the inodes - * in the mount list without taking references on the corresponding - * vnodes. We make that OK here by ensuring that we wait until - * the inode is unlocked in xfs_sync() before we go ahead and - * free it. We get both the regular lock and the io lock because - * the xfs_sync() code may need to drop the regular one but will - * still hold the io lock. + * Here we do a spurious inode lock in order to coordinate with inode + * cache radix tree lookups. This is because the lookup can reference + * the inodes in the cache without taking references. We make that OK + * here by ensuring that we wait until the inode is unlocked after the + * lookup before we go ahead and free it. We get both the ilock and + * the iolock because the code may need to drop the ilock one but will + * still hold the iolock. */ xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:50:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_42, J_CHICKENPOX_46,J_CHICKENPOX_56 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Loa4m003755 for ; Tue, 7 Oct 2008 14:50:37 -0700 X-ASG-Debug-ID: 1223416334-612201f90001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3D054C62C8 for ; Tue, 7 Oct 2008 14:52:16 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id FLENh6yHE5ldOAk8 for ; Tue, 07 Oct 2008 14:52:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292208" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:14 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTU-0001yZ-W5; Wed, 08 Oct 2008 08:52:12 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 4/5] Inode: Allow external list initialisation Subject: [PATCH 4/5] Inode: Allow external list initialisation Date: Wed, 8 Oct 2008 08:52:11 +1100 Message-Id: <1223416332-7026-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416336 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- To allow XFS to combine the XFS and linux inodes into a single structure, we need to drive inode lookup from the XFS inode cache, not the generic inode cache. This means that we need initialise a struct inode from a context outside alloc_inode() as it is no longer used by XFS. After inode allocation and initialisation, we need to add the inode to the superblock list, the in-use list, hash it and do some accounting. This all needs to be done with the inode_lock held and there are already several places in fs/inode.c that do this list manipulation. Factor out the common code, add a locking wrapper and export the function so ti can be called from XFS. Signed-off-by: Dave Chinner --- fs/inode.c | 67 +++++++++++++++++++++++++++++++++++---------------- include/linux/fs.h | 1 + 2 files changed, 47 insertions(+), 21 deletions(-) diff --git a/fs/inode.c b/fs/inode.c index e7ee999..fbcf6c5 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -550,6 +550,49 @@ repeat: return node ? inode : NULL; } +static unsigned long hash(struct super_block *sb, unsigned long hashval) +{ + unsigned long tmp; + + tmp = (hashval * (unsigned long)sb) ^ (GOLDEN_RATIO_PRIME + hashval) / + L1_CACHE_BYTES; + tmp = tmp ^ ((tmp ^ GOLDEN_RATIO_PRIME) >> I_HASHBITS); + return tmp & I_HASHMASK; +} + +static inline void +__inode_add_to_lists(struct super_block *sb, struct hlist_head *head, + struct inode *inode) +{ + inodes_stat.nr_inodes++; + list_add(&inode->i_list, &inode_in_use); + list_add(&inode->i_sb_list, &sb->s_inodes); + if (head) + hlist_add_head(&inode->i_hash, head); +} + +/** + * inode_add_to_lists - add a new inode to relevant lists + * @sb - superblock inode belongs to. + * @inode - inode to mark in use + * + * When an inode is allocated it needs to be accounted for, added to the in use + * list, the owning superblock and the inode hash. This needs to be done under + * the inode_lock, so export a function to do this rather than the inode lock + * itself. We calculate the hash list to add to here so it is all internal + * which requires the caller to have already set up the inode number in the + * inode to add. + */ +void inode_add_to_lists(struct super_block *sb, struct inode *inode) +{ + struct hlist_head *head = inode_hashtable + hash(sb, inode->i_ino); + + spin_lock(&inode_lock); + __inode_add_to_lists(sb, head, inode); + spin_unlock(&inode_lock); +} +EXPORT_SYMBOL_GPL(inode_add_to_lists); + /** * new_inode - obtain an inode * @sb: superblock @@ -577,9 +620,7 @@ struct inode *new_inode(struct super_block *sb) inode = alloc_inode(sb); if (inode) { spin_lock(&inode_lock); - inodes_stat.nr_inodes++; - list_add(&inode->i_list, &inode_in_use); - list_add(&inode->i_sb_list, &sb->s_inodes); + __inode_add_to_lists(sb, NULL, inode); inode->i_ino = ++last_ino; inode->i_state = 0; spin_unlock(&inode_lock); @@ -638,10 +679,7 @@ static struct inode * get_new_inode(struct super_block *sb, struct hlist_head *h if (set(inode, data)) goto set_failed; - inodes_stat.nr_inodes++; - list_add(&inode->i_list, &inode_in_use); - list_add(&inode->i_sb_list, &sb->s_inodes); - hlist_add_head(&inode->i_hash, head); + __inode_add_to_lists(sb, head, inode); inode->i_state = I_LOCK|I_NEW; spin_unlock(&inode_lock); @@ -687,10 +725,7 @@ static struct inode * get_new_inode_fast(struct super_block *sb, struct hlist_he old = find_inode_fast(sb, head, ino); if (!old) { inode->i_ino = ino; - inodes_stat.nr_inodes++; - list_add(&inode->i_list, &inode_in_use); - list_add(&inode->i_sb_list, &sb->s_inodes); - hlist_add_head(&inode->i_hash, head); + __inode_add_to_lists(sb, head, inode); inode->i_state = I_LOCK|I_NEW; spin_unlock(&inode_lock); @@ -714,16 +749,6 @@ static struct inode * get_new_inode_fast(struct super_block *sb, struct hlist_he return inode; } -static unsigned long hash(struct super_block *sb, unsigned long hashval) -{ - unsigned long tmp; - - tmp = (hashval * (unsigned long)sb) ^ (GOLDEN_RATIO_PRIME + hashval) / - L1_CACHE_BYTES; - tmp = tmp ^ ((tmp ^ GOLDEN_RATIO_PRIME) >> I_HASHBITS); - return tmp & I_HASHMASK; -} - /** * iunique - get a unique inode number * @sb: superblock diff --git a/include/linux/fs.h b/include/linux/fs.h index ce55983..cf65c71 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1813,6 +1813,7 @@ extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin); extern struct inode * inode_init_always(struct super_block *, struct inode *); extern void inode_init_once(struct inode *); +extern void inode_add_to_lists(struct super_block *, struct inode *); extern void iput(struct inode *); extern struct inode * igrab(struct inode *); extern ino_t iunique(struct super_block *, ino_t); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:50:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LoZZ6003748 for ; Tue, 7 Oct 2008 14:50:36 -0700 X-ASG-Debug-ID: 1223416334-612201f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CBD564C62C8 for ; Tue, 7 Oct 2008 14:52:15 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id h1Jr82b16b33OsxE for ; Tue, 07 Oct 2008 14:52:15 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292201" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:13 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTU-0001yT-SO; Wed, 08 Oct 2008 08:52:12 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 2/5] XFS: Never call mark_inode_dirty_sync() directly Subject: [PATCH 2/5] XFS: Never call mark_inode_dirty_sync() directly Date: Wed, 8 Oct 2008 08:52:09 +1100 Message-Id: <1223416332-7026-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416335 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Once the Linux inode and the XFS inode are combined, we cannot rely on just check if the linux inode exists as a method of determining if it is valid or not. Hence we should always call xfs_mark_inode_dirty_sync() instead as it does the correct checks to determine if the liinux inode is in a valid state or not. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_aops.c | 2 +- fs/xfs/linux-2.6/xfs_iops.c | 2 +- fs/xfs/linux-2.6/xfs_super.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index a44d68e..8fbc97d 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -191,7 +191,7 @@ xfs_setfilesize( ip->i_d.di_size = isize; ip->i_update_core = 1; ip->i_update_size = 1; - mark_inode_dirty_sync(ioend->io_inode); + xfs_mark_inode_dirty_sync(ip); } xfs_iunlock(ip, XFS_ILOCK_EXCL); diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 095d271..3bfb3c0 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -128,7 +128,7 @@ xfs_ichgtime( if (sync_it) { SYNCHRONIZE(); ip->i_update_core = 1; - mark_inode_dirty_sync(inode); + xfs_mark_inode_dirty_sync(ip); } } diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 1f9c5a9..7474859 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -948,7 +948,7 @@ xfs_fs_write_inode( * it dirty again so we'll try again later. */ if (error) - mark_inode_dirty_sync(inode); + xfs_mark_inode_dirty_sync(XFS_I(inode)); return -error; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:50:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_46, J_CHICKENPOX_56 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lobko003768 for ; Tue, 7 Oct 2008 14:50:38 -0700 X-ASG-Debug-ID: 1223416335-6a6001800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 675644C62D1 for ; Tue, 7 Oct 2008 14:52:16 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id pGJ1BI8o1sqWwGUX for ; Tue, 07 Oct 2008 14:52:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292203" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:13 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTU-0001yV-U4; Wed, 08 Oct 2008 08:52:12 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 3/5] Inode: Allow external initialisers Subject: [PATCH 3/5] Inode: Allow external initialisers Date: Wed, 8 Oct 2008 08:52:10 +1100 Message-Id: <1223416332-7026-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416337 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- To allow XFS to combine the XFS and linux inodes into a single structure, we need to drive inode lookup from the XFS inode cache, not the generic inode cache. This means that we need initialise a struct inode from a context outside alloc_inode() as it is no longer used by XFS. Factor and export the struct inode initialisation code from alloc_inode() to inode_init_always() as a counterpart to inode_init_once(). i.e. we have to call this init function for each inode instantiation (always), as opposed inode_init_once() which is only called on slab object instantiation (once). Signed-off-by: Dave Chinner --- fs/inode.c | 152 +++++++++++++++++++++++++++++----------------------- include/linux/fs.h | 1 + 2 files changed, 85 insertions(+), 68 deletions(-) diff --git a/fs/inode.c b/fs/inode.c index 0487ddb..e7ee999 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -108,84 +108,100 @@ static void wake_up_inode(struct inode *inode) wake_up_bit(&inode->i_state, __I_LOCK); } -static struct inode *alloc_inode(struct super_block *sb) +/** + * inode_init_always - perform inode structure intialisation + * @sb - superblock inode belongs to. + * @inode - inode to initialise + * + * These are initializations that need to be done on every inode + * allocation as the fields are not initialised by slab allocation. + */ +struct inode *inode_init_always(struct super_block *sb, struct inode *inode) { static const struct address_space_operations empty_aops; static struct inode_operations empty_iops; static const struct file_operations empty_fops; - struct inode *inode; - - if (sb->s_op->alloc_inode) - inode = sb->s_op->alloc_inode(sb); - else - inode = (struct inode *) kmem_cache_alloc(inode_cachep, GFP_KERNEL); - if (inode) { - struct address_space * const mapping = &inode->i_data; - - inode->i_sb = sb; - inode->i_blkbits = sb->s_blocksize_bits; - inode->i_flags = 0; - atomic_set(&inode->i_count, 1); - inode->i_op = &empty_iops; - inode->i_fop = &empty_fops; - inode->i_nlink = 1; - atomic_set(&inode->i_writecount, 0); - inode->i_size = 0; - inode->i_blocks = 0; - inode->i_bytes = 0; - inode->i_generation = 0; + struct address_space * const mapping = &inode->i_data; + + inode->i_sb = sb; + inode->i_blkbits = sb->s_blocksize_bits; + inode->i_flags = 0; + atomic_set(&inode->i_count, 1); + inode->i_op = &empty_iops; + inode->i_fop = &empty_fops; + inode->i_nlink = 1; + atomic_set(&inode->i_writecount, 0); + inode->i_size = 0; + inode->i_blocks = 0; + inode->i_bytes = 0; + inode->i_generation = 0; #ifdef CONFIG_QUOTA - memset(&inode->i_dquot, 0, sizeof(inode->i_dquot)); + memset(&inode->i_dquot, 0, sizeof(inode->i_dquot)); #endif - inode->i_pipe = NULL; - inode->i_bdev = NULL; - inode->i_cdev = NULL; - inode->i_rdev = 0; - inode->dirtied_when = 0; - if (security_inode_alloc(inode)) { - if (inode->i_sb->s_op->destroy_inode) - inode->i_sb->s_op->destroy_inode(inode); - else - kmem_cache_free(inode_cachep, (inode)); - return NULL; - } + inode->i_pipe = NULL; + inode->i_bdev = NULL; + inode->i_cdev = NULL; + inode->i_rdev = 0; + inode->dirtied_when = 0; + if (security_inode_alloc(inode)) { + if (inode->i_sb->s_op->destroy_inode) + inode->i_sb->s_op->destroy_inode(inode); + else + kmem_cache_free(inode_cachep, (inode)); + return NULL; + } - spin_lock_init(&inode->i_lock); - lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); + spin_lock_init(&inode->i_lock); + lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); - mutex_init(&inode->i_mutex); - lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key); + mutex_init(&inode->i_mutex); + lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key); - init_rwsem(&inode->i_alloc_sem); - lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key); + init_rwsem(&inode->i_alloc_sem); + lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key); - mapping->a_ops = &empty_aops; - mapping->host = inode; - mapping->flags = 0; - mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE); - mapping->assoc_mapping = NULL; - mapping->backing_dev_info = &default_backing_dev_info; - mapping->writeback_index = 0; + mapping->a_ops = &empty_aops; + mapping->host = inode; + mapping->flags = 0; + mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE); + mapping->assoc_mapping = NULL; + mapping->backing_dev_info = &default_backing_dev_info; + mapping->writeback_index = 0; - /* - * If the block_device provides a backing_dev_info for client - * inodes then use that. Otherwise the inode share the bdev's - * backing_dev_info. - */ - if (sb->s_bdev) { - struct backing_dev_info *bdi; + /* + * If the block_device provides a backing_dev_info for client + * inodes then use that. Otherwise the inode share the bdev's + * backing_dev_info. + */ + if (sb->s_bdev) { + struct backing_dev_info *bdi; - bdi = sb->s_bdev->bd_inode_backing_dev_info; - if (!bdi) - bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; - mapping->backing_dev_info = bdi; - } - inode->i_private = NULL; - inode->i_mapping = mapping; + bdi = sb->s_bdev->bd_inode_backing_dev_info; + if (!bdi) + bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; + mapping->backing_dev_info = bdi; } + inode->i_private = NULL; + inode->i_mapping = mapping; + return inode; } +EXPORT_SYMBOL(inode_init_always); + +static struct inode *alloc_inode(struct super_block *sb) +{ + struct inode *inode; + + if (sb->s_op->alloc_inode) + inode = sb->s_op->alloc_inode(sb); + else + inode = kmem_cache_alloc(inode_cachep, GFP_KERNEL); + + if (inode) + return inode_init_always(sb, inode); + return NULL; +} void destroy_inode(struct inode *inode) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 580b513..ce55983 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1811,6 +1811,7 @@ extern loff_t default_llseek(struct file *file, loff_t offset, int origin); extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin); +extern struct inode * inode_init_always(struct super_block *, struct inode *); extern void inode_init_once(struct inode *); extern void iput(struct inode *); extern struct inode * igrab(struct inode *); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:50:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Loc7e003780 for ; Tue, 7 Oct 2008 14:50:38 -0700 X-ASG-Debug-ID: 1223416336-73ca00fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 84A6C4C62D1 for ; Tue, 7 Oct 2008 14:52:17 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id SBW5x4XIXdWYIejb for ; Tue, 07 Oct 2008 14:52:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292206" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:13 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTU-0001yR-Qa; Wed, 08 Oct 2008 08:52:12 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 1/5] XFS: factor xfs_iget_core() into hit and miss cases Subject: [PATCH 1/5] XFS: factor xfs_iget_core() into hit and miss cases Date: Wed, 8 Oct 2008 08:52:08 +1100 Message-Id: <1223416332-7026-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416338 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- There are really two cases in xfs_iget_core(). The first is the cache hit case, the second is the miss case. They share very little code, and hence can easily be factored out into separate functions. This makes the code much easier to understand and subsequently modify. Signed-off-by: Dave Chinner --- fs/xfs/xfs_iget.c | 348 +++++++++++++++++++++++++++++------------------------ 1 files changed, 191 insertions(+), 157 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 58865fe..b2539b1 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -40,161 +40,119 @@ #include "xfs_utils.h" /* - * Look up an inode by number in the given file system. - * The inode is looked up in the cache held in each AG. - * If the inode is found in the cache, attach it to the provided - * vnode. - * - * If it is not in core, read it in from the file system's device, - * add it to the cache and attach the provided vnode. - * - * The inode is locked according to the value of the lock_flags parameter. - * This flag parameter indicates how and if the inode's IO lock and inode lock - * should be taken. - * - * mp -- the mount point structure for the current file system. It points - * to the inode hash table. - * tp -- a pointer to the current transaction if there is one. This is - * simply passed through to the xfs_iread() call. - * ino -- the number of the inode desired. This is the unique identifier - * within the file system for the inode being requested. - * lock_flags -- flags indicating how to lock the inode. See the comment - * for xfs_ilock() for a list of valid values. - * bno -- the block number starting the buffer containing the inode, - * if known (as by bulkstat), else 0. + * Check the validity of the inode we just found it the cache */ -STATIC int -xfs_iget_core( - struct inode *inode, - xfs_mount_t *mp, - xfs_trans_t *tp, - xfs_ino_t ino, - uint flags, - uint lock_flags, - xfs_inode_t **ipp, - xfs_daddr_t bno) +static int +xfs_iget_cache_hit( + struct inode *inode, + struct xfs_perag *pag, + struct xfs_inode *ip, + int flags, + int lock_flags) __releases(pag->pag_ici_lock) { - struct inode *old_inode; - xfs_inode_t *ip; - int error; - unsigned long first_index, mask; - xfs_perag_t *pag; - xfs_agino_t agino; + struct xfs_mount *mp = ip->i_mount; + struct inode *old_inode; + int error = 0; - /* the radix tree exists only in inode capable AGs */ - if (XFS_INO_TO_AGNO(mp, ino) >= mp->m_maxagi) - return EINVAL; - - /* get the perag structure and ensure that it's inode capable */ - pag = xfs_get_perag(mp, ino); - if (!pag->pagi_inodeok) - return EINVAL; - ASSERT(pag->pag_ici_init); - agino = XFS_INO_TO_AGINO(mp, ino); - -again: - read_lock(&pag->pag_ici_lock); - ip = radix_tree_lookup(&pag->pag_ici_root, agino); + /* + * If INEW is set this inode is being set up + * Pause and try again. + */ + if (xfs_iflags_test(ip, XFS_INEW)) { + error = EAGAIN; + XFS_STATS_INC(xs_ig_frecycle); + goto out_error; + } - if (ip != NULL) { + old_inode = ip->i_vnode; + if (old_inode == NULL) { /* - * If INEW is set this inode is being set up + * If IRECLAIM is set this inode is + * on its way out of the system, * we need to pause and try again. */ - if (xfs_iflags_test(ip, XFS_INEW)) { - read_unlock(&pag->pag_ici_lock); - delay(1); + if (xfs_iflags_test(ip, XFS_IRECLAIM)) { + error = EAGAIN; XFS_STATS_INC(xs_ig_frecycle); + goto out_error; + } + ASSERT(xfs_iflags_test(ip, XFS_IRECLAIMABLE)); - goto again; + /* + * If lookup is racing with unlink, then we + * should return an error immediately so we + * don't remove it from the reclaim list and + * potentially leak the inode. + */ + if ((ip->i_d.di_mode == 0) && + !(flags & XFS_IGET_CREATE)) { + error = ENOENT; + goto out_error; } + xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); - old_inode = ip->i_vnode; - if (old_inode == NULL) { - /* - * If IRECLAIM is set this inode is - * on its way out of the system, - * we need to pause and try again. - */ - if (xfs_iflags_test(ip, XFS_IRECLAIM)) { - read_unlock(&pag->pag_ici_lock); - delay(1); - XFS_STATS_INC(xs_ig_frecycle); - - goto again; - } - ASSERT(xfs_iflags_test(ip, XFS_IRECLAIMABLE)); - - /* - * If lookup is racing with unlink, then we - * should return an error immediately so we - * don't remove it from the reclaim list and - * potentially leak the inode. - */ - if ((ip->i_d.di_mode == 0) && - !(flags & XFS_IGET_CREATE)) { - read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); - return ENOENT; - } - - xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); - - XFS_STATS_INC(xs_ig_found); - xfs_iflags_clear(ip, XFS_IRECLAIMABLE); - read_unlock(&pag->pag_ici_lock); - - XFS_MOUNT_ILOCK(mp); - list_del_init(&ip->i_reclaim); - XFS_MOUNT_IUNLOCK(mp); - - goto finish_inode; - - } else if (inode != old_inode) { - /* The inode is being torn down, pause and - * try again. - */ - if (old_inode->i_state & (I_FREEING | I_CLEAR)) { - read_unlock(&pag->pag_ici_lock); - delay(1); - XFS_STATS_INC(xs_ig_frecycle); - - goto again; - } + xfs_iflags_clear(ip, XFS_IRECLAIMABLE); + read_unlock(&pag->pag_ici_lock); + + XFS_MOUNT_ILOCK(mp); + list_del_init(&ip->i_reclaim); + XFS_MOUNT_IUNLOCK(mp); + + } else if (inode != old_inode) { + /* The inode is being torn down, pause and + * try again. + */ + if (old_inode->i_state & (I_FREEING | I_CLEAR)) { + error = EAGAIN; + XFS_STATS_INC(xs_ig_frecycle); + goto out_error; + } /* Chances are the other vnode (the one in the inode) is being torn * down right now, and we landed on top of it. Question is, what do * we do? Unhook the old inode and hook up the new one? */ - cmn_err(CE_PANIC, - "xfs_iget_core: ambiguous vns: vp/0x%p, invp/0x%p", - old_inode, inode); - } - - /* - * Inode cache hit - */ + cmn_err(CE_PANIC, + "xfs_iget_core: ambiguous vns: vp/0x%p, invp/0x%p", + old_inode, inode); + } else { read_unlock(&pag->pag_ici_lock); - XFS_STATS_INC(xs_ig_found); + } -finish_inode: - if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { - xfs_put_perag(mp, pag); - return ENOENT; - } + if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { + error = ENOENT; + goto out; + } - if (lock_flags != 0) - xfs_ilock(ip, lock_flags); + if (lock_flags != 0) + xfs_ilock(ip, lock_flags); - xfs_iflags_clear(ip, XFS_ISTALE); - xfs_itrace_exit_tag(ip, "xfs_iget.found"); - goto return_ip; - } + xfs_iflags_clear(ip, XFS_ISTALE); + xfs_itrace_exit_tag(ip, "xfs_iget.found"); + XFS_STATS_INC(xs_ig_found); + return 0; - /* - * Inode cache miss - */ +out_error: read_unlock(&pag->pag_ici_lock); - XFS_STATS_INC(xs_ig_missed); +out: + return error; +} + + +static int +xfs_iget_cache_miss( + struct xfs_mount *mp, + struct xfs_perag *pag, + xfs_trans_t *tp, + xfs_ino_t ino, + struct xfs_inode **ipp, + xfs_daddr_t bno, + int flags, + int lock_flags) __releases(pag->pag_ici_lock) +{ + struct xfs_inode *ip; + int error; + unsigned long first_index, mask; + xfs_agino_t agino = XFS_INO_TO_AGINO(mp, ino); /* * Read the disk inode attributes into a new inode structure and get @@ -202,17 +160,14 @@ finish_inode: */ error = xfs_iread(mp, tp, ino, &ip, bno, (flags & XFS_IGET_BULKSTAT) ? XFS_IMAP_BULKSTAT : 0); - if (error) { - xfs_put_perag(mp, pag); + if (error) return error; - } xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { - xfs_idestroy(ip); - xfs_put_perag(mp, pag); - return ENOENT; + error = ENOENT; + goto out_destroy; } /* @@ -220,9 +175,8 @@ finish_inode: * write spinlock. */ if (radix_tree_preload(GFP_KERNEL)) { - xfs_idestroy(ip); - delay(1); - goto again; + error = EAGAIN; + goto out_destroy; } if (lock_flags) @@ -231,32 +185,104 @@ finish_inode: mask = ~(((XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog)) - 1); first_index = agino & mask; write_lock(&pag->pag_ici_lock); - /* - * insert the new inode - */ + + /* insert the new inode */ error = radix_tree_insert(&pag->pag_ici_root, agino, ip); if (unlikely(error)) { - BUG_ON(error != -EEXIST); - write_unlock(&pag->pag_ici_lock); - radix_tree_preload_end(); - if (lock_flags) - xfs_iunlock(ip, lock_flags); - xfs_idestroy(ip); + WARN_ON(error != -EEXIST); XFS_STATS_INC(xs_ig_dup); - goto again; + error = EAGAIN; + goto out_unlock; } - /* - * These values _must_ be set before releasing the radix tree lock! - */ + /* These values _must_ be set before releasing the radix tree lock! */ ip->i_udquot = ip->i_gdquot = NULL; xfs_iflags_set(ip, XFS_INEW); write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); + *ipp = ip; + return 0; + +out_unlock: + write_unlock(&pag->pag_ici_lock); + radix_tree_preload_end(); +out_destroy: + xfs_idestroy(ip); + return error; +} + +/* + * Look up an inode by number in the given file system. + * The inode is looked up in the cache held in each AG. + * If the inode is found in the cache, attach it to the provided + * vnode. + * + * If it is not in core, read it in from the file system's device, + * add it to the cache and attach the provided vnode. + * + * The inode is locked according to the value of the lock_flags parameter. + * This flag parameter indicates how and if the inode's IO lock and inode lock + * should be taken. + * + * mp -- the mount point structure for the current file system. It points + * to the inode hash table. + * tp -- a pointer to the current transaction if there is one. This is + * simply passed through to the xfs_iread() call. + * ino -- the number of the inode desired. This is the unique identifier + * within the file system for the inode being requested. + * lock_flags -- flags indicating how to lock the inode. See the comment + * for xfs_ilock() for a list of valid values. + * bno -- the block number starting the buffer containing the inode, + * if known (as by bulkstat), else 0. + */ +STATIC int +xfs_iget_core( + struct inode *inode, + xfs_mount_t *mp, + xfs_trans_t *tp, + xfs_ino_t ino, + uint flags, + uint lock_flags, + xfs_inode_t **ipp, + xfs_daddr_t bno) +{ + xfs_inode_t *ip; + int error; + xfs_perag_t *pag; + xfs_agino_t agino; + + /* the radix tree exists only in inode capable AGs */ + if (XFS_INO_TO_AGNO(mp, ino) >= mp->m_maxagi) + return EINVAL; + + /* get the perag structure and ensure that it's inode capable */ + pag = xfs_get_perag(mp, ino); + if (!pag->pagi_inodeok) + return EINVAL; + ASSERT(pag->pag_ici_init); + agino = XFS_INO_TO_AGINO(mp, ino); + +again: + error = 0; + read_lock(&pag->pag_ici_lock); + ip = radix_tree_lookup(&pag->pag_ici_root, agino); + + if (ip) { + error = xfs_iget_cache_hit(inode, pag, ip, flags, lock_flags); + if (error) + goto out_error_or_again; + } else { + read_unlock(&pag->pag_ici_lock); + XFS_STATS_INC(xs_ig_missed); + + error = xfs_iget_cache_miss(mp, pag, tp, ino, &ip, bno, + flags, lock_flags); + if (error) + goto out_error_or_again; + } xfs_put_perag(mp, pag); - return_ip: ASSERT(ip->i_df.if_ext_max == XFS_IFORK_DSIZE(ip) / sizeof(xfs_bmbt_rec_t)); @@ -276,6 +302,14 @@ finish_inode: if (ip->i_d.di_mode != 0) xfs_setup_inode(ip); return 0; + +out_error_or_again: + if (error == EAGAIN) { + delay(1); + goto again; + } + xfs_put_perag(mp, pag); + return error; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:50:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lodee003791 for ; Tue, 7 Oct 2008 14:50:39 -0700 X-ASG-Debug-ID: 1223416334-612201f90002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B602C4C62D4 for ; Tue, 7 Oct 2008 14:52:17 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id d5d4Yl4dfTKSSmtG for ; Tue, 07 Oct 2008 14:52:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292210" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:14 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTU-0001yP-On; Wed, 08 Oct 2008 08:52:12 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 0/5] Combine the XFS and Linux inode structures V2 Subject: [PATCH 0/5] Combine the XFS and Linux inode structures V2 Date: Wed, 8 Oct 2008 08:52:07 +1100 Message-Id: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416339 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- XFS currently has to deal with two separate inode lifecycles which makes for complexity in inode lookups and reclaim. We also have the problem of not always having a linux inode around when it might be useful to have it. To avoid these lifecycle problems, this series embedѕ the linux inode inside the struct xfs_inode and changes the way we reference the two inodes. We can no longer check for a null linux inode - instead we have to check to see if it is valid or not by checking either the linux inode or xfs inode state flags. While this means that inodes waiting for reclaim use more memory, this is not the common state for inodes and they will soon be completely freed so the additional memeory use in this state is only temporary. This combining of the inodes simplifies the inode and reclaim logic, making it possible to do reclaim via radix tree tags (an upcoming patch series) and to be able to use RCU locking on the radix trees. The fact that we don't have a simple mechanism to determine the reclaim state of the inode makes RCU locking very complex, and this complexity is removed by having a combined inode structure. This patch series also changes the way XFS caches inodes. It no longer uses the linux inode cache as the primary lookup cache - instead we rely solely on the XFS inode caches. This avoids the inode_lock in lookups that hit the cache - we should get much better parallelism out of inode lookup than we currently do now. In future, we should also be able to cull duplicate fields out of the xfs and linux inodes reducing the overall memory usage of the active inode cache. This provides scope for continuing to reduce the memory footprint of the XFS inode cache. Version 2: o clean up based on review comments o pull preparation patches into series now there's only two uncommitted patches. From owner-xfs@oss.sgi.com Tue Oct 7 14:50:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lod6H003792 for ; Tue, 7 Oct 2008 14:50:40 -0700 X-ASG-Debug-ID: 1223416335-6a6001800001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 53B844C62D3 for ; Tue, 7 Oct 2008 14:52:17 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id qbmTvdVfKvbBVSiS for ; Tue, 07 Oct 2008 14:52:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224292209" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:22:14 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKTV-0001yb-1r; Wed, 08 Oct 2008 08:52:13 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 5/5] XFS: Combine the XFS and Linux inodes V3 Subject: [PATCH 5/5] XFS: Combine the XFS and Linux inodes V3 Date: Wed, 8 Oct 2008 08:52:12 +1100 Message-Id: <1223416332-7026-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416339 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- To avoid issues with different lifecycles of XFS and Linux inodes, embedd the linux inode inside the XFS inode. This means that the linux inode has the same lifecycle as the XFS inode, even when it has been released by the OS. XFS inodes don't live much longer than this (a short stint in reclaim at most), so there isn't significant memory usage penalties here. Version 3 o kill xfs_icount() Version 2 o remove unused commented out code from xfs_iget(). o kill useless cast in VFS_I() Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_iops.c | 17 +++- fs/xfs/linux-2.6/xfs_super.c | 47 +++++------- fs/xfs/linux-2.6/xfs_vnode.c | 15 +---- fs/xfs/xfs_iget.c | 167 +++++++++--------------------------------- fs/xfs/xfs_inode.c | 43 ++++++++--- fs/xfs/xfs_inode.h | 9 ++- fs/xfs/xfs_vnodeops.c | 13 +--- 7 files changed, 108 insertions(+), 203 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 3bfb3c0..37bb101 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -64,14 +64,14 @@ xfs_synchronize_atime( { struct inode *inode = VFS_I(ip); - if (inode) { + if (!(inode->i_state & I_CLEAR)) { ip->i_d.di_atime.t_sec = (__int32_t)inode->i_atime.tv_sec; ip->i_d.di_atime.t_nsec = (__int32_t)inode->i_atime.tv_nsec; } } /* - * If the linux inode exists, mark it dirty. + * If the linux inode is valid, mark it dirty. * Used when commiting a dirty inode into a transaction so that * the inode will get written back by the linux code */ @@ -81,7 +81,7 @@ xfs_mark_inode_dirty_sync( { struct inode *inode = VFS_I(ip); - if (inode) + if (!(inode->i_state & (I_WILL_FREE|I_FREEING|I_CLEAR))) mark_inode_dirty_sync(inode); } @@ -766,12 +766,21 @@ xfs_diflags_to_iflags( * When reading existing inodes from disk this is called directly * from xfs_iget, when creating a new inode it is called from * xfs_ialloc after setting up the inode. + * + * We are always called with an uninitialised linux inode here. + * We need to initialise the necessary fields and take a reference + * on it. */ void xfs_setup_inode( struct xfs_inode *ip) { - struct inode *inode = ip->i_vnode; + struct inode *inode = &ip->i_vnode; + + inode->i_ino = ip->i_ino; + inode->i_state = I_NEW|I_LOCK; + inode_add_to_lists(ip->i_mount->m_super, inode); + ASSERT(atomic_read(&inode->i_count) == 1); inode->i_mode = ip->i_d.di_mode; inode->i_nlink = ip->i_d.di_nlink; diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 7474859..b893f8c 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -72,7 +72,6 @@ static struct quotactl_ops xfs_quotactl_operations; static struct super_operations xfs_super_operations; -static kmem_zone_t *xfs_vnode_zone; static kmem_zone_t *xfs_ioend_zone; mempool_t *xfs_ioend_pool; @@ -867,29 +866,24 @@ xfsaild_stop( } - +/* Catch misguided souls that try to use this interface on XFS */ STATIC struct inode * xfs_fs_alloc_inode( struct super_block *sb) { - return kmem_zone_alloc(xfs_vnode_zone, KM_SLEEP); + BUG(); } +/* + * we need to provide an empty inode free function to prevent + * the generic code from trying to free our combined inode. + */ STATIC void xfs_fs_destroy_inode( - struct inode *inode) -{ - kmem_zone_free(xfs_vnode_zone, inode); -} - -STATIC void -xfs_fs_inode_init_once( - void *vnode) + struct inode *inode) { - inode_init_once((struct inode *)vnode); } - /* * Slab object creation initialisation for the XFS inode. * This covers only the idempotent fields in the XFS inode; @@ -898,13 +892,18 @@ xfs_fs_inode_init_once( * fields in the xfs inode that left in the initialise state * when freeing the inode. */ -void -xfs_inode_init_once( +STATIC void +xfs_fs_inode_init_once( void *inode) { struct xfs_inode *ip = inode; memset(ip, 0, sizeof(struct xfs_inode)); + + /* vfs inode */ + inode_init_once(VFS_I(ip)); + + /* xfs inode */ atomic_set(&ip->i_iocount, 0); atomic_set(&ip->i_pincount, 0); spin_lock_init(&ip->i_flags_lock); @@ -975,8 +974,6 @@ xfs_fs_clear_inode( if (xfs_reclaim(ip)) panic("%s: cannot reclaim 0x%p\n", __func__, inode); } - - ASSERT(XFS_I(inode) == NULL); } STATIC void @@ -1838,16 +1835,10 @@ xfs_free_trace_bufs(void) STATIC int __init xfs_init_zones(void) { - xfs_vnode_zone = kmem_zone_init_flags(sizeof(struct inode), "xfs_vnode", - KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | - KM_ZONE_SPREAD, - xfs_fs_inode_init_once); - if (!xfs_vnode_zone) - goto out; xfs_ioend_zone = kmem_zone_init(sizeof(xfs_ioend_t), "xfs_ioend"); if (!xfs_ioend_zone) - goto out_destroy_vnode_zone; + goto out; xfs_ioend_pool = mempool_create_slab_pool(4 * MAX_BUF_PER_PAGE, xfs_ioend_zone); @@ -1863,6 +1854,7 @@ xfs_init_zones(void) "xfs_bmap_free_item"); if (!xfs_bmap_free_item_zone) goto out_destroy_log_ticket_zone; + xfs_btree_cur_zone = kmem_zone_init(sizeof(xfs_btree_cur_t), "xfs_btree_cur"); if (!xfs_btree_cur_zone) @@ -1910,8 +1902,8 @@ xfs_init_zones(void) xfs_inode_zone = kmem_zone_init_flags(sizeof(xfs_inode_t), "xfs_inode", - KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | - KM_ZONE_SPREAD, xfs_inode_init_once); + KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | KM_ZONE_SPREAD, + xfs_fs_inode_init_once); if (!xfs_inode_zone) goto out_destroy_efi_zone; @@ -1959,8 +1951,6 @@ xfs_init_zones(void) mempool_destroy(xfs_ioend_pool); out_destroy_ioend_zone: kmem_zone_destroy(xfs_ioend_zone); - out_destroy_vnode_zone: - kmem_zone_destroy(xfs_vnode_zone); out: return -ENOMEM; } @@ -1985,7 +1975,6 @@ xfs_destroy_zones(void) kmem_zone_destroy(xfs_log_ticket_zone); mempool_destroy(xfs_ioend_pool); kmem_zone_destroy(xfs_ioend_zone); - kmem_zone_destroy(xfs_vnode_zone); } diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c index dceb6db..933f89a 100644 --- a/fs/xfs/linux-2.6/xfs_vnode.c +++ b/fs/xfs/linux-2.6/xfs_vnode.c @@ -84,25 +84,12 @@ vn_ioerror( #ifdef XFS_INODE_TRACE -/* - * Reference count of Linux inode if present, -1 if the xfs_inode - * has no associated Linux inode. - */ -static inline int xfs_icount(struct xfs_inode *ip) -{ - struct inode *inode = VFS_I(ip); - - if (!inode) - return atomic_read(&inode->i_count); - return -1; -} - #define KTRACE_ENTER(ip, vk, s, line, ra) \ ktrace_enter( (ip)->i_trace, \ /* 0 */ (void *)(__psint_t)(vk), \ /* 1 */ (void *)(s), \ /* 2 */ (void *)(__psint_t) line, \ -/* 3 */ (void *)(__psint_t)xfs_icount(ip), \ +/* 3 */ (void *)(__psint_t)atomic_read(&VFS_I(ip)->i_count) \ /* 4 */ (void *)(ra), \ /* 5 */ NULL, \ /* 6 */ (void *)(__psint_t)current_cpu(), \ diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index b2539b1..c4414e8 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -44,77 +44,65 @@ */ static int xfs_iget_cache_hit( - struct inode *inode, struct xfs_perag *pag, struct xfs_inode *ip, int flags, int lock_flags) __releases(pag->pag_ici_lock) { struct xfs_mount *mp = ip->i_mount; - struct inode *old_inode; int error = 0; /* * If INEW is set this inode is being set up + * If IRECLAIM is set this inode is being torn down * Pause and try again. */ - if (xfs_iflags_test(ip, XFS_INEW)) { + if (xfs_iflags_test(ip, (XFS_INEW|XFS_IRECLAIM))) { error = EAGAIN; XFS_STATS_INC(xs_ig_frecycle); goto out_error; } - old_inode = ip->i_vnode; - if (old_inode == NULL) { + /* If IRECLAIMABLE is set, we've torn down the vfs inode part */ + if (xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { + /* - * If IRECLAIM is set this inode is - * on its way out of the system, - * we need to pause and try again. + * If lookup is racing with unlink, then we should return an + * error immediately so we don't remove it from the reclaim + * list and potentially leak the inode. */ - if (xfs_iflags_test(ip, XFS_IRECLAIM)) { - error = EAGAIN; - XFS_STATS_INC(xs_ig_frecycle); + + if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { + error = ENOENT; goto out_error; } - ASSERT(xfs_iflags_test(ip, XFS_IRECLAIMABLE)); + + xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); /* - * If lookup is racing with unlink, then we - * should return an error immediately so we - * don't remove it from the reclaim list and - * potentially leak the inode. + * We need to re-initialise the VFS inode as it has been + * 'freed' by the VFS. Do this here so we can deal with + * errors cleanly, then tag it so it can be set up correctly + * later. */ - if ((ip->i_d.di_mode == 0) && - !(flags & XFS_IGET_CREATE)) { - error = ENOENT; + if (!inode_init_always(mp->m_super, VFS_I(ip))) { + error = ENOMEM; goto out_error; } - xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); - + xfs_iflags_set(ip, XFS_INEW); xfs_iflags_clear(ip, XFS_IRECLAIMABLE); read_unlock(&pag->pag_ici_lock); XFS_MOUNT_ILOCK(mp); list_del_init(&ip->i_reclaim); XFS_MOUNT_IUNLOCK(mp); - - } else if (inode != old_inode) { - /* The inode is being torn down, pause and - * try again. - */ - if (old_inode->i_state & (I_FREEING | I_CLEAR)) { - error = EAGAIN; - XFS_STATS_INC(xs_ig_frecycle); - goto out_error; - } -/* Chances are the other vnode (the one in the inode) is being torn -* down right now, and we landed on top of it. Question is, what do -* we do? Unhook the old inode and hook up the new one? -*/ - cmn_err(CE_PANIC, - "xfs_iget_core: ambiguous vns: vp/0x%p, invp/0x%p", - old_inode, inode); + } else if (!igrab(VFS_I(ip))) { + /* If the VFS inode is being torn down, pause and try again. */ + error = EAGAIN; + XFS_STATS_INC(xs_ig_frecycle); + goto out_error; } else { + /* we've got a live one */ read_unlock(&pag->pag_ici_lock); } @@ -215,11 +203,11 @@ out_destroy: /* * Look up an inode by number in the given file system. * The inode is looked up in the cache held in each AG. - * If the inode is found in the cache, attach it to the provided - * vnode. + * If the inode is found in the cache, initialise the vfs inode + * if necessary. * * If it is not in core, read it in from the file system's device, - * add it to the cache and attach the provided vnode. + * add it to the cache and initialise the vfs inode. * * The inode is locked according to the value of the lock_flags parameter. * This flag parameter indicates how and if the inode's IO lock and inode lock @@ -236,9 +224,8 @@ out_destroy: * bno -- the block number starting the buffer containing the inode, * if known (as by bulkstat), else 0. */ -STATIC int -xfs_iget_core( - struct inode *inode, +int +xfs_iget( xfs_mount_t *mp, xfs_trans_t *tp, xfs_ino_t ino, @@ -269,7 +256,7 @@ again: ip = radix_tree_lookup(&pag->pag_ici_root, agino); if (ip) { - error = xfs_iget_cache_hit(inode, pag, ip, flags, lock_flags); + error = xfs_iget_cache_hit(pag, ip, flags, lock_flags); if (error) goto out_error_or_again; } else { @@ -283,23 +270,16 @@ again: } xfs_put_perag(mp, pag); - ASSERT(ip->i_df.if_ext_max == - XFS_IFORK_DSIZE(ip) / sizeof(xfs_bmbt_rec_t)); - xfs_iflags_set(ip, XFS_IMODIFIED); *ipp = ip; - /* - * Set up the Linux with the Linux inode. - */ - ip->i_vnode = inode; - inode->i_private = ip; - + ASSERT(ip->i_df.if_ext_max == + XFS_IFORK_DSIZE(ip) / sizeof(xfs_bmbt_rec_t)); /* * If we have a real type for an on-disk inode, we can set ops(&unlock) * now. If it's a new inode being created, xfs_ialloc will handle it. */ - if (ip->i_d.di_mode != 0) + if (xfs_iflags_test(ip, XFS_INEW) && ip->i_d.di_mode != 0) xfs_setup_inode(ip); return 0; @@ -314,75 +294,6 @@ out_error_or_again: /* - * The 'normal' internal xfs_iget, if needed it will - * 'allocate', or 'get', the vnode. - */ -int -xfs_iget( - xfs_mount_t *mp, - xfs_trans_t *tp, - xfs_ino_t ino, - uint flags, - uint lock_flags, - xfs_inode_t **ipp, - xfs_daddr_t bno) -{ - struct inode *inode; - xfs_inode_t *ip; - int error; - - XFS_STATS_INC(xs_ig_attempts); - -retry: - inode = iget_locked(mp->m_super, ino); - if (!inode) - /* If we got no inode we are out of memory */ - return ENOMEM; - - if (inode->i_state & I_NEW) { - XFS_STATS_INC(vn_active); - XFS_STATS_INC(vn_alloc); - - error = xfs_iget_core(inode, mp, tp, ino, flags, - lock_flags, ipp, bno); - if (error) { - make_bad_inode(inode); - if (inode->i_state & I_NEW) - unlock_new_inode(inode); - iput(inode); - } - return error; - } - - /* - * If the inode is not fully constructed due to - * filehandle mismatches wait for the inode to go - * away and try again. - * - * iget_locked will call __wait_on_freeing_inode - * to wait for the inode to go away. - */ - if (is_bad_inode(inode)) { - iput(inode); - delay(1); - goto retry; - } - - ip = XFS_I(inode); - if (!ip) { - iput(inode); - delay(1); - goto retry; - } - - if (lock_flags != 0) - xfs_ilock(ip, lock_flags); - XFS_STATS_INC(xs_ig_found); - *ipp = ip; - return 0; -} - -/* * Look for the inode corresponding to the given ino in the hash table. * If it is there and its i_transp pointer matches tp, return it. * Otherwise, return NULL. @@ -482,14 +393,6 @@ xfs_ireclaim(xfs_inode_t *ip) XFS_QM_DQDETACH(ip->i_mount, ip); /* - * Pull our behavior descriptor from the vnode chain. - */ - if (ip->i_vnode) { - ip->i_vnode->i_private = NULL; - ip->i_vnode = NULL; - } - - /* * Free all memory associated with the inode. */ xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 0c65ba2..307a63f 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -812,6 +812,16 @@ xfs_inode_alloc( ASSERT(!spin_is_locked(&ip->i_flags_lock)); ASSERT(list_empty(&ip->i_reclaim)); + /* + * initialise the VFS inode here to get failures + * out of the way early. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) { + kmem_zone_free(xfs_inode_zone, ip); + return NULL; + } + + /* initialise the xfs inode */ ip->i_ino = ino; ip->i_mount = mp; ip->i_blkno = 0; @@ -1085,6 +1095,7 @@ xfs_ialloc( uint flags; int error; timespec_t tv; + int filestreams = 0; /* * Call the space management code to pick @@ -1092,9 +1103,8 @@ xfs_ialloc( */ error = xfs_dialloc(tp, pip ? pip->i_ino : 0, mode, okalloc, ialloc_context, call_again, &ino); - if (error != 0) { + if (error) return error; - } if (*call_again || ino == NULLFSINO) { *ipp = NULL; return 0; @@ -1108,9 +1118,8 @@ xfs_ialloc( */ error = xfs_trans_iget(tp->t_mountp, tp, ino, XFS_IGET_CREATE, XFS_ILOCK_EXCL, &ip); - if (error != 0) { + if (error) return error; - } ASSERT(ip != NULL); ip->i_d.di_mode = (__uint16_t)mode; @@ -1191,13 +1200,12 @@ xfs_ialloc( flags |= XFS_ILOG_DEV; break; case S_IFREG: - if (pip && xfs_inode_is_filestream(pip)) { - error = xfs_filestream_associate(pip, ip); - if (error < 0) - return -error; - if (!error) - xfs_iflags_set(ip, XFS_IFILESTREAM); - } + /* + * we can't set up filestreams until after the VFS inode + * is set up properly. + */ + if (pip && xfs_inode_is_filestream(pip)) + filestreams = 1; /* fall through */ case S_IFDIR: if (pip && (pip->i_d.di_flags & XFS_DIFLAG_ANY)) { @@ -1263,6 +1271,15 @@ xfs_ialloc( /* now that we have an i_mode we can setup inode ops and unlock */ xfs_setup_inode(ip); + /* now we have set up the vfs inode we can associate the filestream */ + if (filestreams) { + error = xfs_filestream_associate(pip, ip); + if (error < 0) + return -error; + if (!error) + xfs_iflags_set(ip, XFS_IFILESTREAM); + } + *ipp = ip; return 0; } @@ -2653,6 +2670,10 @@ xfs_idestroy_fork( * It must free the inode itself and any buffers allocated for * if_extents/if_data and if_broot. It must also free the lock * associated with the inode. + * + * Note: because we don't initialise everything on reallocation out + * of the zone, we must ensure we nullify everything correctly before + * freeing the structure. */ void xfs_idestroy( diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 47265b8..ab70cf3 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -237,7 +237,6 @@ typedef struct xfs_inode { /* Inode linking and identification information. */ struct xfs_mount *i_mount; /* fs mount struct ptr */ struct list_head i_reclaim; /* reclaim list */ - struct inode *i_vnode; /* vnode backpointer */ struct xfs_dquot *i_udquot; /* user dquot */ struct xfs_dquot *i_gdquot; /* group dquot */ @@ -271,6 +270,10 @@ typedef struct xfs_inode { xfs_fsize_t i_size; /* in-memory size */ xfs_fsize_t i_new_size; /* size when write completes */ atomic_t i_iocount; /* outstanding I/O count */ + + /* VFS inode */ + struct inode i_vnode; /* embedded VFS inode */ + /* Trace buffers per inode. */ #ifdef XFS_INODE_TRACE struct ktrace *i_trace; /* general inode trace */ @@ -298,13 +301,13 @@ typedef struct xfs_inode { /* Convert from vfs inode to xfs inode */ static inline struct xfs_inode *XFS_I(struct inode *inode) { - return (struct xfs_inode *)inode->i_private; + return container_of(inode, struct xfs_inode, i_vnode); } /* convert from xfs inode to vfs inode */ static inline struct inode *VFS_I(struct xfs_inode *ip) { - return (struct inode *)ip->i_vnode; + return &ip->i_vnode; } /* diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 8ab88ba..8bd8f19 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2808,6 +2808,7 @@ xfs_reclaim( if (!ip->i_update_core && (ip->i_itemp == NULL)) { xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_iflock(ip); + xfs_iflags_set(ip, XFS_IRECLAIMABLE); return xfs_finish_reclaim(ip, 1, XFS_IFLUSH_DELWRI_ELSE_SYNC); } else { xfs_mount_t *mp = ip->i_mount; @@ -2816,8 +2817,6 @@ xfs_reclaim( XFS_MOUNT_ILOCK(mp); spin_lock(&ip->i_flags_lock); __xfs_iflags_set(ip, XFS_IRECLAIMABLE); - VFS_I(ip)->i_private = NULL; - ip->i_vnode = NULL; spin_unlock(&ip->i_flags_lock); list_add_tail(&ip->i_reclaim, &mp->m_del_inodes); XFS_MOUNT_IUNLOCK(mp); @@ -2832,10 +2831,6 @@ xfs_finish_reclaim( int sync_mode) { xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino); - struct inode *vp = VFS_I(ip); - - if (vp && VN_BAD(vp)) - goto reclaim; /* The hash lock here protects a thread in xfs_iget_core from * racing with us on linking the inode back with a vnode. @@ -2845,7 +2840,7 @@ xfs_finish_reclaim( write_lock(&pag->pag_ici_lock); spin_lock(&ip->i_flags_lock); if (__xfs_iflags_test(ip, XFS_IRECLAIM) || - (!__xfs_iflags_test(ip, XFS_IRECLAIMABLE) && vp == NULL)) { + !__xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { spin_unlock(&ip->i_flags_lock); write_unlock(&pag->pag_ici_lock); if (locked) { @@ -2879,15 +2874,13 @@ xfs_finish_reclaim( * In the case of a forced shutdown we rely on xfs_iflush() to * wait for the inode to be unpinned before returning an error. */ - if (xfs_iflush(ip, sync_mode) == 0) { + if (!is_bad_inode(VFS_I(ip)) && xfs_iflush(ip, sync_mode) == 0) { /* synchronize with xfs_iflush_done */ xfs_iflock(ip); xfs_ifunlock(ip); } xfs_iunlock(ip, XFS_ILOCK_EXCL); - - reclaim: xfs_ireclaim(ip); return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr347005416 for ; Tue, 7 Oct 2008 14:53:03 -0700 X-ASG-Debug-ID: 1223416481-6a6001960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E7AF24C6336 for ; Tue, 7 Oct 2008 14:54:42 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id KzBNtahr5MOPh5sa for ; Tue, 07 Oct 2008 14:54:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293590" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVs-00022b-Cx for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] XFS: rename inode reclaim functions Subject: [PATCH 2/6] XFS: rename inode reclaim functions Date: Wed, 8 Oct 2008 08:54:36 +1100 Message-Id: <1223416480-7701-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416482 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The function names xfs_finish_reclaim and xfs_finish_reclaim_all are not very descriptive of what they are reclaiming. Rename to xfs_reclaim_inode[s] to match the xfs_sync_inodes() function. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 10 +++++----- fs/xfs/linux-2.6/xfs_sync.h | 4 ++-- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_vnodeops.c | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 79038ea..34413ce 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -364,7 +364,7 @@ xfs_quiesce_fs( int count = 0, pincount; xfs_flush_buftarg(mp->m_ddev_targp, 0); - xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); + xfs_reclaim_inodes(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); /* * This loop must run at least twice. The first instance of the loop @@ -505,7 +505,7 @@ xfs_sync_worker( if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE); - xfs_finish_reclaim_all(mp, 1, XFS_IFLUSH_DELWRI_ELSE_ASYNC); + xfs_reclaim_inodes(mp, 0, XFS_IFLUSH_DELWRI_ELSE_ASYNC); /* dgc: errors ignored here */ error = XFS_QM_DQSYNC(mp, SYNC_BDFLUSH); error = xfs_sync_fsdata(mp, SYNC_BDFLUSH); @@ -584,7 +584,7 @@ xfs_syncd_stop( } int -xfs_finish_reclaim( +xfs_reclaim_inode( xfs_inode_t *ip, int locked, int sync_mode) @@ -645,7 +645,7 @@ xfs_finish_reclaim( } int -xfs_finish_reclaim_all( +xfs_reclaim_inodes( xfs_mount_t *mp, int noblock, int mode) @@ -665,7 +665,7 @@ restart: } } XFS_MOUNT_IUNLOCK(mp); - if (xfs_finish_reclaim(ip, noblock, mode)) + if (xfs_reclaim_inode(ip, noblock, mode)) delay(1); goto restart; } diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 23117a1..c1bcd50 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -45,7 +45,7 @@ void xfs_quiesce_attr(struct xfs_mount *mp); void xfs_flush_inode(struct xfs_inode *ip); void xfs_flush_device(struct xfs_inode *ip); -int xfs_finish_reclaim(struct xfs_inode *ip, int locked, int sync_mode); -int xfs_finish_reclaim_all(struct xfs_mount *mp, int noblock, int mode); +int xfs_reclaim_inode(struct xfs_inode *ip, int locked, int sync_mode); +int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode); #endif diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 1e10882..a230d8f 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1241,7 +1241,7 @@ xfs_unmountfs( * need to force the log first. */ xfs_log_force(mp, (xfs_lsn_t)0, XFS_LOG_FORCE | XFS_LOG_SYNC); - xfs_finish_reclaim_all(mp, 0, XFS_IFLUSH_ASYNC); + xfs_reclaim_inodes(mp, 0, XFS_IFLUSH_ASYNC); XFS_QM_DQPURGEALL(mp, XFS_QMOPT_QUOTALL | XFS_QMOPT_UMOUNTING); diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index f6d016e..1addcc7 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2809,7 +2809,7 @@ xfs_reclaim( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_iflock(ip); xfs_iflags_set(ip, XFS_IRECLAIMABLE); - return xfs_finish_reclaim(ip, 1, XFS_IFLUSH_DELWRI_ELSE_SYNC); + return xfs_reclaim_inode(ip, 1, XFS_IFLUSH_DELWRI_ELSE_SYNC); } else { xfs_mount_t *mp = ip->i_mount; -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr3U3005427 for ; Tue, 7 Oct 2008 14:53:03 -0700 X-ASG-Debug-ID: 1223416481-6a6001960001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 073504C633A for ; Tue, 7 Oct 2008 14:54:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id fljdH5SkHWFcBmiF for ; Tue, 07 Oct 2008 14:54:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293592" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVs-00022W-99 for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] XFS: Track reclaimable inodes in inode cache Subject: [PATCH 0/6] XFS: Track reclaimable inodes in inode cache Date: Wed, 8 Oct 2008 08:54:34 +1100 Message-Id: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416484 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0299 1.0000 -1.8274 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.83 X-Barracuda-Spam-Status: No, SCORE=-1.83 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Move the tracking of reclaimable inodes into the inode radix trees. This currently does not replace the reclaim flags in the inode, rather it allows traversal of all reclaimable inodes by walking the per-AG inode radix trees without needing a separate list. This enables us to remove a struct list_head from the struct xfs_inode and the xfs_mount, as well as a filesystem global lock which also has the benefit of removing a point of serialisation during inode reclaim. Like the matching sync code, this also allows reclaim of inodes in ascending inode numbers which substantially improves I/O patterns during reclaim driven inode flushing. Version 2: o clean up series based on review comments o added bug fix to prevent looping when we overflow the AG inode number index (fixes sync code as well). From owner-xfs@oss.sgi.com Tue Oct 7 14:53:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr4rw005438 for ; Tue, 7 Oct 2008 14:53:05 -0700 X-ASG-Debug-ID: 1223416483-6705014f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE4334C633C for ; Tue, 7 Oct 2008 14:54:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id yP2NQywfYYyLoVzu for ; Tue, 07 Oct 2008 14:54:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293591" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVs-00022Y-Ax for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:40 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] XFS: move inode reclaim functions to xfs_sync.c Subject: [PATCH 1/6] XFS: move inode reclaim functions to xfs_sync.c Date: Wed, 8 Oct 2008 08:54:35 +1100 Message-Id: <1223416480-7701-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416484 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Background inode reclaim is run by the xfssyncd. Move the reclaim worker functions to be close to the sync code as the are very similar in structure and are both run from the same background thread. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 91 +++++++++++++++++++++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_sync.h | 3 + fs/xfs/xfs_inode.h | 2 - fs/xfs/xfs_vnodeops.c | 90 ------------------------------------------ 4 files changed, 94 insertions(+), 92 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index b2b7082..79038ea 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -583,3 +583,94 @@ xfs_syncd_stop( kthread_stop(mp->m_sync_task); } +int +xfs_finish_reclaim( + xfs_inode_t *ip, + int locked, + int sync_mode) +{ + xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino); + + /* The hash lock here protects a thread in xfs_iget_core from + * racing with us on linking the inode back with a vnode. + * Once we have the XFS_IRECLAIM flag set it will not touch + * us. + */ + write_lock(&pag->pag_ici_lock); + spin_lock(&ip->i_flags_lock); + if (__xfs_iflags_test(ip, XFS_IRECLAIM) || + !__xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { + spin_unlock(&ip->i_flags_lock); + write_unlock(&pag->pag_ici_lock); + if (locked) { + xfs_ifunlock(ip); + xfs_iunlock(ip, XFS_ILOCK_EXCL); + } + return 1; + } + __xfs_iflags_set(ip, XFS_IRECLAIM); + spin_unlock(&ip->i_flags_lock); + write_unlock(&pag->pag_ici_lock); + xfs_put_perag(ip->i_mount, pag); + + /* + * If the inode is still dirty, then flush it out. If the inode + * is not in the AIL, then it will be OK to flush it delwri as + * long as xfs_iflush() does not keep any references to the inode. + * We leave that decision up to xfs_iflush() since it has the + * knowledge of whether it's OK to simply do a delwri flush of + * the inode or whether we need to wait until the inode is + * pulled from the AIL. + * We get the flush lock regardless, though, just to make sure + * we don't free it while it is being flushed. + */ + if (!locked) { + xfs_ilock(ip, XFS_ILOCK_EXCL); + xfs_iflock(ip); + } + + /* + * In the case of a forced shutdown we rely on xfs_iflush() to + * wait for the inode to be unpinned before returning an error. + */ + if (!is_bad_inode(VFS_I(ip)) && xfs_iflush(ip, sync_mode) == 0) { + /* synchronize with xfs_iflush_done */ + xfs_iflock(ip); + xfs_ifunlock(ip); + } + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + xfs_ireclaim(ip); + return 0; +} + +int +xfs_finish_reclaim_all( + xfs_mount_t *mp, + int noblock, + int mode) +{ + xfs_inode_t *ip, *n; + +restart: + XFS_MOUNT_ILOCK(mp); + list_for_each_entry_safe(ip, n, &mp->m_del_inodes, i_reclaim) { + if (noblock) { + if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) + continue; + if (xfs_ipincount(ip) || + !xfs_iflock_nowait(ip)) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + continue; + } + } + XFS_MOUNT_IUNLOCK(mp); + if (xfs_finish_reclaim(ip, noblock, mode)) + delay(1); + goto restart; + } + XFS_MOUNT_IUNLOCK(mp); + return 0; +} + + diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 3b49aa3..23117a1 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -45,4 +45,7 @@ void xfs_quiesce_attr(struct xfs_mount *mp); void xfs_flush_inode(struct xfs_inode *ip); void xfs_flush_device(struct xfs_inode *ip); +int xfs_finish_reclaim(struct xfs_inode *ip, int locked, int sync_mode); +int xfs_finish_reclaim_all(struct xfs_mount *mp, int noblock, int mode); + #endif diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index ab70cf3..f946b13 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -496,8 +496,6 @@ int xfs_isilocked(xfs_inode_t *, uint); uint xfs_ilock_map_shared(xfs_inode_t *); void xfs_iunlock_map_shared(xfs_inode_t *, uint); void xfs_ireclaim(xfs_inode_t *); -int xfs_finish_reclaim(xfs_inode_t *, int, int); -int xfs_finish_reclaim_all(struct xfs_mount *, int, int); /* * xfs_inode.c prototypes. diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 8bd8f19..f6d016e 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2824,96 +2824,6 @@ xfs_reclaim( return 0; } -int -xfs_finish_reclaim( - xfs_inode_t *ip, - int locked, - int sync_mode) -{ - xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino); - - /* The hash lock here protects a thread in xfs_iget_core from - * racing with us on linking the inode back with a vnode. - * Once we have the XFS_IRECLAIM flag set it will not touch - * us. - */ - write_lock(&pag->pag_ici_lock); - spin_lock(&ip->i_flags_lock); - if (__xfs_iflags_test(ip, XFS_IRECLAIM) || - !__xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { - spin_unlock(&ip->i_flags_lock); - write_unlock(&pag->pag_ici_lock); - if (locked) { - xfs_ifunlock(ip); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - } - return 1; - } - __xfs_iflags_set(ip, XFS_IRECLAIM); - spin_unlock(&ip->i_flags_lock); - write_unlock(&pag->pag_ici_lock); - xfs_put_perag(ip->i_mount, pag); - - /* - * If the inode is still dirty, then flush it out. If the inode - * is not in the AIL, then it will be OK to flush it delwri as - * long as xfs_iflush() does not keep any references to the inode. - * We leave that decision up to xfs_iflush() since it has the - * knowledge of whether it's OK to simply do a delwri flush of - * the inode or whether we need to wait until the inode is - * pulled from the AIL. - * We get the flush lock regardless, though, just to make sure - * we don't free it while it is being flushed. - */ - if (!locked) { - xfs_ilock(ip, XFS_ILOCK_EXCL); - xfs_iflock(ip); - } - - /* - * In the case of a forced shutdown we rely on xfs_iflush() to - * wait for the inode to be unpinned before returning an error. - */ - if (!is_bad_inode(VFS_I(ip)) && xfs_iflush(ip, sync_mode) == 0) { - /* synchronize with xfs_iflush_done */ - xfs_iflock(ip); - xfs_ifunlock(ip); - } - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - xfs_ireclaim(ip); - return 0; -} - -int -xfs_finish_reclaim_all( - xfs_mount_t *mp, - int noblock, - int mode) -{ - xfs_inode_t *ip, *n; - -restart: - XFS_MOUNT_ILOCK(mp); - list_for_each_entry_safe(ip, n, &mp->m_del_inodes, i_reclaim) { - if (noblock) { - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) - continue; - if (xfs_ipincount(ip) || - !xfs_iflock_nowait(ip)) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - continue; - } - } - XFS_MOUNT_IUNLOCK(mp); - if (xfs_finish_reclaim(ip, noblock, mode)) - delay(1); - goto restart; - } - XFS_MOUNT_IUNLOCK(mp); - return 0; -} - /* * xfs_alloc_file_space() * This routine allocates disk space for the given file. -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr6oE005449 for ; Tue, 7 Oct 2008 14:53:06 -0700 X-ASG-Debug-ID: 1223416483-6705014f0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E7B2F4C6344 for ; Tue, 7 Oct 2008 14:54:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id GRqAbabFPsAFAhmA for ; Tue, 07 Oct 2008 14:54:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293602" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVt-00022o-LE for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:41 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Subject: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Date: Wed, 8 Oct 2008 08:54:40 +1100 Message-Id: <1223416480-7701-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416485 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- If the last block of the AG has inodes in it and the AG is an exactly power-of-2 size then the last inode in the AG points to the last block in the AG. If we try to find the next inode in the AG by adding one to the inode number, we increment the inode number past the size of the AG. The result is that the macro XFS_INO_TO_AGINO() will strip the AG portion of the inode number and return an inode number of zero. That is, instead of terminating the lookup loop because we hit the inode number went outside the valid range for the AG, the search index returns to zero and we start traversing the radix tree from the start again. This results in an endless loop in xfs_sync_inodes_ag(). Fix it be detecting if the new search index decreases as a result of incrementing the current inode number. That indicate an overflow and hence that we have finished processing the AG so we can terminate the loop. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 26 ++++++++++++++++++++++---- 1 files changed, 22 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 22006b5..ee1648b 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -59,7 +59,7 @@ xfs_sync_inodes_ag( { xfs_perag_t *pag = &mp->m_perag[ag]; int nr_found; - int first_index = 0; + uint32_t first_index = 0; int error = 0; int last_error = 0; int fflag = XFS_B_ASYNC; @@ -97,8 +97,17 @@ xfs_sync_inodes_ag( break; } - /* update the index for the next lookup */ + /* + * Update the index for the next lookup. Catch overflows + * into the next AG range which can occur if we have inodes + * in the last block of the AG and we are currently + * pointing to the last inode. + */ first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) { + read_unlock(&pag->pag_ici_lock); + break; + } /* * skip inodes in reclaim. Let xfs_syncsub do that for @@ -702,7 +711,7 @@ xfs_reclaim_inodes_ag( xfs_inode_t *ip = NULL; xfs_perag_t *pag = &mp->m_perag[ag]; int nr_found; - int first_index; + uint32_t first_index; int skipped; restart: @@ -724,8 +733,17 @@ restart: break; } - /* update the index for the next lookup */ + /* + * Update the index for the next lookup. Catch overflows + * into the next AG range which can occur if we have inodes + * in the last block of the AG and we are currently + * pointing to the last inode. + */ first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) { + read_unlock(&pag->pag_ici_lock); + break; + } ASSERT(xfs_iflags_test(ip, (XFS_IRECLAIMABLE|XFS_IRECLAIM))); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr68j005458 for ; Tue, 7 Oct 2008 14:53:06 -0700 X-ASG-Debug-ID: 1223416481-6a6001960003-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D3C44C6347 for ; Tue, 7 Oct 2008 14:54:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id TxjjOyay2trzBCuH for ; Tue, 07 Oct 2008 14:54:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293599" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVt-00022l-Ei for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:41 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] XFS: kill deleted inodes list Subject: [PATCH 5/6] XFS: kill deleted inodes list Date: Wed, 8 Oct 2008 08:54:39 +1100 Message-Id: <1223416480-7701-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416486 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that the deleted inodes list is unused, kill it. This also removes the i_reclaim list head from the xfs_inode, shrinking it by two pointers. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 2 -- fs/xfs/linux-2.6/xfs_sync.c | 6 ++++++ fs/xfs/xfs_iget.c | 8 -------- fs/xfs/xfs_inode.c | 4 ++-- fs/xfs/xfs_inode.h | 1 - fs/xfs/xfs_mount.c | 1 - fs/xfs/xfs_mount.h | 5 +---- fs/xfs/xfs_vnodeops.c | 12 +----------- 8 files changed, 10 insertions(+), 29 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index b893f8c..f4bf7ca 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -907,7 +907,6 @@ xfs_fs_inode_init_once( atomic_set(&ip->i_iocount, 0); atomic_set(&ip->i_pincount, 0); spin_lock_init(&ip->i_flags_lock); - INIT_LIST_HEAD(&ip->i_reclaim); init_waitqueue_head(&ip->i_ipin_wait); /* * Because we want to use a counting completion, complete @@ -1549,7 +1548,6 @@ xfs_fs_fill_super( goto out_free_args; spin_lock_init(&mp->m_sb_lock); - mutex_init(&mp->m_ilock); mutex_init(&mp->m_growlock); atomic_set(&mp->m_active_trans, 0); INIT_LIST_HEAD(&mp->m_sync_list); diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index bbb40e2..22006b5 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -644,6 +644,11 @@ xfs_reclaim_inode( return 0; } +/* + * We set the inode flag atomically with the radix tree tag. + * Once we get tag lookups on the radix tree, this inode flag + * can go away. + */ void xfs_inode_set_reclaim_tag( xfs_inode_t *ip) @@ -655,6 +660,7 @@ xfs_inode_set_reclaim_tag( spin_lock(&ip->i_flags_lock); radix_tree_tag_set(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); + __xfs_iflags_set(ip, XFS_IRECLAIMABLE); spin_unlock(&ip->i_flags_lock); read_unlock(&pag->pag_ici_lock); xfs_put_perag(mp, pag); diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index a0387f1..8001338 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -95,10 +95,6 @@ xfs_iget_cache_hit( /* clear the radix tree reclaim flag as well. */ __xfs_inode_clear_reclaim_tag(mp, pag, ip); read_unlock(&pag->pag_ici_lock); - - XFS_MOUNT_ILOCK(mp); - list_del_init(&ip->i_reclaim); - XFS_MOUNT_IUNLOCK(mp); } else if (!igrab(VFS_I(ip))) { /* If the VFS inode is being torn down, pause and try again. */ error = EAGAIN; @@ -419,11 +415,7 @@ xfs_iextract( write_unlock(&pag->pag_ici_lock); xfs_put_perag(mp, pag); - /* Deal with the deleted inodes list */ - XFS_MOUNT_ILOCK(mp); - list_del_init(&ip->i_reclaim); mp->m_ireclaims++; - XFS_MOUNT_IUNLOCK(mp); } /* diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 307a63f..456941e 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -810,7 +810,7 @@ xfs_inode_alloc( ASSERT(atomic_read(&ip->i_iocount) == 0); ASSERT(atomic_read(&ip->i_pincount) == 0); ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(list_empty(&ip->i_reclaim)); + ASSERT(completion_done(&ip->i_flush)); /* * initialise the VFS inode here to get failures @@ -2732,7 +2732,7 @@ xfs_idestroy( ASSERT(atomic_read(&ip->i_iocount) == 0); ASSERT(atomic_read(&ip->i_pincount) == 0); ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(list_empty(&ip->i_reclaim)); + ASSERT(completion_done(&ip->i_flush)); kmem_zone_free(xfs_inode_zone, ip); } diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index f946b13..f02535c 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -236,7 +236,6 @@ typedef struct dm_attrs_s { typedef struct xfs_inode { /* Inode linking and identification information. */ struct xfs_mount *i_mount; /* fs mount struct ptr */ - struct list_head i_reclaim; /* reclaim list */ struct xfs_dquot *i_udquot; /* user dquot */ struct xfs_dquot *i_gdquot; /* group dquot */ diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index a230d8f..794a4e2 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -582,7 +582,6 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb_t *sbp) mp->m_blockmask = sbp->sb_blocksize - 1; mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; mp->m_blockwmask = mp->m_blockwsize - 1; - INIT_LIST_HEAD(&mp->m_del_inodes); /* * Setup for attributes, in case they get created. diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 7e02a86..fc70c69 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -248,8 +248,6 @@ typedef struct xfs_mount { xfs_agnumber_t m_agirotor; /* last ag dir inode alloced */ spinlock_t m_agirotor_lock;/* .. and lock protecting it */ xfs_agnumber_t m_maxagi; /* highest inode alloc group */ - struct list_head m_del_inodes; /* inodes to reclaim */ - mutex_t m_ilock; /* inode list mutex */ uint m_ireclaims; /* count of calls to reclaim*/ uint m_readio_log; /* min read size log bytes */ uint m_readio_blocks; /* min read size blocks */ @@ -312,8 +310,7 @@ typedef struct xfs_mount { int m_attr_magicpct;/* 37% of the blocksize */ int m_dir_magicpct; /* 37% of the dir blocksize */ __uint8_t m_mk_sharedro; /* mark shared ro on unmount */ - __uint8_t m_inode_quiesce;/* call quiesce on new inodes. - field governed by m_ilock */ + __uint8_t m_inode_quiesce;/* call quiesce on new inodes. */ __uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ int m_dirblksize; /* directory block sz--bytes */ diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index cbde288..bfb25f7 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2810,18 +2810,8 @@ xfs_reclaim( xfs_iflock(ip); xfs_iflags_set(ip, XFS_IRECLAIMABLE); return xfs_reclaim_inode(ip, 1, XFS_IFLUSH_DELWRI_ELSE_SYNC); - } else { - xfs_mount_t *mp = ip->i_mount; - - /* Protect sync and unpin from us */ - XFS_MOUNT_ILOCK(mp); - spin_lock(&ip->i_flags_lock); - __xfs_iflags_set(ip, XFS_IRECLAIMABLE); - spin_unlock(&ip->i_flags_lock); - list_add_tail(&ip->i_reclaim, &mp->m_del_inodes); - XFS_MOUNT_IUNLOCK(mp); - xfs_inode_set_reclaim_tag(ip); } + xfs_inode_set_reclaim_tag(ip); return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr5Oq005440 for ; Tue, 7 Oct 2008 14:53:06 -0700 X-ASG-Debug-ID: 1223416481-6a6001960002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F2A9E4C6340 for ; Tue, 7 Oct 2008 14:54:44 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id DQTUrmZFo2xYWz7W for ; Tue, 07 Oct 2008 14:54:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293597" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVt-00022e-6P for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:41 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] XFS: mark inodes for reclaim via a tag in the inode radix tree Subject: [PATCH 3/6] XFS: mark inodes for reclaim via a tag in the inode radix tree Date: Wed, 8 Oct 2008 08:54:37 +1100 Message-Id: <1223416480-7701-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416484 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Prepare for removing the deleted inode list by marking inodes for reclaim in the inode radix trees so that we can use the radix trees to find reclaimable inodes. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 41 +++++++++++++++++++++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_sync.h | 4 ++++ fs/xfs/xfs_ag.h | 5 +++++ fs/xfs/xfs_iget.c | 3 +++ fs/xfs/xfs_vnodeops.c | 1 + 5 files changed, 54 insertions(+), 0 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 34413ce..9e7f4dc 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -644,6 +644,47 @@ xfs_reclaim_inode( return 0; } +void +xfs_inode_set_reclaim_tag( + xfs_inode_t *ip) +{ + xfs_mount_t *mp = ip->i_mount; + xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + + read_lock(&pag->pag_ici_lock); + spin_lock(&ip->i_flags_lock); + radix_tree_tag_set(&pag->pag_ici_root, + XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); + spin_unlock(&ip->i_flags_lock); + read_unlock(&pag->pag_ici_lock); + xfs_put_perag(mp, pag); +} + +void +__xfs_inode_clear_reclaim_tag( + xfs_mount_t *mp, + xfs_perag_t *pag, + xfs_inode_t *ip) +{ + radix_tree_tag_clear(&pag->pag_ici_root, + XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); +} + +void +xfs_inode_clear_reclaim_tag( + xfs_inode_t *ip) +{ + xfs_mount_t *mp = ip->i_mount; + xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + + read_lock(&pag->pag_ici_lock); + spin_lock(&ip->i_flags_lock); + __xfs_inode_clear_reclaim_tag(mp, pag, ip); + spin_unlock(&ip->i_flags_lock); + read_unlock(&pag->pag_ici_lock); + xfs_put_perag(mp, pag); +} + int xfs_reclaim_inodes( xfs_mount_t *mp, diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index c1bcd50..5f6de1e 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -48,4 +48,8 @@ void xfs_flush_device(struct xfs_inode *ip); int xfs_reclaim_inode(struct xfs_inode *ip, int locked, int sync_mode); int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode); +void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); +void xfs_inode_clear_reclaim_tag(struct xfs_inode *ip); +void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, + struct xfs_inode *ip); #endif diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 729ee3e..2bfd863 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -204,6 +204,11 @@ typedef struct xfs_perag #endif } xfs_perag_t; +/* + * tags for inode radix tree + */ +#define XFS_ICI_RECLAIM_TAG 0 /* inode is to be reclaimed */ + #define XFS_AG_MAXLEVELS(mp) ((mp)->m_ag_maxlevels) #define XFS_MIN_FREELIST_RAW(bl,cl,mp) \ (MIN(bl + 1, XFS_AG_MAXLEVELS(mp)) + MIN(cl + 1, XFS_AG_MAXLEVELS(mp))) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index c4414e8..a0387f1 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -91,6 +91,9 @@ xfs_iget_cache_hit( } xfs_iflags_set(ip, XFS_INEW); xfs_iflags_clear(ip, XFS_IRECLAIMABLE); + + /* clear the radix tree reclaim flag as well. */ + __xfs_inode_clear_reclaim_tag(mp, pag, ip); read_unlock(&pag->pag_ici_lock); XFS_MOUNT_ILOCK(mp); diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 1addcc7..cbde288 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2820,6 +2820,7 @@ xfs_reclaim( spin_unlock(&ip->i_flags_lock); list_add_tail(&ip->i_reclaim, &mp->m_del_inodes); XFS_MOUNT_IUNLOCK(mp); + xfs_inode_set_reclaim_tag(ip); } return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:53:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lr5nY005442 for ; Tue, 7 Oct 2008 14:53:06 -0700 X-ASG-Debug-ID: 1223416484-73ca01130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B56594C6340 for ; Tue, 7 Oct 2008 14:54:44 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 5FkoK01C5MD0RMHT for ; Tue, 07 Oct 2008 14:54:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMR060h5LGor/2dsb2JhbAC/QoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224293598" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:24:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKVt-00022i-Cc for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:54:41 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] XFS: use the inode radix tree for reclaiming inodes Subject: [PATCH 4/6] XFS: use the inode radix tree for reclaiming inodes Date: Wed, 8 Oct 2008 08:54:38 +1100 Message-Id: <1223416480-7701-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223416480-7701-1-git-send-email-david@fromorbit.com> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416485 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Use the reclaim tag to walk the radix tree and find the inodes under reclaim. This was the only user of the deleted inode list. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 81 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 71 insertions(+), 10 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 9e7f4dc..bbb40e2 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -685,32 +685,93 @@ xfs_inode_clear_reclaim_tag( xfs_put_perag(mp, pag); } -int -xfs_reclaim_inodes( + +STATIC void +xfs_reclaim_inodes_ag( xfs_mount_t *mp, - int noblock, + int ag, + int noblock, int mode) { - xfs_inode_t *ip, *n; + xfs_inode_t *ip = NULL; + xfs_perag_t *pag = &mp->m_perag[ag]; + int nr_found; + int first_index; + int skipped; restart: - XFS_MOUNT_ILOCK(mp); - list_for_each_entry_safe(ip, n, &mp->m_del_inodes, i_reclaim) { + first_index = 0; + skipped = 0; + do { + /* + * use a gang lookup to find the next inode in the tree + * as the tree is sparse and a gang lookup walks to find + * the number of objects requested. + */ + read_lock(&pag->pag_ici_lock); + nr_found = radix_tree_gang_lookup_tag(&pag->pag_ici_root, + (void**)&ip, first_index, 1, + XFS_ICI_RECLAIM_TAG); + + if (!nr_found) { + read_unlock(&pag->pag_ici_lock); + break; + } + + /* update the index for the next lookup */ + first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + + ASSERT(xfs_iflags_test(ip, (XFS_IRECLAIMABLE|XFS_IRECLAIM))); + + /* ignore if already under reclaim */ + if (xfs_iflags_test(ip, XFS_IRECLAIM)) { + read_unlock(&pag->pag_ici_lock); + continue; + } + if (noblock) { - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) + if (!xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) { + read_unlock(&pag->pag_ici_lock); continue; + } if (xfs_ipincount(ip) || !xfs_iflock_nowait(ip)) { xfs_iunlock(ip, XFS_ILOCK_EXCL); + read_unlock(&pag->pag_ici_lock); continue; } } - XFS_MOUNT_IUNLOCK(mp); + read_unlock(&pag->pag_ici_lock); + + /* + * hmmm - this is an inode already in reclaim. Do + * we even bother catching it here? + */ if (xfs_reclaim_inode(ip, noblock, mode)) - delay(1); + skipped++; + } while (nr_found); + + if (skipped) { + delay(1); goto restart; } - XFS_MOUNT_IUNLOCK(mp); + return; + +} + +int +xfs_reclaim_inodes( + xfs_mount_t *mp, + int noblock, + int mode) +{ + int i; + + for (i = 0; i < mp->m_sb.sb_agcount; i++) { + if (!mp->m_perag[i].pag_ici_init) + continue; + xfs_reclaim_inodes_ag(mp, i, noblock, mode); + } return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:55:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LtgXw007361 for ; Tue, 7 Oct 2008 14:55:44 -0700 X-ASG-Debug-ID: 1223416641-73c901140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E00A84C63AA for ; Tue, 7 Oct 2008 14:57:22 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id e3uXYTxS8wBMrHB2 for ; Tue, 07 Oct 2008 14:57:22 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224295107" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:27:20 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKYS-0002BE-8i for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:57:20 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] XFS: Check for valid transaction headers in recovery Subject: [PATCH] XFS: Check for valid transaction headers in recovery Date: Wed, 8 Oct 2008 08:57:20 +1100 Message-Id: <1223416640-8357-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416642 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we are about to add a new item to a transaction in recovery, we need to check that it is valid first. Currently we just assert that header magic number matches, but in production systems that is present and we add a corrupted transaction to the list to be processed. This results in a kernel oops later when processing the corrupted transaction. Instead, if we detect a corrupted transaction, abort recovery and leave the user to clean up the mess that has occurred. Signed-off-by: Dave Chinner --- fs/xfs/xfs_log_recover.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 0280a25..6d961fc 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -1417,7 +1417,13 @@ xlog_recover_add_to_trans( return 0; item = trans->r_itemq; if (item == NULL) { - ASSERT(*(uint *)dp == XFS_TRANS_HEADER_MAGIC); + /* we need to catch log corruptions here */ + if (*(uint *)dp != XFS_TRANS_HEADER_MAGIC) { + xlog_warn("XFS: xlog_recover_add_to_trans: " + "bad header magic number"); + ASSERT(0); + return XFS_ERROR(EIO); + } if (len == sizeof(xfs_trans_header_t)) xlog_recover_add_item(&trans->r_itemq); memcpy(&trans->r_theader, dp, len); /* d, s, l */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:56:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97LuKNM007643 for ; Tue, 7 Oct 2008 14:56:20 -0700 X-ASG-Debug-ID: 1223416679-25a902170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6F57B185E6CC for ; Tue, 7 Oct 2008 14:57:59 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id cHVW3H2VBOiBKgNp for ; Tue, 07 Oct 2008 14:57:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224295402" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:27:57 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKZ3-0002Cs-Om for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:57:57 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] XFS: don't block in xfs_qm_dqflush() during async writeback Subject: [PATCH] XFS: don't block in xfs_qm_dqflush() during async writeback Date: Wed, 8 Oct 2008 08:57:57 +1100 Message-Id: <1223416677-8458-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416680 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Normally dquots are written back via delayed write mechanisms. They are flushed to their backing buffer by xfssyncd, which is then pushed out by either AIL or xfsbufd flushing. The flush from the xfssyncd is supposed to be non-blocking, but xfs_qm_dqflush() always waits for pinned duots, which means that it will block for the length of time it takes to do a synchronous log force. This causes unnecessary extra log I/O to be issued whenever we try to flush a busy dquot. Avoid the log forces and blocking xfssyncd by making xfs_qm_dqflush() pay attention to what type of sync it is doing when it sees a pinned dquot and not waiting when doing non-blocking flushes. Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_dquot.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 5dca401..591ca66 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1221,16 +1221,14 @@ xfs_qm_dqflush( xfs_dqtrace_entry(dqp, "DQFLUSH"); /* - * If not dirty, nada. + * If not dirty, or it's pinned and we are not supposed to + * block, nada. */ - if (!XFS_DQ_IS_DIRTY(dqp)) { + if (!XFS_DQ_IS_DIRTY(dqp) || + (!(flags & XFS_QMOPT_SYNC) && atomic_read(&dqp->q_pincount) > 0)) { xfs_dqfunlock(dqp); - return (0); + return 0; } - - /* - * Cant flush a pinned dquot. Wait for it. - */ xfs_qm_dqunpin_wait(dqp); /* -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 14:57:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Lv0Cp007931 for ; Tue, 7 Oct 2008 14:57:01 -0700 X-ASG-Debug-ID: 1223416718-25a502320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3553185EC5F for ; Tue, 7 Oct 2008 14:58:39 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id v5ylNIIep7pIN1vo for ; Tue, 07 Oct 2008 14:58:39 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC4QwiHA2QIfg X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224295716" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:28:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKZi-0002Ea-1K for xfs@oss.sgi.com; Wed, 08 Oct 2008 08:58:38 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] XFS: Account for allocated blocks when expanding directories Subject: [PATCH] XFS: Account for allocated blocks when expanding directories Date: Wed, 8 Oct 2008 08:58:37 +1100 Message-Id: <1223416717-8566-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223416720 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we create a directory, we reserve a number of blocks for the maximum possible expansion of of the directory due to various btree splits, freespace allocation, etc. Unfortunately, each allocation is not reflected in the total number of blocks still available to the transaction, so the maximal reservation is used over and over again. This leads to problems where an allocation group has only enough blocks for *some* of the allocations required for the directory modification. After the first N allocations, the remaining blocks in the allocation group drops below the total reservation, and subsequent allocations fail because the allocator will not allow the allocation to proceed if the AG does not have the enough blocks available for the entire allocation total. This results in an ENOSPC occurring after an allocation has already occurred. This results in aborting the directory operation (leaving the directory in an inconsistent state) and cancelling a dirty transaction, which results in a filesystem shutdown. Avoid the problem by reflecting the number of blocks allocated in any directory expansion in the total number of blocks available to the modification in progress. This prevents a directory modification from being aborted part way through with an ENOSPC. Signed-off-by: Dave Chinner --- fs/xfs/xfs_da_btree.c | 5 +++++ fs/xfs/xfs_dir2.c | 6 ++++++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 9e561a9..a11a839 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -1566,11 +1566,14 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno) int nmap, error, w, count, c, got, i, mapi; xfs_trans_t *tp; xfs_mount_t *mp; + xfs_drfsbno_t nblks; dp = args->dp; mp = dp->i_mount; w = args->whichfork; tp = args->trans; + nblks = dp->i_d.di_nblocks; + /* * For new directories adjust the file offset and block count. */ @@ -1647,6 +1650,8 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno) } if (mapp != &map) kmem_free(mapp); + /* account for newly allocated blocks in reserved blocks total */ + args->total -= dp->i_d.di_nblocks - nblks; *new_blkno = (xfs_dablk_t)bno; return 0; } diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c index 80e0dc5..1afb122 100644 --- a/fs/xfs/xfs_dir2.c +++ b/fs/xfs/xfs_dir2.c @@ -525,11 +525,13 @@ xfs_dir2_grow_inode( xfs_mount_t *mp; int nmap; /* number of bmap entries */ xfs_trans_t *tp; + xfs_drfsbno_t nblks; xfs_dir2_trace_args_s("grow_inode", args, space); dp = args->dp; tp = args->trans; mp = dp->i_mount; + nblks = dp->i_d.di_nblocks; /* * Set lowest possible block in the space requested. */ @@ -622,7 +624,11 @@ xfs_dir2_grow_inode( */ if (mapp != &map) kmem_free(mapp); + + /* account for newly allocated blocks in reserved blocks total */ + args->total -= dp->i_d.di_nblocks - nblks; *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno); + /* * Update file's size if this is the data space and it grew. */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M834q008999 for ; Tue, 7 Oct 2008 15:08:03 -0700 X-ASG-Debug-ID: 1223417381-25a802a40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA0721B0C572 for ; Tue, 7 Oct 2008 15:09:41 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id GloURPl6k2KazQvK for ; Tue, 07 Oct 2008 15:09:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304780" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002VY-Bw for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Subject: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Date: Wed, 8 Oct 2008 09:09:30 +1100 Message-Id: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417382 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The busy extent tracking in XFS is currently very static and has some performance issues. We can only track 128 busy extents per AG, and when we overflow this we fall back to synchronous transactions. Also, every time we re-use a busy extent we cause a synchronous log force, which stops all allocation and freeing in that AG while the log force is in progress. This limits the amount of transaction aggregation we can potentially do because of the fact that we do log forces when a busy extent is found which would effectively close off an aggregating transaction group. It is relatively easy to trigger overflows or reuse of busy extents and cause thіs to occur. Further, when it comes to issuing block discard messages to tell the lower layer that we're finished with a block, we need to track all freed extents, not just those we can fit in a static array. Hence adding block discard functionality to XFS also requires us to rework the way we track busy extents. This patch series is a work in progress. It's probably better to look at the finished product rather than the inividual patches because the later patches undo a lot of the earlier factoring and shuffling. I'll need to completely redo the series before final subbbmission. However, I'm posting this now because it passes XFSQA and it seems to be a good time to post it for comments before I start cleaning it up.... From owner-xfs@oss.sgi.com Tue Oct 7 15:08:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M84xk009007 for ; Tue, 7 Oct 2008 15:08:05 -0700 X-ASG-Debug-ID: 1223417382-62bc00930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 83D3D1B0C572 for ; Tue, 7 Oct 2008 15:09:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id tYTupxNUpenkVwdG for ; Tue, 07 Oct 2008 15:09:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304782" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vs-PL for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 7/7] XFS: Simplify transaction busy extent tracking Subject: [PATCH 7/7] XFS: Simplify transaction busy extent tracking Date: Wed, 8 Oct 2008 09:09:37 +1100 Message-Id: <1223417377-8679-8-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417384 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M Now that we have a dynamic busy extent structure, we no longer need the complex log busy chunk infrastructure to track them in a transaction. We can simply use a linked list hanging off the transaction structure to do this now. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ag.h | 3 +- fs/xfs/xfs_alloc.c | 4 +- fs/xfs/xfs_trans.c | 30 +++++++------- fs/xfs/xfs_trans.h | 33 +--------------- fs/xfs/xfs_trans_item.c | 102 ----------------------------------------------- fs/xfs/xfs_trans_priv.h | 1 - 6 files changed, 21 insertions(+), 152 deletions(-) diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 62bb280..de105a4 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -160,7 +160,8 @@ typedef struct xfs_agfl { * have been freed but whose transactions aren't committed to disk yet. */ struct xfs_busy_extent { - struct rb_node rb_node; + struct rb_node rb_node; /* ag by-bno indexed search tree */ + struct list_head list; /* transaction busy extent list */ atomic_t ref; xfs_agnumber_t agno; xfs_agblock_t bno; diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 73536ef..ff3111f 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -202,13 +202,14 @@ xfs_alloc_mark_busy( busyp->agno = agno; busyp->bno = bno; busyp->length = len; + INIT_LIST_HEAD(&busyp->list); if (freelist) busyp->flags |= XFS_BUSY_EXT_FREELIST; pag = xfs_perag_get(tp->t_mountp, agno); spin_lock(&pag->pagb_lock); if (xfs_alloc_busy_insert(pag, bno, busyp)) - xfs_trans_add_busy(tp, busyp); + list_add(&busyp->list, &tp->t_busy); TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, tp); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); @@ -226,6 +227,7 @@ xfs_alloc_clear_busy( spin_lock(&pag->pagb_lock); ASSERT(!RB_EMPTY_NODE(&busyp->rb_node)); rb_erase(&busyp->rb_node, &pag->pagb_tree); + list_del_init(&busyp->list); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index e88b9bf..d0d0f6f 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -253,9 +253,8 @@ _xfs_trans_alloc( tp->t_type = type; tp->t_mountp = mp; tp->t_items_free = XFS_LIC_NUM_SLOTS; - tp->t_busy_free = XFS_LBC_NUM_SLOTS; xfs_lic_init(&(tp->t_items)); - XFS_LBC_INIT(&(tp->t_busy)); + INIT_LIST_HEAD(&tp->t_busy); return tp; } @@ -282,9 +281,8 @@ xfs_trans_dup( ntp->t_type = tp->t_type; ntp->t_mountp = tp->t_mountp; ntp->t_items_free = XFS_LIC_NUM_SLOTS; - ntp->t_busy_free = XFS_LBC_NUM_SLOTS; xfs_lic_init(&(ntp->t_items)); - XFS_LBC_INIT(&(ntp->t_busy)); + INIT_LIST_HEAD(&ntp->t_busy); ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); ASSERT(tp->t_ticket != NULL); @@ -765,6 +763,19 @@ xfs_trans_unreserve_and_mod_sb( } } +/* + * xfs_trans_free_busy + * Free all of the busy extents from a transaction + */ +static void +xfs_trans_free_busy(xfs_trans_t *tp) +{ + struct xfs_busy_extent *busyp, *n; + + list_for_each_entry_safe(busyp, n, &tp->t_busy, list) { + xfs_alloc_clear_busy(tp, busyp); + } +} /* * xfs_trans_commit @@ -1300,9 +1311,6 @@ xfs_trans_committed( { xfs_log_item_chunk_t *licp; xfs_log_item_chunk_t *next_licp; - xfs_log_busy_chunk_t *lbcp; - xfs_log_busy_slot_t *lbsp; - int i; /* * Call the transaction's completion callback if there @@ -1335,14 +1343,6 @@ xfs_trans_committed( /* * Clear all the per-AG busy list items listed in this transaction */ - lbcp = &tp->t_busy; - while (lbcp != NULL) { - for (i = 0, lbsp = lbcp->lbc_busy; i < lbcp->lbc_unused; i++, lbsp++) { - if (!XFS_LBC_ISFREE(lbcp, i)) - xfs_alloc_clear_busy(tp, lbsp->lbc_busyp); - } - lbcp = lbcp->lbc_next; - } xfs_trans_free_busy(tp); /* diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index 6a5e8d5..b7e8cf0 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -819,33 +819,6 @@ typedef struct xfs_item_ops { #define XFS_ITEM_PUSHBUF 4 /* - * This structure is used to maintain a list of block ranges that have been - * freed in the transaction. The ranges are listed in the perag[] busy list - * between when they're freed and the transaction is committed to disk. - */ - -typedef struct xfs_log_busy_slot { - struct xfs_busy_extent *lbc_busyp; -} xfs_log_busy_slot_t; - -#define XFS_LBC_NUM_SLOTS 31 -typedef struct xfs_log_busy_chunk { - struct xfs_log_busy_chunk *lbc_next; - uint lbc_free; /* free slots bitmask */ - ushort lbc_unused; /* first unused */ - xfs_log_busy_slot_t lbc_busy[XFS_LBC_NUM_SLOTS]; -} xfs_log_busy_chunk_t; - -#define XFS_LBC_MAX_SLOT (XFS_LBC_NUM_SLOTS - 1) -#define XFS_LBC_FREEMASK ((1U << XFS_LBC_NUM_SLOTS) - 1) - -#define XFS_LBC_INIT(cp) ((cp)->lbc_free = XFS_LBC_FREEMASK) -#define XFS_LBC_CLAIM(cp, slot) ((cp)->lbc_free &= ~(1 << (slot))) -#define XFS_LBC_SLOT(cp, slot) (&((cp)->lbc_busy[(slot)])) -#define XFS_LBC_VACANCY(cp) (((cp)->lbc_free) & XFS_LBC_FREEMASK) -#define XFS_LBC_ISFREE(cp, slot) ((cp)->lbc_free & (1 << (slot))) - -/* * This is the type of function which can be given to xfs_trans_callback() * to be called upon the transaction's commit to disk. */ @@ -896,8 +869,7 @@ typedef struct xfs_trans { unsigned int t_items_free; /* log item descs free */ xfs_log_item_chunk_t t_items; /* first log item desc chunk */ xfs_trans_header_t t_header; /* header for in-log trans */ - unsigned int t_busy_free; /* busy descs free */ - xfs_log_busy_chunk_t t_busy; /* busy/async free blocks */ + struct list_head t_busy; /* list of busy extents */ unsigned long t_pflags; /* saved process flags state */ } xfs_trans_t; @@ -972,9 +944,6 @@ void xfs_trans_cancel(xfs_trans_t *, int); int xfs_trans_ail_init(struct xfs_mount *); void xfs_trans_ail_destroy(struct xfs_mount *); -xfs_log_busy_slot_t *xfs_trans_add_busy(struct xfs_trans *tp, - struct xfs_busy_extent *busyp); - extern kmem_zone_t *xfs_trans_zone; #endif /* __KERNEL__ */ diff --git a/fs/xfs/xfs_trans_item.c b/fs/xfs/xfs_trans_item.c index 3baa0af..687625f 100644 --- a/fs/xfs/xfs_trans_item.c +++ b/fs/xfs/xfs_trans_item.c @@ -438,105 +438,3 @@ xfs_trans_unlock_chunk( return freed; } - - -/* - * This is called to add the given busy item to the transaction's - * list of busy items. It must find a free busy item descriptor - * or allocate a new one and add the item to that descriptor. - * The function returns a pointer to busy descriptor used to point - * to the new busy entry. The log busy entry will now point to its new - * descriptor with its ???? field. - */ -xfs_log_busy_slot_t * -xfs_trans_add_busy( - xfs_trans_t *tp, - struct xfs_busy_extent *busyp) -{ - xfs_log_busy_chunk_t *lbcp; - xfs_log_busy_slot_t *lbsp; - int i=0; - - /* - * If there are no free descriptors, allocate a new chunk - * of them and put it at the front of the chunk list. - */ - if (tp->t_busy_free == 0) { - lbcp = (xfs_log_busy_chunk_t*) - kmem_alloc(sizeof(xfs_log_busy_chunk_t), KM_SLEEP); - ASSERT(lbcp != NULL); - /* - * Initialize the chunk, and then - * claim the first slot in the newly allocated chunk. - */ - XFS_LBC_INIT(lbcp); - XFS_LBC_CLAIM(lbcp, 0); - lbcp->lbc_unused = 1; - lbsp = XFS_LBC_SLOT(lbcp, 0); - - /* - * Link in the new chunk and update the free count. - */ - lbcp->lbc_next = tp->t_busy.lbc_next; - tp->t_busy.lbc_next = lbcp; - tp->t_busy_free = XFS_LIC_NUM_SLOTS - 1; - - /* Initialize the descriptor and return it */ - lbsp->lbc_busyp = busyp; - return lbsp; - } - - /* - * Find the free descriptor. It is somewhere in the chunklist - * of descriptors. - */ - lbcp = &tp->t_busy; - while (lbcp != NULL) { - if (XFS_LBC_VACANCY(lbcp)) { - if (lbcp->lbc_unused <= XFS_LBC_MAX_SLOT) { - i = lbcp->lbc_unused; - break; - } else { - /* out-of-order vacancy */ - cmn_err(CE_DEBUG, "OOO vacancy lbcp 0x%p\n", lbcp); - ASSERT(0); - } - } - lbcp = lbcp->lbc_next; - } - ASSERT(lbcp != NULL); - /* - * If we find a free descriptor, claim it, - * initialize it, and return it. - */ - XFS_LBC_CLAIM(lbcp, i); - if (lbcp->lbc_unused <= i) { - lbcp->lbc_unused = i + 1; - } - lbsp = XFS_LBC_SLOT(lbcp, i); - tp->t_busy_free--; - lbsp->lbc_busyp = busyp; - return lbsp; -} - - -/* - * xfs_trans_free_busy - * Free all of the busy lists from a transaction - */ -void -xfs_trans_free_busy(xfs_trans_t *tp) -{ - xfs_log_busy_chunk_t *lbcp; - xfs_log_busy_chunk_t *lbcq; - - lbcp = tp->t_busy.lbc_next; - while (lbcp != NULL) { - lbcq = lbcp->lbc_next; - kmem_free(lbcp); - lbcp = lbcq; - } - - XFS_LBC_INIT(&tp->t_busy); - tp->t_busy.lbc_unused = 0; -} diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index fd50556..901dc0f 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -38,7 +38,6 @@ struct xfs_log_item_desc *xfs_trans_next_item(struct xfs_trans *, void xfs_trans_free_items(struct xfs_trans *, int); void xfs_trans_unlock_items(struct xfs_trans *, xfs_lsn_t); -void xfs_trans_free_busy(xfs_trans_t *tp); /* * AIL traversal cursor. -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M86fH009025 for ; Tue, 7 Oct 2008 15:08:06 -0700 X-ASG-Debug-ID: 1223417382-62bc00930001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4DDC41B0C579 for ; Tue, 7 Oct 2008 15:09:44 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id t1eq3U3tEUM8h1st for ; Tue, 07 Oct 2008 15:09:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304788" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vj-JY for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/7] XFS: Don't use log forces when busy extents are allocated Subject: [PATCH 4/7] XFS: Don't use log forces when busy extents are allocated Date: Wed, 8 Oct 2008 09:09:34 +1100 Message-Id: <1223417377-8679-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417386 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0294 1.0000 -1.8308 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.83 X-Barracuda-Spam-Status: No, SCORE=-1.83 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Even though we try to avoid busy extents, there are still situations where we can't avoid them (such as allocation from the AGFL). To minimise the overhead of such allocation behaviour, we mark the transaction doing the allocation as synchronous rather than triggering a log force to get the previous freeing transaction on disk. The synchronous transaction provides the same guarantees as a synchronous log force because it ensures that all the transactions are on disk. i.e. it preserves the free->allocate order of the extent correctly in recovery. The big advantage to this method comes from the fact that we don't hold the AGF locked during the writeback of the log buffers during transaction commit. Hence we can be doing further allocations while the synchronous transaction is committing, unlike the current synchronous log force case. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ag.h | 1 - fs/xfs/xfs_alloc.c | 93 ++++++++++++++++++++-------------------------------- 2 files changed, 36 insertions(+), 58 deletions(-) diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index e7aaa1c..7048d3d 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -164,7 +164,6 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; - struct xfs_trans *tp; /* transaction that did the free */ }; /* diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 77dc18e..f9d092e 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -142,7 +142,6 @@ xfs_alloc_mark_busy( busyp->agno = agno; busyp->bno = bno; busyp->length = len; - busyp->tp = tp; pag = xfs_perag_get(tp->t_mountp, agno); spin_lock(&pag->pagb_lock); @@ -155,11 +154,10 @@ xfs_alloc_mark_busy( /* * Search for a busy extent within the range of the extent we are about to - * allocate. You need to be holding the busy extent tree lock when calling - * __xfs_alloc_busy_search(). + * allocate. */ static struct xfs_busy_extent * -__xfs_alloc_busy_search( +xfs_alloc_busy_search( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t bno, @@ -171,6 +169,7 @@ __xfs_alloc_busy_search( uend = bno + len - 1; pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; while (rbp) { struct xfs_busy_extent *busyp; @@ -183,12 +182,14 @@ __xfs_alloc_busy_search( rbp = rbp->rb_right; else { /* (start1,length1) within (start2, length2) */ - TRACE_BUSYSEARCH("xfs_alloc_search_busy", + TRACE_BUSYSEARCH("xfs_alloc_busy_search", "found1", agno, bno, len, tp); + spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); return busyp; } } + spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); return NULL; } @@ -200,13 +201,12 @@ xfs_alloc_clear_busy( { struct xfs_perag *pag; - pag = xfs_perag_get(tp->t_mountp, busyp->agno); - spin_lock(&pag->pagb_lock); - /* check that the busyp is still in the rbtree */ - ASSERT(__xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, + ASSERT(xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, busyp->length) == busyp); + pag = xfs_perag_get(tp->t_mountp, busyp->agno); + spin_lock(&pag->pagb_lock); TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, busyp->length, tp); rb_erase(&busyp->rb_node, &pag->pagb_tree); @@ -217,41 +217,6 @@ xfs_alloc_clear_busy( } /* - * If we find the extent in the busy list, force the log out to get the - * extent out of the busy list so the caller can use it straight away. - */ -STATIC void -xfs_alloc_search_busy( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) -{ - struct xfs_perag *pag; - struct xfs_busy_extent *busyp; - xfs_lsn_t lsn; - - pag = xfs_perag_get(tp->t_mountp, agno); - spin_lock(&pag->pagb_lock); - busyp = __xfs_alloc_busy_search(tp, agno, bno, len); - if (!busyp) { - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "not-found", agno, bno, len, tp); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); - return; - } - /* - * A block was found, force the log through the LSN of the - * transaction that freed the block - */ - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "found", agno, bno, len, tp); - lsn = busyp->tp->t_commit_lsn; - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); - xfs_perag_put(pag); -} - -/* * Internal functions. */ @@ -852,9 +817,16 @@ xfs_alloc_ag_vextent( TRACE_MODAGF(NULL, agf, XFS_AGF_FREEBLKS); xfs_alloc_log_agf(args->tp, args->agbp, XFS_AGF_FREEBLKS); - /* search the busylist for these blocks */ - xfs_alloc_search_busy(args->tp, args->agno, - args->agbno, args->len); + /* + * Search the busylist for these blocks and mark the + * transaction as synchronous if blocks are found. This + * avoids the need to block in due to a synchronous log + * force to ensure correct ordering as the synchronous + * transaction will guarantee that for us. + */ + if (xfs_alloc_busy_search(args->tp, args->agno, + args->agbno, args->len)) + xfs_trans_set_sync(args->tp); } if (!args->isfl) xfs_trans_mod_sb(args->tp, @@ -914,7 +886,7 @@ xfs_alloc_ag_vextent_exact( error = xfs_alloc_get_rec(bno_cur, &fbno, &flen, &i); if (error) goto error0; - if (__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + if (xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) goto not_found; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); @@ -1009,7 +981,7 @@ xfs_alloc_find_best_extent( XFS_WANT_CORRUPTED_GOTO(i == 1, error0); xfs_alloc_compute_aligned(*sbno, *slen, args->alignment, args->minlen, &bno, slena); - if (__xfs_alloc_busy_search(args->tp, args->agno, bno, *slena)) { + if (xfs_alloc_busy_search(args->tp, args->agno, bno, *slena)) { /* just freed - skip this one */ goto next_record; } @@ -1189,7 +1161,7 @@ xfs_alloc_ag_vextent_near( args->minlen, <bnoa, <lena); if (ltlena < args->minlen) continue; - if (__xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) + if (xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) continue; args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); @@ -1311,7 +1283,7 @@ xfs_alloc_ag_vextent_near( xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, args->minlen, <bnoa, <lena); if (ltlena >= args->minlen && - !__xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) + !xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) break; /* * clear the length so we don't accidentally use this @@ -1334,7 +1306,7 @@ xfs_alloc_ag_vextent_near( xfs_alloc_compute_aligned(gtbno, gtlen, args->alignment, args->minlen, >bnoa, >lena); if (gtlena >= args->minlen && - !__xfs_alloc_busy_search(args->tp, args->agno, gtbnoa, gtlena)) + !xfs_alloc_busy_search(args->tp, args->agno, gtbnoa, gtlena)) break; gtlena = 0; if ((error = xfs_btree_increment(bno_cur_gt, 0, &i))) @@ -1513,7 +1485,7 @@ restart: goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); if (!check_busy || - !__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + !xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) break; error = xfs_btree_increment(cnt_cur, 0, &i); if (error) @@ -1566,7 +1538,7 @@ restart: * a better choice than other extents due to the log * force penalty of using them. */ - if (__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + if (xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) continue; xfs_alloc_compute_aligned(fbno, flen, args->alignment, args->minlen, &rbno, &rlen); @@ -2267,10 +2239,17 @@ xfs_alloc_get_freelist( * and remain there until the freeing transaction is committed to * disk. Now that we have allocated blocks, this list must be * searched to see if a block is being reused. If one is, then - * the freeing transaction must be pushed to disk NOW by forcing - * to disk all iclogs up that transaction's LSN. + * the freeing transaction must be pushed to disk before this + * transaction. + * + * We do this by setting the current transaction + * to a sync transaction which guarantees that the freeing transaction + * is on disk before this transaction. This is done instead of a + * synchronous log force here so that we don't sit and wait with + * the AGF locked in the transaction during the log force. */ - xfs_alloc_search_busy(tp, be32_to_cpu(agf->agf_seqno), bno, 1); + if (xfs_alloc_busy_search(tp, be32_to_cpu(agf->agf_seqno), bno, 1)) + xfs_trans_set_sync(tp); return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M86W2009019 for ; Tue, 7 Oct 2008 15:08:06 -0700 X-ASG-Debug-ID: 1223417384-60f602d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 30AB54C8253 for ; Tue, 7 Oct 2008 15:09:44 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id eHxH2ag7aLoQvMx8 for ; Tue, 07 Oct 2008 15:09:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304789" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vb-Dj for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/7] XFS: rename xfs_get_perag Subject: [PATCH 1/7] XFS: rename xfs_get_perag Date: Wed, 8 Oct 2008 09:09:31 +1100 Message-Id: <1223417377-8679-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417386 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_get_perag is really getting the perag that an inode belongs to based on it's inode number. Rename it appropriately so we can use xfs_perag_get() to get the perag from a provided ag number. Convert a number of sites over to using this interface. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 21 ++++++++++++--------- fs/xfs/xfs_iget.c | 14 +++++++------- fs/xfs/xfs_inode.c | 6 +++--- fs/xfs/xfs_mount.h | 15 ++++++++++++--- 4 files changed, 34 insertions(+), 22 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index ee1648b..08b2acf 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -57,7 +57,7 @@ xfs_sync_inodes_ag( int ag, int flags) { - xfs_perag_t *pag = &mp->m_perag[ag]; + xfs_perag_t *pag = xfs_perag_get(mp, ag); int nr_found; uint32_t first_index = 0; int error = 0; @@ -197,10 +197,11 @@ xfs_sync_inodes_ag( * bail out if the filesystem is corrupted. */ if (error == EFSCORRUPTED) - return XFS_ERROR(error); + break; } while (nr_found); + xfs_perag_put(pag); return last_error; } @@ -598,7 +599,7 @@ xfs_reclaim_inode( int locked, int sync_mode) { - xfs_perag_t *pag = xfs_get_perag(ip->i_mount, ip->i_ino); + xfs_perag_t *pag = xfs_perag_get_from_ino(ip->i_mount, ip->i_ino); /* The hash lock here protects a thread in xfs_iget_core from * racing with us on linking the inode back with a vnode. @@ -615,12 +616,13 @@ xfs_reclaim_inode( xfs_ifunlock(ip); xfs_iunlock(ip, XFS_ILOCK_EXCL); } + xfs_perag_put(pag); return 1; } __xfs_iflags_set(ip, XFS_IRECLAIM); spin_unlock(&ip->i_flags_lock); write_unlock(&pag->pag_ici_lock); - xfs_put_perag(ip->i_mount, pag); + xfs_perag_put(pag); /* * If the inode is still dirty, then flush it out. If the inode @@ -663,7 +665,7 @@ xfs_inode_set_reclaim_tag( xfs_inode_t *ip) { xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + xfs_perag_t *pag = xfs_perag_get_from_ino(mp, ip->i_ino); read_lock(&pag->pag_ici_lock); spin_lock(&ip->i_flags_lock); @@ -672,7 +674,7 @@ xfs_inode_set_reclaim_tag( __xfs_iflags_set(ip, XFS_IRECLAIMABLE); spin_unlock(&ip->i_flags_lock); read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + xfs_perag_put(pag); } void @@ -690,14 +692,14 @@ xfs_inode_clear_reclaim_tag( xfs_inode_t *ip) { xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + xfs_perag_t *pag = xfs_perag_get_from_ino(mp, ip->i_ino); read_lock(&pag->pag_ici_lock); spin_lock(&ip->i_flags_lock); __xfs_inode_clear_reclaim_tag(mp, pag, ip); spin_unlock(&ip->i_flags_lock); read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + xfs_perag_put(pag); } @@ -709,7 +711,7 @@ xfs_reclaim_inodes_ag( int mode) { xfs_inode_t *ip = NULL; - xfs_perag_t *pag = &mp->m_perag[ag]; + xfs_perag_t *pag = xfs_perag_get(mp, ag); int nr_found; uint32_t first_index; int skipped; @@ -779,6 +781,7 @@ restart: delay(1); goto restart; } + xfs_perag_put(pag); return; } diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index a1f209b..b34b732 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -245,7 +245,7 @@ xfs_iget( return EINVAL; /* get the perag structure and ensure that it's inode capable */ - pag = xfs_get_perag(mp, ino); + pag = xfs_perag_get_from_ino(mp, ino); if (!pag->pagi_inodeok) return EINVAL; ASSERT(pag->pag_ici_init); @@ -269,7 +269,7 @@ again: if (error) goto out_error_or_again; } - xfs_put_perag(mp, pag); + xfs_perag_put(pag); xfs_iflags_set(ip, XFS_IMODIFIED); *ipp = ip; @@ -289,7 +289,7 @@ out_error_or_again: delay(1); goto again; } - xfs_put_perag(mp, pag); + xfs_perag_put(pag); return error; } @@ -307,11 +307,11 @@ xfs_inode_incore(xfs_mount_t *mp, xfs_inode_t *ip; xfs_perag_t *pag; - pag = xfs_get_perag(mp, ino); + pag = xfs_perag_get_from_ino(mp, ino); read_lock(&pag->pag_ici_lock); ip = radix_tree_lookup(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ino)); read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + xfs_perag_put(pag); /* the returned inode must match the transaction */ if (ip && (ip->i_transp != tp)) @@ -410,12 +410,12 @@ xfs_iextract( xfs_inode_t *ip) { xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + xfs_perag_t *pag = xfs_perag_get_from_ino(mp, ip->i_ino); write_lock(&pag->pag_ici_lock); radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); write_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + xfs_perag_put(pag); mp->m_ireclaims++; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index eba2ff0..17dbf24 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2111,7 +2111,7 @@ xfs_ifree_cluster( xfs_inode_t *ip, **ip_found; xfs_inode_log_item_t *iip; xfs_log_item_t *lip; - xfs_perag_t *pag = xfs_get_perag(mp, inum); + xfs_perag_t *pag = xfs_perag_get_from_ino(mp, inum); if (mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp)) { blks_per_cluster = 1; @@ -2253,7 +2253,7 @@ xfs_ifree_cluster( } kmem_free(ip_found); - xfs_put_perag(mp, pag); + xfs_perag_put(pag); } /* @@ -2973,7 +2973,7 @@ xfs_iflush_cluster( xfs_buf_t *bp) { xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + xfs_perag_t *pag = xfs_perag_get_from_ino(mp, ip->i_ino); unsigned long first_index, mask; unsigned long inodes_per_cluster; int ilist_size; diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index f927ada..55cc89f 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -455,18 +455,27 @@ xfs_daddr_to_agbno(struct xfs_mount *mp, xfs_daddr_t d) * perag get/put wrappers for eventual ref counting */ static inline xfs_perag_t * -xfs_get_perag(struct xfs_mount *mp, xfs_ino_t ino) +xfs_perag_get(struct xfs_mount *mp, xfs_agnumber_t agno) { - return &mp->m_perag[XFS_INO_TO_AGNO(mp, ino)]; + return &mp->m_perag[agno]; } static inline void -xfs_put_perag(struct xfs_mount *mp, xfs_perag_t *pag) +xfs_perag_put(xfs_perag_t *pag) { /* nothing to see here, move along */ } /* + * Get the perag associated with the given inode number + */ +static inline xfs_perag_t * +xfs_perag_get_from_ino(struct xfs_mount *mp, xfs_ino_t ino) +{ + return xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino)); +} + +/* * Per-cpu superblock locking functions */ #ifdef HAVE_PERCPU_SB -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M88pA009045 for ; Tue, 7 Oct 2008 15:08:08 -0700 X-ASG-Debug-ID: 1223417381-25a802a40002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5525B1B0C579 for ; Tue, 7 Oct 2008 15:09:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id UAveCHiUbyrbbP6L for ; Tue, 07 Oct 2008 15:09:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC4QwiHA2QIfg X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304785" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vm-LV for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/7] XFS: Do not classify freed allocation btree blocks as busy Subject: [PATCH 5/7] XFS: Do not classify freed allocation btree blocks as busy Date: Wed, 8 Oct 2008 09:09:35 +1100 Message-Id: <1223417377-8679-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417387 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- During an allocation or freeing of an extent, we occasionally have an interesting thing happen during a btree update. We may merge a block as part of a record delete, then allocate it again immediately afterwards when inserting a modified extent. xfs_alloc_fixup_trees() does this sort of manipulation to the btrees, and so can merge then immediately split the tree resulting the in the same busy block being used from the free list. Previously, this would trigger a synchronous log force of the entire log (as the current transaction had a lsn of 0 until committed), but continue to allow the extent to be used because if it is not on disk now then it must have been freed and marked busy in this transaction. In the case of allocbt blocks, we log the fact that they get moved to the freelist and we also log them when the move off the free list back into the free space trees. When we move the blocks off the freelist back to the trees, we mark the extent busy at that point so that it doesn't get reused until the transaction is committed. This means that as long as the block is on the AGFL and is only used for allocbt blocks, we don't have to force the log to ensure prior manipulating transactions are on disk as the process of log recovery will replay the transactions in the correct order. However, we still need to protect against the fact that as we approach ENOSPC in an AG we can allocate data and metadata blocks direct from the AGFL. In this case, we need to treat btree blocks just like any other busy extent. Hence we still need to track btree blocks in the busy extent tree, but we need to distinguish them from normal extents so we can apply the necessary exceptions for btree block allocation. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ag.h | 5 ++ fs/xfs/xfs_alloc.c | 181 +++++++++++++++++++++++++++++++++++----------- fs/xfs/xfs_alloc.h | 5 -- fs/xfs/xfs_alloc_btree.c | 13 ---- 4 files changed, 145 insertions(+), 59 deletions(-) diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 7048d3d..ec87185 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -164,6 +164,11 @@ struct xfs_busy_extent { xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; + int flags; +}; + +enum { + XFS_BUSY_EXT_FREELIST = 0x0001, /* busy extent on freelist from abt */ }; /* diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index f9d092e..e5fb397 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -90,8 +90,22 @@ STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, * * xfs_alloc_mark_busy - add to the per-ag busy list * xfs_alloc_clear_busy - remove an item from the per-ag busy list + * + * A single transaction can move an allocbt block to the AGFL and + * then reallocate it immediately within the same transaction. It + * may even get reused in a different transaction. In both these cases, + * we don't need to do anything special; all the changes to the buffer + * including he fact it has been freed and reallocated will be logged. + * + * Hence we can provide a special exception for blocks that become + * busy via freelist manipulations - if they are going to be re-used + * as allocbt blocks then we don't need to wait for transaction + * completion to remove the extent from the busy list - we can + * do it the moment we pull the extent off the free list. To do this, + * though, we need to know that the busy extent was a allocbt block + * and record that in the busy extent structure. */ -static void +STATIC void xfs_alloc_busy_insert( struct xfs_perag *pag, xfs_agblock_t bno, @@ -105,24 +119,29 @@ xfs_alloc_busy_insert( parent = *rbp; busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); + ASSERT(bno != busyp->bno); if (bno < busyp->bno) rbp = &(*rbp)->rb_left; else if (bno > busyp->bno) rbp = &(*rbp)->rb_right; - else - BUG(); + else { + cmn_err(CE_WARN, + "XFS: ignoring duplicate busy extent.\n"); + ASSERT(0); + } } rb_link_node(node, parent, rbp); rb_insert_color(node, &pag->pagb_tree); } -void +STATIC void xfs_alloc_mark_busy( struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t bno, - xfs_extlen_t len) + xfs_extlen_t len, + int freelist) /* metadata block to freelist */ { struct xfs_busy_extent *busyp; struct xfs_perag *pag; @@ -142,6 +161,8 @@ xfs_alloc_mark_busy( busyp->agno = agno; busyp->bno = bno; busyp->length = len; + if (freelist) + busyp->flags |= XFS_BUSY_EXT_FREELIST; pag = xfs_perag_get(tp->t_mountp, agno); spin_lock(&pag->pagb_lock); @@ -153,23 +174,21 @@ xfs_alloc_mark_busy( } /* - * Search for a busy extent within the range of the extent we are about to - * allocate. + * Search for a busy extent that overlaps the range of the extent we + * are about to allocate. */ static struct xfs_busy_extent * -xfs_alloc_busy_search( +__xfs_alloc_busy_search( struct xfs_trans *tp, + struct xfs_perag *pag, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len) { - struct xfs_perag *pag; struct rb_node *rbp; xfs_agblock_t uend, bend; uend = bno + len - 1; - pag = xfs_perag_get(tp->t_mountp, agno); - spin_lock(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; while (rbp) { struct xfs_busy_extent *busyp; @@ -181,17 +200,31 @@ xfs_alloc_busy_search( else if (bno > bend) rbp = rbp->rb_right; else { - /* (start1,length1) within (start2, length2) */ + /* (start1,length1) overlaps (start2, length2) */ TRACE_BUSYSEARCH("xfs_alloc_busy_search", "found1", agno, bno, len, tp); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); return busyp; } } + return NULL; +} + +STATIC struct xfs_busy_extent * +xfs_alloc_busy_search( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_busy_extent *busyp; + struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, agno); + + spin_lock(&pag->pagb_lock); + busyp = __xfs_alloc_busy_search(tp, pag, agno, bno, len); spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); - return NULL; + return busyp; } void @@ -307,6 +340,44 @@ xfs_alloc_get_rec( } /* + * If the extent is busy via xfs_alloc_put_freelist(), and we are + * currently reusing it via xfs_alloc_get_freelist(), remove the + * extent from the busy list. Do this search and remove atomically + * so we don't race with transaction completion calling + * xfs_alloc_clear_busy(). + * + * We should never get the situation where an extent on the freelist + * is busy due to other methods of freeing extents. If it happens, + * let the caller handle it (e.g. by using a synchronous log + * force to wait for the extent to become unbusy). + */ +static struct xfs_busy_extent * +xfs_alloc_search_clear_busy_freelist( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len, + int btreeblk) +{ + struct xfs_busy_extent *busyp; + struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, agno); + + spin_lock(&pag->pagb_lock); + busyp = __xfs_alloc_busy_search(tp, pag, agno, bno, len); + if (busyp && btreeblk && (busyp->flags & XFS_BUSY_EXT_FREELIST)) { + TRACE_UNBUSY("xfs_alloc_search_clear_busy_freelist", + "found", busyp->agno, busyp->bno, busyp->length, tp); + rb_erase(&busyp->rb_node, &pag->pagb_tree); + kmem_free(busyp); + busyp = NULL; + } + spin_unlock(&pag->pagb_lock); + + xfs_perag_put(pag); + return busyp; +} + +/* * Compute aligned version of the found extent. * Takes alignment and min length into account. */ @@ -1946,17 +2017,16 @@ xfs_free_ag_extent( agno, bno, len, isfl); /* - * Since blocks move to the free list without the coordination - * used in xfs_bmap_finish, we can't allow block to be available - * for reallocation and non-transaction writing (user data) - * until we know that the transaction that moved it to the free - * list is permanently on disk. We track the blocks by declaring - * these blocks as "busy"; the busy list is maintained on a per-ag - * basis and each transaction records which entries should be removed - * when the iclog commits to disk. If a busy block is allocated, - * the iclog is pushed up to the LSN that freed the block. + * Since blocks move to the free list without the coordination used in + * xfs_bmap_finish, we can't allow block to be available for + * reallocation and non-transaction writing (user data) until we know + * that the transaction that moved it to the free list is permanently + * on disk. We track the blocks by declaring these blocks as "busy"; + * the busy list is maintained on a per-ag basis and the extent cannot + * be reallocated until the transaction that frees it is safely on + * disk. */ - xfs_alloc_mark_busy(tp, agno, bno, len); + xfs_alloc_mark_busy(tp, agno, bno, len, 0); return 0; error0: @@ -2177,6 +2247,29 @@ xfs_alloc_fix_freelist( /* * Get a block from the freelist. * Returns with the buffer for the block gotten. + * + * Notes on busy extent list maniipulations: + * + * As blocks are freed, they are added to the per-ag busy list and + * remain there until the freeing transaction is committed to disk. + * Now that we have allocated blocks, this list must be searched to see + * if a block is being reused. + * + * The only way we can get a busy extent on the freelist is when an + * alloc btree block is freed. Because this is a metadata block and all + * modifications are logged, we don't need to push the freeing + * transaction to disk if this allocation is for another btree block - + * the natural ordering of the log transactions will ensure that + * recovery will do the right thing. However, we need to remove it from + * the busy extent list as we have reused it. + * + * If this is to be used as any other type of block, we really + * need to ensure that the freeing transaction is on disk before we + * re-use it. The above case is the common case, so only when we are + * near ENOSPC will we be allocating other metadata or data blocks + * from the free list. In that case, waiting here for a log force + * to push the transaction to disk is not a big deal because it should + * be very infrequent. */ int /* error */ xfs_alloc_get_freelist( @@ -2234,22 +2327,11 @@ xfs_alloc_get_freelist( xfs_alloc_log_agf(tp, agbp, logflags); *bnop = bno; - /* - * As blocks are freed, they are added to the per-ag busy list - * and remain there until the freeing transaction is committed to - * disk. Now that we have allocated blocks, this list must be - * searched to see if a block is being reused. If one is, then - * the freeing transaction must be pushed to disk before this - * transaction. - * - * We do this by setting the current transaction - * to a sync transaction which guarantees that the freeing transaction - * is on disk before this transaction. This is done instead of a - * synchronous log force here so that we don't sit and wait with - * the AGF locked in the transaction during the log force. - */ - if (xfs_alloc_busy_search(tp, be32_to_cpu(agf->agf_seqno), bno, 1)) - xfs_trans_set_sync(tp); + /* handle busy extents */ + if (xfs_alloc_search_clear_busy_freelist(tp, + be32_to_cpu(agf->agf_seqno), bno, 1, btreeblk)) + xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + return 0; } @@ -2306,6 +2388,15 @@ xfs_alloc_pagf_init( /* * Put the block on the freelist for the allocation group. + * + * Notes on handling busy extents: + * + * If this is a btree block, we need to let the busy extent list handling + * know about it so that we can optimise xfs_alloc_get_freelist() to allow + * us to re-use extents that were btree blocks without problems. We do this + * so that the entire freelist is available for btree blocks and we can do + * this because all modifications, allocations and freeing of allocbt blocks + * are logged and hence strongly ordered. */ int /* error */ xfs_alloc_put_freelist( @@ -2357,6 +2448,14 @@ xfs_alloc_put_freelist( (int)((xfs_caddr_t)blockp - (xfs_caddr_t)agfl), (int)((xfs_caddr_t)blockp - (xfs_caddr_t)agfl + sizeof(xfs_agblock_t) - 1)); + + /* + * If it's a btree block, mark it busy as it has just been freed. + * Otherwise we are just replenishing the free list with extents that + * are already free so we don't need to track them. + */ + if (btreeblk) + xfs_alloc_mark_busy(tp, be32_to_cpu(agf->agf_seqno), bno, 1, 1); return 0; } diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h index 21040af..69111dd 100644 --- a/fs/xfs/xfs_alloc.h +++ b/fs/xfs/xfs_alloc.h @@ -122,11 +122,6 @@ extern ktrace_t *xfs_alloc_trace_buf; #define XFS_ALLOC_KTRACE_BUSYSEARCH 6 #endif -void -xfs_alloc_mark_busy(xfs_trans_t *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len); void xfs_alloc_clear_busy(xfs_trans_t *tp, struct xfs_busy_extent *busyp); diff --git a/fs/xfs/xfs_alloc_btree.c b/fs/xfs/xfs_alloc_btree.c index 9e63f8c..f41bfae 100644 --- a/fs/xfs/xfs_alloc_btree.c +++ b/fs/xfs/xfs_alloc_btree.c @@ -119,19 +119,6 @@ xfs_allocbt_free_block( error = xfs_alloc_put_freelist(cur->bc_tp, agbp, NULL, bno, 1); if (error) return error; - - /* - * Since blocks move to the free list without the coordination used in - * xfs_bmap_finish, we can't allow block to be available for - * reallocation and non-transaction writing (user data) until we know - * that the transaction that moved it to the free list is permanently - * on disk. We track the blocks by declaring these blocks as "busy"; - * the busy list is maintained on a per-ag basis and each transaction - * records which entries should be removed when the iclog commits to - * disk. If a busy block is allocated, the iclog is pushed up to the - * LSN that freed the block. - */ - xfs_alloc_mark_busy(cur->bc_tp, be32_to_cpu(agf->agf_seqno), bno, 1); xfs_trans_agbtree_delta(cur->bc_tp, -1); return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M86cc009022 for ; Tue, 7 Oct 2008 15:08:06 -0700 X-ASG-Debug-ID: 1223417381-25a802a40001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D9231B0C572 for ; Tue, 7 Oct 2008 15:09:43 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 5DjWuQ4Xa5NgYZpZ for ; Tue, 07 Oct 2008 15:09:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304781" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vf-HZ for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/7] XFS: Don't immediately reallocate busy extents Subject: [PATCH 3/7] XFS: Don't immediately reallocate busy extents Date: Wed, 8 Oct 2008 09:09:33 +1100 Message-Id: <1223417377-8679-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417385 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Every time we reallocate a busy extent, we cause a synchronous log force to occur to ensure the freeing transaction is on disk before we continue and use the newly allocated extent. This is extremely sub-optimal as it means we are holding the AGF locked over a blocking log force that could take several hundred milliseconds to complete. This prevents us from making progress and other allocations and freeing from ocurring in that AG for that period of time. Instead of searching the busy extent list after deciding on the extent to allocate, check each candidate extent during the allocation decisions as to whether they are in the busy list. If they are in the busy list, we don't consider that extent a good choice to allocate. This will have relatively low overhead because the rbtree is indexed by block number so searches should find a busy extent very quickly. Signed-off-by: Dave Chinner --- fs/xfs/xfs_alloc.c | 779 +++++++++++++++++++++++++--------------------------- 1 files changed, 380 insertions(+), 399 deletions(-) diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 98908ba..77dc18e 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -45,12 +45,6 @@ #define XFSA_FIXUP_BNO_OK 1 #define XFSA_FIXUP_CNT_OK 2 -STATIC void -xfs_alloc_search_busy(xfs_trans_t *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len); - #if defined(XFS_ALLOC_TRACE) ktrace_t *xfs_alloc_trace_buf; @@ -85,6 +79,178 @@ STATIC int xfs_alloc_ag_vextent_size(xfs_alloc_arg_t *); STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, xfs_btree_cur_t *, xfs_agblock_t *, xfs_extlen_t *, int *); + + +/* + * AG Busy list management + * The busy list contains block ranges that have been freed but whose + * transactions have not yet hit disk. If any block listed in a busy + * list is reused, the transaction that freed it must be forced to disk + * before continuing to use the block. + * + * xfs_alloc_mark_busy - add to the per-ag busy list + * xfs_alloc_clear_busy - remove an item from the per-ag busy list + */ +static void +xfs_alloc_busy_insert( + struct xfs_perag *pag, + xfs_agblock_t bno, + struct rb_node *node) +{ + struct rb_node **rbp = &pag->pagb_tree.rb_node; + struct rb_node *parent = NULL; + struct xfs_busy_extent *busyp; + + while (*rbp) { + parent = *rbp; + busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); + + if (bno < busyp->bno) + rbp = &(*rbp)->rb_left; + else if (bno > busyp->bno) + rbp = &(*rbp)->rb_right; + else + BUG(); + } + + rb_link_node(node, parent, rbp); + rb_insert_color(node, &pag->pagb_tree); +} + +void +xfs_alloc_mark_busy( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_busy_extent *busyp; + struct xfs_perag *pag; + + busyp = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); + if (!busyp) { + /* + * No Memory! Since it is now not possible to track the free + * block, make this a synchronous transaction to insure that + * the block is not reused before this transaction commits. + */ + TRACE_BUSY("xfs_alloc_mark_busy", "ENOMEM", agno, bno, len, tp); + xfs_trans_set_sync(tp); + return; + } + + busyp->agno = agno; + busyp->bno = bno; + busyp->length = len; + busyp->tp = tp; + + pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); + xfs_alloc_busy_insert(pag, bno, &busyp->rb_node); + xfs_trans_add_busy(tp, busyp); + TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, tp); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); +} + +/* + * Search for a busy extent within the range of the extent we are about to + * allocate. You need to be holding the busy extent tree lock when calling + * __xfs_alloc_busy_search(). + */ +static struct xfs_busy_extent * +__xfs_alloc_busy_search( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_perag *pag; + struct rb_node *rbp; + xfs_agblock_t uend, bend; + + uend = bno + len - 1; + pag = xfs_perag_get(tp->t_mountp, agno); + rbp = pag->pagb_tree.rb_node; + while (rbp) { + struct xfs_busy_extent *busyp; + + busyp = rb_entry(rbp, struct xfs_busy_extent, rb_node); + bend = busyp->bno + busyp->length - 1; + if (uend < busyp->bno) + rbp = rbp->rb_left; + else if (bno > bend) + rbp = rbp->rb_right; + else { + /* (start1,length1) within (start2, length2) */ + TRACE_BUSYSEARCH("xfs_alloc_search_busy", + "found1", agno, bno, len, tp); + xfs_perag_put(pag); + return busyp; + } + } + xfs_perag_put(pag); + return NULL; +} + +void +xfs_alloc_clear_busy( + struct xfs_trans *tp, + struct xfs_busy_extent *busyp) +{ + struct xfs_perag *pag; + + pag = xfs_perag_get(tp->t_mountp, busyp->agno); + spin_lock(&pag->pagb_lock); + + /* check that the busyp is still in the rbtree */ + ASSERT(__xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, + busyp->length) == busyp); + + TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, + busyp->length, tp); + rb_erase(&busyp->rb_node, &pag->pagb_tree); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); + + kmem_free(busyp); +} + +/* + * If we find the extent in the busy list, force the log out to get the + * extent out of the busy list so the caller can use it straight away. + */ +STATIC void +xfs_alloc_search_busy( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_perag *pag; + struct xfs_busy_extent *busyp; + xfs_lsn_t lsn; + + pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); + busyp = __xfs_alloc_busy_search(tp, agno, bno, len); + if (!busyp) { + TRACE_BUSYSEARCH("xfs_alloc_search_busy", "not-found", agno, bno, len, tp); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); + return; + } + /* + * A block was found, force the log through the LSN of the + * transaction that freed the block + */ + TRACE_BUSYSEARCH("xfs_alloc_search_busy", "found", agno, bno, len, tp); + lsn = busyp->tp->t_commit_lsn; + spin_unlock(&pag->pagb_lock); + xfs_log_force(tp->t_mountp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); + xfs_perag_put(pag); +} + /* * Internal functions. */ @@ -705,6 +871,12 @@ xfs_alloc_ag_vextent( * Extent's length (returned in *len) will be between minlen and maxlen, * and of the form k * prod + mod unless there's nothing that large. * Return the starting a.g. block (bno), or NULLAGBLOCK if we can't do it. + * + * Avoid allocating extents that span a busy extent range to avoid causing a + * synchronous log force to be required during the transaction and hence avoid + * holding the AGF locked for an excessive period of time. If we are doing low + * space allocation, speed is a secondary factor so in that case we will use + * busy extents and take the hit.... */ STATIC int /* error */ xfs_alloc_ag_vextent_exact( @@ -735,46 +907,36 @@ xfs_alloc_ag_vextent_exact( */ if ((error = xfs_alloc_lookup_le(bno_cur, args->agbno, args->minlen, &i))) goto error0; - if (!i) { - /* - * Didn't find it, return null. - */ - xfs_btree_del_cursor(bno_cur, XFS_BTREE_NOERROR); - args->agbno = NULLAGBLOCK; - return 0; - } - /* - * Grab the freespace record. - */ - if ((error = xfs_alloc_get_rec(bno_cur, &fbno, &flen, &i))) + if (!i) + goto not_found; + + /* Grab a non-busy freespace record. */ + error = xfs_alloc_get_rec(bno_cur, &fbno, &flen, &i); + if (error) goto error0; + if (__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + goto not_found; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); + + /* Give up if the freespace isn't long enough for the minimum request. */ minend = args->agbno + args->minlen; maxend = args->agbno + args->maxlen; fend = fbno + flen; - /* - * Give up if the freespace isn't long enough for the minimum request. - */ - if (fend < minend) { - xfs_btree_del_cursor(bno_cur, XFS_BTREE_NOERROR); - args->agbno = NULLAGBLOCK; - return 0; - } + if (fend < minend) + goto not_found; /* * End of extent will be smaller of the freespace end and the * maximal requested end. */ end = XFS_AGBLOCK_MIN(fend, maxend); - /* - * Fix the length according to mod and prod if given. - */ + + /* Fix the length according to mod and prod if given. */ args->len = end - args->agbno; xfs_alloc_fix_len(args); - if (!xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(bno_cur, XFS_BTREE_NOERROR); - return 0; - } + if (!xfs_alloc_fix_minleft(args)) + goto not_found; + rlen = args->len; ASSERT(args->agbno + rlen <= fend); end = args->agbno + rlen; @@ -797,6 +959,13 @@ xfs_alloc_ag_vextent_exact( args->wasfromfl = 0; return 0; +not_found: + /* Didn't find it, return null. */ + xfs_btree_del_cursor(bno_cur, XFS_BTREE_NOERROR); + args->agbno = NULLAGBLOCK; + TRACE_ALLOC("not found", args); + return 0; + error0: xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); TRACE_ALLOC("error", args); @@ -804,10 +973,104 @@ error0: } /* + * Search the btree in a given direction via the search cursor + * and compare the records found against the good extent we've + * already found. + */ +STATIC int +xfs_alloc_find_best_extent( + xfs_alloc_arg_t *args, + xfs_btree_cur_t **gcur, /* good cursor */ + xfs_btree_cur_t **scur, /* searching cursor */ + xfs_agblock_t gdiff, /* difference for search comparison */ + xfs_agblock_t *sbno, /* extent found by search */ + xfs_extlen_t *slen, + xfs_extlen_t *slena, /* aligned length */ + int dir) /* 0 = search right, 1 = search left */ +{ + xfs_agblock_t bno; + xfs_agblock_t new; + xfs_agblock_t sdiff; + int i; + int error; + + /* The good extent is perfect, no need to search. */ + if (!gdiff) + goto out_use_good; + + /* + * Look until we find a better one, run out of + * space, or run off the end. + */ + do { + error = xfs_alloc_get_rec(*scur, sbno, slen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + xfs_alloc_compute_aligned(*sbno, *slen, args->alignment, + args->minlen, &bno, slena); + if (__xfs_alloc_busy_search(args->tp, args->agno, bno, *slena)) { + /* just freed - skip this one */ + goto next_record; + } + + /* The good extent is closer than this one */ + if (!dir) { + if (bno >= args->agbno + gdiff) + goto out_use_good; + } else { + if (bno <= args->agbno - gdiff) + goto out_use_good; + } + + /* Same distance, compare length and pick the best. */ + if (*slena >= args->minlen) { + args->len = XFS_EXTLEN_MIN(*slena, args->maxlen); + xfs_alloc_fix_len(args); + sdiff = xfs_alloc_compute_diff(args->agbno, args->len, + args->alignment, *sbno, *slen, &new); + + /* choose closer size and invalidate other cursor */ + if (sdiff < gdiff) + goto out_use_search; + goto out_use_good; + } +next_record: + if (!dir) + error = xfs_btree_increment(*scur, 0, &i); + else + error = xfs_btree_decrement(*scur, 0, &i); + if (error) + goto error0; + } while (i); + +out_use_good: + xfs_btree_del_cursor(*scur, XFS_BTREE_NOERROR); + *scur = NULL; + return 0; + +out_use_search: + xfs_btree_del_cursor(*gcur, XFS_BTREE_NOERROR); + *gcur = NULL; + return 0; + +error0: + /* caller invalidates cursors */ + return error; + +} + +/* * Allocate a variable extent near bno in the allocation group agno. * Extent's length (returned in len) will be between minlen and maxlen, * and of the form k * prod + mod unless there's nothing that large. * Return the starting a.g. block, or NULLAGBLOCK if we can't do it. + * + * Avoid allocating extents that span a busy extent range to avoid causing a + * synchronous log force to be required during the transaction and hence avoid + * holding the AGF locked for an excessive period of time. If we are doing low + * space allocation, speed is a secondary factor so in that case we will use + * busy extents and take the hit.... */ STATIC int /* error */ xfs_alloc_ag_vextent_near( @@ -926,6 +1189,8 @@ xfs_alloc_ag_vextent_near( args->minlen, <bnoa, <lena); if (ltlena < args->minlen) continue; + if (__xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) + continue; args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ASSERT(args->len >= args->minlen); @@ -1045,8 +1310,15 @@ xfs_alloc_ag_vextent_near( XFS_WANT_CORRUPTED_GOTO(i == 1, error0); xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, args->minlen, <bnoa, <lena); - if (ltlena >= args->minlen) + if (ltlena >= args->minlen && + !__xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) break; + /* + * clear the length so we don't accidentally use this + * extent after we decrement the cursor then find a + * match from the other cursor. + */ + ltlena = 0; if ((error = xfs_btree_decrement(bno_cur_lt, 0, &i))) goto error0; if (!i) { @@ -1061,8 +1333,10 @@ xfs_alloc_ag_vextent_near( XFS_WANT_CORRUPTED_GOTO(i == 1, error0); xfs_alloc_compute_aligned(gtbno, gtlen, args->alignment, args->minlen, >bnoa, >lena); - if (gtlena >= args->minlen) + if (gtlena >= args->minlen && + !__xfs_alloc_busy_search(args->tp, args->agno, gtbnoa, gtlena)) break; + gtlena = 0; if ((error = xfs_btree_increment(bno_cur_gt, 0, &i))) goto error0; if (!i) { @@ -1072,201 +1346,39 @@ xfs_alloc_ag_vextent_near( } } } while (bno_cur_lt || bno_cur_gt); - /* - * Got both cursors still active, need to find better entry. - */ + + /* Got both cursors still active, need to find better entry. */ if (bno_cur_lt && bno_cur_gt) { - /* - * Left side is long enough, look for a right side entry. - */ if (ltlena >= args->minlen) { - /* - * Fix up the length. - */ + /* Left side is good, look for a right side entry. */ args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); rlen = args->len; ltdiff = xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, ltlen, <new); - /* - * Not perfect. - */ - if (ltdiff) { - /* - * Look until we find a better one, run out of - * space, or run off the end. - */ - while (bno_cur_lt && bno_cur_gt) { - if ((error = xfs_alloc_get_rec( - bno_cur_gt, >bno, - >len, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(gtbno, gtlen, - args->alignment, args->minlen, - >bnoa, >lena); - /* - * The left one is clearly better. - */ - if (gtbnoa >= args->agbno + ltdiff) { - xfs_btree_del_cursor( - bno_cur_gt, - XFS_BTREE_NOERROR); - bno_cur_gt = NULL; - break; - } - /* - * If we reach a big enough entry, - * compare the two and pick the best. - */ - if (gtlena >= args->minlen) { - args->len = - XFS_EXTLEN_MIN(gtlena, - args->maxlen); - xfs_alloc_fix_len(args); - rlen = args->len; - gtdiff = xfs_alloc_compute_diff( - args->agbno, rlen, - args->alignment, - gtbno, gtlen, >new); - /* - * Right side is better. - */ - if (gtdiff < ltdiff) { - xfs_btree_del_cursor( - bno_cur_lt, - XFS_BTREE_NOERROR); - bno_cur_lt = NULL; - } - /* - * Left side is better. - */ - else { - xfs_btree_del_cursor( - bno_cur_gt, - XFS_BTREE_NOERROR); - bno_cur_gt = NULL; - } - break; - } - /* - * Fell off the right end. - */ - if ((error = xfs_btree_increment( - bno_cur_gt, 0, &i))) - goto error0; - if (!i) { - xfs_btree_del_cursor( - bno_cur_gt, - XFS_BTREE_NOERROR); - bno_cur_gt = NULL; - break; - } - } - } - /* - * The left side is perfect, trash the right side. - */ - else { - xfs_btree_del_cursor(bno_cur_gt, - XFS_BTREE_NOERROR); - bno_cur_gt = NULL; - } - } - /* - * It's the right side that was found first, look left. - */ - else { - /* - * Fix up the length. - */ + + error = xfs_alloc_find_best_extent(args, + &bno_cur_lt, &bno_cur_gt, + ltdiff, >bno, >len, >lena, + 0 /* search right */); + if (error) + goto error0; + } else { + ASSERT(gtlena >= args->minlen); + + /* Right side is good, look for a left side entry. */ args->len = XFS_EXTLEN_MIN(gtlena, args->maxlen); xfs_alloc_fix_len(args); rlen = args->len; gtdiff = xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, gtbno, gtlen, >new); - /* - * Right side entry isn't perfect. - */ - if (gtdiff) { - /* - * Look until we find a better one, run out of - * space, or run off the end. - */ - while (bno_cur_lt && bno_cur_gt) { - if ((error = xfs_alloc_get_rec( - bno_cur_lt, <bno, - <len, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(ltbno, ltlen, - args->alignment, args->minlen, - <bnoa, <lena); - /* - * The right one is clearly better. - */ - if (ltbnoa <= args->agbno - gtdiff) { - xfs_btree_del_cursor( - bno_cur_lt, - XFS_BTREE_NOERROR); - bno_cur_lt = NULL; - break; - } - /* - * If we reach a big enough entry, - * compare the two and pick the best. - */ - if (ltlena >= args->minlen) { - args->len = XFS_EXTLEN_MIN( - ltlena, args->maxlen); - xfs_alloc_fix_len(args); - rlen = args->len; - ltdiff = xfs_alloc_compute_diff( - args->agbno, rlen, - args->alignment, - ltbno, ltlen, <new); - /* - * Left side is better. - */ - if (ltdiff < gtdiff) { - xfs_btree_del_cursor( - bno_cur_gt, - XFS_BTREE_NOERROR); - bno_cur_gt = NULL; - } - /* - * Right side is better. - */ - else { - xfs_btree_del_cursor( - bno_cur_lt, - XFS_BTREE_NOERROR); - bno_cur_lt = NULL; - } - break; - } - /* - * Fell off the left end. - */ - if ((error = xfs_btree_decrement( - bno_cur_lt, 0, &i))) - goto error0; - if (!i) { - xfs_btree_del_cursor(bno_cur_lt, - XFS_BTREE_NOERROR); - bno_cur_lt = NULL; - break; - } - } - } - /* - * The right side is perfect, trash the left side. - */ - else { - xfs_btree_del_cursor(bno_cur_lt, - XFS_BTREE_NOERROR); - bno_cur_lt = NULL; - } + + error = xfs_alloc_find_best_extent(args, + &bno_cur_gt, &bno_cur_lt, + gtdiff, <bno, <len, <lena, + 1 /* search left */); + if (error) + goto error0; } } /* @@ -1287,7 +1399,7 @@ xfs_alloc_ag_vextent_near( bno_cur_lt = bno_cur_gt; bno_cur_gt = NULL; ltbno = gtbno; - ltbnoa = gtbnoa; + //ltbnoa = gtbnoa; ltlen = gtlen; ltlena = gtlena; j = 1; @@ -1332,10 +1444,16 @@ xfs_alloc_ag_vextent_near( } /* - * Allocate a variable extent anywhere in the allocation group agno. - * Extent's length (returned in len) will be between minlen and maxlen, - * and of the form k * prod + mod unless there's nothing that large. - * Return the starting a.g. block, or NULLAGBLOCK if we can't do it. + * Allocate a variable extent anywhere in the allocation group agno. Extent's + * length (returned in len) will be between minlen and maxlen, and of the form + * k * prod + mod unless there's nothing that large. Return the starting a.g. + * block, or NULLAGBLOCK if we can't do it. + * + * Avoid allocating extents that span a busy extent range to avoid causing a + * synchronous log force to be required during the transaction and hence avoid + * holding the AGF locked for an excessive period of time. If we are doing low + * space allocation, speed is a secondary factor so in that case we will use + * busy extents and take the hit.... */ STATIC int /* error */ xfs_alloc_ag_vextent_size( @@ -1349,10 +1467,12 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ + int check_busy = 1; /* * Allocate and initialize a cursor for the by-size btree. */ +restart: cnt_cur = xfs_allocbt_init_cursor(args->mp, args->tp, args->agbp, args->agno, XFS_BTNUM_CNT); bno_cur = NULL; @@ -1381,9 +1501,31 @@ xfs_alloc_ag_vextent_size( * There's a freespace as big as maxlen+alignment-1, get it. */ else { - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i))) - goto error0; - XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + /* + * Search for a non-busy extent that is large enough. + * If we are at low space, don't check, or if we fall off + * the end of the btree, turn off the busy check and + * restart. + */ + for (;;) { + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) + goto error0; + XFS_WANT_CORRUPTED_GOTO(i == 1, error0); + if (!check_busy || + !__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + break; + error = xfs_btree_increment(cnt_cur, 0, &i); + if (error) + goto error0; + if (i == 0) { + ASSERT(check_busy); + check_busy = 0; + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + TRACE_ALLOC("busy restart", args); + goto restart; + } + } } /* * In the first case above, we got the last entry in the @@ -1407,16 +1549,25 @@ xfs_alloc_ag_vextent_size( bestflen = flen; bestfbno = fbno; for (;;) { - if ((error = xfs_btree_decrement(cnt_cur, 0, &i))) + error = xfs_btree_decrement(cnt_cur, 0, &i); + if (error) goto error0; if (i == 0) break; - if ((error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, - &i))) + error = xfs_alloc_get_rec(cnt_cur, &fbno, &flen, &i); + if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); if (flen < bestrlen) break; + + /* + * avoid busy candidate extents as they are clearly not + * a better choice than other extents due to the log + * force penalty of using them. + */ + if (__xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + continue; xfs_alloc_compute_aligned(fbno, flen, args->alignment, args->minlen, &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); @@ -2566,173 +2717,3 @@ error0: return error; } - -/* - * AG Busy list management - * The busy list contains block ranges that have been freed but whose - * transactions have not yet hit disk. If any block listed in a busy - * list is reused, the transaction that freed it must be forced to disk - * before continuing to use the block. - * - * xfs_alloc_mark_busy - add to the per-ag busy list - * xfs_alloc_clear_busy - remove an item from the per-ag busy list - */ -static void -xfs_alloc_busy_insert( - struct xfs_perag *pag, - xfs_agblock_t bno, - struct rb_node *node) -{ - struct rb_node **rbp = &pag->pagb_tree.rb_node; - struct rb_node *parent = NULL; - struct xfs_busy_extent *busyp; - - while (*rbp) { - parent = *rbp; - busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); - - if (bno < busyp->bno) - rbp = &(*rbp)->rb_left; - else if (bno > busyp->bno) - rbp = &(*rbp)->rb_right; - else - BUG(); - } - - rb_link_node(node, parent, rbp); - rb_insert_color(node, &pag->pagb_tree); -} - -void -xfs_alloc_mark_busy( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) -{ - struct xfs_busy_extent *busyp; - struct xfs_perag *pag; - - busyp = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); - if (!busyp) { - /* - * No Memory! Since it is now not possible to track the free - * block, make this a synchronous transaction to insure that - * the block is not reused before this transaction commits. - */ - TRACE_BUSY("xfs_alloc_mark_busy", "ENOMEM", agno, bno, len, tp); - xfs_trans_set_sync(tp); - return; - } - - busyp->agno = agno; - busyp->bno = bno; - busyp->length = len; - busyp->tp = tp; - - pag = xfs_perag_get(tp->t_mountp, agno); - spin_lock(&pag->pagb_lock); - xfs_alloc_busy_insert(pag, bno, &busyp->rb_node); - xfs_trans_add_busy(tp, busyp); - TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, tp); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); -} - -/* - * Search for a busy extent within the range of the extent we are about to - * allocate. You need to be holding the busy extent tree lock when calling - * __xfs_alloc_busy_search(). - */ -static struct xfs_busy_extent * -__xfs_alloc_busy_search( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) -{ - struct xfs_perag *pag; - struct rb_node *rbp; - xfs_agblock_t uend, bend; - - uend = bno + len - 1; - pag = xfs_perag_get(tp->t_mountp, agno); - rbp = pag->pagb_tree.rb_node; - while (rbp) { - struct xfs_busy_extent *busyp; - - busyp = rb_entry(rbp, struct xfs_busy_extent, rb_node); - bend = busyp->bno + busyp->length - 1; - if (uend < busyp->bno) - rbp = rbp->rb_left; - else if (bno > bend) - rbp = rbp->rb_right; - else { - /* (start1,length1) within (start2, length2) */ - TRACE_BUSYSEARCH("xfs_alloc_search_busy", - "found1", agno, bno, len, tp); - xfs_perag_put(pag); - return busyp; - } - } - xfs_perag_put(pag); - return NULL; -} - -void -xfs_alloc_clear_busy( - struct xfs_trans *tp, - struct xfs_busy_extent *busyp) -{ - struct xfs_perag *pag; - - pag = xfs_perag_get(tp->t_mountp, busyp->agno); - spin_lock(&pag->pagb_lock); - - /* check that the busyp is still in the rbtree */ - ASSERT(__xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, - busyp->length) == busyp); - - TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, - busyp->length, tp); - rb_erase(&busyp->rb_node, &pag->pagb_tree); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); - - kmem_free(busyp); -} - -/* - * If we find the extent in the busy list, force the log out to get the - * extent out of the busy list so the caller can use it straight away. - */ -STATIC void -xfs_alloc_search_busy( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) -{ - struct xfs_perag *pag; - struct xfs_busy_extent *busyp; - xfs_lsn_t lsn; - - pag = xfs_perag_get(tp->t_mountp, agno); - spin_lock(&pag->pagb_lock); - busyp = __xfs_alloc_busy_search(tp, agno, bno, len); - if (!busyp) { - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "not-found", agno, bno, len, tp); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); - return; - } - /* - * A block was found, force the log through the LSN of the - * transaction that freed the block - */ - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "found", agno, bno, len, tp); - lsn = busyp->tp->t_commit_lsn; - spin_unlock(&pag->pagb_lock); - xfs_log_force(tp->t_mountp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); - xfs_perag_put(pag); -} -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_13, J_CHICKENPOX_15,J_CHICKENPOX_63 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M88kl009049 for ; Tue, 7 Oct 2008 15:08:08 -0700 X-ASG-Debug-ID: 1223417384-60f602d60001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E67F4C8255 for ; Tue, 7 Oct 2008 15:09:46 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id tNrHrH6owA9LYfnG for ; Tue, 07 Oct 2008 15:09:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC/ToFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304792" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vd-FX for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Subject: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Date: Wed, 8 Oct 2008 09:09:32 +1100 Message-Id: <1223417377-8679-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417388 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we free a metadata extent, we record it in the per-AG busy extent array so that it is not re-used before the freeing transaction hits the disk. This array is fixed size, so when it overflows we make further allocation transactions synchronous because we cannot track more freed extents until those transactions hit the disk and are completed. Under heavy mixed allocation and freeing workloads with large log buffers, we can overflow this array quite easily. This is important as we want to be able to issue block discard commands when we free extents, and that has to happen after the free transaction has been committed to disk. This is made complex by the way the overflows are handled - we don't record the extent to be freed in the busy list, so we've got no callback to issue the discard request from. Hence we need a different tracking mechanism to be easily able to issue discard blocks. Further, the array is sparsely populated, which means that inserts need to search for a free slot, and array searches often have to search many more slots that are actually used to check all the busy extents. Quite inefficient, really. To fix all these problems, make the busy extent tracking dynamic and faster to search by converting it to a per-AG rbtree and indexing it by block number. We always search by block number, so this means that the search and insert scaling becomes O(log n) instead of O(array size). This will also allow us to efficiently track far more busy extents than the current method allows. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ag.h | 20 ++-- fs/xfs/xfs_alloc.c | 235 +++++++++++++++++++++++++++-------------------- fs/xfs/xfs_alloc.h | 5 +- fs/xfs/xfs_mount.c | 8 +-- fs/xfs/xfs_trans.c | 6 +- fs/xfs/xfs_trans.h | 10 +- fs/xfs/xfs_trans_item.c | 19 +--- fs/xfs/xfs_trans_priv.h | 3 - 8 files changed, 161 insertions(+), 145 deletions(-) diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 2bfd863..e7aaa1c 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -156,14 +156,16 @@ typedef struct xfs_agfl { } xfs_agfl_t; /* - * Busy block/extent entry. Used in perag to mark blocks that have been freed - * but whose transactions aren't committed to disk yet. + * Busy block/extent entry. Indexed by a rbtree in perag to mark blocks that + * have been freed but whose transactions aren't committed to disk yet. */ -typedef struct xfs_perag_busy { - xfs_agblock_t busy_start; - xfs_extlen_t busy_length; - struct xfs_trans *busy_tp; /* transaction that did the free */ -} xfs_perag_busy_t; +struct xfs_busy_extent { + struct rb_node rb_node; + xfs_agnumber_t agno; + xfs_agblock_t bno; + xfs_extlen_t length; + struct xfs_trans *tp; /* transaction that did the free */ +}; /* * Per-ag incore structure, copies of information in agf and agi, @@ -192,9 +194,9 @@ typedef struct xfs_perag xfs_agino_t pagi_freecount; /* number of free inodes */ xfs_agino_t pagi_count; /* number of allocated inodes */ int pagb_count; /* pagb slots in use */ - xfs_perag_busy_t *pagb_list; /* unstable blocks */ #ifdef __KERNEL__ - spinlock_t pagb_lock; /* lock for pagb_list */ + spinlock_t pagb_lock; /* lock for pagb_tree */ + struct rb_root pagb_tree; /* ordered tree of busy extents */ atomic_t pagf_fstrms; /* # of filestreams active in this AG */ diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 0a2a872..98908ba 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -60,18 +60,18 @@ ktrace_t *xfs_alloc_trace_buf; xfs_alloc_trace_free(__func__, s, mp, a, b, x, f, __LINE__) #define TRACE_MODAGF(s,a,f) \ xfs_alloc_trace_modagf(__func__, s, mp, a, f, __LINE__) -#define TRACE_BUSY(__func__,s,ag,agb,l,sl,tp) \ - xfs_alloc_trace_busy(__func__, s, mp, ag, agb, l, sl, tp, XFS_ALLOC_KTRACE_BUSY, __LINE__) -#define TRACE_UNBUSY(__func__,s,ag,sl,tp) \ - xfs_alloc_trace_busy(__func__, s, mp, ag, -1, -1, sl, tp, XFS_ALLOC_KTRACE_UNBUSY, __LINE__) +#define TRACE_BUSY(__func__,s,ag,agb,l,tp) \ + xfs_alloc_trace_busy(__func__, s, mp, ag, agb, l, 0, tp, XFS_ALLOC_KTRACE_BUSY, __LINE__) +#define TRACE_UNBUSY(__func__,s,ag,agb,l,tp) \ + xfs_alloc_trace_busy(__func__, s, mp, ag, agb, l, 0, tp, XFS_ALLOC_KTRACE_UNBUSY, __LINE__) #define TRACE_BUSYSEARCH(__func__,s,ag,agb,l,tp) \ xfs_alloc_trace_busy(__func__, s, mp, ag, agb, l, 0, tp, XFS_ALLOC_KTRACE_BUSYSEARCH, __LINE__) #else #define TRACE_ALLOC(s,a) #define TRACE_FREE(s,a,b,x,f) #define TRACE_MODAGF(s,a,f) -#define TRACE_BUSY(s,a,ag,agb,l,sl,tp) -#define TRACE_UNBUSY(fname,s,ag,sl,tp) +#define TRACE_BUSY(s,a,ag,agb,l,tp) +#define TRACE_UNBUSY(fname,s,ag,agb,l,tp) #define TRACE_BUSYSEARCH(fname,s,ag,agb,l,tp) #endif /* XFS_ALLOC_TRACE */ @@ -2293,8 +2293,7 @@ xfs_alloc_read_agf( pag->pagf_levels[XFS_BTNUM_CNTi] = be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNTi]); spin_lock_init(&pag->pagb_lock); - pag->pagb_list = kmem_zalloc(XFS_PAGB_NUM_SLOTS * - sizeof(xfs_perag_busy_t), KM_SLEEP); + pag->pagb_tree = RB_ROOT; pag->pagf_init = 1; } #ifdef DEBUG @@ -2578,128 +2577,162 @@ error0: * xfs_alloc_mark_busy - add to the per-ag busy list * xfs_alloc_clear_busy - remove an item from the per-ag busy list */ -void -xfs_alloc_mark_busy(xfs_trans_t *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) +static void +xfs_alloc_busy_insert( + struct xfs_perag *pag, + xfs_agblock_t bno, + struct rb_node *node) { - xfs_mount_t *mp; - xfs_perag_busy_t *bsy; - int n; + struct rb_node **rbp = &pag->pagb_tree.rb_node; + struct rb_node *parent = NULL; + struct xfs_busy_extent *busyp; + + while (*rbp) { + parent = *rbp; + busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); + + if (bno < busyp->bno) + rbp = &(*rbp)->rb_left; + else if (bno > busyp->bno) + rbp = &(*rbp)->rb_right; + else + BUG(); + } - mp = tp->t_mountp; - spin_lock(&mp->m_perag[agno].pagb_lock); + rb_link_node(node, parent, rbp); + rb_insert_color(node, &pag->pagb_tree); +} - /* search pagb_list for an open slot */ - for (bsy = mp->m_perag[agno].pagb_list, n = 0; - n < XFS_PAGB_NUM_SLOTS; - bsy++, n++) { - if (bsy->busy_tp == NULL) { - break; - } - } +void +xfs_alloc_mark_busy( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_busy_extent *busyp; + struct xfs_perag *pag; - if (n < XFS_PAGB_NUM_SLOTS) { - bsy = &mp->m_perag[agno].pagb_list[n]; - mp->m_perag[agno].pagb_count++; - TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, n, tp); - bsy->busy_start = bno; - bsy->busy_length = len; - bsy->busy_tp = tp; - xfs_trans_add_busy(tp, agno, n); - } else { - TRACE_BUSY("xfs_alloc_mark_busy", "FULL", agno, bno, len, -1, tp); + busyp = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); + if (!busyp) { /* - * The busy list is full! Since it is now not possible to - * track the free block, make this a synchronous transaction - * to insure that the block is not reused before this - * transaction commits. + * No Memory! Since it is now not possible to track the free + * block, make this a synchronous transaction to insure that + * the block is not reused before this transaction commits. */ + TRACE_BUSY("xfs_alloc_mark_busy", "ENOMEM", agno, bno, len, tp); xfs_trans_set_sync(tp); + return; } - spin_unlock(&mp->m_perag[agno].pagb_lock); + busyp->agno = agno; + busyp->bno = bno; + busyp->length = len; + busyp->tp = tp; + + pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); + xfs_alloc_busy_insert(pag, bno, &busyp->rb_node); + xfs_trans_add_busy(tp, busyp); + TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, tp); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); +} + +/* + * Search for a busy extent within the range of the extent we are about to + * allocate. You need to be holding the busy extent tree lock when calling + * __xfs_alloc_busy_search(). + */ +static struct xfs_busy_extent * +__xfs_alloc_busy_search( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) +{ + struct xfs_perag *pag; + struct rb_node *rbp; + xfs_agblock_t uend, bend; + + uend = bno + len - 1; + pag = xfs_perag_get(tp->t_mountp, agno); + rbp = pag->pagb_tree.rb_node; + while (rbp) { + struct xfs_busy_extent *busyp; + + busyp = rb_entry(rbp, struct xfs_busy_extent, rb_node); + bend = busyp->bno + busyp->length - 1; + if (uend < busyp->bno) + rbp = rbp->rb_left; + else if (bno > bend) + rbp = rbp->rb_right; + else { + /* (start1,length1) within (start2, length2) */ + TRACE_BUSYSEARCH("xfs_alloc_search_busy", + "found1", agno, bno, len, tp); + xfs_perag_put(pag); + return busyp; + } + } + xfs_perag_put(pag); + return NULL; } void -xfs_alloc_clear_busy(xfs_trans_t *tp, - xfs_agnumber_t agno, - int idx) +xfs_alloc_clear_busy( + struct xfs_trans *tp, + struct xfs_busy_extent *busyp) { - xfs_mount_t *mp; - xfs_perag_busy_t *list; + struct xfs_perag *pag; - mp = tp->t_mountp; + pag = xfs_perag_get(tp->t_mountp, busyp->agno); + spin_lock(&pag->pagb_lock); - spin_lock(&mp->m_perag[agno].pagb_lock); - list = mp->m_perag[agno].pagb_list; + /* check that the busyp is still in the rbtree */ + ASSERT(__xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, + busyp->length) == busyp); - ASSERT(idx < XFS_PAGB_NUM_SLOTS); - if (list[idx].busy_tp == tp) { - TRACE_UNBUSY("xfs_alloc_clear_busy", "found", agno, idx, tp); - list[idx].busy_tp = NULL; - mp->m_perag[agno].pagb_count--; - } else { - TRACE_UNBUSY("xfs_alloc_clear_busy", "missing", agno, idx, tp); - } + TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, + busyp->length, tp); + rb_erase(&busyp->rb_node, &pag->pagb_tree); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); - spin_unlock(&mp->m_perag[agno].pagb_lock); + kmem_free(busyp); } - /* * If we find the extent in the busy list, force the log out to get the * extent out of the busy list so the caller can use it straight away. */ STATIC void -xfs_alloc_search_busy(xfs_trans_t *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) +xfs_alloc_search_busy( + struct xfs_trans *tp, + xfs_agnumber_t agno, + xfs_agblock_t bno, + xfs_extlen_t len) { - xfs_mount_t *mp; - xfs_perag_busy_t *bsy; - xfs_agblock_t uend, bend; + struct xfs_perag *pag; + struct xfs_busy_extent *busyp; xfs_lsn_t lsn; - int cnt; - - mp = tp->t_mountp; - - spin_lock(&mp->m_perag[agno].pagb_lock); - cnt = mp->m_perag[agno].pagb_count; - - uend = bno + len - 1; - /* search pagb_list for this slot, skipping open slots */ - for (bsy = mp->m_perag[agno].pagb_list; cnt; bsy++) { - - /* - * (start1,length1) within (start2, length2) - */ - if (bsy->busy_tp != NULL) { - bend = bsy->busy_start + bsy->busy_length - 1; - if ((bno > bend) || (uend < bsy->busy_start)) { - cnt--; - } else { - TRACE_BUSYSEARCH("xfs_alloc_search_busy", - "found1", agno, bno, len, tp); - break; - } - } + pag = xfs_perag_get(tp->t_mountp, agno); + spin_lock(&pag->pagb_lock); + busyp = __xfs_alloc_busy_search(tp, agno, bno, len); + if (!busyp) { + TRACE_BUSYSEARCH("xfs_alloc_search_busy", "not-found", agno, bno, len, tp); + spin_unlock(&pag->pagb_lock); + xfs_perag_put(pag); + return; } - /* - * If a block was found, force the log through the LSN of the + * A block was found, force the log through the LSN of the * transaction that freed the block */ - if (cnt) { - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "found", agno, bno, len, tp); - lsn = bsy->busy_tp->t_commit_lsn; - spin_unlock(&mp->m_perag[agno].pagb_lock); - xfs_log_force(mp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); - } else { - TRACE_BUSYSEARCH("xfs_alloc_search_busy", "not-found", agno, bno, len, tp); - spin_unlock(&mp->m_perag[agno].pagb_lock); - } + TRACE_BUSYSEARCH("xfs_alloc_search_busy", "found", agno, bno, len, tp); + lsn = busyp->tp->t_commit_lsn; + spin_unlock(&pag->pagb_lock); + xfs_log_force(tp->t_mountp, lsn, XFS_LOG_FORCE|XFS_LOG_SYNC); + xfs_perag_put(pag); } diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h index 5881727..21040af 100644 --- a/fs/xfs/xfs_alloc.h +++ b/fs/xfs/xfs_alloc.h @@ -22,6 +22,7 @@ struct xfs_buf; struct xfs_mount; struct xfs_perag; struct xfs_trans; +struct xfs_busy_extent; /* * Freespace allocation types. Argument to xfs_alloc_[v]extent. @@ -128,9 +129,7 @@ xfs_alloc_mark_busy(xfs_trans_t *tp, xfs_extlen_t len); void -xfs_alloc_clear_busy(xfs_trans_t *tp, - xfs_agnumber_t ag, - int idx); +xfs_alloc_clear_busy(xfs_trans_t *tp, struct xfs_busy_extent *busyp); #endif /* __KERNEL__ */ diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 794a4e2..2239685 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -131,14 +131,8 @@ STATIC void xfs_free_perag( xfs_mount_t *mp) { - if (mp->m_perag) { - int agno; - - for (agno = 0; agno < mp->m_maxagi; agno++) - if (mp->m_perag[agno].pagb_list) - kmem_free(mp->m_perag[agno].pagb_list); + if (mp->m_perag) kmem_free(mp->m_perag); - } } /* diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index ad137ef..e88b9bf 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1338,10 +1338,8 @@ xfs_trans_committed( lbcp = &tp->t_busy; while (lbcp != NULL) { for (i = 0, lbsp = lbcp->lbc_busy; i < lbcp->lbc_unused; i++, lbsp++) { - if (!XFS_LBC_ISFREE(lbcp, i)) { - xfs_alloc_clear_busy(tp, lbsp->lbc_ag, - lbsp->lbc_idx); - } + if (!XFS_LBC_ISFREE(lbcp, i)) + xfs_alloc_clear_busy(tp, lbsp->lbc_busyp); } lbcp = lbcp->lbc_next; } diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index d6fe4a8..6a5e8d5 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -762,6 +762,7 @@ struct xfs_log_item_desc; struct xfs_mount; struct xfs_trans; struct xfs_dquot_acct; +struct xfs_busy_extent; typedef struct xfs_log_item { struct list_head li_ail; /* AIL pointers */ @@ -824,8 +825,7 @@ typedef struct xfs_item_ops { */ typedef struct xfs_log_busy_slot { - xfs_agnumber_t lbc_ag; - ushort lbc_idx; /* index in perag.busy[] */ + struct xfs_busy_extent *lbc_busyp; } xfs_log_busy_slot_t; #define XFS_LBC_NUM_SLOTS 31 @@ -971,9 +971,9 @@ int _xfs_trans_commit(xfs_trans_t *, void xfs_trans_cancel(xfs_trans_t *, int); int xfs_trans_ail_init(struct xfs_mount *); void xfs_trans_ail_destroy(struct xfs_mount *); -xfs_log_busy_slot_t *xfs_trans_add_busy(xfs_trans_t *tp, - xfs_agnumber_t ag, - xfs_extlen_t idx); + +xfs_log_busy_slot_t *xfs_trans_add_busy(struct xfs_trans *tp, + struct xfs_busy_extent *busyp); extern kmem_zone_t *xfs_trans_zone; diff --git a/fs/xfs/xfs_trans_item.c b/fs/xfs/xfs_trans_item.c index e110bf5..3baa0af 100644 --- a/fs/xfs/xfs_trans_item.c +++ b/fs/xfs/xfs_trans_item.c @@ -449,7 +449,9 @@ xfs_trans_unlock_chunk( * descriptor with its ???? field. */ xfs_log_busy_slot_t * -xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) +xfs_trans_add_busy( + xfs_trans_t *tp, + struct xfs_busy_extent *busyp) { xfs_log_busy_chunk_t *lbcp; xfs_log_busy_slot_t *lbsp; @@ -479,16 +481,8 @@ xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) tp->t_busy.lbc_next = lbcp; tp->t_busy_free = XFS_LIC_NUM_SLOTS - 1; - /* - * Initialize the descriptor and the generic portion - * of the log item. - * - * Point the new slot at this item and return it. - * Also point the log item at its currently active - * descriptor and set the item's mount pointer. - */ - lbsp->lbc_ag = ag; - lbsp->lbc_idx = idx; + /* Initialize the descriptor and return it */ + lbsp->lbc_busyp = busyp; return lbsp; } @@ -521,8 +515,7 @@ xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) } lbsp = XFS_LBC_SLOT(lbcp, i); tp->t_busy_free--; - lbsp->lbc_ag = ag; - lbsp->lbc_idx = idx; + lbsp->lbc_busyp = busyp; return lbsp; } diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 73e2ad3..fd50556 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -39,9 +39,6 @@ void xfs_trans_free_items(struct xfs_trans *, int); void xfs_trans_unlock_items(struct xfs_trans *, xfs_lsn_t); void xfs_trans_free_busy(xfs_trans_t *tp); -xfs_log_busy_slot_t *xfs_trans_add_busy(xfs_trans_t *tp, - xfs_agnumber_t ag, - xfs_extlen_t idx); /* * AIL traversal cursor. -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:08:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_61, J_CHICKENPOX_63,J_CHICKENPOX_64,J_CHICKENPOX_65,J_CHICKENPOX_73 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97M89ax009067 for ; Tue, 7 Oct 2008 15:08:10 -0700 X-ASG-Debug-ID: 1223417382-62bc00930002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0DAE1B0C579 for ; Tue, 7 Oct 2008 15:09:46 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id Ei5RW29H6NDV4DQG for ; Tue, 07 Oct 2008 15:09:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAEd460h5LGor/2dsb2JhbAC4QwiHA2QIfg X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224304799" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:39:39 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKkL-0002Vp-NO for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:09:37 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/7] XFS: Avoid busy extent ranges rather than the entire extent Subject: [PATCH 6/7] XFS: Avoid busy extent ranges rather than the entire extent Date: Wed, 8 Oct 2008 09:09:36 +1100 Message-Id: <1223417377-8679-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417388 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we check an extent for being busy, we check for an overlap and if we find one we declare that extent off-limits and move on to the next free extent. This means that we can skip entire AGs that have a single large free extent with very small overlapping busy extent. This can actually cause significant problems - often we have to allocate within a given AG, and we have a reservation that guarantees us that the free space is there. If we only have a singel extent, and part of it is busy, we will fail the allocation and that will cause problems. To avoid this problem, we should trim the busy range out of the extent we have found and determine if that trimmed range is still OK for allocation. In many cases, this check can be incorporated into the cwallocationextent alignment code which already does trimming of the found extent before determining if it is a valid candidate for allocation. Signed-off-by: Dave Chinner --- fs/xfs/xfs_ag.h | 1 + fs/xfs/xfs_alloc.c | 439 +++++++++++++++++++++++++++++----------------------- 2 files changed, 248 insertions(+), 192 deletions(-) diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index ec87185..62bb280 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -161,6 +161,7 @@ typedef struct xfs_agfl { */ struct xfs_busy_extent { struct rb_node rb_node; + atomic_t ref; xfs_agnumber_t agno; xfs_agblock_t bno; xfs_extlen_t length; diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index e5fb397..73536ef 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -105,34 +105,75 @@ STATIC int xfs_alloc_ag_vextent_small(xfs_alloc_arg_t *, * though, we need to know that the busy extent was a allocbt block * and record that in the busy extent structure. */ -STATIC void +STATIC struct xfs_busy_extent * +xfs_alloc_busy_alloc(void) +{ + struct xfs_busy_extent *busyp; + + /* XXX: probably should use a zone */ + busyp = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); + if (!busyp) + return NULL; + atomic_set(&busyp->ref, 1); + return busyp; +} + +static inline void +xfs_alloc_busy_get( + struct xfs_busy_extent *busyp) +{ + ASSERT(atomic_read(&busyp->ref) > 0); + atomic_inc(&busyp->ref); +} + +static inline void +xfs_alloc_busy_put( + struct xfs_busy_extent *busyp) +{ + ASSERT(atomic_read(&busyp->ref) > 0); + if (atomic_dec_and_test(&busyp->ref)) + kmem_free(busyp); +} + +/* + * Insert a new busy extent into the tree. + * + * We can get duplicates occurring here in the case where an extent + * goes from an allocbt block to the freelist (i.e. btree merge occurs) + * and then the free list can be shortened which moves the extent + * from the free list to a frespace record. In this case, we simply + * clear the freelist flag from the busy extent. + */ +STATIC int xfs_alloc_busy_insert( struct xfs_perag *pag, xfs_agblock_t bno, - struct rb_node *node) + struct xfs_busy_extent *busyp) { struct rb_node **rbp = &pag->pagb_tree.rb_node; struct rb_node *parent = NULL; - struct xfs_busy_extent *busyp; while (*rbp) { - parent = *rbp; - busyp = rb_entry(parent, struct xfs_busy_extent, rb_node); + struct xfs_busy_extent *bp; - ASSERT(bno != busyp->bno); - if (bno < busyp->bno) + parent = *rbp; + bp = rb_entry(parent, struct xfs_busy_extent, rb_node); + if (bno < bp->bno) rbp = &(*rbp)->rb_left; - else if (bno > busyp->bno) + else if (bno > bp->bno) rbp = &(*rbp)->rb_right; else { - cmn_err(CE_WARN, - "XFS: ignoring duplicate busy extent.\n"); - ASSERT(0); + /* clear the freelist flag and free the new node */ + ASSERT(bp->flags & XFS_BUSY_EXT_FREELIST); + bp->flags &= ~XFS_BUSY_EXT_FREELIST; + xfs_alloc_busy_put(busyp); + return 0; } } - rb_link_node(node, parent, rbp); - rb_insert_color(node, &pag->pagb_tree); + rb_link_node(&busyp->rb_node, parent, rbp); + rb_insert_color(&busyp->rb_node, &pag->pagb_tree); + return 1; } STATIC void @@ -146,7 +187,7 @@ xfs_alloc_mark_busy( struct xfs_busy_extent *busyp; struct xfs_perag *pag; - busyp = kmem_zalloc(sizeof(struct xfs_busy_extent), KM_MAYFAIL); + busyp = xfs_alloc_busy_alloc(); if (!busyp) { /* * No Memory! Since it is now not possible to track the free @@ -166,33 +207,53 @@ xfs_alloc_mark_busy( pag = xfs_perag_get(tp->t_mountp, agno); spin_lock(&pag->pagb_lock); - xfs_alloc_busy_insert(pag, bno, &busyp->rb_node); - xfs_trans_add_busy(tp, busyp); + if (xfs_alloc_busy_insert(pag, bno, busyp)) + xfs_trans_add_busy(tp, busyp); TRACE_BUSY("xfs_alloc_mark_busy", "got", agno, bno, len, tp); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); } +void +xfs_alloc_clear_busy( + struct xfs_trans *tp, + struct xfs_busy_extent *busyp) +{ + struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, busyp->agno); + + TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, + busyp->length, tp); + spin_lock(&pag->pagb_lock); + ASSERT(!RB_EMPTY_NODE(&busyp->rb_node)); + rb_erase(&busyp->rb_node, &pag->pagb_tree); + spin_unlock(&pag->pagb_lock); + + xfs_perag_put(pag); + xfs_alloc_busy_put(busyp); +} + /* * Search for a busy extent that overlaps the range of the extent we - * are about to allocate. + * have been given. If we find a match, take a reference to the busyp + * and return it to the caller so they can decide what action to take. + * Caller must drop the reference. */ -static struct xfs_busy_extent * -__xfs_alloc_busy_search( +STATIC struct xfs_busy_extent * +xfs_alloc_busy_search( struct xfs_trans *tp, - struct xfs_perag *pag, xfs_agnumber_t agno, xfs_agblock_t bno, xfs_extlen_t len) { + struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, agno); + struct xfs_busy_extent *busyp = NULL; struct rb_node *rbp; xfs_agblock_t uend, bend; uend = bno + len - 1; + spin_lock(&pag->pagb_lock); rbp = pag->pagb_tree.rb_node; while (rbp) { - struct xfs_busy_extent *busyp; - busyp = rb_entry(rbp, struct xfs_busy_extent, rb_node); bend = busyp->bno + busyp->length - 1; if (uend < busyp->bno) @@ -203,50 +264,69 @@ __xfs_alloc_busy_search( /* (start1,length1) overlaps (start2, length2) */ TRACE_BUSYSEARCH("xfs_alloc_busy_search", "found1", agno, bno, len, tp); - return busyp; + xfs_alloc_busy_get(busyp); + break; } + busyp = NULL; } - return NULL; -} - -STATIC struct xfs_busy_extent * -xfs_alloc_busy_search( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len) -{ - struct xfs_busy_extent *busyp; - struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, agno); - - spin_lock(&pag->pagb_lock); - busyp = __xfs_alloc_busy_search(tp, pag, agno, bno, len); spin_unlock(&pag->pagb_lock); xfs_perag_put(pag); return busyp; } -void -xfs_alloc_clear_busy( +/* + * For a given extent [fbno, flen], search the busy extent list + * to find a subset of the extent that is not busy. + */ +STATIC void +xfs_alloc_busy_search_trim( struct xfs_trans *tp, - struct xfs_busy_extent *busyp) -{ - struct xfs_perag *pag; - - /* check that the busyp is still in the rbtree */ - ASSERT(xfs_alloc_busy_search(tp, busyp->agno, busyp->bno, - busyp->length) == busyp); + xfs_agnumber_t agno, + xfs_agblock_t fbno, + xfs_extlen_t flen, + xfs_agblock_t *rbno, + xfs_extlen_t *rlen) - pag = xfs_perag_get(tp->t_mountp, busyp->agno); - spin_lock(&pag->pagb_lock); - TRACE_UNBUSY("xfs_alloc_clear_busy", "found", busyp->agno, busyp->bno, - busyp->length, tp); - rb_erase(&busyp->rb_node, &pag->pagb_tree); - spin_unlock(&pag->pagb_lock); - xfs_perag_put(pag); +{ + xfs_agblock_t bno = fbno; + xfs_extlen_t len = flen; + struct xfs_busy_extent *busyp; - kmem_free(busyp); + busyp = xfs_alloc_busy_search(tp, agno, bno, len); + while (busyp) { + xfs_agblock_t end = bno + len; + xfs_agblock_t bend = busyp->bno + busyp->length; + if (busyp->bno < bno) { + /* start overlap */ + ASSERT(bend >= bno); + ASSERT(bend <= end); + len -= bno - bend; + bno = bend; + } else if (bend > end) { + /* end overlap */ + ASSERT(busyp->bno >= bno); + ASSERT(busyp->bno < end); + len -= bend - end; + } else { + /* middle overlap - return larger segment */ + ASSERT(busyp->bno >= bno); + ASSERT(bend <= end); + len = busyp->bno - bno; + if (len >= end - bend) { + /* use first segment */ + len = len; + } else { + /* use last segment */ + bno = bend; + len = end - bend; + } + } + xfs_alloc_busy_put(busyp); + busyp = xfs_alloc_busy_search(tp, agno, bno, len); + } + *rbno = bno; + *rlen = len; } /* @@ -340,53 +420,14 @@ xfs_alloc_get_rec( } /* - * If the extent is busy via xfs_alloc_put_freelist(), and we are - * currently reusing it via xfs_alloc_get_freelist(), remove the - * extent from the busy list. Do this search and remove atomically - * so we don't race with transaction completion calling - * xfs_alloc_clear_busy(). - * - * We should never get the situation where an extent on the freelist - * is busy due to other methods of freeing extents. If it happens, - * let the caller handle it (e.g. by using a synchronous log - * force to wait for the extent to become unbusy). - */ -static struct xfs_busy_extent * -xfs_alloc_search_clear_busy_freelist( - struct xfs_trans *tp, - xfs_agnumber_t agno, - xfs_agblock_t bno, - xfs_extlen_t len, - int btreeblk) -{ - struct xfs_busy_extent *busyp; - struct xfs_perag *pag = xfs_perag_get(tp->t_mountp, agno); - - spin_lock(&pag->pagb_lock); - busyp = __xfs_alloc_busy_search(tp, pag, agno, bno, len); - if (busyp && btreeblk && (busyp->flags & XFS_BUSY_EXT_FREELIST)) { - TRACE_UNBUSY("xfs_alloc_search_clear_busy_freelist", - "found", busyp->agno, busyp->bno, busyp->length, tp); - rb_erase(&busyp->rb_node, &pag->pagb_tree); - kmem_free(busyp); - busyp = NULL; - } - spin_unlock(&pag->pagb_lock); - - xfs_perag_put(pag); - return busyp; -} - -/* * Compute aligned version of the found extent. - * Takes alignment and min length into account. + * Takes alignment, min length and busy extent ranges into account. */ STATIC void xfs_alloc_compute_aligned( + xfs_alloc_arg_t *args, xfs_agblock_t foundbno, /* starting block in found extent */ xfs_extlen_t foundlen, /* length in found extent */ - xfs_extlen_t alignment, /* alignment for allocation */ - xfs_extlen_t minlen, /* minimum length for allocation */ xfs_agblock_t *resbno, /* result block number */ xfs_extlen_t *reslen) /* result length */ { @@ -394,13 +435,13 @@ xfs_alloc_compute_aligned( xfs_extlen_t diff; xfs_extlen_t len; - if (alignment > 1 && foundlen >= minlen) { - bno = roundup(foundbno, alignment); + /* Trim busy sections out of found extent */ + xfs_alloc_busy_search_trim(args->tp, args->agno, foundbno, foundlen, + &bno, &len); + if (args->alignment > 1 && len >= args->minlen) { + bno = roundup(bno, args->alignment); diff = bno - foundbno; len = diff >= foundlen ? 0 : foundlen - diff; - } else { - bno = foundbno; - len = foundlen; } *resbno = bno; *reslen = len; @@ -876,6 +917,10 @@ xfs_alloc_ag_vextent( ASSERT(args->len >= args->minlen && args->len <= args->maxlen); ASSERT(!(args->wasfromfl) || !args->isfl); ASSERT(args->agbno % args->alignment == 0); + + /* we should never be handed a busy extent. */ + ASSERT(!xfs_alloc_busy_search(args->tp, args->agno, + args->agbno, args->len)); if (!(args->wasfromfl)) { agf = XFS_BUF_TO_AGF(args->agbp); @@ -888,16 +933,6 @@ xfs_alloc_ag_vextent( TRACE_MODAGF(NULL, agf, XFS_AGF_FREEBLKS); xfs_alloc_log_agf(args->tp, args->agbp, XFS_AGF_FREEBLKS); - /* - * Search the busylist for these blocks and mark the - * transaction as synchronous if blocks are found. This - * avoids the need to block in due to a synchronous log - * force to ensure correct ordering as the synchronous - * transaction will guarantee that for us. - */ - if (xfs_alloc_busy_search(args->tp, args->agno, - args->agbno, args->len)) - xfs_trans_set_sync(args->tp); } if (!args->isfl) xfs_trans_mod_sb(args->tp, @@ -927,14 +962,14 @@ xfs_alloc_ag_vextent_exact( { xfs_btree_cur_t *bno_cur;/* by block-number btree cursor */ xfs_btree_cur_t *cnt_cur;/* by count btree cursor */ - xfs_agblock_t end; /* end of allocated extent */ int error; xfs_agblock_t fbno; /* start block of found extent */ - xfs_agblock_t fend; /* end block of found extent */ xfs_extlen_t flen; /* length of found extent */ + xfs_agblock_t tbno; /* start block of trimmed extent */ + xfs_extlen_t tlen; /* length of trimmed extent */ + xfs_agblock_t tend; /* end block of trimmed extent */ + xfs_agblock_t end; /* end of allocated extent */ int i; /* success/failure of operation */ - xfs_agblock_t maxend; /* end of maximal extent */ - xfs_agblock_t minend; /* end of minimal extent */ xfs_extlen_t rlen; /* length of returned extent */ ASSERT(args->alignment == 1); @@ -957,22 +992,22 @@ xfs_alloc_ag_vextent_exact( error = xfs_alloc_get_rec(bno_cur, &fbno, &flen, &i); if (error) goto error0; - if (xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) - goto not_found; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); ASSERT(fbno <= args->agbno); + /* Trim busy sections out of found extent */ + xfs_alloc_busy_search_trim(args->tp, args->agno, fbno, flen, + &tbno, &tlen); + /* Give up if the freespace isn't long enough for the minimum request. */ - minend = args->agbno + args->minlen; - maxend = args->agbno + args->maxlen; - fend = fbno + flen; - if (fend < minend) + tend = tbno + tlen; + if (tend < args->agbno + args->minlen) goto not_found; /* * End of extent will be smaller of the freespace end and the * maximal requested end. */ - end = XFS_AGBLOCK_MIN(fend, maxend); + end = XFS_AGBLOCK_MIN(tend, (args->agbno + args->maxlen)); /* Fix the length according to mod and prod if given. */ args->len = end - args->agbno; @@ -981,7 +1016,7 @@ xfs_alloc_ag_vextent_exact( goto not_found; rlen = args->len; - ASSERT(args->agbno + rlen <= fend); + ASSERT(args->agbno + rlen <= tend); end = args->agbno + rlen; /* * We are allocating agbno for rlen [agbno .. end] @@ -1028,10 +1063,10 @@ xfs_alloc_find_best_extent( xfs_agblock_t gdiff, /* difference for search comparison */ xfs_agblock_t *sbno, /* extent found by search */ xfs_extlen_t *slen, + xfs_agblock_t *sbnoa, /* aligned extent found by search */ xfs_extlen_t *slena, /* aligned length */ int dir) /* 0 = search right, 1 = search left */ { - xfs_agblock_t bno; xfs_agblock_t new; xfs_agblock_t sdiff; int i; @@ -1050,35 +1085,29 @@ xfs_alloc_find_best_extent( if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(*sbno, *slen, args->alignment, - args->minlen, &bno, slena); - if (xfs_alloc_busy_search(args->tp, args->agno, bno, *slena)) { - /* just freed - skip this one */ - goto next_record; - } + xfs_alloc_compute_aligned(args, *sbno, *slen, sbnoa, slena); /* The good extent is closer than this one */ if (!dir) { - if (bno >= args->agbno + gdiff) + if (*sbnoa >= args->agbno + gdiff) goto out_use_good; } else { - if (bno <= args->agbno - gdiff) + if (*sbnoa <= args->agbno - gdiff) goto out_use_good; } - /* Same distance, compare length and pick the best. */ + /* Same region, compare length and pick the best. */ if (*slena >= args->minlen) { args->len = XFS_EXTLEN_MIN(*slena, args->maxlen); xfs_alloc_fix_len(args); sdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, *sbno, *slen, &new); + args->alignment, *sbnoa, *slena, &new); /* choose closer size and invalidate other cursor */ if (sdiff < gdiff) goto out_use_search; goto out_use_good; } -next_record: if (!dir) error = xfs_btree_increment(*scur, 0, &i); else @@ -1228,19 +1257,17 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(cnt_cur, <bno, <len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, - args->minlen, <bnoa, <lena); + xfs_alloc_compute_aligned(args, ltbno, ltlen, + <bnoa, <lena); if (ltlena < args->minlen) continue; - if (xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) - continue; args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); ASSERT(args->len >= args->minlen); if (args->len < blen) continue; ltdiff = xfs_alloc_compute_diff(args->agbno, args->len, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); if (ltnew != NULLAGBLOCK && (args->len > blen || ltdiff < bdiff)) { bdiff = ltdiff; @@ -1351,17 +1378,10 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(bno_cur_lt, <bno, <len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(ltbno, ltlen, args->alignment, - args->minlen, <bnoa, <lena); - if (ltlena >= args->minlen && - !xfs_alloc_busy_search(args->tp, args->agno, ltbnoa, ltlena)) + xfs_alloc_compute_aligned(args, ltbno, ltlen, + <bnoa, <lena); + if (ltlena >= args->minlen) break; - /* - * clear the length so we don't accidentally use this - * extent after we decrement the cursor then find a - * match from the other cursor. - */ - ltlena = 0; if ((error = xfs_btree_decrement(bno_cur_lt, 0, &i))) goto error0; if (!i) { @@ -1374,12 +1394,10 @@ xfs_alloc_ag_vextent_near( if ((error = xfs_alloc_get_rec(bno_cur_gt, >bno, >len, &i))) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - xfs_alloc_compute_aligned(gtbno, gtlen, args->alignment, - args->minlen, >bnoa, >lena); - if (gtlena >= args->minlen && - !xfs_alloc_busy_search(args->tp, args->agno, gtbnoa, gtlena)) + xfs_alloc_compute_aligned(args, gtbno, gtlen, + >bnoa, >lena); + if (gtlena >= args->minlen) break; - gtlena = 0; if ((error = xfs_btree_increment(bno_cur_gt, 0, &i))) goto error0; if (!i) { @@ -1398,11 +1416,12 @@ xfs_alloc_ag_vextent_near( xfs_alloc_fix_len(args); rlen = args->len; ltdiff = xfs_alloc_compute_diff(args->agbno, rlen, - args->alignment, ltbno, ltlen, <new); + args->alignment, ltbnoa, ltlena, <new); error = xfs_alloc_find_best_extent(args, &bno_cur_lt, &bno_cur_gt, - ltdiff, >bno, >len, >lena, + ltdiff, >bno, >len, + >bnoa, >lena, 0 /* search right */); if (error) goto error0; @@ -1414,11 +1433,12 @@ xfs_alloc_ag_vextent_near( xfs_alloc_fix_len(args); rlen = args->len; gtdiff = xfs_alloc_compute_diff(args->agbno, rlen, - args->alignment, gtbno, gtlen, >new); + args->alignment, gtbnoa, gtlena, >new); error = xfs_alloc_find_best_extent(args, &bno_cur_gt, &bno_cur_lt, - gtdiff, <bno, <len, <lena, + gtdiff, <bno, <len, + <bnoa, <lena, 1 /* search left */); if (error) goto error0; @@ -1442,7 +1462,7 @@ xfs_alloc_ag_vextent_near( bno_cur_lt = bno_cur_gt; bno_cur_gt = NULL; ltbno = gtbno; - //ltbnoa = gtbnoa; + ltbnoa = gtbnoa; ltlen = gtlen; ltlena = gtlena; j = 1; @@ -1451,7 +1471,7 @@ xfs_alloc_ag_vextent_near( /* * Fix up the length and compute the useful address. */ - ltend = ltbno + ltlen; + ltend = ltbnoa + ltlena; args->len = XFS_EXTLEN_MIN(ltlena, args->maxlen); xfs_alloc_fix_len(args); if (!xfs_alloc_fix_minleft(args)) { @@ -1461,8 +1481,8 @@ xfs_alloc_ag_vextent_near( return 0; } rlen = args->len; - (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbno, - ltlen, <new); + (void)xfs_alloc_compute_diff(args->agbno, rlen, args->alignment, ltbnoa, + ltlena, <new); ASSERT(ltnew >= ltbno); ASSERT(ltnew + rlen <= ltend); ASSERT(ltnew + rlen <= be32_to_cpu(XFS_BUF_TO_AGF(args->agbp)->agf_length)); @@ -1510,7 +1530,7 @@ xfs_alloc_ag_vextent_size( int i; /* temp status variable */ xfs_agblock_t rbno; /* returned block number */ xfs_extlen_t rlen; /* length of returned extent */ - int check_busy = 1; + int forced = 0; /* * Allocate and initialize a cursor for the by-size btree. @@ -1526,10 +1546,14 @@ restart: args->maxlen + args->alignment - 1, &i))) goto error0; /* - * If none, then pick up the last entry in the tree unless the - * tree is empty. + * If none or we have busy extents that we cannot allocate from, then + * we have to settle for a smaller extent. In the case that there are + * no large extents, this will return the last entry in the tree unless + * the tree is empty. In the case that there are only busy large + * extents, this will return the largest small extent unless there + * are no smaller extents available. */ - if (!i) { + if (!i || forced > 1) { if ((error = xfs_alloc_ag_vextent_small(args, cnt_cur, &fbno, &flen, &i))) goto error0; @@ -1539,6 +1563,7 @@ restart: return 0; } ASSERT(i == 1); + xfs_alloc_compute_aligned(args, fbno, flen, &rbno, &rlen); } /* * There's a freespace as big as maxlen+alignment-1, get it. @@ -1555,17 +1580,30 @@ restart: if (error) goto error0; XFS_WANT_CORRUPTED_GOTO(i == 1, error0); - if (!check_busy || - !xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); + if (rlen >= args->maxlen) break; error = xfs_btree_increment(cnt_cur, 0, &i); if (error) goto error0; if (i == 0) { - ASSERT(check_busy); - check_busy = 0; + /* + * Our only valid extents must have been busy. + * Make it unbusy by forcing the log out and + * retrying. If we've been here before, forcing + * the log isn't making the extents available, + * which means they have probably been freed in + * this transaction. In that case, we have to + * give up on them and we'll attempt a minlen + * allocation the next time around. + */ xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); TRACE_ALLOC("busy restart", args); + if (!forced) + xfs_log_force(args->mp, 0, + XFS_LOG_FORCE|XFS_LOG_SYNC); + forced++; goto restart; } } @@ -1576,8 +1614,6 @@ restart: * once aligned; if not, we search left for something better. * This can't happen in the second case above. */ - xfs_alloc_compute_aligned(fbno, flen, args->alignment, args->minlen, - &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), error0); @@ -1604,15 +1640,8 @@ restart: if (flen < bestrlen) break; - /* - * avoid busy candidate extents as they are clearly not - * a better choice than other extents due to the log - * force penalty of using them. - */ - if (xfs_alloc_busy_search(args->tp, args->agno, fbno, flen)) - continue; - xfs_alloc_compute_aligned(fbno, flen, args->alignment, - args->minlen, &rbno, &rlen); + xfs_alloc_compute_aligned(args, fbno, flen, + &rbno, &rlen); rlen = XFS_EXTLEN_MIN(args->maxlen, rlen); XFS_WANT_CORRUPTED_GOTO(rlen == 0 || (rlen <= flen && rbno + rlen <= fbno + flen), @@ -1640,13 +1669,19 @@ restart: * Fix up the length. */ args->len = rlen; - xfs_alloc_fix_len(args); - if (rlen < args->minlen || !xfs_alloc_fix_minleft(args)) { - xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); - TRACE_ALLOC("nominleft", args); - args->agbno = NULLAGBLOCK; - return 0; + if (rlen < args->minlen) { + if (!forced) { + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + TRACE_ALLOC("busy restart", args); + xfs_log_force(args->mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + forced++; + goto restart; + } + goto out_nominleft; } + xfs_alloc_fix_len(args); + if (!xfs_alloc_fix_minleft(args)) + goto out_nominleft; rlen = args->len; XFS_WANT_CORRUPTED_GOTO(rlen <= flen, error0); /* @@ -1676,6 +1711,12 @@ error0: if (bno_cur) xfs_btree_del_cursor(bno_cur, XFS_BTREE_ERROR); return error; + +out_nominleft: + xfs_btree_del_cursor(cnt_cur, XFS_BTREE_NOERROR); + TRACE_ALLOC("nominleft", args); + args->agbno = NULLAGBLOCK; + return 0; } /* @@ -2327,10 +2368,24 @@ xfs_alloc_get_freelist( xfs_alloc_log_agf(tp, agbp, logflags); *bnop = bno; - /* handle busy extents */ - if (xfs_alloc_search_clear_busy_freelist(tp, - be32_to_cpu(agf->agf_seqno), bno, 1, btreeblk)) - xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + /* + * for busy btree blocks, we want to remove them from the + * busy tree as we are now reusing it. Other busy extents + * require a log force to be able to use safely. + */ + if (btreeblk) { + struct xfs_busy_extent *busyp; + + busyp = xfs_alloc_busy_search(tp, be32_to_cpu(agf->agf_seqno), + bno, 1); + if (busyp) { + if (busyp->flags & XFS_BUSY_EXT_FREELIST) + xfs_alloc_clear_busy(tp, busyp); + else + xfs_log_force(mp, 0, XFS_LOG_FORCE|XFS_LOG_SYNC); + xfs_alloc_busy_put(busyp); + } + } return 0; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:10:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MAr3P010903 for ; Tue, 7 Oct 2008 15:10:53 -0700 X-ASG-Debug-ID: 1223417551-25a402d10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C7AA81B0C5BC for ; Tue, 7 Oct 2008 15:12:31 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id oi99NKXyEjlZGRb4 for ; Tue, 07 Oct 2008 15:12:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224306637" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:42:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKn7-0002ad-Rb for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:12:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] XFS: remove i_gen from incore inode Subject: [PATCH] XFS: remove i_gen from incore inode Date: Wed, 8 Oct 2008 09:12:29 +1100 Message-Id: <1223417549-9920-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417552 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- i_gen is incremented in directory operations when the directory is changed. It is never read or otherwise used so it should be removed to help reduce the size of the struct xfs_inode. The patch also removes a duplicate logging of the directory inode core. We only need to do this once per transaction so kill the one associated with the i_gen increment. Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode.h | 1 - fs/xfs/xfs_rename.c | 12 ++---------- fs/xfs/xfs_vnodeops.c | 29 ++--------------------------- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index a8f1e68..5784f8e 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -272,7 +272,6 @@ typedef struct xfs_inode { unsigned short i_flags; /* see defined flags below */ unsigned char i_update_core; /* timestamps/size is dirty */ unsigned char i_update_size; /* di_size field is dirty */ - unsigned int i_gen; /* generation count */ unsigned int i_delayed_blks; /* count of delay alloc blks */ xfs_icdinode_t i_d; /* most of ondisk inode */ diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c index d700dac..02f0e8f 100644 --- a/fs/xfs/xfs_rename.c +++ b/fs/xfs/xfs_rename.c @@ -367,19 +367,11 @@ xfs_rename( &first_block, &free_list, spaceres); if (error) goto abort_return; - xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); - /* - * Update the generation counts on all the directory inodes - * that we're modifying. - */ - src_dp->i_gen++; + xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); xfs_trans_log_inode(tp, src_dp, XFS_ILOG_CORE); - - if (new_parent) { - target_dp->i_gen++; + if (new_parent) xfs_trans_log_inode(tp, target_dp, XFS_ILOG_CORE); - } /* * If this is a synchronous mount, make sure that the diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 8b6812f..7a72b0a 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -1625,8 +1625,6 @@ xfs_create( xfs_trans_set_sync(tp); } - dp->i_gen++; - /* * Attach the dquot(s) to the inodes and modify them incore. * These ids of the inode couldn't have changed since the new @@ -1993,13 +1991,6 @@ xfs_remove( } xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); - /* - * Bump the in memory generation count on the parent - * directory so that other can know that it has changed. - */ - dp->i_gen++; - xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); - if (is_dir) { /* * Drop the link from ip's "..". @@ -2017,8 +2008,8 @@ xfs_remove( } else { /* * When removing a non-directory we need to log the parent - * inode here for the i_gen update. For a directory this is - * done implicitly by the xfs_droplink call for the ".." entry. + * inode here. For a directory this is done implicitly + * by the xfs_droplink call for the ".." entry. */ xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); } @@ -2178,7 +2169,6 @@ xfs_link( if (error) goto abort_return; xfs_ichgtime(tdp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); - tdp->i_gen++; xfs_trans_log_inode(tp, tdp, XFS_ILOG_CORE); error = xfs_bumplink(tp, sip); @@ -2355,18 +2345,10 @@ xfs_mkdir( } xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); - /* - * Bump the in memory version number of the parent directory - * so that other processes accessing it will recognize that - * the directory has changed. - */ - dp->i_gen++; - error = xfs_dir_init(tp, cdp, dp); if (error) goto error2; - cdp->i_gen = 1; error = xfs_bumplink(tp, dp); if (error) goto error2; @@ -2653,13 +2635,6 @@ xfs_symlink( xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); /* - * Bump the in memory version number of the parent directory - * so that other processes accessing it will recognize that - * the directory has changed. - */ - dp->i_gen++; - - /* * If this is a synchronous mount, make sure that the * symlink transaction goes to disk before returning to * the user. -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCK8f011221 for ; Tue, 7 Oct 2008 15:12:20 -0700 X-ASG-Debug-ID: 1223417639-6a6002800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 71EFD4C8371 for ; Tue, 7 Oct 2008 15:13:59 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id WFErObI40wwKcI5y for ; Tue, 07 Oct 2008 15:13:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307706" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:58 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dK-Ca for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/8] XFS: AIL cleanup and bug fixes Subject: [PATCH 0/8] XFS: AIL cleanup and bug fixes Date: Wed, 8 Oct 2008 09:13:50 +1100 Message-Id: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Clean up the AIL interfaces and the way it is referenced by external code by making the struct xfs_ail the primary method of accessing the AIL. The main bug fix in this patch series is the second patch - it fixes the restart bug in traversals of the AIL. The method used is to track the next item in the list in a stack based cursor so we don't need to trust the current log item after we've dropped the AIL lock. Because this changes the interface to the traversal code, it makes sense to clean up the entire AIL subsystem interface while I am there. The overall goal here is to make the struct xfs_ail the sole structure used to access the AIL - for inserts, deletes, traversals, locking, etc so that we don't need to reference the xfs_mount just to get to the AIL. This also enables us to move the struct xfs_ail definition out of xfs_mount.h and reduce the visible scope of it to just the files that need to access members of the structure. Version 2: o cleanup based on review comments From owner-xfs@oss.sgi.com Tue Oct 7 15:12:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCMd6011234 for ; Tue, 7 Oct 2008 15:12:22 -0700 X-ASG-Debug-ID: 1223417639-6a6002800001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2276D4C8375 for ; Tue, 7 Oct 2008 15:14:00 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id TJYMht0XhhqewztN for ; Tue, 07 Oct 2008 15:14:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307708" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:58 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dM-EL for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/8] XFS: Allocate the struct xfs_ail Subject: [PATCH 1/8] XFS: Allocate the struct xfs_ail Date: Wed, 8 Oct 2008 09:13:51 +1100 Message-Id: <1223417638-10050-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417642 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Rather than embedding the struct xfs_ail in the struct xfs_mount, allocate it during AIL initialisation. Add a back pointer to the struct xfs_ail so that we can pass around the xfs_ail and still be able to access the xfs_mount if need be. This is th first step involved in isolating the AIL implementation from the surrounding filesystem code. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 28 +++++++------- fs/xfs/xfs_mount.h | 10 +---- fs/xfs/xfs_trans_ail.c | 87 +++++++++++++++++++++++------------------ fs/xfs/xfs_trans_priv.h | 17 ++++++-- 4 files changed, 77 insertions(+), 65 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index f4bf7ca..2801d2b 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -814,18 +814,18 @@ xfs_setup_devices( */ void xfsaild_wakeup( - xfs_mount_t *mp, + struct xfs_ail *ailp, xfs_lsn_t threshold_lsn) { - mp->m_ail.xa_target = threshold_lsn; - wake_up_process(mp->m_ail.xa_task); + ailp->xa_target = threshold_lsn; + wake_up_process(ailp->xa_task); } int xfsaild( void *data) { - xfs_mount_t *mp = (xfs_mount_t *)data; + struct xfs_ail *ailp = data; xfs_lsn_t last_pushed_lsn = 0; long tout = 0; @@ -837,11 +837,11 @@ xfsaild( /* swsusp */ try_to_freeze(); - ASSERT(mp->m_log); - if (XFS_FORCED_SHUTDOWN(mp)) + ASSERT(ailp->xa_mount->m_log); + if (XFS_FORCED_SHUTDOWN(ailp->xa_mount)) continue; - tout = xfsaild_push(mp, &last_pushed_lsn); + tout = xfsaild_push(ailp, &last_pushed_lsn); } return 0; @@ -849,20 +849,20 @@ xfsaild( int xfsaild_start( - xfs_mount_t *mp) + struct xfs_ail *ailp) { - mp->m_ail.xa_target = 0; - mp->m_ail.xa_task = kthread_run(xfsaild, mp, "xfsaild"); - if (IS_ERR(mp->m_ail.xa_task)) - return -PTR_ERR(mp->m_ail.xa_task); + ailp->xa_target = 0; + ailp->xa_task = kthread_run(xfsaild, ailp, "xfsaild"); + if (IS_ERR(ailp->xa_task)) + return -PTR_ERR(ailp->xa_task); return 0; } void xfsaild_stop( - xfs_mount_t *mp) + struct xfs_ail *ailp) { - kthread_stop(mp->m_ail.xa_task); + kthread_stop(ailp->xa_task); } diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index fc70c69..dc29bbd 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -63,6 +63,7 @@ struct xfs_extdelta; struct xfs_swapext; struct xfs_mru_cache; struct xfs_nameops; +struct xfs_ail; /* * Prototypes and functions for the Data Migration subsystem. @@ -224,18 +225,11 @@ extern void xfs_icsb_sync_counters_locked(struct xfs_mount *, int); #define xfs_icsb_sync_counters_locked(mp, flags) do { } while (0) #endif -typedef struct xfs_ail { - struct list_head xa_ail; - uint xa_gen; - struct task_struct *xa_task; - xfs_lsn_t xa_target; -} xfs_ail_t; - typedef struct xfs_mount { struct super_block *m_super; xfs_tid_t m_tid; /* next unused tid for fs */ spinlock_t m_ail_lock; /* fs AIL mutex */ - xfs_ail_t m_ail; /* fs active log item list */ + struct xfs_ail *m_ail; /* fs active log item list */ xfs_sb_t m_sb; /* copy of fs superblock */ spinlock_t m_sb_lock; /* sb counter lock */ struct xfs_buf *m_sb_bp; /* buffer for superblock */ diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 1f77c00..db72b52 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -28,13 +28,13 @@ #include "xfs_trans_priv.h" #include "xfs_error.h" -STATIC void xfs_ail_insert(xfs_ail_t *, xfs_log_item_t *); -STATIC xfs_log_item_t * xfs_ail_delete(xfs_ail_t *, xfs_log_item_t *); -STATIC xfs_log_item_t * xfs_ail_min(xfs_ail_t *); -STATIC xfs_log_item_t * xfs_ail_next(xfs_ail_t *, xfs_log_item_t *); +STATIC void xfs_ail_insert(struct xfs_ail *, xfs_log_item_t *); +STATIC xfs_log_item_t * xfs_ail_delete(struct xfs_ail *, xfs_log_item_t *); +STATIC xfs_log_item_t * xfs_ail_min(struct xfs_ail *); +STATIC xfs_log_item_t * xfs_ail_next(struct xfs_ail *, xfs_log_item_t *); #ifdef DEBUG -STATIC void xfs_ail_check(xfs_ail_t *, xfs_log_item_t *); +STATIC void xfs_ail_check(struct xfs_ail *, xfs_log_item_t *); #else #define xfs_ail_check(a,l) #endif /* DEBUG */ @@ -57,7 +57,7 @@ xfs_trans_tail_ail( xfs_log_item_t *lip; spin_lock(&mp->m_ail_lock); - lip = xfs_ail_min(&mp->m_ail); + lip = xfs_ail_min(mp->m_ail); if (lip == NULL) { lsn = (xfs_lsn_t)0; } else { @@ -91,10 +91,10 @@ xfs_trans_push_ail( { xfs_log_item_t *lip; - lip = xfs_ail_min(&mp->m_ail); + lip = xfs_ail_min(mp->m_ail); if (lip && !XFS_FORCED_SHUTDOWN(mp)) { - if (XFS_LSN_CMP(threshold_lsn, mp->m_ail.xa_target) > 0) - xfsaild_wakeup(mp, threshold_lsn); + if (XFS_LSN_CMP(threshold_lsn, mp->m_ail->xa_target) > 0) + xfsaild_wakeup(mp->m_ail, threshold_lsn); } } @@ -111,12 +111,12 @@ xfs_trans_first_push_ail( { xfs_log_item_t *lip; - lip = xfs_ail_min(&mp->m_ail); - *gen = (int)mp->m_ail.xa_gen; + lip = xfs_ail_min(mp->m_ail); + *gen = (int)mp->m_ail->xa_gen; if (lsn == 0) return lip; - list_for_each_entry(lip, &mp->m_ail.xa_ail, li_ail) { + list_for_each_entry(lip, &mp->m_ail->xa_ail, li_ail) { if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) return lip; } @@ -129,17 +129,18 @@ xfs_trans_first_push_ail( */ long xfsaild_push( - xfs_mount_t *mp, + struct xfs_ail *ailp, xfs_lsn_t *last_lsn) { long tout = 1000; /* milliseconds */ xfs_lsn_t last_pushed_lsn = *last_lsn; - xfs_lsn_t target = mp->m_ail.xa_target; + xfs_lsn_t target = ailp->xa_target; xfs_lsn_t lsn; xfs_log_item_t *lip; int gen; int restarts; int flush_log, count, stuck; + xfs_mount_t *mp = ailp->xa_mount; #define XFS_TRANS_PUSH_AIL_RESTARTS 10 @@ -331,7 +332,7 @@ xfs_trans_unlocked_item( * the call to xfs_log_move_tail() doesn't do anything if there's * not enough free space to wake people up so we're safe calling it. */ - min_lip = xfs_ail_min(&mp->m_ail); + min_lip = xfs_ail_min(mp->m_ail); if (min_lip == lip) xfs_log_move_tail(mp, 1); @@ -362,10 +363,10 @@ xfs_trans_update_ail( xfs_log_item_t *dlip=NULL; xfs_log_item_t *mlip; /* ptr to minimum lip */ - mlip = xfs_ail_min(&mp->m_ail); + mlip = xfs_ail_min(mp->m_ail); if (lip->li_flags & XFS_LI_IN_AIL) { - dlip = xfs_ail_delete(&mp->m_ail, lip); + dlip = xfs_ail_delete(mp->m_ail, lip); ASSERT(dlip == lip); } else { lip->li_flags |= XFS_LI_IN_AIL; @@ -373,11 +374,11 @@ xfs_trans_update_ail( lip->li_lsn = lsn; - xfs_ail_insert(&mp->m_ail, lip); - mp->m_ail.xa_gen++; + xfs_ail_insert(mp->m_ail, lip); + mp->m_ail->xa_gen++; if (mlip == dlip) { - mlip = xfs_ail_min(&mp->m_ail); + mlip = xfs_ail_min(mp->m_ail); spin_unlock(&mp->m_ail_lock); xfs_log_move_tail(mp, mlip->li_lsn); } else { @@ -411,17 +412,17 @@ xfs_trans_delete_ail( xfs_log_item_t *mlip; if (lip->li_flags & XFS_LI_IN_AIL) { - mlip = xfs_ail_min(&mp->m_ail); - dlip = xfs_ail_delete(&mp->m_ail, lip); + mlip = xfs_ail_min(mp->m_ail); + dlip = xfs_ail_delete(mp->m_ail, lip); ASSERT(dlip == lip); lip->li_flags &= ~XFS_LI_IN_AIL; lip->li_lsn = 0; - mp->m_ail.xa_gen++; + mp->m_ail->xa_gen++; if (mlip == dlip) { - mlip = xfs_ail_min(&mp->m_ail); + mlip = xfs_ail_min(mp->m_ail); spin_unlock(&mp->m_ail_lock); xfs_log_move_tail(mp, (mlip ? mlip->li_lsn : 0)); } else { @@ -459,8 +460,8 @@ xfs_trans_first_ail( { xfs_log_item_t *lip; - lip = xfs_ail_min(&mp->m_ail); - *gen = (int)mp->m_ail.xa_gen; + lip = xfs_ail_min(mp->m_ail); + *gen = (int)mp->m_ail->xa_gen; return lip; } @@ -482,11 +483,11 @@ xfs_trans_next_ail( xfs_log_item_t *nlip; ASSERT(mp && lip && gen); - if (mp->m_ail.xa_gen == *gen) { - nlip = xfs_ail_next(&mp->m_ail, lip); + if (mp->m_ail->xa_gen == *gen) { + nlip = xfs_ail_next(mp->m_ail, lip); } else { - nlip = xfs_ail_min(&mp->m_ail); - *gen = (int)mp->m_ail.xa_gen; + nlip = xfs_ail_min(mp->m_ail); + *gen = (int)mp->m_ail->xa_gen; if (restarts != NULL) { XFS_STATS_INC(xs_push_ail_restarts); (*restarts)++; @@ -515,15 +516,25 @@ int xfs_trans_ail_init( xfs_mount_t *mp) { - INIT_LIST_HEAD(&mp->m_ail.xa_ail); - return xfsaild_start(mp); + struct xfs_ail *ailp; + + ailp = kmem_zalloc(sizeof(struct xfs_ail), KM_MAYFAIL); + if (!ailp) + return ENOMEM; + + ailp->xa_mount = mp; + INIT_LIST_HEAD(&ailp->xa_ail); + return xfsaild_start(ailp); } void xfs_trans_ail_destroy( xfs_mount_t *mp) { - xfsaild_stop(mp); + struct xfs_ail *ailp = mp->m_ail; + + xfsaild_stop(ailp); + kmem_free(ailp); } /* @@ -534,7 +545,7 @@ xfs_trans_ail_destroy( */ STATIC void xfs_ail_insert( - xfs_ail_t *ailp, + struct xfs_ail *ailp, xfs_log_item_t *lip) /* ARGSUSED */ { @@ -568,7 +579,7 @@ xfs_ail_insert( /*ARGSUSED*/ STATIC xfs_log_item_t * xfs_ail_delete( - xfs_ail_t *ailp, + struct xfs_ail *ailp, xfs_log_item_t *lip) /* ARGSUSED */ { @@ -585,7 +596,7 @@ xfs_ail_delete( */ STATIC xfs_log_item_t * xfs_ail_min( - xfs_ail_t *ailp) + struct xfs_ail *ailp) /* ARGSUSED */ { if (list_empty(&ailp->xa_ail)) @@ -601,7 +612,7 @@ xfs_ail_min( */ STATIC xfs_log_item_t * xfs_ail_next( - xfs_ail_t *ailp, + struct xfs_ail *ailp, xfs_log_item_t *lip) /* ARGSUSED */ { @@ -617,7 +628,7 @@ xfs_ail_next( */ STATIC void xfs_ail_check( - xfs_ail_t *ailp, + struct xfs_ail *ailp, xfs_log_item_t *lip) { xfs_log_item_t *prev_lip; diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 3c748c4..98317fd 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -56,13 +56,20 @@ struct xfs_log_item *xfs_trans_first_ail(struct xfs_mount *, int *); struct xfs_log_item *xfs_trans_next_ail(struct xfs_mount *, struct xfs_log_item *, int *, int *); - /* * AIL push thread support */ -long xfsaild_push(struct xfs_mount *, xfs_lsn_t *); -void xfsaild_wakeup(struct xfs_mount *, xfs_lsn_t); -int xfsaild_start(struct xfs_mount *); -void xfsaild_stop(struct xfs_mount *); +struct xfs_ail { + struct xfs_mount *xa_mount; + struct list_head xa_ail; + uint xa_gen; + struct task_struct *xa_task; + xfs_lsn_t xa_target; +}; + +long xfsaild_push(struct xfs_ail *, xfs_lsn_t *); +void xfsaild_wakeup(struct xfs_ail *, xfs_lsn_t); +int xfsaild_start(struct xfs_ail *); +void xfsaild_stop(struct xfs_ail *); #endif /* __XFS_TRANS_PRIV_H__ */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCMos011232 for ; Tue, 7 Oct 2008 15:12:22 -0700 X-ASG-Debug-ID: 1223417640-60f6030f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 167B64C8373 for ; Tue, 7 Oct 2008 15:14:01 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id CZ3sAgpdVzaELJVW for ; Tue, 07 Oct 2008 15:14:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307720" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dU-Ju for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/8] XFS: Allow 64 bit machines to avoid the AIL lock during flushes Subject: [PATCH 4/8] XFS: Allow 64 bit machines to avoid the AIL lock during flushes Date: Wed, 8 Oct 2008 09:13:54 +1100 Message-Id: <1223417638-10050-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417642 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When copying lsn's from the log item to the inode or dquot flush lsn, we currently grab the AIL lock. We do this because the LSN is a 64 bit quantity and it needs to be read atomically. The lock is used to guarantee atomicity for 32 bit platforms. Make the LSN copying a small function, and make the function used conditional on BITS_PER_LONG so that 64 bit machines don't need to take the AIL lock in these places. Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_dquot.c | 6 ++---- fs/xfs/xfs_inode.c | 17 +++++++---------- fs/xfs/xfs_trans_priv.h | 23 +++++++++++++++++++++++ 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index d3f4fbb..560c072 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1274,10 +1274,8 @@ xfs_qm_dqflush( dqp->dq_flags &= ~(XFS_DQ_DIRTY); mp = dqp->q_mount; - /* lsn is 64 bits */ - spin_lock(&mp->m_ail_lock); - dqp->q_logitem.qli_flush_lsn = dqp->q_logitem.qli_item.li_lsn; - spin_unlock(&mp->m_ail_lock); + xfs_trans_ail_copy_lsn(mp->m_ail, &dqp->q_logitem.qli_flush_lsn, + &dqp->q_logitem.qli_item.li_lsn); /* * Attach an iodone routine so that we can remove this dquot from the diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 456941e..58a80ae 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2213,9 +2213,9 @@ xfs_ifree_cluster( iip = (xfs_inode_log_item_t *)lip; ASSERT(iip->ili_logged == 1); lip->li_cb = (void(*)(xfs_buf_t*,xfs_log_item_t*)) xfs_istale_done; - spin_lock(&mp->m_ail_lock); - iip->ili_flush_lsn = iip->ili_item.li_lsn; - spin_unlock(&mp->m_ail_lock); + xfs_trans_ail_copy_lsn(mp->m_ail, + &iip->ili_flush_lsn, + &iip->ili_item.li_lsn); xfs_iflags_set(iip->ili_inode, XFS_ISTALE); pre_flushed++; } @@ -2236,9 +2236,8 @@ xfs_ifree_cluster( iip->ili_last_fields = iip->ili_format.ilf_fields; iip->ili_format.ilf_fields = 0; iip->ili_logged = 1; - spin_lock(&mp->m_ail_lock); - iip->ili_flush_lsn = iip->ili_item.li_lsn; - spin_unlock(&mp->m_ail_lock); + xfs_trans_ail_copy_lsn(mp->m_ail, &iip->ili_flush_lsn, + &iip->ili_item.li_lsn); xfs_buf_attach_iodone(bp, (void(*)(xfs_buf_t*,xfs_log_item_t*)) @@ -3479,10 +3478,8 @@ xfs_iflush_int( iip->ili_format.ilf_fields = 0; iip->ili_logged = 1; - ASSERT(sizeof(xfs_lsn_t) == 8); /* don't lock if it shrinks */ - spin_lock(&mp->m_ail_lock); - iip->ili_flush_lsn = iip->ili_item.li_lsn; - spin_unlock(&mp->m_ail_lock); + xfs_trans_ail_copy_lsn(mp->m_ail, &iip->ili_flush_lsn, + &iip->ili_item.li_lsn); /* * Attach the function xfs_iflush_done to the inode's diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index aa58535..708cff7 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -106,4 +106,27 @@ void xfsaild_wakeup(struct xfs_ail *, xfs_lsn_t); int xfsaild_start(struct xfs_ail *); void xfsaild_stop(struct xfs_ail *); +#if BITS_PER_LONG != 64 +static inline void +xfs_trans_ail_copy_lsn( + struct xfs_ail *ailp, + xfs_lsn_t *dst, + xfs_lsn_t *src) +{ + ASSERT(sizeof(xfs_lsn_t) == 8); /* don't lock if it shrinks */ + spin_lock(&ailp->xa_mount->m_ail_lock); + *dst = *src; + spin_unlock(&ailp->xa_mount->m_ail_lock); +} +#else +static inline void +xfs_trans_ail_copy_lsn( + struct xfs_ail *ailp, + xfs_lsn_t *dst, + xfs_lsn_t *src) +{ + ASSERT(sizeof(xfs_lsn_t) == 8); + *dst = *src; +} +#endif #endif /* __XFS_TRANS_PRIV_H__ */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCNYd011254 for ; Tue, 7 Oct 2008 15:12:23 -0700 X-ASG-Debug-ID: 1223417639-6a6002800002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C15974C8379 for ; Tue, 7 Oct 2008 15:14:02 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id kUXWlvcrEmiS4bwu for ; Tue, 07 Oct 2008 15:14:02 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307727" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002da-Nk for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/8] XFS: Given the log a pointer to the AIL Subject: [PATCH 6/8] XFS: Given the log a pointer to the AIL Date: Wed, 8 Oct 2008 09:13:56 +1100 Message-Id: <1223417638-10050-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417643 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we need to go from the log to the AIL, we have to go via the xfs_mount. Add a xfs_ail pointer to the log so we can go directly to the AIL associated with the log. Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 3 ++- fs/xfs/xfs_log_priv.h | 1 + fs/xfs/xfs_log_recover.c | 42 +++++++++++++++++++++--------------------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index ef84ad7..fc327a9 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -572,6 +572,7 @@ xfs_log_mount( cmn_err(CE_WARN, "XFS: AIL initialisation failed: error %d", error); goto error; } + mp->m_log->l_ailp = mp->m_ail; /* * skip log recovery on a norecovery mount. pretend it all @@ -908,7 +909,7 @@ xfs_log_need_covered(xfs_mount_t *mp) spin_lock(&log->l_icloglock); if (((log->l_covered_state == XLOG_STATE_COVER_NEED) || (log->l_covered_state == XLOG_STATE_COVER_NEED2)) - && !xfs_trans_ail_tail(mp->m_ail) + && !xfs_trans_ail_tail(log->l_ailp) && xlog_iclogs_empty(log)) { if (log->l_covered_state == XLOG_STATE_COVER_NEED) log->l_covered_state = XLOG_STATE_COVER_DONE; diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index e7d8f84..de7ef6c 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -404,6 +404,7 @@ typedef struct xlog_in_core { typedef struct log { /* The following fields don't need locking */ struct xfs_mount *l_mp; /* mount point */ + struct xfs_ail *l_ailp; /* AIL log is working with */ struct xfs_buf *l_xbuf; /* extra buffer for log * wrapping */ struct xfs_buftarg *l_targ; /* buftarg of log */ diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 58de100..22751f2 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2681,7 +2681,7 @@ xlog_recover_do_efi_trans( efip->efi_next_extent = efi_formatp->efi_nextents; efip->efi_flags |= XFS_EFI_COMMITTED; - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&log->l_ailp->xa_lock); /* * xfs_trans_update_ail() drops the AIL lock. */ @@ -2710,6 +2710,7 @@ xlog_recover_do_efd_trans( xfs_log_item_t *lip; __uint64_t efi_id; struct xfs_ail_cursor cur; + struct xfs_ail *ailp; if (pass == XLOG_RECOVER_PASS1) { return; @@ -2727,8 +2728,9 @@ xlog_recover_do_efd_trans( * in the AIL. */ mp = log->l_mp; - spin_lock(&mp->m_ail->xa_lock); - lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); + ailp = log->l_ailp; + spin_lock(&ailp->xa_lock); + lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); while (lip != NULL) { if (lip->li_type == XFS_LI_EFI) { efip = (xfs_efi_log_item_t *)lip; @@ -2739,14 +2741,14 @@ xlog_recover_do_efd_trans( */ xfs_trans_delete_ail(mp, lip); xfs_efi_item_free(efip); - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); break; } } - lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); + lip = xfs_trans_ail_cursor_next(ailp, &cur); } - xfs_trans_ail_cursor_done(mp->m_ail, &cur); - spin_unlock(&mp->m_ail->xa_lock); + xfs_trans_ail_cursor_done(ailp, &cur); + spin_unlock(&ailp->xa_lock); } /* @@ -3053,14 +3055,13 @@ xlog_recover_process_efis( { xfs_log_item_t *lip; xfs_efi_log_item_t *efip; - xfs_mount_t *mp; int error = 0; struct xfs_ail_cursor cur; + struct xfs_ail *ailp; - mp = log->l_mp; - spin_lock(&mp->m_ail->xa_lock); - - lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); + ailp = log->l_ailp; + spin_lock(&ailp->xa_lock); + lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); while (lip != NULL) { /* * We're done when we see something other than an EFI. @@ -3068,8 +3069,7 @@ xlog_recover_process_efis( */ if (lip->li_type != XFS_LI_EFI) { #ifdef DEBUG - for (; lip; - lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur)) + for (; lip; lip = xfs_trans_ail_cursor_next(ailp, &cur)) ASSERT(lip->li_type != XFS_LI_EFI); #endif break; @@ -3080,20 +3080,20 @@ xlog_recover_process_efis( */ efip = (xfs_efi_log_item_t *)lip; if (efip->efi_flags & XFS_EFI_RECOVERED) { - lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); + lip = xfs_trans_ail_cursor_next(ailp, &cur); continue; } - spin_unlock(&mp->m_ail->xa_lock); - error = xlog_recover_process_efi(mp, efip); - spin_lock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); + error = xlog_recover_process_efi(log->l_mp, efip); + spin_lock(&ailp->xa_lock); if (error) goto out; - lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); + lip = xfs_trans_ail_cursor_next(ailp, &cur); } out: - xfs_trans_ail_cursor_done(mp->m_ail, &cur); - spin_unlock(&mp->m_ail->xa_lock); + xfs_trans_ail_cursor_done(ailp, &cur); + spin_unlock(&ailp->xa_lock); return error; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCO86011264 for ; Tue, 7 Oct 2008 15:12:25 -0700 X-ASG-Debug-ID: 1223417640-60f6030f0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2EF064C837D for ; Tue, 7 Oct 2008 15:14:02 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 1TzcHJ0whfTbmh9l for ; Tue, 07 Oct 2008 15:14:02 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307711" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:58 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dO-GC for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/8] XFS: Use a cursor for AIL traversal. Subject: [PATCH 2/8] XFS: Use a cursor for AIL traversal. Date: Wed, 8 Oct 2008 09:13:52 +1100 Message-Id: <1223417638-10050-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- To replace the current generation number ensuring sanity of the AIL traversal, replace it with an external cursor that is linked to the AIL. Basically, we store the next item in the cursor whenever we want to drop the AIL lock to do something to the current item. When we regain the lock. the current item may already be free, so we can't reference it, but the next item in the traversal is already held in the cursor. When we move or delete an object, we search all the active cursors and if there is an item match we clear the cursor(s) that point to the object. This forces the traversal to restart transparently. We don't invalidate the cursor on insert because the cursor still points to a valid item. If the intem is inserted between the current item and the cursor it does not matter; the traversal is considered to be past the insertion point so it will be picked up in the next traversal. Hence traversal restarts pretty much disappear altogether with this method of traversal, which should substantially reduce the overhead of pushing on a busy AIL. Version 2 o add restart logic o comment cursor interface o minor cleanups Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 4 +- fs/xfs/xfs_log_recover.c | 61 +++++--------- fs/xfs/xfs_trans_ail.c | 207 +++++++++++++++++++++++++++++++++------------- fs/xfs/xfs_trans_priv.h | 55 ++++++++++--- 4 files changed, 218 insertions(+), 109 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 503ea89..67c127a 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -900,7 +900,7 @@ xfs_log_move_tail(xfs_mount_t *mp, int xfs_log_need_covered(xfs_mount_t *mp) { - int needed = 0, gen; + int needed = 0; xlog_t *log = mp->m_log; if (!xfs_fs_writable(mp)) @@ -909,7 +909,7 @@ xfs_log_need_covered(xfs_mount_t *mp) spin_lock(&log->l_icloglock); if (((log->l_covered_state == XLOG_STATE_COVER_NEED) || (log->l_covered_state == XLOG_STATE_COVER_NEED2)) - && !xfs_trans_first_ail(mp, &gen) + && !xfs_trans_first_ail(mp, NULL) && xlog_iclogs_empty(log)) { if (log->l_covered_state == XLOG_STATE_COVER_NEED) log->l_covered_state = XLOG_STATE_COVER_DONE; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 82d46ce..5aef7c6 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -54,10 +54,8 @@ STATIC void xlog_recover_insert_item_backq(xlog_recover_item_t **q, xlog_recover_item_t *item); #if defined(DEBUG) STATIC void xlog_recover_check_summary(xlog_t *); -STATIC void xlog_recover_check_ail(xfs_mount_t *, xfs_log_item_t *, int); #else #define xlog_recover_check_summary(log) -#define xlog_recover_check_ail(mp, lip, gen) #endif @@ -2710,8 +2708,8 @@ xlog_recover_do_efd_trans( xfs_efd_log_format_t *efd_formatp; xfs_efi_log_item_t *efip = NULL; xfs_log_item_t *lip; - int gen; __uint64_t efi_id; + struct xfs_ail_cursor cur; if (pass == XLOG_RECOVER_PASS1) { return; @@ -2730,7 +2728,8 @@ xlog_recover_do_efd_trans( */ mp = log->l_mp; spin_lock(&mp->m_ail_lock); - lip = xfs_trans_first_ail(mp, &gen); + xfs_trans_ail_cursor_init(mp->m_ail, &cur); + lip = xfs_trans_first_ail(mp, &cur); while (lip != NULL) { if (lip->li_type == XFS_LI_EFI) { efip = (xfs_efi_log_item_t *)lip; @@ -2741,11 +2740,13 @@ xlog_recover_do_efd_trans( */ xfs_trans_delete_ail(mp, lip); xfs_efi_item_free(efip); - return; + spin_lock(&mp->m_ail_lock); + break; } } - lip = xfs_trans_next_ail(mp, lip, &gen, NULL); + lip = xfs_trans_next_ail(mp, &cur); } + xfs_trans_ail_cursor_done(mp->m_ail, &cur); spin_unlock(&mp->m_ail_lock); } @@ -3030,33 +3031,6 @@ abort_error: } /* - * Verify that once we've encountered something other than an EFI - * in the AIL that there are no more EFIs in the AIL. - */ -#if defined(DEBUG) -STATIC void -xlog_recover_check_ail( - xfs_mount_t *mp, - xfs_log_item_t *lip, - int gen) -{ - int orig_gen = gen; - - do { - ASSERT(lip->li_type != XFS_LI_EFI); - lip = xfs_trans_next_ail(mp, lip, &gen, NULL); - /* - * The check will be bogus if we restart from the - * beginning of the AIL, so ASSERT that we don't. - * We never should since we're holding the AIL lock - * the entire time. - */ - ASSERT(gen == orig_gen); - } while (lip != NULL); -} -#endif /* DEBUG */ - -/* * When this is called, all of the EFIs which did not have * corresponding EFDs should be in the AIL. What we do now * is free the extents associated with each one. @@ -3080,20 +3054,25 @@ xlog_recover_process_efis( { xfs_log_item_t *lip; xfs_efi_log_item_t *efip; - int gen; xfs_mount_t *mp; int error = 0; + struct xfs_ail_cursor cur; mp = log->l_mp; spin_lock(&mp->m_ail_lock); - lip = xfs_trans_first_ail(mp, &gen); + xfs_trans_ail_cursor_init(mp->m_ail, &cur); + lip = xfs_trans_first_ail(mp, &cur); while (lip != NULL) { /* * We're done when we see something other than an EFI. + * There should be no EFIs left in the AIL now. */ if (lip->li_type != XFS_LI_EFI) { - xlog_recover_check_ail(mp, lip, gen); +#ifdef DEBUG + for (; lip; lip = xfs_trans_next_ail(mp, &cur)) + ASSERT(lip->li_type != XFS_LI_EFI); +#endif break; } @@ -3102,17 +3081,19 @@ xlog_recover_process_efis( */ efip = (xfs_efi_log_item_t *)lip; if (efip->efi_flags & XFS_EFI_RECOVERED) { - lip = xfs_trans_next_ail(mp, lip, &gen, NULL); + lip = xfs_trans_next_ail(mp, &cur); continue; } spin_unlock(&mp->m_ail_lock); error = xlog_recover_process_efi(mp, efip); - if (error) - return error; spin_lock(&mp->m_ail_lock); - lip = xfs_trans_next_ail(mp, lip, &gen, NULL); + if (error) + goto out; + lip = xfs_trans_next_ail(mp, &cur); } +out: + xfs_trans_ail_cursor_done(mp->m_ail, &cur); spin_unlock(&mp->m_ail_lock); return error; } diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index db72b52..7b8bfcf 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -99,26 +99,137 @@ xfs_trans_push_ail( } /* + * AIL traversal cursor initialisation. + * + * The cursor keeps track of where our current traversal is up + * to by tracking the next ÆŁtem in the list for us. However, for + * this to be safe, removing an object from the AIL needs to invalidate + * any cursor that points to it. hence the traversal cursor needs to + * be linked to the struct xfs_ail so that deletion can search all the + * active cursors for invalidation. + * + * We don't link the push cursor because it is embedded in the struct + * xfs_ail and hence easily findable. + */ +void +xfs_trans_ail_cursor_init( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur) +{ + cur->item = NULL; + if (cur == &ailp->xa_cursors) + return; + + cur->next = ailp->xa_cursors.next; + ailp->xa_cursors.next = cur; +} + +/* + * Set the cursor to the next item, because when we look + * up the cursor the current item may have been freed. + */ +STATIC void +xfs_trans_ail_cursor_set( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + struct xfs_log_item *lip) +{ + if (lip) + cur->item = xfs_ail_next(ailp, lip); +} + +/* + * Get the next item in the traversal and advance the cursor. + * If the cursor was invalidated (inidicated by a lip of 1), + * restart the traversal. + */ +STATIC struct xfs_log_item * +xfs_trans_ail_cursor_next( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur) +{ + struct xfs_log_item *lip = cur->item; + + if ((__psint_t)lip & 1) + lip = xfs_ail_min(ailp); + xfs_trans_ail_cursor_set(ailp, cur, lip); + return lip; +} + +/* + * Invalidate any cursor that is pointing to this item. This is + * called when an item is removed from the AIL. Any cursor pointing + * to this object is now invalid and the traversal needs to be + * terminated so it doesn't reference a freed object. We set the + * cursor item to a value of 1 so we can distinguish between an + * invalidation and the end of the list when getting the next item + * from the cursor. + */ +STATIC void +xfs_trans_ail_cursor_clear( + struct xfs_ail *ailp, + struct xfs_log_item *lip) +{ + struct xfs_ail_cursor *cur; + + /* need to search all cursors */ + for (cur = &ailp->xa_cursors; cur; cur = cur->next) { + if (cur->item == lip) + cur->item = (struct xfs_log_item *) + ((__psint_t)cur->item | 1); + } +} + +/* + * Now that the traversal is complete, we need to remove the cursor + * from the list of traversing cursors. Avoid removing the embedded + * push cursor, but use the fact it is alway present to make the + * list deletion simple. + */ +void +xfs_trans_ail_cursor_done( + struct xfs_ail *ailp, + struct xfs_ail_cursor *done) +{ + struct xfs_ail_cursor *prev = NULL; + struct xfs_ail_cursor *cur; + + done->item = NULL; + if (done == &ailp->xa_cursors) + return; + prev = &ailp->xa_cursors; + for (cur = prev->next; cur; prev = cur, cur = prev->next) { + if (cur == done) { + prev->next = cur->next; + break; + } + } + ASSERT(cur); +} + +/* * Return the item in the AIL with the current lsn. * Return the current tree generation number for use * in calls to xfs_trans_next_ail(). */ STATIC xfs_log_item_t * xfs_trans_first_push_ail( - xfs_mount_t *mp, - int *gen, - xfs_lsn_t lsn) + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn) { - xfs_log_item_t *lip; + xfs_log_item_t *lip; - lip = xfs_ail_min(mp->m_ail); - *gen = (int)mp->m_ail->xa_gen; + lip = xfs_ail_min(ailp); + xfs_trans_ail_cursor_set(ailp, cur, lip); if (lsn == 0) return lip; - list_for_each_entry(lip, &mp->m_ail->xa_ail, li_ail) { - if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) + list_for_each_entry(lip, &ailp->xa_ail, li_ail) { + if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) { + xfs_trans_ail_cursor_set(ailp, cur, lip); return lip; + } } return NULL; @@ -137,22 +248,21 @@ xfsaild_push( xfs_lsn_t target = ailp->xa_target; xfs_lsn_t lsn; xfs_log_item_t *lip; - int gen; - int restarts; int flush_log, count, stuck; xfs_mount_t *mp = ailp->xa_mount; - -#define XFS_TRANS_PUSH_AIL_RESTARTS 10 + struct xfs_ail_cursor *cur = &ailp->xa_cursors; spin_lock(&mp->m_ail_lock); - lip = xfs_trans_first_push_ail(mp, &gen, *last_lsn); + xfs_trans_ail_cursor_init(ailp, cur); + lip = xfs_trans_first_push_ail(ailp, cur, *last_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { /* * AIL is empty or our push has reached the end. */ + xfs_trans_ail_cursor_done(ailp, cur); spin_unlock(&mp->m_ail_lock); last_pushed_lsn = 0; - goto out; + return tout; } XFS_STATS_INC(xs_push_ail); @@ -170,7 +280,7 @@ xfsaild_push( */ tout = 10; lsn = lip->li_lsn; - flush_log = stuck = count = restarts = 0; + flush_log = stuck = count = 0; while ((XFS_LSN_CMP(lip->li_lsn, target) < 0)) { int lock_result; /* @@ -245,13 +355,12 @@ xfsaild_push( if (stuck > 100) break; - lip = xfs_trans_next_ail(mp, lip, &gen, &restarts); + lip = xfs_trans_ail_cursor_next(ailp, cur); if (lip == NULL) break; - if (restarts > XFS_TRANS_PUSH_AIL_RESTARTS) - break; lsn = lip->li_lsn; } + xfs_trans_ail_cursor_done(ailp, cur); spin_unlock(&mp->m_ail_lock); if (flush_log) { @@ -275,8 +384,7 @@ xfsaild_push( */ tout += 20; last_pushed_lsn = 0; - } else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) || - ((stuck * 100) / count > 90)) { + } else if ((stuck * 100) / count > 90) { /* * Either there is a lot of contention on the AIL or we * are stuck due to operations in progress. "Stuck" in this @@ -288,7 +396,6 @@ xfsaild_push( */ tout += 10; } -out: *last_lsn = last_pushed_lsn; return tout; } /* xfsaild_push */ @@ -348,9 +455,6 @@ xfs_trans_unlocked_item( * we move in the AIL is the minimum one, update the tail lsn in the * log manager. * - * Increment the AIL's generation count to indicate that the tree - * has changed. - * * This function must be called with the AIL lock held. The lock * is dropped before returning. */ @@ -368,14 +472,13 @@ xfs_trans_update_ail( if (lip->li_flags & XFS_LI_IN_AIL) { dlip = xfs_ail_delete(mp->m_ail, lip); ASSERT(dlip == lip); + xfs_trans_ail_cursor_clear(mp->m_ail, dlip); } else { lip->li_flags |= XFS_LI_IN_AIL; } lip->li_lsn = lsn; - xfs_ail_insert(mp->m_ail, lip); - mp->m_ail->xa_gen++; if (mlip == dlip) { mlip = xfs_ail_min(mp->m_ail); @@ -415,11 +518,11 @@ xfs_trans_delete_ail( mlip = xfs_ail_min(mp->m_ail); dlip = xfs_ail_delete(mp->m_ail, lip); ASSERT(dlip == lip); + xfs_trans_ail_cursor_clear(mp->m_ail, dlip); lip->li_flags &= ~XFS_LI_IN_AIL; lip->li_lsn = 0; - mp->m_ail->xa_gen++; if (mlip == dlip) { mlip = xfs_ail_min(mp->m_ail); @@ -455,46 +558,29 @@ xfs_trans_delete_ail( */ xfs_log_item_t * xfs_trans_first_ail( - xfs_mount_t *mp, - int *gen) + struct xfs_mount *mp, + struct xfs_ail_cursor *cur) { - xfs_log_item_t *lip; + xfs_log_item_t *lip; + struct xfs_ail *ailp = mp->m_ail; - lip = xfs_ail_min(mp->m_ail); - *gen = (int)mp->m_ail->xa_gen; + lip = xfs_ail_min(ailp); + xfs_trans_ail_cursor_set(ailp, cur, lip); return lip; } /* - * If the generation count of the tree has not changed since the - * caller last took something from the AIL, then return the elmt - * in the tree which follows the one given. If the count has changed, - * then return the minimum elmt of the AIL and bump the restarts counter - * if one is given. + * Grab the next item in the AIL from the cursor passed in. */ xfs_log_item_t * xfs_trans_next_ail( - xfs_mount_t *mp, - xfs_log_item_t *lip, - int *gen, - int *restarts) + struct xfs_mount *mp, + struct xfs_ail_cursor *cur) { - xfs_log_item_t *nlip; - - ASSERT(mp && lip && gen); - if (mp->m_ail->xa_gen == *gen) { - nlip = xfs_ail_next(mp->m_ail, lip); - } else { - nlip = xfs_ail_min(mp->m_ail); - *gen = (int)mp->m_ail->xa_gen; - if (restarts != NULL) { - XFS_STATS_INC(xs_push_ail_restarts); - (*restarts)++; - } - } + struct xfs_ail *ailp = mp->m_ail; - return (nlip); + return xfs_trans_ail_cursor_next(ailp, cur); } @@ -517,6 +603,7 @@ xfs_trans_ail_init( xfs_mount_t *mp) { struct xfs_ail *ailp; + int error; ailp = kmem_zalloc(sizeof(struct xfs_ail), KM_MAYFAIL); if (!ailp) @@ -524,7 +611,15 @@ xfs_trans_ail_init( ailp->xa_mount = mp; INIT_LIST_HEAD(&ailp->xa_ail); - return xfsaild_start(ailp); + error = xfsaild_start(ailp); + if (error) + goto out_free_ailp; + mp->m_ail = ailp; + return 0; + +out_free_ailp: + kmem_free(ailp); + return error; } void diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 98317fd..f114d38 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -44,20 +44,33 @@ xfs_log_busy_slot_t *xfs_trans_add_busy(xfs_trans_t *tp, xfs_extlen_t idx); /* - * From xfs_trans_ail.c + * AIL traversal cursor. + * + * Rather than using a generation number for detecting changes in the ail, use + * a cursor that is protected by the ail lock. The aild cursor exists in the + * struct xfs_ail, but other traversals can declare it on the stack and link it + * to the ail list. + * + * When an object is deleted from or moved int the AIL, the cursor list is + * searched to see if the object is a designated cursor item. If it is, it is + * deleted from the cursor so that the next time the cursor is used traversal + * will return to the start. + * + * This means a traversal colliding with a removal will cause a restart of the + * list scan, rather than any insertion or deletion anywhere in the list. The + * low bit of the item pointer is set if the cursor has been invalidated so + * that we can tell the difference between invalidation and reaching the end + * of the list to trigger traversal restarts. */ -void xfs_trans_update_ail(struct xfs_mount *mp, - struct xfs_log_item *lip, xfs_lsn_t lsn) - __releases(mp->m_ail_lock); -void xfs_trans_delete_ail(struct xfs_mount *mp, - struct xfs_log_item *lip) - __releases(mp->m_ail_lock); -struct xfs_log_item *xfs_trans_first_ail(struct xfs_mount *, int *); -struct xfs_log_item *xfs_trans_next_ail(struct xfs_mount *, - struct xfs_log_item *, int *, int *); +struct xfs_ail_cursor { + struct xfs_ail_cursor *next; + struct xfs_log_item *item; +}; /* - * AIL push thread support + * Private AIL structures. + * + * Eventually we need to drive the locking in here as well. */ struct xfs_ail { struct xfs_mount *xa_mount; @@ -65,8 +78,28 @@ struct xfs_ail { uint xa_gen; struct task_struct *xa_task; xfs_lsn_t xa_target; + struct xfs_ail_cursor xa_cursors; }; +/* + * From xfs_trans_ail.c + */ +void xfs_trans_update_ail(struct xfs_mount *mp, + struct xfs_log_item *lip, xfs_lsn_t lsn) + __releases(mp->m_ail_lock); +void xfs_trans_delete_ail(struct xfs_mount *mp, + struct xfs_log_item *lip) + __releases(mp->m_ail_lock); +struct xfs_log_item *xfs_trans_first_ail(struct xfs_mount *mp, + struct xfs_ail_cursor *cur); +struct xfs_log_item *xfs_trans_next_ail(struct xfs_mount *mp, + struct xfs_ail_cursor *cur); + +void xfs_trans_ail_cursor_init(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur); +void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur); + long xfsaild_push(struct xfs_ail *, xfs_lsn_t *); void xfsaild_wakeup(struct xfs_ail *, xfs_lsn_t); int xfsaild_start(struct xfs_ail *); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCNIs011248 for ; Tue, 7 Oct 2008 15:12:24 -0700 X-ASG-Debug-ID: 1223417641-3dad032c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 49D31A0129C for ; Tue, 7 Oct 2008 15:14:02 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id M8fRCzZBmND97NIX for ; Tue, 07 Oct 2008 15:14:02 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307716" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:43:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dR-Hz for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/8] XFS: move the AIl traversal over to a consistent interface Subject: [PATCH 3/8] XFS: move the AIl traversal over to a consistent interface Date: Wed, 8 Oct 2008 09:13:53 +1100 Message-Id: <1223417638-10050-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417643 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7510 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- With the new cursor interface, it makes sense to make all the traversing code use the cursor interface and make the old one go away. This means more of the AIL interfacing is done by passing struct xfs_ail pointers around the place instead of struct xfs_mount pointers. We can replace the use of xfs_trans_first_ail() in xfs_log_need_covered() as it is only checking if the AIL is empty. We can do that with a call to xfs_trans_ail_tail() instead, where a zero LSN returned indicates and empty AIL... Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 4 +- fs/xfs/xfs_log_recover.c | 15 +++--- fs/xfs/xfs_trans.h | 1 - fs/xfs/xfs_trans_ail.c | 117 ++++++++++++++++----------------------------- fs/xfs/xfs_trans_priv.h | 13 +++-- 5 files changed, 58 insertions(+), 92 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 67c127a..b19a082 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -909,7 +909,7 @@ xfs_log_need_covered(xfs_mount_t *mp) spin_lock(&log->l_icloglock); if (((log->l_covered_state == XLOG_STATE_COVER_NEED) || (log->l_covered_state == XLOG_STATE_COVER_NEED2)) - && !xfs_trans_first_ail(mp, NULL) + && !xfs_trans_ail_tail(mp->m_ail) && xlog_iclogs_empty(log)) { if (log->l_covered_state == XLOG_STATE_COVER_NEED) log->l_covered_state = XLOG_STATE_COVER_DONE; @@ -946,7 +946,7 @@ xlog_assign_tail_lsn(xfs_mount_t *mp) xfs_lsn_t tail_lsn; xlog_t *log = mp->m_log; - tail_lsn = xfs_trans_tail_ail(mp); + tail_lsn = xfs_trans_ail_tail(mp->m_ail); spin_lock(&log->l_grant_lock); if (tail_lsn != 0) { log->l_tail_lsn = tail_lsn; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 5aef7c6..83f53ca 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2728,8 +2728,7 @@ xlog_recover_do_efd_trans( */ mp = log->l_mp; spin_lock(&mp->m_ail_lock); - xfs_trans_ail_cursor_init(mp->m_ail, &cur); - lip = xfs_trans_first_ail(mp, &cur); + lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); while (lip != NULL) { if (lip->li_type == XFS_LI_EFI) { efip = (xfs_efi_log_item_t *)lip; @@ -2744,7 +2743,7 @@ xlog_recover_do_efd_trans( break; } } - lip = xfs_trans_next_ail(mp, &cur); + lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); } xfs_trans_ail_cursor_done(mp->m_ail, &cur); spin_unlock(&mp->m_ail_lock); @@ -3061,8 +3060,7 @@ xlog_recover_process_efis( mp = log->l_mp; spin_lock(&mp->m_ail_lock); - xfs_trans_ail_cursor_init(mp->m_ail, &cur); - lip = xfs_trans_first_ail(mp, &cur); + lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); while (lip != NULL) { /* * We're done when we see something other than an EFI. @@ -3070,7 +3068,8 @@ xlog_recover_process_efis( */ if (lip->li_type != XFS_LI_EFI) { #ifdef DEBUG - for (; lip; lip = xfs_trans_next_ail(mp, &cur)) + for (; lip; + lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur)) ASSERT(lip->li_type != XFS_LI_EFI); #endif break; @@ -3081,7 +3080,7 @@ xlog_recover_process_efis( */ efip = (xfs_efi_log_item_t *)lip; if (efip->efi_flags & XFS_EFI_RECOVERED) { - lip = xfs_trans_next_ail(mp, &cur); + lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); continue; } @@ -3090,7 +3089,7 @@ xlog_recover_process_efis( spin_lock(&mp->m_ail_lock); if (error) goto out; - lip = xfs_trans_next_ail(mp, &cur); + lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); } out: xfs_trans_ail_cursor_done(mp->m_ail, &cur); diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index 1d89d50..ae2ae3e 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -971,7 +971,6 @@ void xfs_trans_cancel(xfs_trans_t *, int); int xfs_trans_ail_init(struct xfs_mount *); void xfs_trans_ail_destroy(struct xfs_mount *); void xfs_trans_push_ail(struct xfs_mount *, xfs_lsn_t); -xfs_lsn_t xfs_trans_tail_ail(struct xfs_mount *); void xfs_trans_unlocked_item(struct xfs_mount *, xfs_log_item_t *); xfs_log_busy_slot_t *xfs_trans_add_busy(xfs_trans_t *tp, diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 7b8bfcf..286934d 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -50,20 +50,20 @@ STATIC void xfs_ail_check(struct xfs_ail *, xfs_log_item_t *); * lsn of the last item in the AIL. */ xfs_lsn_t -xfs_trans_tail_ail( - xfs_mount_t *mp) +xfs_trans_ail_tail( + struct xfs_ail *ailp) { xfs_lsn_t lsn; xfs_log_item_t *lip; - spin_lock(&mp->m_ail_lock); - lip = xfs_ail_min(mp->m_ail); + spin_lock(&ailp->xa_mount->m_ail_lock); + lip = xfs_ail_min(ailp); if (lip == NULL) { lsn = (xfs_lsn_t)0; } else { lsn = lip->li_lsn; } - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_mount->m_ail_lock); return lsn; } @@ -111,7 +111,7 @@ xfs_trans_push_ail( * We don't link the push cursor because it is embedded in the struct * xfs_ail and hence easily findable. */ -void +STATIC void xfs_trans_ail_cursor_init( struct xfs_ail *ailp, struct xfs_ail_cursor *cur) @@ -143,7 +143,7 @@ xfs_trans_ail_cursor_set( * If the cursor was invalidated (inidicated by a lip of 1), * restart the traversal. */ -STATIC struct xfs_log_item * +struct xfs_log_item * xfs_trans_ail_cursor_next( struct xfs_ail *ailp, struct xfs_ail_cursor *cur) @@ -157,30 +157,6 @@ xfs_trans_ail_cursor_next( } /* - * Invalidate any cursor that is pointing to this item. This is - * called when an item is removed from the AIL. Any cursor pointing - * to this object is now invalid and the traversal needs to be - * terminated so it doesn't reference a freed object. We set the - * cursor item to a value of 1 so we can distinguish between an - * invalidation and the end of the list when getting the next item - * from the cursor. - */ -STATIC void -xfs_trans_ail_cursor_clear( - struct xfs_ail *ailp, - struct xfs_log_item *lip) -{ - struct xfs_ail_cursor *cur; - - /* need to search all cursors */ - for (cur = &ailp->xa_cursors; cur; cur = cur->next) { - if (cur->item == lip) - cur->item = (struct xfs_log_item *) - ((__psint_t)cur->item | 1); - } -} - -/* * Now that the traversal is complete, we need to remove the cursor * from the list of traversing cursors. Avoid removing the embedded * push cursor, but use the fact it is alway present to make the @@ -208,31 +184,55 @@ xfs_trans_ail_cursor_done( } /* + * Invalidate any cursor that is pointing to this item. This is + * called when an item is removed from the AIL. Any cursor pointing + * to this object is now invalid and the traversal needs to be + * terminated so it doesn't reference a freed object. We set the + * cursor item to a value of 1 so we can distinguish between an + * invalidation and the end of the list when getting the next item + * from the cursor. + */ +STATIC void +xfs_trans_ail_cursor_clear( + struct xfs_ail *ailp, + struct xfs_log_item *lip) +{ + struct xfs_ail_cursor *cur; + + /* need to search all cursors */ + for (cur = &ailp->xa_cursors; cur; cur = cur->next) { + if (cur->item == lip) + cur->item = (struct xfs_log_item *) + ((__psint_t)cur->item | 1); + } +} + +/* * Return the item in the AIL with the current lsn. * Return the current tree generation number for use * in calls to xfs_trans_next_ail(). */ -STATIC xfs_log_item_t * -xfs_trans_first_push_ail( +xfs_log_item_t * +xfs_trans_ail_cursor_first( struct xfs_ail *ailp, struct xfs_ail_cursor *cur, xfs_lsn_t lsn) { xfs_log_item_t *lip; + xfs_trans_ail_cursor_init(ailp, cur); lip = xfs_ail_min(ailp); - xfs_trans_ail_cursor_set(ailp, cur, lip); if (lsn == 0) - return lip; + goto out; list_for_each_entry(lip, &ailp->xa_ail, li_ail) { - if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) { - xfs_trans_ail_cursor_set(ailp, cur, lip); - return lip; - } + if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) + break; } - - return NULL; + lip = NULL; +out: + xfs_trans_ail_cursor_set(ailp, cur, lip); + return lip; } /* @@ -254,7 +254,7 @@ xfsaild_push( spin_lock(&mp->m_ail_lock); xfs_trans_ail_cursor_init(ailp, cur); - lip = xfs_trans_first_push_ail(ailp, cur, *last_lsn); + lip = xfs_trans_ail_cursor_first(ailp, cur, *last_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { /* * AIL is empty or our push has reached the end. @@ -552,39 +552,6 @@ xfs_trans_delete_ail( /* - * Return the item in the AIL with the smallest lsn. - * Return the current tree generation number for use - * in calls to xfs_trans_next_ail(). - */ -xfs_log_item_t * -xfs_trans_first_ail( - struct xfs_mount *mp, - struct xfs_ail_cursor *cur) -{ - xfs_log_item_t *lip; - struct xfs_ail *ailp = mp->m_ail; - - lip = xfs_ail_min(ailp); - xfs_trans_ail_cursor_set(ailp, cur, lip); - - return lip; -} - -/* - * Grab the next item in the AIL from the cursor passed in. - */ -xfs_log_item_t * -xfs_trans_next_ail( - struct xfs_mount *mp, - struct xfs_ail_cursor *cur) -{ - struct xfs_ail *ailp = mp->m_ail; - - return xfs_trans_ail_cursor_next(ailp, cur); -} - - -/* * The active item list (AIL) is a doubly linked list of log * items sorted by ascending lsn. The base of the list is * a forw/back pointer pair embedded in the xfs mount structure. diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index f114d38..aa58535 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -90,14 +90,15 @@ void xfs_trans_update_ail(struct xfs_mount *mp, void xfs_trans_delete_ail(struct xfs_mount *mp, struct xfs_log_item *lip) __releases(mp->m_ail_lock); -struct xfs_log_item *xfs_trans_first_ail(struct xfs_mount *mp, - struct xfs_ail_cursor *cur); -struct xfs_log_item *xfs_trans_next_ail(struct xfs_mount *mp, - struct xfs_ail_cursor *cur); -void xfs_trans_ail_cursor_init(struct xfs_ail *ailp, +xfs_lsn_t xfs_trans_ail_tail(struct xfs_ail *ailp); + +struct xfs_log_item *xfs_trans_ail_cursor_first(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn); +struct xfs_log_item *xfs_trans_ail_cursor_next(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); -void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, +void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); long xfsaild_push(struct xfs_ail *, xfs_lsn_t *); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCQtG011290 for ; Tue, 7 Oct 2008 15:12:26 -0700 X-ASG-Debug-ID: 1223417639-6a6002800003-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 156724C837E for ; Tue, 7 Oct 2008 15:14:04 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id I8kkqQIqErvFzZzA for ; Tue, 07 Oct 2008 15:14:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307744" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:44:00 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dX-Lc for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/8] XFS: Move the AIL lock into the struct xfs_ail Subject: [PATCH 5/8] XFS: Move the AIL lock into the struct xfs_ail Date: Wed, 8 Oct 2008 09:13:55 +1100 Message-Id: <1223417638-10050-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417646 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Bring the ail lock inside the struct xfs_ail. This means the AIL can be entirely manipulated via the struct xfs_ail rather than needing both the struct xfs_mount and the struct xfs_ail. Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_dquot.c | 4 +- fs/xfs/quota/xfs_dquot_item.c | 2 +- fs/xfs/xfs_buf_item.c | 4 +- fs/xfs/xfs_extfree_item.c | 12 ++++---- fs/xfs/xfs_inode.c | 4 +- fs/xfs/xfs_inode_item.c | 8 +++--- fs/xfs/xfs_log.c | 1 - fs/xfs/xfs_log_recover.c | 16 ++++++------ fs/xfs/xfs_mount.h | 1 - fs/xfs/xfs_trans.c | 4 +- fs/xfs/xfs_trans_ail.c | 56 +++++++++++++++++++++------------------- fs/xfs/xfs_trans_priv.h | 5 ++- 12 files changed, 59 insertions(+), 58 deletions(-) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 560c072..6749bd2 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1335,7 +1335,7 @@ xfs_qm_dqflush_done( if ((qip->qli_item.li_flags & XFS_LI_IN_AIL) && qip->qli_item.li_lsn == qip->qli_flush_lsn) { - spin_lock(&dqp->q_mount->m_ail_lock); + spin_lock(&dqp->q_mount->m_ail->xa_lock); /* * xfs_trans_delete_ail() drops the AIL lock. */ @@ -1343,7 +1343,7 @@ xfs_qm_dqflush_done( xfs_trans_delete_ail(dqp->q_mount, (xfs_log_item_t*)qip); else - spin_unlock(&dqp->q_mount->m_ail_lock); + spin_unlock(&dqp->q_mount->m_ail->xa_lock); } /* diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c index 48f0810..0e1fa51 100644 --- a/fs/xfs/quota/xfs_dquot_item.c +++ b/fs/xfs/quota/xfs_dquot_item.c @@ -555,7 +555,7 @@ xfs_qm_qoffend_logitem_committed( xfs_qoff_logitem_t *qfs; qfs = qfe->qql_start_lip; - spin_lock(&qfs->qql_item.li_mountp->m_ail_lock); + spin_lock(&qfs->qql_item.li_mountp->m_ail->xa_lock); /* * Delete the qoff-start logitem from the AIL. * xfs_trans_delete_ail() drops the AIL lock. diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 002fc26..c557fd6 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -408,7 +408,7 @@ xfs_buf_item_unpin( XFS_BUF_SET_FSPRIVATE(bp, NULL); XFS_BUF_CLR_IODONE_FUNC(bp); } else { - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip); xfs_buf_item_relse(bp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) == NULL); @@ -1138,7 +1138,7 @@ xfs_buf_iodone( * * Either way, AIL is useless if we're forcing a shutdown. */ - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); /* * xfs_trans_delete_ail() drops the AIL lock. */ diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index 8aa28f7..f1dcd80 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -111,7 +111,7 @@ xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) xfs_mount_t *mp; mp = efip->efi_item.li_mountp; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { /* * xfs_trans_delete_ail() drops the AIL lock. @@ -120,7 +120,7 @@ xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } } @@ -138,7 +138,7 @@ xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) xfs_log_item_desc_t *lidp; mp = efip->efi_item.li_mountp; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { /* * free the xaction descriptor pointing to this item @@ -153,7 +153,7 @@ xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } } @@ -352,7 +352,7 @@ xfs_efi_release(xfs_efi_log_item_t *efip, ASSERT(efip->efi_next_extent > 0); ASSERT(efip->efi_flags & XFS_EFI_COMMITTED); - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); ASSERT(efip->efi_next_extent >= nextents); efip->efi_next_extent -= nextents; extents_left = efip->efi_next_extent; @@ -363,7 +363,7 @@ xfs_efi_release(xfs_efi_log_item_t *efip, xfs_trans_delete_ail(mp, (xfs_log_item_t *)efip); xfs_efi_item_free(efip); } else { - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 58a80ae..a356a31 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2718,11 +2718,11 @@ xfs_idestroy( ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || XFS_FORCED_SHUTDOWN(ip->i_mount)); if (lip->li_flags & XFS_LI_IN_AIL) { - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (lip->li_flags & XFS_LI_IN_AIL) xfs_trans_delete_ail(mp, lip); else - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } xfs_inode_item_destroy(ip); ip->i_itemp = NULL; diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 97c7452..291d30a 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -991,7 +991,7 @@ xfs_iflush_done( */ if (iip->ili_logged && (iip->ili_item.li_lsn == iip->ili_flush_lsn)) { - spin_lock(&ip->i_mount->m_ail_lock); + spin_lock(&ip->i_mount->m_ail->xa_lock); if (iip->ili_item.li_lsn == iip->ili_flush_lsn) { /* * xfs_trans_delete_ail() drops the AIL lock. @@ -999,7 +999,7 @@ xfs_iflush_done( xfs_trans_delete_ail(ip->i_mount, (xfs_log_item_t*)iip); } else { - spin_unlock(&ip->i_mount->m_ail_lock); + spin_unlock(&ip->i_mount->m_ail->xa_lock); } } @@ -1038,14 +1038,14 @@ xfs_iflush_abort( mp = ip->i_mount; if (iip) { if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { /* * xfs_trans_delete_ail() drops the AIL lock. */ xfs_trans_delete_ail(mp, (xfs_log_item_t *)iip); } else - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } iip->ili_logged = 0; /* diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index b19a082..ef84ad7 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -567,7 +567,6 @@ xfs_log_mount( /* * Initialize the AIL now we have a log. */ - spin_lock_init(&mp->m_ail_lock); error = xfs_trans_ail_init(mp); if (error) { cmn_err(CE_WARN, "XFS: AIL initialisation failed: error %d", error); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 83f53ca..58de100 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2681,7 +2681,7 @@ xlog_recover_do_efi_trans( efip->efi_next_extent = efi_formatp->efi_nextents; efip->efi_flags |= XFS_EFI_COMMITTED; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); /* * xfs_trans_update_ail() drops the AIL lock. */ @@ -2727,7 +2727,7 @@ xlog_recover_do_efd_trans( * in the AIL. */ mp = log->l_mp; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); while (lip != NULL) { if (lip->li_type == XFS_LI_EFI) { @@ -2739,14 +2739,14 @@ xlog_recover_do_efd_trans( */ xfs_trans_delete_ail(mp, lip); xfs_efi_item_free(efip); - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); break; } } lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); } xfs_trans_ail_cursor_done(mp->m_ail, &cur); - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } /* @@ -3058,7 +3058,7 @@ xlog_recover_process_efis( struct xfs_ail_cursor cur; mp = log->l_mp; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); lip = xfs_trans_ail_cursor_first(mp->m_ail, &cur, 0); while (lip != NULL) { @@ -3084,16 +3084,16 @@ xlog_recover_process_efis( continue; } - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); error = xlog_recover_process_efi(mp, efip); - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (error) goto out; lip = xfs_trans_ail_cursor_next(mp->m_ail, &cur); } out: xfs_trans_ail_cursor_done(mp->m_ail, &cur); - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); return error; } diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index dc29bbd..f927ada 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -228,7 +228,6 @@ extern void xfs_icsb_sync_counters_locked(struct xfs_mount *, int); typedef struct xfs_mount { struct super_block *m_super; xfs_tid_t m_tid; /* next unused tid for fs */ - spinlock_t m_ail_lock; /* fs AIL mutex */ struct xfs_ail *m_ail; /* fs active log item list */ xfs_sb_t m_sb; /* copy of fs superblock */ spinlock_t m_sb_lock; /* sb counter lock */ diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 4e1c22a..99ba0e2 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1425,7 +1425,7 @@ xfs_trans_chunk_committed( * the test below. */ mp = lip->li_mountp; - spin_lock(&mp->m_ail_lock); + spin_lock(&mp->m_ail->xa_lock); if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) { /* * This will set the item's lsn to item_lsn @@ -1436,7 +1436,7 @@ xfs_trans_chunk_committed( */ xfs_trans_update_ail(mp, lip, item_lsn); } else { - spin_unlock(&mp->m_ail_lock); + spin_unlock(&mp->m_ail->xa_lock); } /* diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 286934d..0cd47a7 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc. + * Copyright (c) 2008 Dave Chinner * All Rights Reserved. * * This program is free software; you can redistribute it and/or @@ -56,14 +57,14 @@ xfs_trans_ail_tail( xfs_lsn_t lsn; xfs_log_item_t *lip; - spin_lock(&ailp->xa_mount->m_ail_lock); + spin_lock(&ailp->xa_lock); lip = xfs_ail_min(ailp); if (lip == NULL) { lsn = (xfs_lsn_t)0; } else { lsn = lip->li_lsn; } - spin_unlock(&ailp->xa_mount->m_ail_lock); + spin_unlock(&ailp->xa_lock); return lsn; } @@ -252,7 +253,7 @@ xfsaild_push( xfs_mount_t *mp = ailp->xa_mount; struct xfs_ail_cursor *cur = &ailp->xa_cursors; - spin_lock(&mp->m_ail_lock); + spin_lock(&ailp->xa_lock); xfs_trans_ail_cursor_init(ailp, cur); lip = xfs_trans_ail_cursor_first(ailp, cur, *last_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { @@ -260,7 +261,7 @@ xfsaild_push( * AIL is empty or our push has reached the end. */ xfs_trans_ail_cursor_done(ailp, cur); - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_lock); last_pushed_lsn = 0; return tout; } @@ -295,7 +296,7 @@ xfsaild_push( * skip to the next item in the list. */ lock_result = IOP_TRYLOCK(lip); - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_lock); switch (lock_result) { case XFS_ITEM_SUCCESS: XFS_STATS_INC(xs_push_ail_success); @@ -332,7 +333,7 @@ xfsaild_push( break; } - spin_lock(&mp->m_ail_lock); + spin_lock(&ailp->xa_lock); /* should we bother continuing? */ if (XFS_FORCED_SHUTDOWN(mp)) break; @@ -361,7 +362,7 @@ xfsaild_push( lsn = lip->li_lsn; } xfs_trans_ail_cursor_done(ailp, cur); - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_lock); if (flush_log) { /* @@ -462,30 +463,31 @@ void xfs_trans_update_ail( xfs_mount_t *mp, xfs_log_item_t *lip, - xfs_lsn_t lsn) __releases(mp->m_ail_lock) + xfs_lsn_t lsn) __releases(ailp->xa_lock) { - xfs_log_item_t *dlip=NULL; + struct xfs_ail *ailp = mp->m_ail; + xfs_log_item_t *dlip = NULL; xfs_log_item_t *mlip; /* ptr to minimum lip */ - mlip = xfs_ail_min(mp->m_ail); + mlip = xfs_ail_min(ailp); if (lip->li_flags & XFS_LI_IN_AIL) { - dlip = xfs_ail_delete(mp->m_ail, lip); + dlip = xfs_ail_delete(ailp, lip); ASSERT(dlip == lip); - xfs_trans_ail_cursor_clear(mp->m_ail, dlip); + xfs_trans_ail_cursor_clear(ailp, dlip); } else { lip->li_flags |= XFS_LI_IN_AIL; } lip->li_lsn = lsn; - xfs_ail_insert(mp->m_ail, lip); + xfs_ail_insert(ailp, lip); if (mlip == dlip) { - mlip = xfs_ail_min(mp->m_ail); - spin_unlock(&mp->m_ail_lock); + mlip = xfs_ail_min(ailp); + spin_unlock(&ailp->xa_lock); xfs_log_move_tail(mp, mlip->li_lsn); } else { - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_lock); } @@ -509,27 +511,28 @@ xfs_trans_update_ail( void xfs_trans_delete_ail( xfs_mount_t *mp, - xfs_log_item_t *lip) __releases(mp->m_ail_lock) + xfs_log_item_t *lip) __releases(ailp->xa_lock) { + struct xfs_ail *ailp = mp->m_ail; xfs_log_item_t *dlip; xfs_log_item_t *mlip; if (lip->li_flags & XFS_LI_IN_AIL) { - mlip = xfs_ail_min(mp->m_ail); - dlip = xfs_ail_delete(mp->m_ail, lip); + mlip = xfs_ail_min(ailp); + dlip = xfs_ail_delete(ailp, lip); ASSERT(dlip == lip); - xfs_trans_ail_cursor_clear(mp->m_ail, dlip); + xfs_trans_ail_cursor_clear(ailp, dlip); lip->li_flags &= ~XFS_LI_IN_AIL; lip->li_lsn = 0; if (mlip == dlip) { - mlip = xfs_ail_min(mp->m_ail); - spin_unlock(&mp->m_ail_lock); + mlip = xfs_ail_min(ailp); + spin_unlock(&ailp->xa_lock); xfs_log_move_tail(mp, (mlip ? mlip->li_lsn : 0)); } else { - spin_unlock(&mp->m_ail_lock); + spin_unlock(&ailp->xa_lock); } } else { @@ -537,13 +540,11 @@ xfs_trans_delete_ail( * If the file system is not being shutdown, we are in * serious trouble if we get to this stage. */ - if (XFS_FORCED_SHUTDOWN(mp)) - spin_unlock(&mp->m_ail_lock); - else { + spin_unlock(&ailp->xa_lock); + if (!XFS_FORCED_SHUTDOWN(mp)) { xfs_cmn_err(XFS_PTAG_AILDELETE, CE_ALERT, mp, "%s: attempting to delete a log item that is not in the AIL", __func__); - spin_unlock(&mp->m_ail_lock); xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); } } @@ -578,6 +579,7 @@ xfs_trans_ail_init( ailp->xa_mount = mp; INIT_LIST_HEAD(&ailp->xa_ail); + spin_lock_init(&ailp->xa_lock); error = xfsaild_start(ailp); if (error) goto out_free_ailp; diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 708cff7..6ca0a7a 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -79,6 +79,7 @@ struct xfs_ail { struct task_struct *xa_task; xfs_lsn_t xa_target; struct xfs_ail_cursor xa_cursors; + spinlock_t xa_lock; }; /* @@ -114,9 +115,9 @@ xfs_trans_ail_copy_lsn( xfs_lsn_t *src) { ASSERT(sizeof(xfs_lsn_t) == 8); /* don't lock if it shrinks */ - spin_lock(&ailp->xa_mount->m_ail_lock); + spin_lock(&ailp->xa_lock); *dst = *src; - spin_unlock(&ailp->xa_mount->m_ail_lock); + spin_unlock(&ailp->xa_lock); } #else static inline void -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCOsP011266 for ; Tue, 7 Oct 2008 15:12:25 -0700 X-ASG-Debug-ID: 1223417641-3dad032c0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A75BFA0129C for ; Tue, 7 Oct 2008 15:14:03 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id ke0a0ANOLmmBpM3E for ; Tue, 07 Oct 2008 15:14:03 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307740" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:44:00 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoY-0002dd-RB for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 7/8] XFS: Add ail pointer into log items Subject: [PATCH 7/8] XFS: Add ail pointer into log items Date: Wed, 8 Oct 2008 09:13:57 +1100 Message-Id: <1223417638-10050-8-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7510 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Add an xfs_ail pointer to log items so that the log items can reference the AIL directly during callbacks without needed a struct xfs_mount. Signed-off-by: Dave Chinner --- fs/xfs/xfs_buf_item.c | 5 ++++- fs/xfs/xfs_extfree_item.c | 28 ++++++++++++++++++---------- fs/xfs/xfs_inode_item.c | 1 + fs/xfs/xfs_trans.c | 9 ++++++--- fs/xfs/xfs_trans.h | 1 + fs/xfs/xfs_trans_item.c | 10 ++++++++++ 6 files changed, 40 insertions(+), 14 deletions(-) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index c557fd6..793e53c 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -731,6 +731,7 @@ xfs_buf_item_init( bip->bli_item.li_type = XFS_LI_BUF; bip->bli_item.li_ops = &xfs_buf_item_ops; bip->bli_item.li_mountp = mp; + bip->bli_item.li_ailp = mp->m_ail; bip->bli_buf = bp; xfs_buf_hold(bp); bip->bli_format.blf_type = XFS_LI_BUF; @@ -1123,11 +1124,13 @@ xfs_buf_iodone( xfs_buf_log_item_t *bip) { struct xfs_mount *mp; + struct xfs_ail *ailp; ASSERT(bip->bli_buf == bp); xfs_buf_rele(bp); mp = bip->bli_item.li_mountp; + ailp = bip->bli_item.li_ailp; /* * If we are forcibly shutting down, this may well be @@ -1138,7 +1141,7 @@ xfs_buf_iodone( * * Either way, AIL is useless if we're forcing a shutdown. */ - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); /* * xfs_trans_delete_ail() drops the AIL lock. */ diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index f1dcd80..dab5737 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -108,10 +108,12 @@ xfs_efi_item_pin(xfs_efi_log_item_t *efip) STATIC void xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) { - xfs_mount_t *mp; + xfs_mount_t *mp; + struct xfs_ail *ailp; mp = efip->efi_item.li_mountp; - spin_lock(&mp->m_ail->xa_lock); + ailp = efip->efi_item.li_ailp; + spin_lock(&ailp->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { /* * xfs_trans_delete_ail() drops the AIL lock. @@ -120,7 +122,7 @@ xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } } @@ -134,11 +136,13 @@ xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) STATIC void xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) { - xfs_mount_t *mp; + xfs_mount_t *mp; + struct xfs_ail *ailp; xfs_log_item_desc_t *lidp; mp = efip->efi_item.li_mountp; - spin_lock(&mp->m_ail->xa_lock); + ailp = efip->efi_item.li_ailp; + spin_lock(&ailp->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { /* * free the xaction descriptor pointing to this item @@ -153,7 +157,7 @@ xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } } @@ -268,6 +272,7 @@ xfs_efi_init(xfs_mount_t *mp, efip->efi_item.li_type = XFS_LI_EFI; efip->efi_item.li_ops = &xfs_efi_item_ops; efip->efi_item.li_mountp = mp; + efip->efi_item.li_ailp = mp->m_ail; efip->efi_format.efi_nextents = nextents; efip->efi_format.efi_id = (__psint_t)(void*)efip; @@ -345,14 +350,16 @@ void xfs_efi_release(xfs_efi_log_item_t *efip, uint nextents) { - xfs_mount_t *mp; - int extents_left; + xfs_mount_t *mp; + struct xfs_ail *ailp; + int extents_left; mp = efip->efi_item.li_mountp; + ailp = efip->efi_item.li_ailp; ASSERT(efip->efi_next_extent > 0); ASSERT(efip->efi_flags & XFS_EFI_COMMITTED); - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); ASSERT(efip->efi_next_extent >= nextents); efip->efi_next_extent -= nextents; extents_left = efip->efi_next_extent; @@ -363,7 +370,7 @@ xfs_efi_release(xfs_efi_log_item_t *efip, xfs_trans_delete_ail(mp, (xfs_log_item_t *)efip); xfs_efi_item_free(efip); } else { - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } } @@ -565,6 +572,7 @@ xfs_efd_init(xfs_mount_t *mp, efdp->efd_item.li_type = XFS_LI_EFD; efdp->efd_item.li_ops = &xfs_efd_item_ops; efdp->efd_item.li_mountp = mp; + efdp->efd_item.li_ailp = mp->m_ail; efdp->efd_efip = efip; efdp->efd_format.efd_nextents = nextents; efdp->efd_format.efd_efi_id = efip->efi_format.efi_id; diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 291d30a..47594f4 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -932,6 +932,7 @@ xfs_inode_item_init( iip->ili_item.li_type = XFS_LI_INODE; iip->ili_item.li_ops = &xfs_inode_item_ops; iip->ili_item.li_mountp = mp; + iip->ili_item.li_ailp = mp->m_ail; iip->ili_inode = ip; /* diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 99ba0e2..5163e12 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1383,11 +1383,13 @@ xfs_trans_chunk_committed( xfs_log_item_desc_t *lidp; xfs_log_item_t *lip; xfs_lsn_t item_lsn; - struct xfs_mount *mp; int i; lidp = licp->lic_descs; for (i = 0; i < licp->lic_unused; i++, lidp++) { + struct xfs_mount *mp; + struct xfs_ail *ailp; + if (xfs_lic_isfree(licp, i)) { continue; } @@ -1425,7 +1427,8 @@ xfs_trans_chunk_committed( * the test below. */ mp = lip->li_mountp; - spin_lock(&mp->m_ail->xa_lock); + ailp = lip->li_ailp; + spin_lock(&ailp->xa_lock); if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) { /* * This will set the item's lsn to item_lsn @@ -1436,7 +1439,7 @@ xfs_trans_chunk_committed( */ xfs_trans_update_ail(mp, lip, item_lsn); } else { - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } /* diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index ae2ae3e..0df5154 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -768,6 +768,7 @@ typedef struct xfs_log_item { xfs_lsn_t li_lsn; /* last on-disk lsn */ struct xfs_log_item_desc *li_desc; /* ptr to current desc*/ struct xfs_mount *li_mountp; /* ptr to fs mount */ + struct xfs_ail *li_ailp; /* ptr to AIL */ uint li_type; /* item type */ uint li_flags; /* misc flags */ struct xfs_log_item *li_bio_list; /* buffer item list */ diff --git a/fs/xfs/xfs_trans_item.c b/fs/xfs/xfs_trans_item.c index 3c666e8..e110bf5 100644 --- a/fs/xfs/xfs_trans_item.c +++ b/fs/xfs/xfs_trans_item.c @@ -22,6 +22,14 @@ #include "xfs_inum.h" #include "xfs_trans.h" #include "xfs_trans_priv.h" +/* XXX: from here down needed until struct xfs_trans has it's own ailp */ +#include "xfs_bit.h" +#include "xfs_buf_item.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_dir2.h" +#include "xfs_dmapi.h" +#include "xfs_mount.h" STATIC int xfs_trans_unlock_chunk(xfs_log_item_chunk_t *, int, int, xfs_lsn_t); @@ -79,6 +87,7 @@ xfs_trans_add_item(xfs_trans_t *tp, xfs_log_item_t *lip) lidp->lid_size = 0; lip->li_desc = lidp; lip->li_mountp = tp->t_mountp; + lip->li_ailp = tp->t_mountp->m_ail; return lidp; } @@ -120,6 +129,7 @@ xfs_trans_add_item(xfs_trans_t *tp, xfs_log_item_t *lip) lidp->lid_size = 0; lip->li_desc = lidp; lip->li_mountp = tp->t_mountp; + lip->li_ailp = tp->t_mountp->m_ail; return lidp; } -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 15:12:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97MCRW9011292 for ; Tue, 7 Oct 2008 15:12:27 -0700 X-ASG-Debug-ID: 1223417640-60f6030f0002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 50D2D4C8381 for ; Tue, 7 Oct 2008 15:14:04 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id ZpD4AD59f0g4JkmZ for ; Tue, 07 Oct 2008 15:14:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAMx760h5LGor/2dsb2JhbAC/T4Fq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224307745" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 08:44:00 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnKoZ-0002df-4z for xfs@oss.sgi.com; Wed, 08 Oct 2008 09:13:59 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 8/8] XFS: Finish removing the mount pointer from the AIL API Subject: [PATCH 8/8] XFS: Finish removing the mount pointer from the AIL API Date: Wed, 8 Oct 2008 09:13:58 +1100 Message-Id: <1223417638-10050-9-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1223417638-10050-1-git-send-email-david@fromorbit.com> References: <1223417638-10050-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223417646 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Change all the remaining AIL API functions that are passed struct xfs_mount pointers to pass pointers directly to the struct xfs_ail being used. With this conversion, all external access to the AIL is via the struct xfs_ail. Hence the operation and referencing of the AIL is almost entirely independent of the xfs_mount that is using it - it is now much more tightly tied to the log and the items it is tracking in the log than it is tied to the xfs_mount. Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_dquot.c | 15 +++++++-------- fs/xfs/quota/xfs_dquot_item.c | 8 +++++--- fs/xfs/xfs_buf_item.c | 24 +++++++++--------------- fs/xfs/xfs_extfree_item.c | 35 ++++++++++------------------------- fs/xfs/xfs_iget.c | 4 +++- fs/xfs/xfs_inode.c | 8 ++++---- fs/xfs/xfs_inode_item.c | 29 ++++++++++++----------------- fs/xfs/xfs_log.c | 2 +- fs/xfs/xfs_log_recover.c | 13 +++++-------- fs/xfs/xfs_trans.c | 6 ++---- fs/xfs/xfs_trans.h | 3 --- fs/xfs/xfs_trans_ail.c | 41 +++++++++++++++++++++-------------------- fs/xfs/xfs_trans_buf.c | 7 +++---- fs/xfs/xfs_trans_priv.h | 15 +++++++++------ 14 files changed, 91 insertions(+), 119 deletions(-) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 6749bd2..5dca401 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1321,8 +1321,10 @@ xfs_qm_dqflush_done( xfs_dq_logitem_t *qip) { xfs_dquot_t *dqp; + struct xfs_ail *ailp; dqp = qip->qli_dquot; + ailp = qip->qli_item.li_ailp; /* * We only want to pull the item from the AIL if its @@ -1335,15 +1337,12 @@ xfs_qm_dqflush_done( if ((qip->qli_item.li_flags & XFS_LI_IN_AIL) && qip->qli_item.li_lsn == qip->qli_flush_lsn) { - spin_lock(&dqp->q_mount->m_ail->xa_lock); - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ + /* xfs_trans_ail_delete() drops the AIL lock. */ + spin_lock(&ailp->xa_lock); if (qip->qli_item.li_lsn == qip->qli_flush_lsn) - xfs_trans_delete_ail(dqp->q_mount, - (xfs_log_item_t*)qip); + xfs_trans_ail_delete(ailp, (xfs_log_item_t*)qip); else - spin_unlock(&dqp->q_mount->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } /* @@ -1373,7 +1372,7 @@ xfs_dqunlock( mutex_unlock(&(dqp->q_qlock)); if (dqp->q_logitem.qli_dquot == dqp) { /* Once was dqp->q_mount, but might just have been cleared */ - xfs_trans_unlocked_item(dqp->q_logitem.qli_item.li_mountp, + xfs_trans_unlocked_item(dqp->q_logitem.qli_item.li_ailp, (xfs_log_item_t*)&(dqp->q_logitem)); } } diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c index 0e1fa51..1728f6a 100644 --- a/fs/xfs/quota/xfs_dquot_item.c +++ b/fs/xfs/quota/xfs_dquot_item.c @@ -553,14 +553,16 @@ xfs_qm_qoffend_logitem_committed( xfs_lsn_t lsn) { xfs_qoff_logitem_t *qfs; + struct xfs_ail *ailp; qfs = qfe->qql_start_lip; - spin_lock(&qfs->qql_item.li_mountp->m_ail->xa_lock); + ailp = qfs->qql_item.li_ailp; + spin_lock(&ailp->xa_lock); /* * Delete the qoff-start logitem from the AIL. - * xfs_trans_delete_ail() drops the AIL lock. + * xfs_trans_ail_delete() drops the AIL lock. */ - xfs_trans_delete_ail(qfs->qql_item.li_mountp, (xfs_log_item_t *)qfs); + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)qfs); kmem_free(qfs); kmem_free(qfe); return (xfs_lsn_t)-1; diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 793e53c..d245d04 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -375,7 +375,7 @@ xfs_buf_item_unpin( xfs_buf_log_item_t *bip, int stale) { - xfs_mount_t *mp; + struct xfs_ail *ailp; xfs_buf_t *bp; int freed; @@ -387,7 +387,7 @@ xfs_buf_item_unpin( xfs_buftrace("XFS_UNPIN", bp); freed = atomic_dec_and_test(&bip->bli_refcount); - mp = bip->bli_item.li_mountp; + ailp = bip->bli_item.li_ailp; xfs_bunpin(bp); if (freed && stale) { ASSERT(bip->bli_flags & XFS_BLI_STALE); @@ -399,17 +399,17 @@ xfs_buf_item_unpin( xfs_buftrace("XFS_UNPIN STALE", bp); /* * If we get called here because of an IO error, we may - * or may not have the item on the AIL. xfs_trans_delete_ail() + * or may not have the item on the AIL. xfs_trans_ail_delete() * will take care of that situation. - * xfs_trans_delete_ail() drops the AIL lock. + * xfs_trans_ail_delete() drops the AIL lock. */ if (bip->bli_flags & XFS_BLI_STALE_INODE) { xfs_buf_do_callbacks(bp, (xfs_log_item_t *)bip); XFS_BUF_SET_FSPRIVATE(bp, NULL); XFS_BUF_CLR_IODONE_FUNC(bp); } else { - spin_lock(&mp->m_ail->xa_lock); - xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip); + spin_lock(&ailp->xa_lock); + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)bip); xfs_buf_item_relse(bp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) == NULL); } @@ -1123,29 +1123,23 @@ xfs_buf_iodone( xfs_buf_t *bp, xfs_buf_log_item_t *bip) { - struct xfs_mount *mp; - struct xfs_ail *ailp; + struct xfs_ail *ailp = bip->bli_item.li_ailp; ASSERT(bip->bli_buf == bp); xfs_buf_rele(bp); - mp = bip->bli_item.li_mountp; - ailp = bip->bli_item.li_ailp; /* * If we are forcibly shutting down, this may well be * off the AIL already. That's because we simulate the * log-committed callbacks to unpin these buffers. Or we may never * have put this item on AIL because of the transaction was - * aborted forcibly. xfs_trans_delete_ail() takes care of these. + * aborted forcibly. xfs_trans_ail_delete() takes care of these. * * Either way, AIL is useless if we're forcing a shutdown. */ spin_lock(&ailp->xa_lock); - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(mp, (xfs_log_item_t *)bip); + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)bip); xfs_buf_item_free(bip); } diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c index dab5737..05a4bdd 100644 --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -108,17 +108,12 @@ xfs_efi_item_pin(xfs_efi_log_item_t *efip) STATIC void xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) { - xfs_mount_t *mp; - struct xfs_ail *ailp; + struct xfs_ail *ailp = efip->efi_item.li_ailp; - mp = efip->efi_item.li_mountp; - ailp = efip->efi_item.li_ailp; spin_lock(&ailp->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(mp, (xfs_log_item_t *)efip); + /* xfs_trans_ail_delete() drops the AIL lock. */ + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)efip); xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; @@ -136,12 +131,9 @@ xfs_efi_item_unpin(xfs_efi_log_item_t *efip, int stale) STATIC void xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) { - xfs_mount_t *mp; - struct xfs_ail *ailp; + struct xfs_ail *ailp = efip->efi_item.li_ailp; xfs_log_item_desc_t *lidp; - mp = efip->efi_item.li_mountp; - ailp = efip->efi_item.li_ailp; spin_lock(&ailp->xa_lock); if (efip->efi_flags & XFS_EFI_CANCELED) { /* @@ -149,11 +141,9 @@ xfs_efi_item_unpin_remove(xfs_efi_log_item_t *efip, xfs_trans_t *tp) */ lidp = xfs_trans_find_item(tp, (xfs_log_item_t *) efip); xfs_trans_free_item(tp, lidp); - /* - * pull the item off the AIL. - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(mp, (xfs_log_item_t *)efip); + + /* xfs_trans_ail_delete() drops the AIL lock. */ + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)efip); xfs_efi_item_free(efip); } else { efip->efi_flags |= XFS_EFI_COMMITTED; @@ -350,12 +340,9 @@ void xfs_efi_release(xfs_efi_log_item_t *efip, uint nextents) { - xfs_mount_t *mp; - struct xfs_ail *ailp; + struct xfs_ail *ailp = efip->efi_item.li_ailp; int extents_left; - mp = efip->efi_item.li_mountp; - ailp = efip->efi_item.li_ailp; ASSERT(efip->efi_next_extent > 0); ASSERT(efip->efi_flags & XFS_EFI_COMMITTED); @@ -364,10 +351,8 @@ xfs_efi_release(xfs_efi_log_item_t *efip, efip->efi_next_extent -= nextents; extents_left = efip->efi_next_extent; if (extents_left == 0) { - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(mp, (xfs_log_item_t *)efip); + /* xfs_trans_ail_delete() drops the AIL lock. */ + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)efip); xfs_efi_item_free(efip); } else { spin_unlock(&ailp->xa_lock); diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 8001338..a1f209b 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -38,6 +38,8 @@ #include "xfs_ialloc.h" #include "xfs_quota.h" #include "xfs_utils.h" +#include "xfs_trans_priv.h" +#include "xfs_inode_item.h" /* * Check the validity of the inode we just found it the cache @@ -616,7 +618,7 @@ xfs_iunlock( * it is in the AIL and anyone is waiting on it. Don't do * this if the caller has asked us not to. */ - xfs_trans_unlocked_item(ip->i_mount, + xfs_trans_unlocked_item(ip->i_itemp->ili_item.li_ailp, (xfs_log_item_t*)(ip->i_itemp)); } xfs_ilock_trace(ip, 3, lock_flags, (inst_t *)__return_address); diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index a356a31..eba2ff0 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2712,17 +2712,17 @@ xfs_idestroy( * inode still in the AIL. If it is there, we should remove * it to prevent a use-after-free from occurring. */ - xfs_mount_t *mp = ip->i_mount; xfs_log_item_t *lip = &ip->i_itemp->ili_item; + struct xfs_ail *ailp = lip->li_ailp; ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || XFS_FORCED_SHUTDOWN(ip->i_mount)); if (lip->li_flags & XFS_LI_IN_AIL) { - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); if (lip->li_flags & XFS_LI_IN_AIL) - xfs_trans_delete_ail(mp, lip); + xfs_trans_ail_delete(ailp, lip); else - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } xfs_inode_item_destroy(ip); ip->i_itemp = NULL; diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 47594f4..aa9bf05 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -977,9 +977,8 @@ xfs_iflush_done( xfs_buf_t *bp, xfs_inode_log_item_t *iip) { - xfs_inode_t *ip; - - ip = iip->ili_inode; + xfs_inode_t *ip = iip->ili_inode; + struct xfs_ail *ailp = iip->ili_item.li_ailp; /* * We only want to pull the item from the AIL if it is @@ -992,15 +991,12 @@ xfs_iflush_done( */ if (iip->ili_logged && (iip->ili_item.li_lsn == iip->ili_flush_lsn)) { - spin_lock(&ip->i_mount->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); if (iip->ili_item.li_lsn == iip->ili_flush_lsn) { - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(ip->i_mount, - (xfs_log_item_t*)iip); + /* xfs_trans_ail_delete() drops the AIL lock. */ + xfs_trans_ail_delete(ailp, (xfs_log_item_t*)iip); } else { - spin_unlock(&ip->i_mount->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } } @@ -1032,21 +1028,20 @@ void xfs_iflush_abort( xfs_inode_t *ip) { - xfs_inode_log_item_t *iip; + xfs_inode_log_item_t *iip = ip->i_itemp; xfs_mount_t *mp; iip = ip->i_itemp; mp = ip->i_mount; if (iip) { + struct xfs_ail *ailp = iip->ili_item.li_ailp; if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { - spin_lock(&mp->m_ail->xa_lock); + spin_lock(&ailp->xa_lock); if (iip->ili_item.li_flags & XFS_LI_IN_AIL) { - /* - * xfs_trans_delete_ail() drops the AIL lock. - */ - xfs_trans_delete_ail(mp, (xfs_log_item_t *)iip); + /* xfs_trans_ail_delete() drops the AIL lock. */ + xfs_trans_ail_delete(ailp, (xfs_log_item_t *)iip); } else - spin_unlock(&mp->m_ail->xa_lock); + spin_unlock(&ailp->xa_lock); } iip->ili_logged = 0; /* diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index fc327a9..9dd8786 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1412,7 +1412,7 @@ xlog_grant_push_ail(xfs_mount_t *mp, */ if (threshold_lsn && !XLOG_FORCED_SHUTDOWN(log)) - xfs_trans_push_ail(mp, threshold_lsn); + xfs_trans_ail_push(log->l_ailp, threshold_lsn); } /* xlog_grant_push_ail */ diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 22751f2..0280a25 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2683,9 +2683,9 @@ xlog_recover_do_efi_trans( spin_lock(&log->l_ailp->xa_lock); /* - * xfs_trans_update_ail() drops the AIL lock. + * xfs_trans_ail_update() drops the AIL lock. */ - xfs_trans_update_ail(mp, (xfs_log_item_t *)efip, lsn); + xfs_trans_ail_update(log->l_ailp, (xfs_log_item_t *)efip, lsn); return 0; } @@ -2704,13 +2704,12 @@ xlog_recover_do_efd_trans( xlog_recover_item_t *item, int pass) { - xfs_mount_t *mp; xfs_efd_log_format_t *efd_formatp; xfs_efi_log_item_t *efip = NULL; xfs_log_item_t *lip; __uint64_t efi_id; struct xfs_ail_cursor cur; - struct xfs_ail *ailp; + struct xfs_ail *ailp = log->l_ailp; if (pass == XLOG_RECOVER_PASS1) { return; @@ -2727,8 +2726,6 @@ xlog_recover_do_efd_trans( * Search for the efi with the id in the efd format structure * in the AIL. */ - mp = log->l_mp; - ailp = log->l_ailp; spin_lock(&ailp->xa_lock); lip = xfs_trans_ail_cursor_first(ailp, &cur, 0); while (lip != NULL) { @@ -2736,10 +2733,10 @@ xlog_recover_do_efd_trans( efip = (xfs_efi_log_item_t *)lip; if (efip->efi_format.efi_id == efi_id) { /* - * xfs_trans_delete_ail() drops the + * xfs_trans_ail_delete() drops the * AIL lock. */ - xfs_trans_delete_ail(mp, lip); + xfs_trans_ail_delete(ailp, lip); xfs_efi_item_free(efip); spin_lock(&ailp->xa_lock); break; diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 5163e12..ad137ef 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1387,7 +1387,6 @@ xfs_trans_chunk_committed( lidp = licp->lic_descs; for (i = 0; i < licp->lic_unused; i++, lidp++) { - struct xfs_mount *mp; struct xfs_ail *ailp; if (xfs_lic_isfree(licp, i)) { @@ -1426,7 +1425,6 @@ xfs_trans_chunk_committed( * This would cause the earlier transaction to fail * the test below. */ - mp = lip->li_mountp; ailp = lip->li_ailp; spin_lock(&ailp->xa_lock); if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) { @@ -1435,9 +1433,9 @@ xfs_trans_chunk_committed( * and update the position of the item in * the AIL. * - * xfs_trans_update_ail() drops the AIL lock. + * xfs_trans_ail_update() drops the AIL lock. */ - xfs_trans_update_ail(mp, lip, item_lsn); + xfs_trans_ail_update(ailp, lip, item_lsn); } else { spin_unlock(&ailp->xa_lock); } diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h index 0df5154..d6fe4a8 100644 --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -971,9 +971,6 @@ int _xfs_trans_commit(xfs_trans_t *, void xfs_trans_cancel(xfs_trans_t *, int); int xfs_trans_ail_init(struct xfs_mount *); void xfs_trans_ail_destroy(struct xfs_mount *); -void xfs_trans_push_ail(struct xfs_mount *, xfs_lsn_t); -void xfs_trans_unlocked_item(struct xfs_mount *, - xfs_log_item_t *); xfs_log_busy_slot_t *xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx); diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 0cd47a7..67ee466 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -86,16 +86,16 @@ xfs_trans_ail_tail( * any of the objects, so the lock is not needed. */ void -xfs_trans_push_ail( - xfs_mount_t *mp, - xfs_lsn_t threshold_lsn) +xfs_trans_ail_push( + struct xfs_ail *ailp, + xfs_lsn_t threshold_lsn) { - xfs_log_item_t *lip; + xfs_log_item_t *lip; - lip = xfs_ail_min(mp->m_ail); - if (lip && !XFS_FORCED_SHUTDOWN(mp)) { - if (XFS_LSN_CMP(threshold_lsn, mp->m_ail->xa_target) > 0) - xfsaild_wakeup(mp->m_ail, threshold_lsn); + lip = xfs_ail_min(ailp); + if (lip && !XFS_FORCED_SHUTDOWN(ailp->xa_mount)) { + if (XFS_LSN_CMP(threshold_lsn, ailp->xa_target) > 0) + xfsaild_wakeup(ailp, threshold_lsn); } } @@ -412,7 +412,7 @@ xfsaild_push( */ void xfs_trans_unlocked_item( - xfs_mount_t *mp, + struct xfs_ail *ailp, xfs_log_item_t *lip) { xfs_log_item_t *min_lip; @@ -424,7 +424,7 @@ xfs_trans_unlocked_item( * over some potentially valid data. */ if (!(lip->li_flags & XFS_LI_IN_AIL) || - XFS_FORCED_SHUTDOWN(mp)) { + XFS_FORCED_SHUTDOWN(ailp->xa_mount)) { return; } @@ -440,10 +440,10 @@ xfs_trans_unlocked_item( * the call to xfs_log_move_tail() doesn't do anything if there's * not enough free space to wake people up so we're safe calling it. */ - min_lip = xfs_ail_min(mp->m_ail); + min_lip = xfs_ail_min(ailp); if (min_lip == lip) - xfs_log_move_tail(mp, 1); + xfs_log_move_tail(ailp->xa_mount, 1); } /* xfs_trans_unlocked_item */ @@ -460,12 +460,11 @@ xfs_trans_unlocked_item( * is dropped before returning. */ void -xfs_trans_update_ail( - xfs_mount_t *mp, +xfs_trans_ail_update( + struct xfs_ail *ailp, xfs_log_item_t *lip, xfs_lsn_t lsn) __releases(ailp->xa_lock) { - struct xfs_ail *ailp = mp->m_ail; xfs_log_item_t *dlip = NULL; xfs_log_item_t *mlip; /* ptr to minimum lip */ @@ -485,7 +484,7 @@ xfs_trans_update_ail( if (mlip == dlip) { mlip = xfs_ail_min(ailp); spin_unlock(&ailp->xa_lock); - xfs_log_move_tail(mp, mlip->li_lsn); + xfs_log_move_tail(ailp->xa_mount, mlip->li_lsn); } else { spin_unlock(&ailp->xa_lock); } @@ -509,11 +508,10 @@ xfs_trans_update_ail( * is dropped before returning. */ void -xfs_trans_delete_ail( - xfs_mount_t *mp, +xfs_trans_ail_delete( + struct xfs_ail *ailp, xfs_log_item_t *lip) __releases(ailp->xa_lock) { - struct xfs_ail *ailp = mp->m_ail; xfs_log_item_t *dlip; xfs_log_item_t *mlip; @@ -530,7 +528,8 @@ xfs_trans_delete_ail( if (mlip == dlip) { mlip = xfs_ail_min(ailp); spin_unlock(&ailp->xa_lock); - xfs_log_move_tail(mp, (mlip ? mlip->li_lsn : 0)); + xfs_log_move_tail(ailp->xa_mount, + (mlip ? mlip->li_lsn : 0)); } else { spin_unlock(&ailp->xa_lock); } @@ -540,6 +539,8 @@ xfs_trans_delete_ail( * If the file system is not being shutdown, we are in * serious trouble if we get to this stage. */ + struct xfs_mount *mp = ailp->xa_mount; + spin_unlock(&ailp->xa_lock); if (!XFS_FORCED_SHUTDOWN(mp)) { xfs_cmn_err(XFS_PTAG_AILDELETE, CE_ALERT, mp, diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 4e855b5..8ee2f8c 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -527,9 +527,8 @@ xfs_trans_brelse(xfs_trans_t *tp, lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); if (lip->li_type == XFS_LI_BUF) { bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*); - xfs_trans_unlocked_item( - bip->bli_item.li_mountp, - lip); + xfs_trans_unlocked_item(bip->bli_item.li_ailp, + lip); } } xfs_buf_relse(bp); @@ -626,7 +625,7 @@ xfs_trans_brelse(xfs_trans_t *tp, * tell the AIL that the buffer is being unlocked. */ if (bip != NULL) { - xfs_trans_unlocked_item(bip->bli_item.li_mountp, + xfs_trans_unlocked_item(bip->bli_item.li_ailp, (xfs_log_item_t*)bip); } diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 6ca0a7a..73e2ad3 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -85,12 +85,15 @@ struct xfs_ail { /* * From xfs_trans_ail.c */ -void xfs_trans_update_ail(struct xfs_mount *mp, - struct xfs_log_item *lip, xfs_lsn_t lsn) - __releases(mp->m_ail_lock); -void xfs_trans_delete_ail(struct xfs_mount *mp, - struct xfs_log_item *lip) - __releases(mp->m_ail_lock); +void xfs_trans_ail_update(struct xfs_ail *ailp, + struct xfs_log_item *lip, xfs_lsn_t lsn) + __releases(ailp->xa_lock); +void xfs_trans_ail_delete(struct xfs_ail *ailp, + struct xfs_log_item *lip) + __releases(ailp->xa_lock); +void xfs_trans_ail_push(struct xfs_ail *, xfs_lsn_t); +void xfs_trans_unlocked_item(struct xfs_ail *, + xfs_log_item_t *); xfs_lsn_t xfs_trans_ail_tail(struct xfs_ail *ailp); -- 1.5.6.5 From owner-xfs@oss.sgi.com Tue Oct 7 16:17:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_00,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97NHJog017349 for ; Tue, 7 Oct 2008 16:17:19 -0700 X-ASG-Debug-ID: 1223421538-24b502750000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.microsoft.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 44AD24C922C for ; Tue, 7 Oct 2008 16:18:58 -0700 (PDT) Received: from smtp.microsoft.com (smtp.microsoft.com [131.107.115.212]) by cuda.sgi.com with ESMTP id FT8uHpQUnKmvEIlk for ; Tue, 07 Oct 2008 16:18:58 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from TK5-EXHUB-C101.redmond.corp.microsoft.com (157.54.18.48) by TK5-EXGWY-E801.partners.extranet.microsoft.com (10.251.56.50) with Microsoft SMTP Server (TLS) id 8.1.291.1; Tue, 7 Oct 2008 16:18:58 -0700 Received: from NA-EXMSG-C121.redmond.corp.microsoft.com ([157.54.62.192]) by TK5-EXHUB-C101.redmond.corp.microsoft.com ([157.54.18.48]) with mapi; Tue, 7 Oct 2008 16:18:58 -0700 From: Allan Haywood To: "xfs@oss.sgi.com" Date: Tue, 7 Oct 2008 16:18:57 -0700 X-ASG-Orig-Subj: xfs file system corruption Subject: xfs file system corruption Thread-Topic: xfs file system corruption Thread-Index: Acko0xKYd9DT9xw6TmWc3+7lvxwu0g== Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US MIME-Version: 1.0 X-Barracuda-Connect: smtp.microsoft.com[131.107.115.212] X-Barracuda-Start-Time: 1223421539 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 2525 To All: On a production system we are running into an interesting situation where we hit a corrupt file system, let me outline the timeline as best I know it: We have a failover process where there are two servers connected to fiber storage, if the active server goes into failover (for numerous reasons) an automatic process kicks in that makes it inactive, and then makes the backup server active, here are the details: 1. On failed server database and other processes are shut down (attempts) 2. Fiber attached file system is unmounted (attempts) 3. Fiber ports are turned off for that server 4. On backup server fiber ports are turned on 5. Fiber attached file system is mounted (same filesystems that were on the previous server) 6. Database and other processes are started 7. The backup server is now active and processing queries Here is where it got interesting, when recovering from the backup server back to the main server we pretty much just reverse the steps above. We had the file systems unmount cleanly on the backup server, however when we went to mount it on the main server it detected a file system corruption (using xfs_check it indicated a repair was needed so xfs_repair was then run on the filesystem), it proceded to "fix" the filesystem, at which point we lost files that the database needed for one of the tables. What I am curious about is the following message in the system log: Oct 2 08:15:09 arch-node4 kernel: Device dm-31, XFS metadata write error block 0x40 in dm-31 This is when the main node was fenced (fiber ports turned off), I am wondering if any pending XFS metadata still exists, later on when the fiber is unfenced that the metadata flushes to disk. I could see this as an issue, if there are pending metadata writes to a filesystem, that filesystem through failure is mounted on another server and used as normal, then unmounted normally, then when the ports are re-activated on the server that has pending metadata, is it possible this does get flushed to the disk, but since the disk has been in use on another server the metadata no longer matches the filesystem properly and potentially writes over or changes the filesystem in a way that causes corruption. Any thoughts would be great. If there is any more info I can provide, let me know. Thanks. -- Allan Haywood, Systems Engineering Program Manager II SQL Server Data Warehousing Product Unit allan.haywood@microsoft.com [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Tue Oct 7 16:32:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97NWgGF023306 for ; Tue, 7 Oct 2008 16:32:43 -0700 X-ASG-Debug-ID: 1223422460-074f02fc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 913E213B5701 for ; Tue, 7 Oct 2008 16:34:21 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id i4SBEMqA1kHctWbJ for ; Tue, 07 Oct 2008 16:34:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAF+N60h5LGor/2dsb2JhbAC/LoFq X-IronPort-AV: E=Sophos;i="4.33,375,1220193000"; d="scan'208";a="224367676" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 10:04:19 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnM4I-0004uV-Be; Wed, 08 Oct 2008 10:34:18 +1100 Date: Wed, 8 Oct 2008 10:34:18 +1100 From: Dave Chinner To: Allan Haywood Cc: "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: xfs file system corruption Subject: Re: xfs file system corruption Message-ID: <20081007233418.GB7342@disturbed> Mail-Followup-To: Allan Haywood , "xfs@oss.sgi.com" References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223422462 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7514 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- [Allan, please wrap text at 72 lines. Thx] On Tue, Oct 07, 2008 at 04:18:57PM -0700, Allan Haywood wrote: > We have a failover process where there are two servers connected > to fiber storage, if the active server goes into failover (for > numerous reasons) an automatic process kicks in that makes it > inactive, and then makes the backup server active, here are the > details: > > 1. On failed server database and other processes are shut > down (attempts) > > 2. Fiber attached file system is unmounted (attempts) > > 3. Fiber ports are turned off for that server > > 4. On backup server fiber ports are turned on > > 5. Fiber attached file system is mounted (same filesystems > that were on the previous server) > > 6. Database and other processes are started > > 7. The backup server is now active and processing queries > > Here is where it got interesting, when recovering from the backup > server back to the main server we pretty much just reverse the > steps above. We had the file systems unmount cleanly on the backup > server, however when we went to mount it on the main server it > detected a file system corruption (using xfs_check it indicated a > repair was needed so xfs_repair was then run on the filesystem), > it proceded to "fix" the filesystem, at which point we lost files > that the database needed for one of the tables. > > What I am curious about is the following message in the system > log: > > Oct 2 08:15:09 arch-node4 kernel: Device dm-31, XFS metadata > write error block 0x40 in dm-31 > > This is when the main node was fenced (fiber ports turned off), I > am wondering if any pending XFS metadata still exists, later on > when the fiber is unfenced that the metadata flushes to disk. According to your above detail, you attempt to unmount the filesystem before you fence the fibre ports. If you don't unmount the filesystem before fencing, this is what you'll see - XFS trying to writeback async metadata and failing. > I could see this as an issue, if there are pending metadata writes > to a filesystem, that filesystem through failure is mounted on > another server and used as normal, then unmounted normally, then > when the ports are re-activated on the server that has pending > metadata, is it possible this does get flushed to the disk, but > since the disk has been in use on another server the metadata no > longer matches the filesystem properly and potentially writes over > or changes the filesystem in a way that causes corruption. Right. Once you've fenced the server, you really, really need to make sure that it has no further pending writes that could be issued when the fence is removed. I'd suggest that if you failed to unmount the filesystem before fencing, you need to reboot that server to remove any possibility of it issuing stale I/O once it is unfenced. i.e. step 3b = STONITH. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 16:48:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97Nm2no024403 for ; Tue, 7 Oct 2008 16:48:02 -0700 X-ASG-Debug-ID: 1223423381-4dd900c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.microsoft.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 605729FFD68 for ; Tue, 7 Oct 2008 16:49:41 -0700 (PDT) Received: from smtp.microsoft.com (mail1.microsoft.com [131.107.115.212]) by cuda.sgi.com with ESMTP id GYsffqCzWdRB1DeP for ; Tue, 07 Oct 2008 16:49:41 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from tk5-exhub-c104.redmond.corp.microsoft.com (157.54.88.97) by TK5-EXGWY-E801.partners.extranet.microsoft.com (10.251.56.50) with Microsoft SMTP Server (TLS) id 8.1.291.1; Tue, 7 Oct 2008 16:49:41 -0700 Received: from NA-EXMSG-C121.redmond.corp.microsoft.com ([157.54.62.192]) by tk5-exhub-c104.redmond.corp.microsoft.com ([157.54.88.97]) with mapi; Tue, 7 Oct 2008 16:49:41 -0700 From: Allan Haywood To: Dave Chinner CC: "xfs@oss.sgi.com" Date: Tue, 7 Oct 2008 16:49:40 -0700 X-ASG-Orig-Subj: RE: xfs file system corruption Subject: RE: xfs file system corruption Thread-Topic: xfs file system corruption Thread-Index: Acko1T61oMsXiww6T4OjgJxPNCS0UgAAdDpg Message-ID: References: <20081007233418.GB7342@disturbed> In-Reply-To: <20081007233418.GB7342@disturbed> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-Barracuda-Connect: mail1.microsoft.com[131.107.115.212] X-Barracuda-Start-Time: 1223423382 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m97Nm2no024404 -----Original Message----- From: Dave Chinner [mailto:david@fromorbit.com] Sent: Tuesday, October 07, 2008 4:34 PM To: Allan Haywood Cc: xfs@oss.sgi.com Subject: Re: xfs file system corruption [Allan, please wrap text at 72 lines. Thx] On Tue, Oct 07, 2008 at 04:18:57PM -0700, Allan Haywood wrote: > We have a failover process where there are two servers connected > to fiber storage, if the active server goes into failover (for > numerous reasons) an automatic process kicks in that makes it > inactive, and then makes the backup server active, here are the > details: > > 1. On failed server database and other processes are shut > down (attempts) > > 2. Fiber attached file system is unmounted (attempts) > > 3. Fiber ports are turned off for that server > > 4. On backup server fiber ports are turned on > > 5. Fiber attached file system is mounted (same filesystems > that were on the previous server) > > 6. Database and other processes are started > > 7. The backup server is now active and processing queries > > Here is where it got interesting, when recovering from the backup > server back to the main server we pretty much just reverse the > steps above. We had the file systems unmount cleanly on the backup > server, however when we went to mount it on the main server it > detected a file system corruption (using xfs_check it indicated a > repair was needed so xfs_repair was then run on the filesystem), > it proceded to "fix" the filesystem, at which point we lost files > that the database needed for one of the tables. > > What I am curious about is the following message in the system > log: > > Oct 2 08:15:09 arch-node4 kernel: Device dm-31, XFS metadata > write error block 0x40 in dm-31 > > This is when the main node was fenced (fiber ports turned off), I > am wondering if any pending XFS metadata still exists, later on > when the fiber is unfenced that the metadata flushes to disk. According to your above detail, you attempt to unmount the filesystem before you fence the fibre ports. If you don't unmount the filesystem before fencing, this is what you'll see - XFS trying to writeback async metadata and failing. > I could see this as an issue, if there are pending metadata writes > to a filesystem, that filesystem through failure is mounted on > another server and used as normal, then unmounted normally, then > when the ports are re-activated on the server that has pending > metadata, is it possible this does get flushed to the disk, but > since the disk has been in use on another server the metadata no > longer matches the filesystem properly and potentially writes over > or changes the filesystem in a way that causes corruption. Right. Once you've fenced the server, you really, really need to make sure that it has no further pending writes that could be issued when the fence is removed. I'd suggest that if you failed to unmount the filesystem before fencing, you need to reboot that server to remove any possibility of it issuing stale I/O once it is unfenced. i.e. step 3b = STONITH. Would reloading the xfs module work also, to clear any pending writes (if I could get it to a point where modprobe -r xfs would work)? Although I am doubting that if there are pending writes that it would be easy to get xfs to unload. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 16:56:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m97NukbS025124 for ; Tue, 7 Oct 2008 16:56:47 -0700 X-ASG-Debug-ID: 1223423906-56cf00720000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.microsoft.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 93050A0038B for ; Tue, 7 Oct 2008 16:58:26 -0700 (PDT) Received: from smtp.microsoft.com (smtp.microsoft.com [131.107.115.214]) by cuda.sgi.com with ESMTP id WtW3itOi7Tpr6Dab for ; Tue, 07 Oct 2008 16:58:26 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from TK5-EXHUB-C102.redmond.corp.microsoft.com (157.54.18.53) by TK5-EXGWY-E803.partners.extranet.microsoft.com (10.251.56.169) with Microsoft SMTP Server (TLS) id 8.1.291.1; Tue, 7 Oct 2008 16:58:26 -0700 Received: from NA-EXMSG-C121.redmond.corp.microsoft.com ([157.54.62.192]) by TK5-EXHUB-C102.redmond.corp.microsoft.com ([157.54.18.53]) with mapi; Tue, 7 Oct 2008 16:58:25 -0700 From: Allan Haywood To: Allan Haywood , Dave Chinner CC: "xfs@oss.sgi.com" Date: Tue, 7 Oct 2008 16:58:24 -0700 X-ASG-Orig-Subj: RE: xfs file system corruption Subject: RE: xfs file system corruption Thread-Topic: xfs file system corruption Thread-Index: Acko1T61oMsXiww6T4OjgJxPNCS0UgAAdDpgAABT6qA= Message-ID: References: <20081007233418.GB7342@disturbed> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-Barracuda-Connect: smtp.microsoft.com[131.107.115.214] X-Barracuda-Start-Time: 1223423906 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m97NulbS025125 [Allan, please wrap text at 72 lines. Thx] On Tue, Oct 07, 2008 at 04:18:57PM -0700, Allan Haywood wrote: > We have a failover process where there are two servers connected > to fiber storage, if the active server goes into failover (for > numerous reasons) an automatic process kicks in that makes it > inactive, and then makes the backup server active, here are the > details: > > 1. On failed server database and other processes are shut > down (attempts) > > 2. Fiber attached file system is unmounted (attempts) > > 3. Fiber ports are turned off for that server > > 4. On backup server fiber ports are turned on > > 5. Fiber attached file system is mounted (same filesystems > that were on the previous server) > > 6. Database and other processes are started > > 7. The backup server is now active and processing queries > > Here is where it got interesting, when recovering from the backup > server back to the main server we pretty much just reverse the > steps above. We had the file systems unmount cleanly on the backup > server, however when we went to mount it on the main server it > detected a file system corruption (using xfs_check it indicated a > repair was needed so xfs_repair was then run on the filesystem), > it proceded to "fix" the filesystem, at which point we lost files > that the database needed for one of the tables. > > What I am curious about is the following message in the system > log: > > Oct 2 08:15:09 arch-node4 kernel: Device dm-31, XFS metadata > write error block 0x40 in dm-31 > > This is when the main node was fenced (fiber ports turned off), I > am wondering if any pending XFS metadata still exists, later on > when the fiber is unfenced that the metadata flushes to disk. According to your above detail, you attempt to unmount the filesystem before you fence the fibre ports. If you don't unmount the filesystem before fencing, this is what you'll see - XFS trying to writeback async metadata and failing. > I could see this as an issue, if there are pending metadata writes > to a filesystem, that filesystem through failure is mounted on > another server and used as normal, then unmounted normally, then > when the ports are re-activated on the server that has pending > metadata, is it possible this does get flushed to the disk, but > since the disk has been in use on another server the metadata no > longer matches the filesystem properly and potentially writes over > or changes the filesystem in a way that causes corruption. Right. Once you've fenced the server, you really, really need to make sure that it has no further pending writes that could be issued when the fence is removed. I'd suggest that if you failed to unmount the filesystem before fencing, you need to reboot that server to remove any possibility of it issuing stale I/O once it is unfenced. i.e. step 3b = STONITH. Would reloading the xfs module work also, to clear any pending writes (if I could get it to a point where modprobe -r xfs would work)? Although I am doubting that if there are pending writes that it would be easy to get xfs to unload. Another possibility, is there a command that will tell xfs To clear any pending writes? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 17:11:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m980B9x2026194 for ; Tue, 7 Oct 2008 17:11:09 -0700 X-ASG-Debug-ID: 1223424768-19f300140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E9044C9BC8 for ; Tue, 7 Oct 2008 17:12:48 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id VFzRR65EJOVKwBU5 for ; Tue, 07 Oct 2008 17:12:48 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4EAOuX60h5LGorgGdsb2JhbACTYgEBFqsIgWo X-IronPort-AV: E=Sophos;i="4.33,376,1220193000"; d="scan'208";a="224396395" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 08 Oct 2008 10:42:46 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnMfV-0006Kr-Js; Wed, 08 Oct 2008 11:12:45 +1100 Date: Wed, 8 Oct 2008 11:12:45 +1100 From: Dave Chinner To: Allan Haywood Cc: "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: xfs file system corruption Subject: Re: xfs file system corruption Message-ID: <20081008001245.GC7342@disturbed> Mail-Followup-To: Allan Haywood , "xfs@oss.sgi.com" References: <20081007233418.GB7342@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223424769 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 04:58:24PM -0700, Allan Haywood wrote: > > I could see this as an issue, if there are pending metadata writes > > to a filesystem, that filesystem through failure is mounted on > > another server and used as normal, then unmounted normally, then > > when the ports are re-activated on the server that has pending > > metadata, is it possible this does get flushed to the disk, but > > since the disk has been in use on another server the metadata no > > longer matches the filesystem properly and potentially writes over > > or changes the filesystem in a way that causes corruption. > > Right. > > Once you've fenced the server, you really, really need to make > sure that it has no further pending writes that could be issued > when the fence is removed. I'd suggest that if you failed to > unmount the filesystem before fencing, you need to reboot that > server to remove any possibility of it issuing stale I/O > once it is unfenced. i.e. step 3b = STONITH. > > > Would reloading the xfs module work also, to clear any pending > > writes (if I could get it to a point where modprobe -r xfs > > would work)? Although I am doubting that if there are pending > > writes that it would be easy to get xfs to unload. Correct. While a filesystem is mounted, you can't unload the XFS module. > > Another possibility, is there a command that will tell xfs > > To clear any pending writes? You can force-shutdown the filesystem then unmount it. That is: # xfs_io -x -c "shutdown" # umount See the man page for xfs_io - you want to shut down the filesystem without forcing the log (can't do I/O). Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 7 17:13:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m980DsCq026526 for ; Tue, 7 Oct 2008 17:13:55 -0700 X-ASG-Debug-ID: 1223424932-1a58001e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from one.firstfloor.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3E0A4C9BE9 for ; Tue, 7 Oct 2008 17:15:33 -0700 (PDT) Received: from one.firstfloor.org (one.firstfloor.org [213.235.205.2]) by cuda.sgi.com with ESMTP id OG3rdwh3tZr0tZ91 for ; Tue, 07 Oct 2008 17:15:33 -0700 (PDT) Received: from basil.firstfloor.org (f053156223.adsl.alicedsl.de [78.53.156.223]) by one.firstfloor.org (Postfix) with ESMTP id 2F6521AD0020; Wed, 8 Oct 2008 02:21:40 +0200 (CEST) Received: by basil.firstfloor.org (Postfix, from userid 1000) id 91B203E6A0D; Wed, 8 Oct 2008 02:15:29 +0200 (CEST) To: Allan Haywood Cc: Dave Chinner , "xfs@oss.sgi.com" X-ASG-Orig-Subj: Re: xfs file system corruption Subject: Re: xfs file system corruption From: Andi Kleen References: <20081007233418.GB7342@disturbed> Date: Wed, 08 Oct 2008 02:15:29 +0200 In-Reply-To: (Allan Haywood's message of "Tue, 7 Oct 2008 16:49:40 -0700") Message-ID: <87r66skkm6.fsf@basil.nowhere.org> User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: one.firstfloor.org[213.235.205.2] X-Barracuda-Start-Time: 1223424933 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0015 1.0000 -2.0114 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Allan Haywood writes: > > Would reloading the xfs module work also, to clear any pending > writes (if I could get it to a point where modprobe -r xfs > would work)? Although I am doubting that if there are pending > writes that it would be easy to get xfs to unload. Linux doesn't have IO cancel and it's hard to stop everything in the IO stack, so the usual way is to fence it at a high level and then wait for all pending IO. But that might take a long time. That is why most HA setups use hard stonith, as in power switch. -Andi -- ak@linux.intel.com From owner-xfs@oss.sgi.com Wed Oct 8 06:20:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98DKZY0022542 for ; Wed, 8 Oct 2008 06:20:35 -0700 X-ASG-Debug-ID: 1223472134-74c201bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8334613B8A74 for ; Wed, 8 Oct 2008 06:22:14 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id LkE5U0xB1Hl5N5w3 for ; Wed, 08 Oct 2008 06:22:14 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m98DMDIF026073 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Wed, 8 Oct 2008 15:22:13 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m98DMCQK026071; Wed, 8 Oct 2008 15:22:12 +0200 Date: Wed, 8 Oct 2008 15:22:12 +0200 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] kill xfs_dinode_core_t Subject: Re: [PATCH 3/3] kill xfs_dinode_core_t Message-ID: <20081008132212.GF25392@lst.de> References: <20081007202201.GC16485@lst.de> <20081007213610.GV30001@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081007213610.GV30001@disturbed> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223472135 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7556 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 08:36:10AM +1100, Dave Chinner wrote: > > switch (dic->di_format) { > > case XFS_DINODE_FMT_DEV: > > - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); > > + buf->dt_rdev = be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(mp, dic)); > > That's not particularly obvious where the rdev value is stored. > Perhaps a comment indicating that it's a direct dereference out > of the start of the data area in the inode? Yeah. Or maybe I should add a nice accessor that does the casting and endianess conversion. > > +#define XFS_DINODE_CORE_SIZE(mp) (96) > > +#define XFS_DINODE_SIZE(mp) (96 + sizeof(__be32)) > > probably shouldn't hard-code the second "96" there. Perhaps > the XFS_DINODE_SIZE() macro should be a sizeof(xfs_dinode_t)? Well, that will change once xfs_dinode grows. But we could do it for now and then use offsetoff of the first new member for the old one. I'll see if I can find a way to make this a little more clear. From owner-xfs@oss.sgi.com Wed Oct 8 08:38:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.6 required=5.0 tests=BAYES_50,J_CHICKENPOX_23, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_SBL autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98FcVa2001577 for ; Wed, 8 Oct 2008 08:38:31 -0700 X-ASG-Debug-ID: 1223480410-3f4b037c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slingshotcorp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 71A69A0B34C for ; Wed, 8 Oct 2008 08:40:11 -0700 (PDT) Received: from slingshotcorp.com (slingshotcorp.com [207.178.154.194]) by cuda.sgi.com with ESMTP id kcvFPNz0YI8qCWAt for ; Wed, 08 Oct 2008 08:40:11 -0700 (PDT) Received: from WorldClient by slingshotcorp.com (MDaemon PRO v9.6.2) with ESMTP id 34-md50000362821.msg for ; Wed, 08 Oct 2008 08:31:15 -0700 Received: from [80.255.59.245] by mfire.com via WorldClient with HTTP; Wed, 08 Oct 2008 08:31:05 -0700 Date: Wed, 08 Oct 2008 08:31:05 -0700 From: "James Watt" To: Reply-To: mailhelpdesk@mail2create.com X-ASG-Orig-Subj: Periodic Account Update Subject: Periodic Account Update MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: X-Mailer: WorldClient 9.6.2 X-Return-Path: jmattt@mfire.com X-Envelope-From: jmattt@mfire.com X-MDaemon-Deliver-To: linux-xfs@oss.sgi.com X-MDAV-Processed: slingshotcorp.com, Wed, 08 Oct 2008 08:31:36 -0700 X-Barracuda-Connect: slingshotcorp.com[207.178.154.194] X-Barracuda-Start-Time: 1223480411 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7055 1.0000 1.4109 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.41 X-Barracuda-Spam-Status: No, SCORE=1.41 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7560 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 TO_CC_NONE No To: or Cc: header Dear Xs4all Subscriber, To complete your Xs4all account, you must reply to this email Immediately and enter your Username: (*********) Password: (*********) Failure to do this will immediately render your email address deactivated from our database. We apologize for the inconvenience that this will cause you during this period, but trust you understand that our primary concern is for our customers and for the security of their data. our customers are totally secure Regards Xs4all Support Team From owner-xfs@oss.sgi.com Wed Oct 8 08:53:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.6 required=5.0 tests=AWL,BAYES_50, RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_SBL autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98FrGuQ002657 for ; Wed, 8 Oct 2008 08:53:16 -0700 X-ASG-Debug-ID: 1223481296-735e00740000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slingshotcorp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E21DA0B584 for ; Wed, 8 Oct 2008 08:54:56 -0700 (PDT) Received: from slingshotcorp.com (slingshotcorp.com [207.178.154.194]) by cuda.sgi.com with ESMTP id ZMXZe01laIrezpgr for ; Wed, 08 Oct 2008 08:54:56 -0700 (PDT) Received: from WorldClient by slingshotcorp.com (MDaemon PRO v9.6.2) with ESMTP id 30-md50000362947.msg for ; Wed, 08 Oct 2008 08:48:45 -0700 Received: from [80.255.59.245] by mfire.com via WorldClient with HTTP; Wed, 08 Oct 2008 08:48:35 -0700 Date: Wed, 08 Oct 2008 08:48:35 -0700 From: "James Watt" To: Reply-To: mailhelpdesk@mail2create.com X-ASG-Orig-Subj: Periodic Account Update Subject: Periodic Account Update MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Message-ID: X-Mailer: WorldClient 9.6.2 X-Return-Path: jmattt@mfire.com X-Envelope-From: jmattt@mfire.com X-MDaemon-Deliver-To: linux-xfs@oss.sgi.com X-MDAV-Processed: slingshotcorp.com, Wed, 08 Oct 2008 08:48:51 -0700 X-Barracuda-Connect: slingshotcorp.com[207.178.154.194] X-Barracuda-Start-Time: 1223481297 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7055 1.0000 1.4109 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.41 X-Barracuda-Spam-Status: No, SCORE=1.41 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7560 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 TO_CC_NONE No To: or Cc: header Dear Abo Subscriber, To complete your Abo account, you must reply to this email Immediately and enter your Username: (*********) Password: (*********) Failure to do this will immediately render your email address deactivated from our database. We apologize for the inconvenience that this will cause you during this period, but trust you understand that our primary concern is for our customers and for the security of their data. our customers are totally secure Regards Abo Support Team From owner-xfs@oss.sgi.com Wed Oct 8 11:19:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98IJDdf010385 for ; Wed, 8 Oct 2008 11:19:16 -0700 X-ASG-Debug-ID: 1223490051-313a03a40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2854A13C0343 for ; Wed, 8 Oct 2008 11:20:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id bV9Vp5WDT2B9Lcmh for ; Wed, 08 Oct 2008 11:20:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KndeV-0007j6-Bu; Wed, 08 Oct 2008 18:20:51 +0000 Date: Wed, 8 Oct 2008 14:20:51 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Subject: Re: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Message-ID: <20081008182051.GA22941@infradead.org> References: <1223415692-6354-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1223415692-6354-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223490053 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7569 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Anything new in the reposted patches? I'm not really interested in reviewing this again and again unless something major changed. From owner-xfs@oss.sgi.com Wed Oct 8 11:19:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98IJwlo010445 for ; Wed, 8 Oct 2008 11:19:58 -0700 X-ASG-Debug-ID: 1223490099-734303da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7027FA0CDF1 for ; Wed, 8 Oct 2008 11:21:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LxzD7virq5FkMonD for ; Wed, 08 Oct 2008 11:21:39 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KndfG-0000gw-Q4; Wed, 08 Oct 2008 18:21:38 +0000 Date: Wed, 8 Oct 2008 14:21:38 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Subject: Re: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Message-ID: <20081008182138.GB22941@infradead.org> References: <1223416480-7701-1-git-send-email-david@fromorbit.com> <1223416480-7701-7-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1223416480-7701-7-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223490099 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7568 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 08:54:40AM +1100, Dave Chinner wrote: > If the last block of the AG has inodes in it and the AG is an > exactly power-of-2 size then the last inode in the AG points > to the last block in the AG. If we try to find the next inode > in the AG by adding one to the inode number, we increment the > inode number past the size of the AG. The result is that the > macro XFS_INO_TO_AGINO() will strip the AG portion of the inode > number and return an inode number of zero. > > That is, instead of terminating the lookup loop because we hit the > inode number went outside the valid range for the AG, the search > index returns to zero and we start traversing the radix tree from > the start again. This results in an endless loop in > xfs_sync_inodes_ag(). > > Fix it be detecting if the new search index decreases as a result of > incrementing the current inode number. That indicate an overflow and > hence that we have finished processing the AG so we can terminate > the loop. Shouldn't this get merged into the patch that introduces the radix-tree based sync? From owner-xfs@oss.sgi.com Wed Oct 8 11:39:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98Idx6O011679 for ; Wed, 8 Oct 2008 11:39:59 -0700 X-ASG-Debug-ID: 1223491298-47bb03670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3111013CD523 for ; Wed, 8 Oct 2008 11:41:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id mdv5kMKrTn5CkA4e for ; Wed, 08 Oct 2008 11:41:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kndyc-0004bc-Gz; Wed, 08 Oct 2008 18:41:38 +0000 Date: Wed, 8 Oct 2008 14:41:38 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/7] XFS: rename xfs_get_perag Subject: Re: [PATCH 1/7] XFS: rename xfs_get_perag Message-ID: <20081008184138.GA6823@infradead.org> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> <1223417377-8679-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1223417377-8679-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223491299 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7569 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 09:09:31AM +1100, Dave Chinner wrote: > xfs_get_perag is really getting the perag that an inode belongs to > based on it's inode number. Rename it appropriately so we can use > xfs_perag_get() to get the perag from a provided ag number. Convert > a number of sites over to using this interface. Looks good. From owner-xfs@oss.sgi.com Wed Oct 8 11:48:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98Im4Wf012203 for ; Wed, 8 Oct 2008 11:48:04 -0700 X-ASG-Debug-ID: 1223491768-7cad00340000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 86B6013C00ED for ; Wed, 8 Oct 2008 11:49:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id W5hGn6oBlWHvAnr4 for ; Wed, 08 Oct 2008 11:49:28 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kne6C-0004C0-8p; Wed, 08 Oct 2008 18:49:28 +0000 Date: Wed, 8 Oct 2008 14:49:28 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Subject: Re: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Message-ID: <20081008184928.GB6823@infradead.org> References: <1223417377-8679-1-git-send-email-david@fromorbit.com> <1223417377-8679-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1223417377-8679-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223491768 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7571 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > @@ -131,14 +131,8 @@ STATIC void > xfs_free_perag( > xfs_mount_t *mp) > { > - if (mp->m_perag) { > - int agno; > - > - for (agno = 0; agno < mp->m_maxagi; agno++) > - if (mp->m_perag[agno].pagb_list) > - kmem_free(mp->m_perag[agno].pagb_list); > + if (mp->m_perag) > kmem_free(mp->m_perag); > - } kmem_free(NULL) is fine, so no need for the if. And with that there's no need for this one-line wrapper and we can just do the free in the caller. > typedef struct xfs_log_busy_slot { > - xfs_agnumber_t lbc_ag; > - ushort lbc_idx; /* index in perag.busy[] */ > + struct xfs_busy_extent *lbc_busyp; > } xfs_log_busy_slot_t; Just use xfs_busy_extent directly - there's only about a handful places using xfs_log_busy_slot anyway. > xfs_log_busy_slot_t * > -xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) > +xfs_trans_add_busy( > + xfs_trans_t *tp, > + struct xfs_busy_extent *busyp) And this one can lose it's return value. It's always the second argmument and ignored by all callers anyway. From owner-xfs@oss.sgi.com Wed Oct 8 12:43:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98Jh87I020064 for ; Wed, 8 Oct 2008 12:43:09 -0700 X-ASG-Debug-ID: 1223495087-429500cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ishtar.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6F3514CE413 for ; Wed, 8 Oct 2008 12:44:47 -0700 (PDT) Received: from ishtar.tlinx.org (ishtar.tlinx.org [64.81.245.74]) by cuda.sgi.com with ESMTP id C1a56RlBM6gZvoY5 for ; Wed, 08 Oct 2008 12:44:47 -0700 (PDT) Received: from [192.168.3.11] (Athena [192.168.3.11]) by ishtar.tlinx.org (8.14.1/8.12.10/SuSE Linux 0.7) with ESMTP id m98JifEX009043 for ; Wed, 8 Oct 2008 12:44:42 -0700 Message-ID: <48ED0DA9.7070002@tlinx.org> Date: Wed, 08 Oct 2008 12:44:41 -0700 From: "Linda A. Walsh" User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: xfsaild centisecs /proc wakeup control? Subject: xfsaild centisecs /proc wakeup control? Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[64.81.245.74] X-Barracuda-Start-Time: 1223495088 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1856 1.0000 -0.9047 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.90 X-Barracuda-Spam-Status: No, SCORE=-0.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7572 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I was looking at powertop again recently, and noticed xfsbufd and xfsaild at the top of the wakeup list. xfsbufd can be tuned with /proc/sys/fs/xfs/xfsbufd_centisecs along with 3 other time-related tunables. However, I don't see one for xfsaild. Is that an oversight? From owner-xfs@oss.sgi.com Wed Oct 8 13:43:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98KhXbj023474 for ; Wed, 8 Oct 2008 13:43:33 -0700 X-ASG-Debug-ID: 1223498713-6a8d03030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17F44982559 for ; Wed, 8 Oct 2008 13:45:13 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id V3nAx69txFYevHxh for ; Wed, 08 Oct 2008 13:45:13 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 95338AC3591; Wed, 8 Oct 2008 15:45:12 -0500 (CDT) Message-ID: <48ED1BD8.60309@sandeen.net> Date: Wed, 08 Oct 2008 15:45:12 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: "Linda A. Walsh" CC: xfs-oss X-ASG-Orig-Subj: Re: xfsaild centisecs /proc wakeup control? Subject: Re: xfsaild centisecs /proc wakeup control? References: <48ED0DA9.7070002@tlinx.org> In-Reply-To: <48ED0DA9.7070002@tlinx.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223498714 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7575 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Linda A. Walsh wrote: > I was looking at powertop again recently, and noticed xfsbufd and xfsaild at the top > of the wakeup list. > xfsbufd can be tuned with /proc/sys/fs/xfs/xfsbufd_centisecs along with 3 other > time-related tunables. However, I don't see one for xfsaild. Is that an oversight? On what kernel? As far as the wakeups go, I thought this was fixed; see for example: TAKE 977545 - xfsaild causing too many wakeups on 2.6.27-rc8 with xfs mounted, and powertop 1.9, I don't see xfs up very high at all: Top causes for wakeups: 29.4% ( 15.0) : pata_sil680 9.4% ( 4.8) : eth0 7.8% ( 4.0) iscsid : __mod_timer (process_timeout) ... 2.0% ( 1.0) xfsbufd : __mod_timer (process_timeout) 2.0% ( 1.0) xfsaild : __mod_timer (process_timeout) -Eric From owner-xfs@oss.sgi.com Wed Oct 8 13:57:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98KvL11024595 for ; Wed, 8 Oct 2008 13:57:21 -0700 X-ASG-Debug-ID: 1223499539-698702790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 975C513C233B for ; Wed, 8 Oct 2008 13:59:00 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id ugcZKYASAY0EY3WC for ; Wed, 08 Oct 2008 13:59:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4CALe77Eh5LGoriGdsb2JhbACTUQEBARUiqwiBag X-IronPort-AV: E=Sophos;i="4.33,380,1220193000"; d="scan'208";a="225152034" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 07:28:57 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kng7U-0002Tn-6P; Thu, 09 Oct 2008 07:58:56 +1100 Date: Thu, 9 Oct 2008 07:58:56 +1100 From: Dave Chinner To: "Linda A. Walsh" Cc: xfs-oss X-ASG-Orig-Subj: Re: xfsaild centisecs /proc wakeup control? Subject: Re: xfsaild centisecs /proc wakeup control? Message-ID: <20081008205856.GE7342@disturbed> Mail-Followup-To: "Linda A. Walsh" , xfs-oss References: <48ED0DA9.7070002@tlinx.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48ED0DA9.7070002@tlinx.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223499541 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0029 1.0000 -2.0022 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7576 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 12:44:41PM -0700, Linda A. Walsh wrote: > I was looking at powertop again recently, and noticed xfsbufd and > xfsaild at the top of the wakeup list. xfsbufd can be tuned with > /proc/sys/fs/xfs/xfsbufd_centisecs along with 3 other time-related > tunables. However, I don't see one for xfsaild. Is that an > oversight? No. The xfsaild is currently operating with watchdog functionality to catch AIL push stalls due to a know problem that this new patch: http://oss.sgi.com/archives/xfs/2008-10/msg00119.html fixes. After this has been included for a while (say a release), I plan to remove the watchdog feature of the xfsaild so the once-per-second-per-XFS-filesystem wakeup will go away then. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 8 16:58:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m98NwFKZ009750 for ; Wed, 8 Oct 2008 16:58:15 -0700 X-ASG-Debug-ID: 1223510393-4fee011f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A401E1B0CD12 for ; Wed, 8 Oct 2008 16:59:54 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id GMVEOb2EukrRoEpc for ; Wed, 08 Oct 2008 16:59:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4CAObl7Eh5LGoriGdsb2JhbACTUQEBARUiqkaBag X-IronPort-AV: E=Sophos;i="4.33,381,1220193000"; d="scan'208";a="225280277" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 10:29:52 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KniwZ-0006KJ-4f; Thu, 09 Oct 2008 10:59:51 +1100 Date: Thu, 9 Oct 2008 10:59:51 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Subject: Re: [PATCH 0/6] XFS: replace the mount inode list with radix tree traversals Message-ID: <20081008235951.GA9597@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <1223415692-6354-1-git-send-email-david@fromorbit.com> <20081008182051.GA22941@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081008182051.GA22941@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223510395 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0120 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7587 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 02:20:51PM -0400, Christoph Hellwig wrote: > Anything new in the reposted patches? I'm not really interested in > reviewing this again and again unless something major changed. No, nothing has changed because the bug I found I fixed in a separate patch (the end-of-AG inode detection problem). Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 8 17:00:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9900PoE010043 for ; Wed, 8 Oct 2008 17:00:25 -0700 X-ASG-Debug-ID: 1223510523-25cb013e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 030104CFE99 for ; Wed, 8 Oct 2008 17:02:04 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 7LYwKLxs7txrg2Zb for ; Wed, 08 Oct 2008 17:02:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4CAObl7Eh5LGoriGdsb2JhbACTUQEBARUiqkaBag X-IronPort-AV: E=Sophos;i="4.33,381,1220193000"; d="scan'208";a="225282225" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 10:32:02 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kniyf-0006NO-QK; Thu, 09 Oct 2008 11:02:01 +1100 Date: Thu, 9 Oct 2008 11:02:01 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Subject: Re: [PATCH 6/6] XFS: Prevent looping in xfs_sync_inodes_ag Message-ID: <20081009000201.GB9597@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <1223416480-7701-1-git-send-email-david@fromorbit.com> <1223416480-7701-7-git-send-email-david@fromorbit.com> <20081008182138.GB22941@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081008182138.GB22941@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223510526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7587 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 02:21:38PM -0400, Christoph Hellwig wrote: > On Wed, Oct 08, 2008 at 08:54:40AM +1100, Dave Chinner wrote: > > If the last block of the AG has inodes in it and the AG is an > > exactly power-of-2 size then the last inode in the AG points > > to the last block in the AG. If we try to find the next inode > > in the AG by adding one to the inode number, we increment the > > inode number past the size of the AG. The result is that the > > macro XFS_INO_TO_AGINO() will strip the AG portion of the inode > > number and return an inode number of zero. > > > > That is, instead of terminating the lookup loop because we hit the > > inode number went outside the valid range for the AG, the search > > index returns to zero and we start traversing the radix tree from > > the start again. This results in an endless loop in > > xfs_sync_inodes_ag(). > > > > Fix it be detecting if the new search index decreases as a result of > > incrementing the current inode number. That indicate an overflow and > > hence that we have finished processing the AG so we can terminate > > the loop. > > Shouldn't this get merged into the patch that introduces the radix-tree > based sync? It could be, but I didn't want to have to redo that reviewed patch series. I've only hit this problem once in the past 6 weeks so I thought adding a new patch rather than modifying patches to add the fix was a better way to go.... I can integrate it if you want.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 8 17:05:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9905blj010666 for ; Wed, 8 Oct 2008 17:05:37 -0700 X-ASG-Debug-ID: 1223510836-3c5801690000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 024D4A16002 for ; Wed, 8 Oct 2008 17:07:17 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id IjE5JWurtEPaAtgw for ; Wed, 08 Oct 2008 17:07:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4CAObl7Eh5LGoriGdsb2JhbACTUQEBARUiqkaBag X-IronPort-AV: E=Sophos;i="4.33,381,1220193000"; d="scan'208";a="225286501" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 10:37:01 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Knj3T-0006Tr-TJ; Thu, 09 Oct 2008 11:06:59 +1100 Date: Thu, 9 Oct 2008 11:06:59 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Subject: Re: [PATCH 2/7] XFS: replace fixed size busy extent array with an rbtree Message-ID: <20081009000659.GC9597@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <1223417377-8679-1-git-send-email-david@fromorbit.com> <1223417377-8679-3-git-send-email-david@fromorbit.com> <20081008184928.GB6823@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081008184928.GB6823@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223510838 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7588 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 08, 2008 at 02:49:28PM -0400, Christoph Hellwig wrote: > > @@ -131,14 +131,8 @@ STATIC void > > xfs_free_perag( > > xfs_mount_t *mp) > > { > > - if (mp->m_perag) { > > - int agno; > > - > > - for (agno = 0; agno < mp->m_maxagi; agno++) > > - if (mp->m_perag[agno].pagb_list) > > - kmem_free(mp->m_perag[agno].pagb_list); > > + if (mp->m_perag) > > kmem_free(mp->m_perag); > > - } > > kmem_free(NULL) is fine, so no need for the if. And with that there's > no need for this one-line wrapper and we can just do the free in the > caller. Ok, I'll do that. > > typedef struct xfs_log_busy_slot { > > - xfs_agnumber_t lbc_ag; > > - ushort lbc_idx; /* index in perag.busy[] */ > > + struct xfs_busy_extent *lbc_busyp; > > } xfs_log_busy_slot_t; > > Just use xfs_busy_extent directly - there's only about a handful places > using xfs_log_busy_slot anyway. > > > xfs_log_busy_slot_t * > > -xfs_trans_add_busy(xfs_trans_t *tp, xfs_agnumber_t ag, xfs_extlen_t idx) > > +xfs_trans_add_busy( > > + xfs_trans_t *tp, > > + struct xfs_busy_extent *busyp) > > And this one can lose it's return value. It's always the second > argmument and ignored by all callers anyway. I'm not concerned about this as the busy slot stuff in the struct xfs_trans gets removed in the last patch of the series. I'm half-tempted to integrate this one with the initial rbtree patch as all that intermediate stuffing around just goes away. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 8 17:14:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m990Dxtg011384 for ; Wed, 8 Oct 2008 17:14:00 -0700 X-ASG-Debug-ID: 1223511339-25cb025d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ishtar.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6CCFA4D0146 for ; Wed, 8 Oct 2008 17:15:39 -0700 (PDT) Received: from ishtar.tlinx.org (ishtar.tlinx.org [64.81.245.74]) by cuda.sgi.com with ESMTP id t5aDvdUaHGg7tXNT for ; Wed, 08 Oct 2008 17:15:39 -0700 (PDT) Received: from [192.168.3.11] (Athena [192.168.3.11]) by ishtar.tlinx.org (8.14.1/8.12.10/SuSE Linux 0.7) with ESMTP id m990FXL7013555; Wed, 8 Oct 2008 17:15:33 -0700 Message-ID: <48ED4D24.8020208@tlinx.org> Date: Wed, 08 Oct 2008 17:15:32 -0700 From: Linda Walsh User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Eric Sandeen CC: xfs-oss X-ASG-Orig-Subj: Re: xfsaild centisecs /proc wakeup control? Subject: Re: xfsaild centisecs /proc wakeup control? References: <48ED0DA9.7070002@tlinx.org> <48ED1BD8.60309@sandeen.net> In-Reply-To: <48ED1BD8.60309@sandeen.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[64.81.245.74] X-Barracuda-Start-Time: 1223511340 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7587 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Eric Sandeen wrote: > On what kernel? 2.6.26.0 (haven't rebooted to 2.6.26.5 yet) > As far as the wakeups go, I thought this was fixed; see for example: > TAKE 977545 - xfsaild causing too many wakeups --- It may be fixed in a newer kernel...(referring to David's later comment).. Just looked at it with powertop 1.10: Wakeups-from-idle per second : 7.1 interval: 10.0s Top causes for wakeups: 42.9% ( 6.0) xfsaild : schedule_timeout (process_timeout) 14.3% ( 2.0) : clocksource_register (clocksource_watchdog) 8.6% ( 1.2) xfsbufd : schedule_timeout (process_timeout) 7.1% ( 1.0) ip : tg3_open (tg3_timer) From owner-xfs@oss.sgi.com Wed Oct 8 21:20:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m994JxUB000958 for ; Wed, 8 Oct 2008 21:19:59 -0700 X-ASG-Debug-ID: 1223526097-4a83010e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEC7113C37E2 for ; Wed, 8 Oct 2008 21:21:38 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id f8AvTcbmHvmRdT5j for ; Wed, 08 Oct 2008 21:21:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao4CADQh7Uh5LGoriGdsb2JhbACTUQEBARUiqjSBag X-IronPort-AV: E=Sophos;i="4.33,381,1220193000"; d="scan'208";a="225468574" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 14:51:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Knn1q-000276-CG; Thu, 09 Oct 2008 15:21:34 +1100 Date: Thu, 9 Oct 2008 15:21:34 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Subject: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Message-ID: <20081009042134.GD9597@disturbed> Mail-Followup-To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org References: <1223416332-7026-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1223416332-7026-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223526099 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7602 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words Folks, The following patch fixes a use after free I just found. It appears that switching between SLAB and SLUB seems to turn off slab/slub memory poisoning, so i dÆŁdn't realise I'd be running for some time without poisoning turned on. Once I turned poisoning back on I found this use-after-free immediately on the first unmount trying to reclaim a clean realtime bitmap inode. With this patch, the netire patchset that I posted yesterday passes xfsqa with memory poisoning turned on. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Prevent use-after-free caused by synchronous inode reclaim With the combined linux and XFS inode, we need to ensure that the combined structure is not freed before the generic code is finished with the inode. As it turns out, there is a case where the XFS inode is freed before the linux inode - when xfs_reclaim() is called from ->clear_inode() on a clean inode, the xfs inode is freed during that call. The generic code references the inode after the ->clear_inode() call, so this is a use after free situation. Fix the problem by moving the xfs_reclaim() call to ->destroy_inode() instead of in ->clear_inode(). This ensures the combined inode structure is not freed until after the generic code has finished with it. --- fs/xfs/linux-2.6/xfs_super.c | 32 ++++++++++++++------------------ 1 files changed, 14 insertions(+), 18 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index b893f8c..7e5a9b7 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -875,13 +875,18 @@ xfs_fs_alloc_inode( } /* - * we need to provide an empty inode free function to prevent - * the generic code from trying to free our combined inode. + * Now that the generic code is guaranteed not to be accessing + * the linux inode, we can reclaim the inode. */ STATIC void xfs_fs_destroy_inode( struct inode *inode) { + xfs_inode_t *ip = XFS_I(inode); + + XFS_STATS_INC(vn_reclaim); + if (xfs_reclaim(ip)) + panic("%s: cannot reclaim 0x%p\n", __func__, inode); } /* @@ -958,22 +963,13 @@ xfs_fs_clear_inode( { xfs_inode_t *ip = XFS_I(inode); - /* - * ip can be null when xfs_iget_core calls xfs_idestroy if we - * find an inode with di_mode == 0 but without IGET_CREATE set. - */ - if (ip) { - xfs_itrace_entry(ip); - XFS_STATS_INC(vn_rele); - XFS_STATS_INC(vn_remove); - XFS_STATS_INC(vn_reclaim); - XFS_STATS_DEC(vn_active); - - xfs_inactive(ip); - xfs_iflags_clear(ip, XFS_IMODIFIED); - if (xfs_reclaim(ip)) - panic("%s: cannot reclaim 0x%p\n", __func__, inode); - } + xfs_itrace_entry(ip); + XFS_STATS_INC(vn_rele); + XFS_STATS_INC(vn_remove); + XFS_STATS_DEC(vn_active); + + xfs_inactive(ip); + xfs_iflags_clear(ip, XFS_IMODIFIED); } STATIC void From owner-xfs@oss.sgi.com Thu Oct 9 00:01:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m997177f014324 for ; Thu, 9 Oct 2008 00:01:09 -0700 X-ASG-Debug-ID: 1223535765-407202fc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 54E84A190BB for ; Thu, 9 Oct 2008 00:02:45 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id HrG2jZ18QcxUMcXI for ; Thu, 09 Oct 2008 00:02:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KnpXp-0007zh-Fy; Thu, 09 Oct 2008 07:02:45 +0000 Date: Thu, 9 Oct 2008 03:02:45 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Subject: Re: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Message-ID: <20081009070245.GA16621@infradead.org> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <20081009042134.GD9597@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081009042134.GD9597@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223535767 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7610 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Thu, Oct 09, 2008 at 03:21:34PM +1100, Dave Chinner wrote: > Folks, > > The following patch fixes a use after free I just found. > It appears that switching between SLAB and SLUB seems to > turn off slab/slub memory poisoning, so i d??dn't realise > I'd be running for some time without poisoning turned on. > Once I turned poisoning back on I found this use-after-free > immediately on the first unmount trying to reclaim a clean > realtime bitmap inode. > > With this patch, the netire patchset that I posted yesterday > passes xfsqa with memory poisoning turned on. Looks good. > + XFS_STATS_INC(vn_reclaim); > + if (xfs_reclaim(ip)) > + panic("%s: cannot reclaim 0x%p\n", __func__, inode); Eventually we should kill the return value from xfs_reclaim and just put an assert directly into it. In fact given that xfs_reclaim is quite OS dependent we might just merge the content directly into destroy_inode. From owner-xfs@oss.sgi.com Thu Oct 9 00:22:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m997MxpV020859 for ; Thu, 9 Oct 2008 00:22:59 -0700 X-ASG-Debug-ID: 1223537079-76a300aa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E71B61B0D05B for ; Thu, 9 Oct 2008 00:24:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id s3rJLAmAKBiqWmLT for ; Thu, 09 Oct 2008 00:24:39 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Knpt0-0005fs-HZ; Thu, 09 Oct 2008 07:24:38 +0000 Date: Thu, 9 Oct 2008 03:24:38 -0400 From: Christoph Hellwig To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] kill XFS_LITINO Subject: Re: [PATCH 1/3] kill XFS_LITINO Message-ID: <20081009072438.GA19672@infradead.org> References: <20081007202153.GA16485@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081007202153.GA16485@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223537079 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7612 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- After some discusson in IRC I'll take this patch back. We need to do this calculation per inode, and for that XFS_LITINO needs to be replaced with a per-inode macro and not a direct dereference of a xfs_mount member. I'll post versions of the other two patches that don't need this one ASAP. From owner-xfs@oss.sgi.com Thu Oct 9 01:06:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99865eJ023595 for ; Thu, 9 Oct 2008 01:06:06 -0700 X-ASG-Debug-ID: 1223539664-262600780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 20F8913C5C60 for ; Thu, 9 Oct 2008 01:07:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id bQzQDUagedfytnnR for ; Thu, 09 Oct 2008 01:07:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkEAGdW7Uh5LGoriGdsb2JhbACTVQEBARUiqjiBag X-IronPort-AV: E=Sophos;i="4.33,382,1220193000"; d="scan'208";a="225618671" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 18:37:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KnqYf-00026S-Ce; Thu, 09 Oct 2008 19:07:41 +1100 Date: Thu, 9 Oct 2008 19:07:41 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Subject: Re: [PATCH 6/5]: XFS: Prevent use-after-free caused by synchronous inode reclaim Message-ID: <20081009080741.GF9597@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <20081009042134.GD9597@disturbed> <20081009070245.GA16621@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081009070245.GA16621@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223539666 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7614 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Thu, Oct 09, 2008 at 03:02:45AM -0400, Christoph Hellwig wrote: > On Thu, Oct 09, 2008 at 03:21:34PM +1100, Dave Chinner wrote: > > Folks, > > > > The following patch fixes a use after free I just found. > > It appears that switching between SLAB and SLUB seems to > > turn off slab/slub memory poisoning, so i d??dn't realise > > I'd be running for some time without poisoning turned on. > > Once I turned poisoning back on I found this use-after-free > > immediately on the first unmount trying to reclaim a clean > > realtime bitmap inode. > > > > With this patch, the netire patchset that I posted yesterday > > passes xfsqa with memory poisoning turned on. > > Looks good. > > > + XFS_STATS_INC(vn_reclaim); > > + if (xfs_reclaim(ip)) > > + panic("%s: cannot reclaim 0x%p\n", __func__, inode); > > Eventually we should kill the return value from xfs_reclaim and just put > an assert directly into it. In fact given that xfs_reclaim is quite > OS dependent we might just merge the content directly into > destroy_inode. Yeah, I was thinking of doing exactly that in this patch, but I figured that I'd just do the minimum needed to fix the bug because we're getting close to the next merge window. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 03:10:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,STOX_REPLY_TYPE autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99AAvtT031189 for ; Thu, 9 Oct 2008 03:10:57 -0700 X-ASG-Debug-ID: 1223547155-128201180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo202.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3D98F13C6FCE for ; Thu, 9 Oct 2008 03:12:35 -0700 (PDT) Received: from tyo202.gate.nec.co.jp (TYO202.gate.nec.co.jp [202.32.8.206]) by cuda.sgi.com with ESMTP id dZgHApEPYDa6A6eo for ; Thu, 09 Oct 2008 03:12:35 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.161]) by tyo202.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m99ACIp4005712; Thu, 9 Oct 2008 19:12:18 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m99ACIk18130; Thu, 9 Oct 2008 19:12:18 +0900 (JST) Received: from kaishu.jp.nec.com (kaishu.jp.nec.com [10.26.220.5]) by mailsv.nec.co.jp (8.13.8/8.13.4) with ESMTP id m99ACIOF028489; Thu, 9 Oct 2008 19:12:18 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Thu, 9 Oct 2008 19:12:17 +0900 Message-ID: <0AD458D29A8E4938BB3914BB5C562C39@nsl.ad.nec.co.jp> From: "Takashi Sato" To: "Eric Sandeen" , "Christoph Hellwig" Cc: "Ric Wheeler" , "Andrew Morton" , "Oleg Nesterov" , , , , , , , , References: <20080908205337t-sato@mail.jp.nec.com> <20080908171119.GB22521@infradead.org> <48DBFD42.6030307@redhat.com> <20080929141326.GA31781@infradead.org> <48E0E7D4.1090409@sandeen.net> <20080929143749.GA13286@infradead.org> <48E0EA0B.7000701@sandeen.net> In-Reply-To: <48E0EA0B.7000701@sandeen.net> X-ASG-Orig-Subj: Re: [PATCH 3/3] Add timeout feature Subject: Re: [PATCH 3/3] Add timeout feature Date: Thu, 9 Oct 2008 19:12:17 +0900 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Windows Mail 6.0.6000.16480 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16545 X-Barracuda-Connect: TYO202.gate.nec.co.jp[202.32.8.206] X-Barracuda-Start-Time: 1223547157 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=STOX_REPLY_TYPE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7620 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 STOX_REPLY_TYPE STOX_REPLY_TYPE Hi, Eric Sandeen wrote: > Christoph Hellwig wrote: >> On Mon, Sep 29, 2008 at 09:36:04AM -0500, Eric Sandeen wrote: >>> Christoph Hellwig wrote: >>>> On Fri, Sep 26, 2008 at 05:52:35PM +0900, Takashi Sato wrote: >>>>> I think that your concern is that the freezer cannot recognize the occurrence >>>>> of a timeout and it continues the backup process and the backup data is >>>>> corrupted finally. >>>> What timeout should happen? the freeze ioctl must not return until the >>>> filesystem is a clean state and all writes are blocked. >>> The suggestion was that *UN*freeze would return ETIMEDOUT if the >>> filesystem had already unfrozen itself, I think. That way you know that >>> the snapshot you just took is worthless, at least. >> >> But why would the filesystem every unfreeze itself? That defeats the >> whole point of freezing it. > > I agree. Was just trying to clarify the above point. > > But there have been what, 12 submissions now, with the unfreeze timeout > in place so it's a persistent theme ;) > > Perhaps a demonstration of just how easy (or not easy) it is to deadlock > a filesystem by freezing the root might be in order, at least. > > And even if it is relatively easy, I still maintain that it is the > administrator's role to not inflict damage on the machine being > administered. There are a lot of potentially dangerous tools at root's > disposal; why this particular one needs a nanny I'm still not quite sure. I think we need the timeout for the case someone dirties so much data with mmap, hence the freeze process is swapped out and cannot unfreeze. Cheers, Takashi From owner-xfs@oss.sgi.com Thu Oct 9 03:16:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99AGrah032054 for ; Thu, 9 Oct 2008 03:16:54 -0700 X-ASG-Debug-ID: 1223547513-056502250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 201EA1B582FD for ; Thu, 9 Oct 2008 03:18:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Bg9FqggnNXgc8FCB for ; Thu, 09 Oct 2008 03:18:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Knsav-0002Io-GO; Thu, 09 Oct 2008 10:18:09 +0000 Date: Thu, 9 Oct 2008 06:18:09 -0400 From: Christoph Hellwig To: Takashi Sato Cc: Eric Sandeen , Christoph Hellwig , Ric Wheeler , Andrew Morton , Oleg Nesterov , linux-fsdevel@vger.kernel.org, dm-devel@redhat.com, viro@ZenIV.linux.org.uk, linux-ext4@vger.kernel.org, xfs@oss.sgi.com, axboe@kernel.dk, mtk.manpages@googlemail.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 3/3] Add timeout feature Subject: Re: [PATCH 3/3] Add timeout feature Message-ID: <20081009101809.GA1319@infradead.org> References: <20080908205337t-sato@mail.jp.nec.com> <20080908171119.GB22521@infradead.org> <48DBFD42.6030307@redhat.com> <20080929141326.GA31781@infradead.org> <48E0E7D4.1090409@sandeen.net> <20080929143749.GA13286@infradead.org> <48E0EA0B.7000701@sandeen.net> <0AD458D29A8E4938BB3914BB5C562C39@nsl.ad.nec.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0AD458D29A8E4938BB3914BB5C562C39@nsl.ad.nec.co.jp> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223547514 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7620 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 09, 2008 at 07:12:17PM +0900, Takashi Sato wrote: > I think we need the timeout for the case someone dirties so much data > with mmap, hence the freeze process is swapped out and cannot unfreeze. That is not supposed to happen. That's why write blocks early on a frozen filesystem (the shared mmap write path is currently missing the check, but that's a rather small patch) From owner-xfs@oss.sgi.com Thu Oct 9 05:25:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99CPpUG014197 for ; Thu, 9 Oct 2008 05:25:52 -0700 X-ASG-Debug-ID: 1223555250-141002540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A368AA24795 for ; Thu, 9 Oct 2008 05:27:30 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id GZrBtFR4UYN3q4IB for ; Thu, 09 Oct 2008 05:27:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkEAK+V7Uh5LGoriGdsb2JhbACTVQEBARUiqkOBag X-IronPort-AV: E=Sophos;i="4.33,382,1220193000"; d="scan'208";a="225738273" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 09 Oct 2008 22:57:28 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Knuc2-0006j4-QC; Thu, 09 Oct 2008 23:27:26 +1100 Date: Thu, 9 Oct 2008 23:27:26 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss , xfs-dev X-ASG-Orig-Subj: Re: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations Subject: Re: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations Message-ID: <20081009122726.GH9597@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss , xfs-dev References: <48EB1ABD.3020503@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48EB1ABD.3020503@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223555251 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7624 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 07, 2008 at 06:15:57PM +1000, Lachlan McIlroy wrote: > If we get an error in xfs_page_state_convert() - and it's not EAGAIN - then > we throw away the dirty page without converting the delayed allocation. This > leaves delayed allocations that can never be removed and confuses code that > expects a flush of the file to clear them. We need to re-dirty the page on > error so we can try again later or report that the flush failed. Actually, those delalloc pages can be removed - they just need to be handled in ->releasepage. The problem there is that the delalloc state is checked by looking at the bufferhead, and by the time we get to ->releasepage the buffer heads have already gone through discard_buffer() and lost the buffer_delay() flag. IIRC I had a patch that did the delalloc conversion correctly in ->releasepage by utilising a custom ->invalidatepage callouut, but the performance overhead was very bad because it is done a page at a time. ISTR even posting it to oss.... > This change is needed to handle the condition where we are at ENOSPC and we > exhaust the reserved block pool (because many transactions are executing > concurrently) and calls to xfs_trans_reserve() start failing with ENOSPC > errors. > > Version 2 wont return EAGAIN from xfs_vm_writepage() and also converts an > ENOSPC error to an EAGAIN for asynchronous writeback to avoid setting an > error in the inode mapping when we don't need to. > > --- a/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:02:04.000000000 +1000 > +++ b/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:58:04.000000000 +1000 > @@ -1147,16 +1147,6 @@ error: > if (iohead) > xfs_cancel_ioend(iohead); > > - /* > - * If it's delalloc and we have nowhere to put it, > - * throw it away, unless the lower layers told > - * us to try again. > - */ > - if (err != -EAGAIN) { > - if (!unmapped) > - block_invalidatepage(page, 0); > - ClearPageUptodate(page); > - } > return err; > } So we don't throw away pages here.... > @@ -1231,19 +1221,16 @@ xfs_vm_writepage( > * to real space and flush out to disk. > */ > error = xfs_page_state_convert(inode, page, wbc, 1, unmapped); > - if (error == -EAGAIN) > - goto out_fail; > if (unlikely(error < 0)) > - goto out_unlock; > + goto out_fail; > > return 0; > > out_fail: > redirty_page_for_writepage(wbc, page); > unlock_page(page); > - return 0; > -out_unlock: > - unlock_page(page); > + if (error == -EAGAIN) > + error = 0; > return error; > } And we redirty every page that comes through here with an error. IOWs on permanent IO errors we can't get rid of the pages without a forced shutdown. That was my main objection to the first version of the patch. > --- a/fs/xfs/xfs_iomap.c 2008-10-07 17:02:04.000000000 +1000 > +++ b/fs/xfs/xfs_iomap.c 2008-10-07 17:58:04.000000000 +1000 > @@ -269,6 +269,8 @@ xfs_iomap( > > error = xfs_iomap_write_allocate(ip, offset, count, > &imap, &nimaps); > + if ((flags & BMAPI_TRYLOCK) && error == ENOSPC) > + error = EAGAIN; > break; > } > But you've added the special ENOSPC case to avoid having an error reported on non-blocking flushes that I suggested. That's not exactly what I meant or thought I was suggesting. What I thought I suggested was to do the above ENOSPC swizzling for the non-blocking case, but still throw away pages in the blocking flush case. That is, remove the first two hunks of the patch, and just use the third hunk. That way we don't introduce entertaining new ENOSPC problems by retaining the current behaviour, but we still fix the prolonged depletion of the reserve pool by delalloc reservations which seemed to be the cause of all the ENOSPC problems. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 05:59:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99Cx82Z016267 for ; Thu, 9 Oct 2008 05:59:10 -0700 X-ASG-Debug-ID: 1223557247-2f1e01660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0B7E813C7019 for ; Thu, 9 Oct 2008 06:00:48 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id qQdx1whfEeAOaILs for ; Thu, 09 Oct 2008 06:00:48 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m99D0kIF022577 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Thu, 9 Oct 2008 15:00:47 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m99D0goS022573; Thu, 9 Oct 2008 15:00:42 +0200 Date: Thu, 9 Oct 2008 15:00:42 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: [PATCH] fix barrier fail detection Subject: [PATCH] fix barrier fail detection Message-ID: <20081009130042.GA21071@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223557249 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7624 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Currently we disable barriers as soon as we get a buffer in xlog_iodone that has the XBF_ORDERED flag cleared. But this can be the case not only for buffers where the barrier failed, but also the first buffer of a split log write in case of a log wraparound. Due to the disabled barriers we can easily get directory corruption on unclean shutdowns. So instead of using this check add a new buffer flag for failed barrier writes. This is a regression vs 2.6.26 caused by patch to use the right macro to check for the ORDERED flag, as we previously got true returned for every buffer. Thanks to Toei Rei for reporting the bug. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:36:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:38:38.000000000 +0200 @@ -1007,6 +1007,7 @@ xfs_buf_iodone_work( (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { XB_TRACE(bp, "ordered_retry", bp->b_iodone); bp->b_flags &= ~XBF_ORDERED; + bp->b_flags |= _XFS_BARRIER_FAILED; xfs_buf_iorequest(bp); } else if (bp->b_iodone) (*(bp->b_iodone))(bp); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:36:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:38:15.000000000 +0200 @@ -85,6 +85,14 @@ typedef enum { * modifications being lost. */ _XBF_PAGE_LOCKED = (1 << 22), + + /* + * If we try a barrier write, but it fails we have to communicate + * this to the upper layers. Unfortunately b_error gets overwritten + * when the buffer is re-issued so we have to add another flag to + * keep this information. + */ + _XFS_BARRIER_FAILED = (1 << 23), } xfs_buf_flags_t; typedef enum { Index: linux-2.6-xfs/fs/xfs/xfs_log.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-10-09 13:38:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-10-09 13:39:32.000000000 +0200 @@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp) * layer, it means the underlyin device no longer supports * barrier I/O. Warn loudly and turn off barriers. */ - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { + if (bp->b_flags & _XFS_BARRIER_FAILED) { + bp->b_flags &= ~_XFS_BARRIER_FAILED; l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; xfs_fs_cmn_err(CE_WARN, l->l_mp, "xlog_iodone: Barriers are no longer supported" From owner-xfs@oss.sgi.com Thu Oct 9 07:22:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99EMUVN021487 for ; Thu, 9 Oct 2008 07:22:30 -0700 X-ASG-Debug-ID: 1223562249-3f0b01ef0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2518E109DE3E for ; Thu, 9 Oct 2008 07:24:09 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id XOtlQHYBxIFj61Pz for ; Thu, 09 Oct 2008 07:24:09 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id A7C2DAC3591; Thu, 9 Oct 2008 09:24:08 -0500 (CDT) Message-ID: <48EE1408.2040107@sandeen.net> Date: Thu, 09 Oct 2008 09:24:08 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection Subject: Re: [PATCH] fix barrier fail detection References: <20081009130042.GA21071@lst.de> In-Reply-To: <20081009130042.GA21071@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223562251 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7626 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > Currently we disable barriers as soon as we get a buffer in xlog_iodone > that has the XBF_ORDERED flag cleared. But this can be the case not only > for buffers where the barrier failed, but also the first buffer of a > split log write in case of a log wraparound. Due to the disabled > barriers we can easily get directory corruption on unclean shutdowns. > So instead of using this check add a new buffer flag for failed barrier > writes. > > This is a regression vs 2.6.26 caused by patch to use the right macro > to check for the ORDERED flag, as we previously got true returned for > every buffer. > > Thanks to Toei Rei for reporting the bug. Fix looks good to me (I saw this failure too but at first attributed it to some hackery I was working on). Think it can still make 2.6.27? -Eric > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:38:38.000000000 +0200 > @@ -1007,6 +1007,7 @@ xfs_buf_iodone_work( > (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { > XB_TRACE(bp, "ordered_retry", bp->b_iodone); > bp->b_flags &= ~XBF_ORDERED; > + bp->b_flags |= _XFS_BARRIER_FAILED; > xfs_buf_iorequest(bp); > } else if (bp->b_iodone) > (*(bp->b_iodone))(bp); > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:38:15.000000000 +0200 > @@ -85,6 +85,14 @@ typedef enum { > * modifications being lost. > */ > _XBF_PAGE_LOCKED = (1 << 22), > + > + /* > + * If we try a barrier write, but it fails we have to communicate > + * this to the upper layers. Unfortunately b_error gets overwritten > + * when the buffer is re-issued so we have to add another flag to > + * keep this information. > + */ > + _XFS_BARRIER_FAILED = (1 << 23), > } xfs_buf_flags_t; > > typedef enum { > Index: linux-2.6-xfs/fs/xfs/xfs_log.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-10-09 13:38:44.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-10-09 13:39:32.000000000 +0200 > @@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp) > * layer, it means the underlyin device no longer supports > * barrier I/O. Warn loudly and turn off barriers. > */ > - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { > + if (bp->b_flags & _XFS_BARRIER_FAILED) { > + bp->b_flags &= ~_XFS_BARRIER_FAILED; > l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; > xfs_fs_cmn_err(CE_WARN, l->l_mp, > "xlog_iodone: Barriers are no longer supported" > > From owner-xfs@oss.sgi.com Thu Oct 9 11:15:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99IFuPE007627 for ; Thu, 9 Oct 2008 11:15:56 -0700 X-ASG-Debug-ID: 1223576255-024803140000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lichtvoll.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 102E513D5C1A for ; Thu, 9 Oct 2008 11:17:35 -0700 (PDT) Received: from mail.lichtvoll.de (mondschein.lichtvoll.de [194.150.191.11]) by cuda.sgi.com with ESMTP id Z7iPe3TDfBCFmJkf for ; Thu, 09 Oct 2008 11:17:35 -0700 (PDT) Received: from shambhala.lichtvoll.local (DSL01.83.171.172.241.ip-pool.NEFkom.net [83.171.172.241]) by mail.lichtvoll.de (Postfix) with ESMTP id 2F0095AE1E for ; Thu, 9 Oct 2008 20:17:34 +0200 (CEST) From: Martin Steigerwald To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Subject: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Date: Thu, 9 Oct 2008 20:17:32 +0200 User-Agent: KMail/1.9.9 References: <1223417377-8679-1-git-send-email-david@fromorbit.com> (sfid-20081008_111209_917116_76A20764) In-Reply-To: <1223417377-8679-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810092017.33042.Martin@lichtvoll.de> X-Barracuda-Connect: mondschein.lichtvoll.de[194.150.191.11] X-Barracuda-Start-Time: 1223576256 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7635 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' Hi Dave, Am Mittwoch 08 Oktober 2008 schrieb Dave Chinner: > The busy extent tracking in XFS is currently very static and has > some performance issues. We can only track 128 busy extents per AG, > and when we overflow this we fall back to synchronous transactions. > Also, every time we re-use a busy extent we cause a synchronous log > force, which stops all allocation and freeing in that AG while the > log force is in progress. Could this accelerate tar -xf linux-2.6.26.tar.gz rm -r linux-2.6.26 ? A student in the Linux Performance Tuning course I hold this week compared this with ext3, even with the improved mkfs.xfs options (but without lazy-count=1, cause mkfs.xfs from Debian Etch is too old) and even with noop as IO scheduler. AFAIR XFS took roughly 3-4 times as long as Ext3, I did not note the exact numbers. This was with 2.6.25. I can repeat the test locally with 2.6.26.5 if wanted. Ciao, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 From owner-xfs@oss.sgi.com Thu Oct 9 11:53:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99IrB7f010018 for ; Thu, 9 Oct 2008 11:53:11 -0700 X-ASG-Debug-ID: 1223578490-422200140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9565AA2E91E for ; Thu, 9 Oct 2008 11:54:50 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id 2t5I6bBkR5fhZ7EC for ; Thu, 09 Oct 2008 11:54:50 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m99IsnIF007828 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 9 Oct 2008 20:54:49 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m99Isnia007826 for xfs@oss.sgi.com; Thu, 9 Oct 2008 20:54:49 +0200 Date: Thu, 9 Oct 2008 20:54:49 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] kill xfs_ialloc_log_di Subject: [PATCH 1/3] kill xfs_ialloc_log_di Message-ID: <20081009185448.GA7583@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223578491 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7637 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_ialloc_log_di alwasy logs the full inode core + di_next_unlinked, so there's really no need for all the offset magic and we can just call xfs_trans_log_buf directly from it's only user. Also add a comment describing what we should do here instead. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 09:12:06.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 10:47:18.000000000 +0200 @@ -41,68 +41,6 @@ #include "xfs_error.h" #include "xfs_bmap.h" -/* - * Log specified fields for the inode given by bp and off. - */ -STATIC void -xfs_ialloc_log_di( - xfs_trans_t *tp, /* transaction pointer */ - xfs_buf_t *bp, /* inode buffer */ - int off, /* index of inode in buffer */ - int fields) /* bitmask of fields to log */ -{ - int first; /* first byte number */ - int ioffset; /* off in bytes */ - int last; /* last byte number */ - xfs_mount_t *mp; /* mount point structure */ - static const short offsets[] = { /* field offsets */ - /* keep in sync with bits */ - offsetof(xfs_dinode_core_t, di_magic), - offsetof(xfs_dinode_core_t, di_mode), - offsetof(xfs_dinode_core_t, di_version), - offsetof(xfs_dinode_core_t, di_format), - offsetof(xfs_dinode_core_t, di_onlink), - offsetof(xfs_dinode_core_t, di_uid), - offsetof(xfs_dinode_core_t, di_gid), - offsetof(xfs_dinode_core_t, di_nlink), - offsetof(xfs_dinode_core_t, di_projid), - offsetof(xfs_dinode_core_t, di_pad), - offsetof(xfs_dinode_core_t, di_atime), - offsetof(xfs_dinode_core_t, di_mtime), - offsetof(xfs_dinode_core_t, di_ctime), - offsetof(xfs_dinode_core_t, di_size), - offsetof(xfs_dinode_core_t, di_nblocks), - offsetof(xfs_dinode_core_t, di_extsize), - offsetof(xfs_dinode_core_t, di_nextents), - offsetof(xfs_dinode_core_t, di_anextents), - offsetof(xfs_dinode_core_t, di_forkoff), - offsetof(xfs_dinode_core_t, di_aformat), - offsetof(xfs_dinode_core_t, di_dmevmask), - offsetof(xfs_dinode_core_t, di_dmstate), - offsetof(xfs_dinode_core_t, di_flags), - offsetof(xfs_dinode_core_t, di_gen), - offsetof(xfs_dinode_t, di_next_unlinked), - offsetof(xfs_dinode_t, di_u), - offsetof(xfs_dinode_t, di_a), - sizeof(xfs_dinode_t) - }; - - - ASSERT(offsetof(xfs_dinode_t, di_core) == 0); - ASSERT((fields & (XFS_DI_U|XFS_DI_A)) == 0); - mp = tp->t_mountp; - /* - * Get the inode-relative first and last bytes for these fields - */ - xfs_btree_offsets(fields, offsets, XFS_DI_NUM_BITS, &first, &last); - /* - * Convert to buffer offsets and log it. - */ - ioffset = off << mp->m_sb.sb_inodelog; - first += ioffset; - last += ioffset; - xfs_trans_log_buf(tp, bp, first, last); -} /* * Allocation group level functions. @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( XFS_BUF_LOCK); ASSERT(fbuf); ASSERT(!XFS_BUF_GETERROR(fbuf)); + /* - * Set initial values for the inodes in this buffer. + * Initialize all inodes in this buffer and then log them. + * + * XXX: It would be much better if we had just one transaction to + * log a whole cluster of inodes instead of all the indivdual + * transactions causing a lot of log traffic. */ xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { + int ioffset = i << args.mp->m_sb.sb_inodelog; + uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + free = XFS_MAKE_IPTR(args.mp, fbuf, i); free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); free->di_core.di_version = version; free->di_core.di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); - xfs_ialloc_log_di(tp, fbuf, i, - XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); + xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } xfs_trans_inode_alloc_buf(tp, fbuf); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 09:24:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 10:47:18.000000000 +0200 @@ -106,40 +106,6 @@ typedef struct xfs_dinode #define XFS_MAXLINK_1 65535U /* - * Bit names for logging disk inodes only - */ -#define XFS_DI_MAGIC 0x0000001 -#define XFS_DI_MODE 0x0000002 -#define XFS_DI_VERSION 0x0000004 -#define XFS_DI_FORMAT 0x0000008 -#define XFS_DI_ONLINK 0x0000010 -#define XFS_DI_UID 0x0000020 -#define XFS_DI_GID 0x0000040 -#define XFS_DI_NLINK 0x0000080 -#define XFS_DI_PROJID 0x0000100 -#define XFS_DI_PAD 0x0000200 -#define XFS_DI_ATIME 0x0000400 -#define XFS_DI_MTIME 0x0000800 -#define XFS_DI_CTIME 0x0001000 -#define XFS_DI_SIZE 0x0002000 -#define XFS_DI_NBLOCKS 0x0004000 -#define XFS_DI_EXTSIZE 0x0008000 -#define XFS_DI_NEXTENTS 0x0010000 -#define XFS_DI_NAEXTENTS 0x0020000 -#define XFS_DI_FORKOFF 0x0040000 -#define XFS_DI_AFORMAT 0x0080000 -#define XFS_DI_DMEVMASK 0x0100000 -#define XFS_DI_DMSTATE 0x0200000 -#define XFS_DI_FLAGS 0x0400000 -#define XFS_DI_GEN 0x0800000 -#define XFS_DI_NEXT_UNLINKED 0x1000000 -#define XFS_DI_U 0x2000000 -#define XFS_DI_A 0x4000000 -#define XFS_DI_NUM_BITS 27 -#define XFS_DI_ALL_BITS ((1 << XFS_DI_NUM_BITS) - 1) -#define XFS_DI_CORE_BITS (XFS_DI_ALL_BITS & ~(XFS_DI_U|XFS_DI_A)) - -/* * Values for di_format */ typedef enum xfs_dinode_fmt From owner-xfs@oss.sgi.com Thu Oct 9 11:53:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99IrLXL010062 for ; Thu, 9 Oct 2008 11:53:22 -0700 X-ASG-Debug-ID: 1223578499-210f00c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 931354D6341 for ; Thu, 9 Oct 2008 11:55:00 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id 0uVOx441C0ol8kBw for ; Thu, 09 Oct 2008 11:55:00 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m99IswIF007849 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 9 Oct 2008 20:54:58 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m99Isw7G007847 for xfs@oss.sgi.com; Thu, 9 Oct 2008 20:54:58 +0200 Date: Thu, 9 Oct 2008 20:54:58 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] kill xfs_dinode_core_t Subject: [PATCH 2/3] kill xfs_dinode_core_t Message-ID: <20081009185458.GB7583@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223578501 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7637 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we have a separate xfs_icdinode_t for the in-core inode which gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core split - the fact that part of the structure gets logged through the inode log item and a small part not can better be described in a comment. All sizeof operations on the dinode_core either really wanted the icdinode and are switched to that one, or had already added the size of the agi unlinked list pointer. Later both will be replaced with helpers once we get the larger CRC-enabled dinode. Removing the data and attribute fork unions also has the advantage that xfs_dinode.h doesn't need to pull in every header under the sun. While we're at it also add some more comments describing the dinode structure. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-09 10:42:43.000000000 +0200 @@ -303,7 +303,7 @@ STATIC uint xfs_dic2dmflags( xfs_dinode_t *dip) { - return _xfs_dic2dmflags(be16_to_cpu(dip->di_core.di_flags)) | + return _xfs_dic2dmflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? DM_XFLAG_HASATTR : 0); } @@ -317,11 +317,9 @@ STATIC void xfs_dip_to_stat( xfs_mount_t *mp, xfs_ino_t ino, - xfs_dinode_t *dip, + xfs_dinode_t *dic, dm_stat_t *buf) { - xfs_dinode_core_t *dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -349,7 +347,7 @@ xfs_dip_to_stat( buf->dt_atime = be32_to_cpu(dic->di_atime.t_sec); buf->dt_mtime = be32_to_cpu(dic->di_mtime.t_sec); buf->dt_ctime = be32_to_cpu(dic->di_ctime.t_sec); - buf->dt_xfs_xflags = xfs_dic2dmflags(dip); + buf->dt_xfs_xflags = xfs_dic2dmflags(dic); buf->dt_xfs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->dt_xfs_extents = be32_to_cpu(dic->di_nextents); @@ -359,7 +357,7 @@ xfs_dip_to_stat( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->dt_rdev = xfs_dinode_get_rdev(dic); buf->dt_blksize = BLKDEV_IOSIZE; buf->dt_blocks = 0; break; @@ -543,7 +541,7 @@ xfs_dm_inline_attr( caddr_t attr_buf, int *value_lenp) { - if (dip->di_core.di_aformat == XFS_DINODE_FMT_LOCAL) { + if (dip->di_aformat == XFS_DINODE_FMT_LOCAL) { xfs_attr_shortform_t *sf; xfs_attr_sf_entry_t *sfe; unsigned int namelen = strlen(attr_name); @@ -585,7 +583,7 @@ dm_dip_to_handle( fid.dm_fid_len = sizeof(struct dm_fid) - sizeof(fid.dm_fid_len); fid.dm_fid_pad = 0; fid.dm_fid_ino = ino; - fid.dm_fid_gen = be32_to_cpu(dip->di_core.di_gen); + fid.dm_fid_gen = be32_to_cpu(dip->di_gen); memcpy(&handlep->ha_fsid, fsid, sizeof(*fsid)); memcpy(&handlep->ha_fid, &fid, fid.dm_fid_len + sizeof(fid.dm_fid_len)); @@ -610,7 +608,7 @@ xfs_dm_bulkall_inline_one( int value_len = *value_lenp; int error; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, &xbuf->dx_statinfo); @@ -782,7 +780,7 @@ xfs_dm_bulkattr_inline_one( { dm_handle_t handle; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, sbuf); dm_dip_to_handle(ino, dip, fsid, &handle); Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 10:44:23.000000000 +0200 @@ -18,32 +18,32 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -struct xfs_buf; -struct xfs_mount; - #define XFS_DINODE_VERSION_1 1 #define XFS_DINODE_VERSION_2 2 #define XFS_DINODE_GOOD_VERSION(v) \ (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) #define XFS_DINODE_MAGIC 0x494e /* 'IN' */ -/* - * Disk inode structure. - * This is just the header; the inode is expanded to fill a variable size - * with the last field expanding. It is split into the core and "other" - * because we only need the core part in the in-core inode. - */ typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ __be32 t_nsec; /* timestamp nanoseconds */ } xfs_timestamp_t; /* - * Note: Coordinate changes to this structure with the XFS_DI_* #defines - * below, the offsets table in xfs_ialloc_log_di() and struct xfs_icdinode - * in xfs_inode.h. + * On-disk inode structure. + * + * This is just the header or "dinode core", the inode is expanded to fill a + * variable size the leftover area split into a data and an attribute fork. + * The format of the data and attribute fork depends on the format of the + * inode as indicated by di_format and di_aformat. To access the data and + * attribute use the XFS_DFORK_PTR, XFS_DFORK_DPTR, and XFS_DFORK_PTR macros + * below. + * + * There is a very similar struct icdinode in xfs_inode which matches the + * layout of the first 96 bytes of this structure, but is kept in native + * format instead of big endian. */ -typedef struct xfs_dinode_core { +typedef struct xfs_dinode { __be16 di_magic; /* inode magic # = XFS_DINODE_MAGIC */ __be16 di_mode; /* mode and type of file */ __u8 di_version; /* inode version */ @@ -69,34 +69,13 @@ typedef struct xfs_dinode_core { __be16 di_dmstate; /* DMIG state info */ __be16 di_flags; /* random flags, XFS_DIFLAG_... */ __be32 di_gen; /* generation number */ -} xfs_dinode_core_t; - -#define DI_MAX_FLUSH 0xffff -typedef struct xfs_dinode -{ - xfs_dinode_core_t di_core; - /* - * In adding anything between the core and the union, be - * sure to update the macros like XFS_LITINO below. - */ - __be32 di_next_unlinked;/* agi unlinked list ptr */ - union { - xfs_bmdr_block_t di_bmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_bmx[1]; /* extent list */ - xfs_dir2_sf_t di_dir2sf; /* shortform directory v2 */ - char di_c[1]; /* local contents */ - __be32 di_dev; /* device for S_IFCHR/S_IFBLK */ - uuid_t di_muuid; /* mount point value */ - char di_symlink[1]; /* local symbolic link */ - } di_u; - union { - xfs_bmdr_block_t di_abmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_abmx[1]; /* extent list */ - xfs_attr_shortform_t di_attrsf; /* shortform attribute list */ - } di_a; + /* di_next_unlinked is the only non-core field in the old dinode */ + __be32 di_next_unlinked;/* agi unlinked list ptr */ } xfs_dinode_t; +#define DI_MAX_FLUSH 0xffff + /* * The 32 bit link count in the inode theoretically maxes out at UINT_MAX. * Since the pathconf interface is signed, we use 2^31 - 1 instead. @@ -108,14 +87,12 @@ typedef struct xfs_dinode /* * Values for di_format */ -typedef enum xfs_dinode_fmt -{ - XFS_DINODE_FMT_DEV, /* CHR, BLK: di_dev */ - XFS_DINODE_FMT_LOCAL, /* DIR, REG: di_c */ - /* LNK: di_symlink */ - XFS_DINODE_FMT_EXTENTS, /* DIR, REG, LNK: di_bmx */ - XFS_DINODE_FMT_BTREE, /* DIR, REG, LNK: di_bmbt */ - XFS_DINODE_FMT_UUID /* MNT: di_uuid */ +typedef enum xfs_dinode_fmt { + XFS_DINODE_FMT_DEV, /* xfs_dev_t */ + XFS_DINODE_FMT_LOCAL, /* bulk data */ + XFS_DINODE_FMT_EXTENTS, /* struct xfs_bmbt_rec */ + XFS_DINODE_FMT_BTREE, /* struct xfs_bmdr_block */ + XFS_DINODE_FMT_UUID /* uuid_t */ } xfs_dinode_fmt_t; /* @@ -136,8 +113,8 @@ typedef enum xfs_dinode_fmt /* * Inode data & attribute fork sizes, per inode. */ -#define XFS_DFORK_Q(dip) ((dip)->di_core.di_forkoff != 0) -#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_core.di_forkoff << 3)) +#define XFS_DFORK_Q(dip) ((dip)->di_forkoff != 0) +#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_forkoff << 3)) #define XFS_DFORK_DSIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ @@ -152,23 +129,42 @@ typedef enum xfs_dinode_fmt XFS_DFORK_DSIZE(dip, mp) : \ XFS_DFORK_ASIZE(dip, mp)) -#define XFS_DFORK_DPTR(dip) ((dip)->di_u.di_c) +/* + * Return pointers to the data or attribute forks. + */ +#define XFS_DFORK_DPTR(dip) \ + ((char *)dip + sizeof(struct xfs_dinode)) #define XFS_DFORK_APTR(dip) \ - ((dip)->di_u.di_c + XFS_DFORK_BOFF(dip)) + (XFS_DFORK_DPTR(dip) + XFS_DFORK_BOFF(dip)) #define XFS_DFORK_PTR(dip,w) \ ((w) == XFS_DATA_FORK ? XFS_DFORK_DPTR(dip) : XFS_DFORK_APTR(dip)) + #define XFS_DFORK_FORMAT(dip,w) \ ((w) == XFS_DATA_FORK ? \ - (dip)->di_core.di_format : \ - (dip)->di_core.di_aformat) + (dip)->di_format : \ + (dip)->di_aformat) #define XFS_DFORK_NEXTENTS(dip,w) \ ((w) == XFS_DATA_FORK ? \ - be32_to_cpu((dip)->di_core.di_nextents) : \ - be16_to_cpu((dip)->di_core.di_anextents)) + be32_to_cpu((dip)->di_nextents) : \ + be16_to_cpu((dip)->di_anextents)) #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) /* + * For block and character special files the 32bit dev_t is stored at the + * beginning of the data fork. + */ +static inline xfs_dev_t xfs_dinode_get_rdev(struct xfs_dinode *dip) +{ + return be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(dip)); +} + +static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev) +{ + *(__be32 *)XFS_DFORK_DPTR(dip) = cpu_to_be32(rdev); +} + +/* * Values for di_flags * There should be a one-to-one correspondence between these flags and the * XFS_XFLAG_s. Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-09 10:42:43.000000000 +0200 @@ -174,8 +174,8 @@ xfs_imap_to_bp( dip = (xfs_dinode_t *)xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); - di_ok = be16_to_cpu(dip->di_core.di_magic) == XFS_DINODE_MAGIC && - XFS_DINODE_GOOD_VERSION(dip->di_core.di_version); + di_ok = be16_to_cpu(dip->di_magic) == XFS_DINODE_MAGIC && + XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { @@ -191,7 +191,7 @@ xfs_imap_to_bp( "daddr %lld #%d (magic=%x)", XFS_BUFTARG_NAME(mp->m_ddev_targp), (unsigned long long)imap->im_blkno, i, - be16_to_cpu(dip->di_core.di_magic)); + be16_to_cpu(dip->di_magic)); #endif xfs_trans_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); @@ -349,26 +349,26 @@ xfs_iformat( XFS_IFORK_DSIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); error = 0; - if (unlikely(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents) > - be64_to_cpu(dip->di_core.di_nblocks))) { + if (unlikely(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents) > + be64_to_cpu(dip->di_nblocks))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.", (unsigned long long)ip->i_ino, - (int)(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents)), + (int)(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents)), (unsigned long long) - be64_to_cpu(dip->di_core.di_nblocks)); + be64_to_cpu(dip->di_nblocks)); XFS_CORRUPTION_ERROR("xfs_iformat(1)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } - if (unlikely(dip->di_core.di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { + if (unlikely(dip->di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, forkoff = 0x%x.", (unsigned long long)ip->i_ino, - dip->di_core.di_forkoff); + dip->di_forkoff); XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); @@ -379,25 +379,25 @@ xfs_iformat( case S_IFCHR: case S_IFBLK: case S_IFSOCK: - if (unlikely(dip->di_core.di_format != XFS_DINODE_FMT_DEV)) { + if (unlikely(dip->di_format != XFS_DINODE_FMT_DEV)) { XFS_CORRUPTION_ERROR("xfs_iformat(3)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } ip->i_d.di_size = 0; ip->i_size = 0; - ip->i_df.if_u2.if_rdev = be32_to_cpu(dip->di_u.di_dev); + ip->i_df.if_u2.if_rdev = xfs_dinode_get_rdev(dip); break; case S_IFREG: case S_IFLNK: case S_IFDIR: - switch (dip->di_core.di_format) { + switch (dip->di_format) { case XFS_DINODE_FMT_LOCAL: /* * no local regular files yet */ - if (unlikely((be16_to_cpu(dip->di_core.di_mode) & S_IFMT) == S_IFREG)) { + if (unlikely((be16_to_cpu(dip->di_mode) & S_IFMT) == S_IFREG)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " "(local format for regular file).", @@ -408,7 +408,7 @@ xfs_iformat( return XFS_ERROR(EFSCORRUPTED); } - di_size = be64_to_cpu(dip->di_core.di_size); + di_size = be64_to_cpu(dip->di_size); if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " @@ -450,7 +450,7 @@ xfs_iformat( ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP); ip->i_afp->if_ext_max = XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); - switch (dip->di_core.di_aformat) { + switch (dip->di_aformat) { case XFS_DINODE_FMT_LOCAL: atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); size = be16_to_cpu(atp->hdr.totsize); @@ -662,7 +662,7 @@ xfs_iformat_btree( void xfs_dinode_from_disk( xfs_icdinode_t *to, - xfs_dinode_core_t *from) + xfs_dinode_t *from) { to->di_magic = be16_to_cpu(from->di_magic); to->di_mode = be16_to_cpu(from->di_mode); @@ -696,7 +696,7 @@ xfs_dinode_from_disk( void xfs_dinode_to_disk( - xfs_dinode_core_t *to, + xfs_dinode_t *to, xfs_icdinode_t *from) { to->di_magic = cpu_to_be16(from->di_magic); @@ -783,9 +783,7 @@ uint xfs_dic2xflags( xfs_dinode_t *dip) { - xfs_dinode_core_t *dic = &dip->di_core; - - return _xfs_dic2xflags(be16_to_cpu(dic->di_flags)) | + return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); } @@ -896,14 +894,14 @@ xfs_iread( * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC) { xfs_idestroy(ip); xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " - "dip->di_core.di_magic (0x%x) != " + "di_magic (0x%x) != " "XFS_DINODE_MAGIC (0x%x)", - be16_to_cpu(dip->di_core.di_magic), + be16_to_cpu(dip->di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ return XFS_ERROR(EINVAL); @@ -916,8 +914,8 @@ xfs_iread( * specific information. * Otherwise, just get the truly permanent information. */ - if (dip->di_core.di_mode) { - xfs_dinode_from_disk(&ip->i_d, &dip->di_core); + if (dip->di_mode) { + xfs_dinode_from_disk(&ip->i_d, dip); error = xfs_iformat(ip, dip); if (error) { xfs_idestroy(ip); @@ -930,10 +928,10 @@ xfs_iread( return error; } } else { - ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); - ip->i_d.di_version = dip->di_core.di_version; - ip->i_d.di_gen = be32_to_cpu(dip->di_core.di_gen); - ip->i_d.di_flushiter = be16_to_cpu(dip->di_core.di_flushiter); + ip->i_d.di_magic = be16_to_cpu(dip->di_magic); + ip->i_d.di_version = dip->di_version; + ip->i_d.di_gen = be32_to_cpu(dip->di_gen); + ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter); /* * Make sure to pull in the mode here as well in * case the inode is released without being used. @@ -2274,7 +2272,7 @@ xfs_ifree( * This is a temporary hack that would require a proper fix * in the future. */ - dip->di_core.di_mode = 0; + dip->di_mode = 0; if (delete) { xfs_ifree_cluster(ip, tp, first_ino); @@ -2884,15 +2882,16 @@ xfs_iflush_fork( case XFS_DINODE_FMT_DEV: if (iip->ili_format.ilf_fields & XFS_ILOG_DEV) { ASSERT(whichfork == XFS_DATA_FORK); - dip->di_u.di_dev = cpu_to_be32(ip->i_df.if_u2.if_rdev); + xfs_dinode_put_rdev(dip, ip->i_df.if_u2.if_rdev); } break; case XFS_DINODE_FMT_UUID: if (iip->ili_format.ilf_fields & XFS_ILOG_UUID) { ASSERT(whichfork == XFS_DATA_FORK); - memcpy(&dip->di_u.di_muuid, &ip->i_df.if_u2.if_uuid, - sizeof(uuid_t)); + memcpy(XFS_DFORK_DPTR(dip), + &ip->i_df.if_u2.if_uuid, + sizeof(uuid_t)); } break; @@ -3270,11 +3269,11 @@ xfs_iflush_int( */ xfs_synchronize_atime(ip); - if (XFS_TEST_ERROR(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC, + if (XFS_TEST_ERROR(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC, mp, XFS_ERRTAG_IFLUSH_1, XFS_RANDOM_IFLUSH_1)) { xfs_cmn_err(XFS_PTAG_IFLUSH, CE_ALERT, mp, "xfs_iflush: Bad inode %Lu magic number 0x%x, ptr 0x%p", - ip->i_ino, be16_to_cpu(dip->di_core.di_magic), dip); + ip->i_ino, be16_to_cpu(dip->di_magic), dip); goto corrupt_out; } if (XFS_TEST_ERROR(ip->i_d.di_magic != XFS_DINODE_MAGIC, @@ -3337,7 +3336,7 @@ xfs_iflush_int( * because if the inode is dirty at all the core must * be. */ - xfs_dinode_to_disk(&dip->di_core, &ip->i_d); + xfs_dinode_to_disk(dip, &ip->i_d); /* Wrap, we never let the log put out DI_MAX_FLUSH */ if (ip->i_d.di_flushiter == DI_MAX_FLUSH) @@ -3357,7 +3356,7 @@ xfs_iflush_int( * Convert it back. */ ASSERT(ip->i_d.di_nlink <= XFS_MAXLINK_1); - dip->di_core.di_onlink = cpu_to_be16(ip->i_d.di_nlink); + dip->di_onlink = cpu_to_be16(ip->i_d.di_nlink); } else { /* * The superblock version has already been bumped, @@ -3365,12 +3364,12 @@ xfs_iflush_int( * format permanent. */ ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_core.di_version = XFS_DINODE_VERSION_2; + dip->di_version = XFS_DINODE_VERSION_2; ip->i_d.di_onlink = 0; - dip->di_core.di_onlink = 0; + dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); - memset(&(dip->di_core.di_pad[0]), 0, - sizeof(dip->di_core.di_pad)); + memset(&(dip->di_pad[0]), 0, + sizeof(dip->di_pad)); ASSERT(ip->i_d.di_projid == 0); } } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-09 10:42:43.000000000 +0200 @@ -2316,7 +2316,7 @@ xlog_recover_do_inode_trans( * Make sure the place we're flushing out to really looks * like an inode! */ - if (unlikely(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC)) { + if (unlikely(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC)) { xfs_buf_relse(bp); xfs_fs_cmn_err(CE_ALERT, mp, "xfs_inode_recover: Bad inode magic number, dino ptr = 0x%p, dino bp = 0x%p, ino = %Ld", @@ -2339,12 +2339,12 @@ xlog_recover_do_inode_trans( } /* Skip replay when the on disk inode is newer than the log one */ - if (dicp->di_flushiter < be16_to_cpu(dip->di_core.di_flushiter)) { + if (dicp->di_flushiter < be16_to_cpu(dip->di_flushiter)) { /* * Deal with the wrap case, DI_MAX_FLUSH is less * than smaller numbers */ - if (be16_to_cpu(dip->di_core.di_flushiter) == DI_MAX_FLUSH && + if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && dicp->di_flushiter < (DI_MAX_FLUSH >> 1)) { /* do nothing */ } else { @@ -2404,7 +2404,7 @@ xlog_recover_do_inode_trans( error = EFSCORRUPTED; goto error; } - if (unlikely(item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t))) { + if (unlikely(item->ri_buf[1].i_len > sizeof(struct xfs_icdinode))) { XFS_CORRUPTION_ERROR("xlog_recover_do_inode_trans(7)", XFS_ERRLEVEL_LOW, mp, dicp); xfs_buf_relse(bp); @@ -2416,23 +2416,24 @@ xlog_recover_do_inode_trans( } /* The core is in in-core format */ - xfs_dinode_to_disk(&dip->di_core, - (xfs_icdinode_t *)item->ri_buf[1].i_addr); + xfs_dinode_to_disk(dip, (xfs_icdinode_t *)item->ri_buf[1].i_addr); /* the rest is in on-disk format */ - if (item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t)) { - memcpy((xfs_caddr_t) dip + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_addr + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_len - sizeof(xfs_dinode_core_t)); + if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) { + memcpy((xfs_caddr_t) dip + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_addr + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_len - sizeof(struct xfs_icdinode)); } fields = in_f->ilf_fields; switch (fields & (XFS_ILOG_DEV | XFS_ILOG_UUID)) { case XFS_ILOG_DEV: - dip->di_u.di_dev = cpu_to_be32(in_f->ilf_u.ilfu_rdev); + xfs_dinode_put_rdev(dip, in_f->ilf_u.ilfu_rdev); break; case XFS_ILOG_UUID: - dip->di_u.di_muuid = in_f->ilf_u.ilfu_uuid; + memcpy(XFS_DFORK_DPTR(dip), + &in_f->ilf_u.ilfu_uuid, + sizeof(uuid_t)); break; } @@ -2448,12 +2449,12 @@ xlog_recover_do_inode_trans( switch (fields & XFS_ILOG_DFORK) { case XFS_ILOG_DDATA: case XFS_ILOG_DEXT: - memcpy(&dip->di_u, src, len); + memcpy(XFS_DFORK_DPTR(dip), src, len); break; case XFS_ILOG_DBROOT: xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, - &dip->di_u.di_bmbt, + (xfs_bmdr_block_t *)XFS_DFORK_DPTR(dip), XFS_DFORK_DSIZE(dip, mp)); break; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-09 10:42:43.000000000 +0200 @@ -19,7 +19,6 @@ #define __XFS_INODE_H__ struct xfs_dinode; -struct xfs_dinode_core; struct xfs_inode; /* @@ -112,7 +111,7 @@ typedef struct xfs_ictimestamp { } xfs_ictimestamp_t; /* - * NOTE: This structure must be kept identical to struct xfs_dinode_core + * NOTE: This structure must be kept identical to struct xfs_dinode * in xfs_dinode.h except for the endianess annotations. */ typedef struct xfs_icdinode { @@ -539,8 +538,8 @@ int xfs_itobp(struct xfs_mount *, struc struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, - struct xfs_dinode_core *); -void xfs_dinode_to_disk(struct xfs_dinode_core *, + struct xfs_dinode *); +void xfs_dinode_to_disk(struct xfs_dinode *, struct xfs_icdinode *); void xfs_idestroy_fork(struct xfs_inode *, int); void xfs_idata_realloc(struct xfs_inode *, int, int); Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-09 10:42:43.000000000 +0200 @@ -125,13 +125,9 @@ STATIC void xfs_bulkstat_one_dinode( xfs_mount_t *mp, /* mount point for filesystem */ xfs_ino_t ino, /* inode number to get data for */ - xfs_dinode_t *dip, /* dinode inode pointer */ + xfs_dinode_t *dic, /* dinode inode pointer */ xfs_bstat_t *buf) /* return buffer */ { - xfs_dinode_core_t *dic; /* dinode core info pointer */ - - dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -162,7 +158,7 @@ xfs_bulkstat_one_dinode( buf->bs_mtime.tv_nsec = be32_to_cpu(dic->di_mtime.t_nsec); buf->bs_ctime.tv_sec = be32_to_cpu(dic->di_ctime.t_sec); buf->bs_ctime.tv_nsec = be32_to_cpu(dic->di_ctime.t_nsec); - buf->bs_xflags = xfs_dic2xflags(dip); + buf->bs_xflags = xfs_dic2xflags(dic); buf->bs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->bs_extents = be32_to_cpu(dic->di_nextents); buf->bs_gen = be32_to_cpu(dic->di_gen); @@ -173,7 +169,7 @@ xfs_bulkstat_one_dinode( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->bs_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->bs_rdev = xfs_dinode_get_rdev(dic); buf->bs_blksize = BLKDEV_IOSIZE; buf->bs_blocks = 0; break; @@ -287,19 +283,19 @@ xfs_bulkstat_use_dinode( * to disk yet. This is a temporary hack that would require a proper * fix in the future. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC || - !XFS_DINODE_GOOD_VERSION(dip->di_core.di_version) || - !dip->di_core.di_mode) + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC || + !XFS_DINODE_GOOD_VERSION(dip->di_version) || + !dip->di_mode) return 0; if (flags & BULKSTAT_FG_QUICK) { *dipp = dip; return 1; } /* BULKSTAT_FG_INLINE: if attr fork is local, or not there, use it */ - aformat = dip->di_core.di_aformat; + aformat = dip->di_aformat; if ((XFS_DFORK_Q(dip) == 0) || (aformat == XFS_DINODE_FMT_LOCAL) || - (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_core.di_anextents)) { + (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_anextents)) { *dipp = dip; return 1; } Index: linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dir2_sf.h 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h 2008-10-09 10:42:43.000000000 +0200 @@ -34,13 +34,6 @@ struct xfs_mount; struct xfs_trans; /* - * Maximum size of a shortform directory. - */ -#define XFS_DIR2_SF_MAX_SIZE \ - (XFS_DINODE_MAX_SIZE - (uint)sizeof(xfs_dinode_core_t) - \ - (uint)sizeof(xfs_agino_t)) - -/* * Inode number stored as 8 8-bit values. */ typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 10:42:43.000000000 +0200 @@ -355,12 +355,12 @@ xfs_ialloc_ag_alloc( xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { int ioffset = i << args.mp->m_sb.sb_inodelog; - uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + uint isize = sizeof(struct xfs_dinode); free = XFS_MAKE_IPTR(args.mp, fbuf, i); - free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); - free->di_core.di_version = version; - free->di_core.di_gen = cpu_to_be32(gen); + free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC); + free->di_version = version; + free->di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-09 10:42:43.000000000 +0200 @@ -575,8 +575,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; - mp->m_litino = sbp->sb_inodesize - - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); + mp->m_litino = sbp->sb_inodesize - sizeof(struct xfs_dinode); mp->m_blockmask = sbp->sb_blocksize - 1; mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; mp->m_blockwmask = mp->m_blockwsize - 1; Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-09 10:42:43.000000000 +0200 @@ -3634,10 +3634,11 @@ xfs_inodebuf(xfs_buf_t *bp) di = (xfs_dinode_t *)xfs_buf_offset(bp, i * 256); - xfs_dinode_from_disk(&dic, &di->di_core); + xfs_dinode_from_disk(&dic, di); xfs_prdinode_incore(&dic); kdb_printf("next_unlinked 0x%x u@0x%p\n", - be32_to_cpu(di->di_next_unlinked), &di->di_u); + be32_to_cpu(di->di_next_unlinked), + XFS_DFORK_DPTR(di)); } } @@ -4846,7 +4847,7 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum kdb_printf("buf 0x%p dir/attr node 0x%p\n", bp, node); xfsidbg_xdanode(node); } - } else if (be16_to_cpu((di = d)->di_core.di_magic) == XFS_DINODE_MAGIC) { + } else if (be16_to_cpu((di = d)->di_magic) == XFS_DINODE_MAGIC) { if (summary) { kdb_printf("Disk Inode (at 0x%p)\n", di); } else { Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-09 10:40:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-09 10:42:43.000000000 +0200 @@ -281,7 +281,7 @@ xfs_inode_item_format( xfs_mark_inode_dirty_sync(ip); vecp->i_addr = (xfs_caddr_t)&ip->i_d; - vecp->i_len = sizeof(xfs_dinode_core_t); + vecp->i_len = sizeof(struct xfs_icdinode); XLOG_VEC_SET_TYPE(vecp, XLOG_REG_TYPE_ICORE); vecp++; nvecs++; From owner-xfs@oss.sgi.com Thu Oct 9 11:53:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99IrPs6010083 for ; Thu, 9 Oct 2008 11:53:25 -0700 X-ASG-Debug-ID: 1223578504-3e3e004e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 84E54A2E927 for ; Thu, 9 Oct 2008 11:55:04 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id Y7ISdNGpPaPGLOKR for ; Thu, 09 Oct 2008 11:55:04 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m99It3IF007869 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Thu, 9 Oct 2008 20:55:03 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m99It24e007867 for xfs@oss.sgi.com; Thu, 9 Oct 2008 20:55:02 +0200 Date: Thu, 9 Oct 2008 20:55:02 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] kill XFS_DINODE_VERSION_ defines Subject: [PATCH 3/3] kill XFS_DINODE_VERSION_ defines Message-ID: <20081009185502.GC7583@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223578505 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7637 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- These names don't add any value at all over just using the numerical version. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:26.000000000 +0200 @@ -331,7 +331,7 @@ xfs_dip_to_stat( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->dt_nlink = be16_to_cpu(dic->di_onlink); /*buf->dt_xfs_projid = 0;*/ } else { Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:33.000000000 +0200 @@ -1132,7 +1132,7 @@ xfs_ioctl_setattr( * the superblock version number since projids didn't * exist before DINODE_VERSION_2 and SB_VERSION_NLINK. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) + if (ip->i_d.di_version == 1) xfs_bump_ino_vers2(tp, ip); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 18:01:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 18:01:54.000000000 +0200 @@ -18,11 +18,8 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -#define XFS_DINODE_VERSION_1 1 -#define XFS_DINODE_VERSION_2 2 -#define XFS_DINODE_GOOD_VERSION(v) \ - (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) -#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_GOOD_VERSION(v) (((v) == 1 || (v) == 2)) typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:39.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:49.000000000 +0200 @@ -321,9 +321,9 @@ xfs_ialloc_ag_alloc( * able to use the file system. */ if (xfs_sb_version_hasnlink(&args.mp->m_sb)) - version = XFS_DINODE_VERSION_2; + version = 2; else - version = XFS_DINODE_VERSION_1; + version = 1; /* * Seed the new inode cluster with a random generation number. This Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-09 17:59:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-09 18:00:25.000000000 +0200 @@ -959,7 +959,7 @@ xfs_iread( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + if (ip->i_d.di_version == 1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; ip->i_d.di_projid = 0; @@ -1128,8 +1128,8 @@ xfs_ialloc( * here rather than here and in the flush/logging code. */ if (xfs_sb_version_hasnlink(&tp->t_mountp->m_sb) && - ip->i_d.di_version == XFS_DINODE_VERSION_1) { - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version == 1) { + ip->i_d.di_version = 2; /* * We've already zeroed the old link count, the projid field, * and the pad field. @@ -1139,7 +1139,7 @@ xfs_ialloc( /* * Project ids won't be stored on disk if we are using a version 1 inode. */ - if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1)) + if ((prid != 0) && (ip->i_d.di_version == 1)) xfs_bump_ino_vers2(tp, ip); if (pip && XFS_INHERIT_GID(pip)) { @@ -3348,9 +3348,8 @@ xfs_iflush_int( * convert back to the old inode format. If the superblock version * has been updated, then make the conversion permanent. */ - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -3363,8 +3362,8 @@ xfs_iflush_int( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; + dip->di_version = 2; ip->i_d.di_onlink = 0; dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-09 18:00:54.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-09 18:01:19.000000000 +0200 @@ -296,9 +296,8 @@ xfs_inode_item_format( * has a new version number, then we don't bother converting back. */ mp = ip->i_mount; - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -311,7 +310,7 @@ xfs_inode_item_format( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); } Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-09 17:59:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-09 17:59:33.000000000 +0200 @@ -139,7 +139,7 @@ xfs_bulkstat_one_dinode( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->bs_nlink = be16_to_cpu(dic->di_onlink); buf->bs_projid = 0; } else { Index: linux-2.6-xfs/fs/xfs/xfs_utils.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_utils.c 2008-10-09 17:59:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_utils.c 2008-10-09 17:59:46.000000000 +0200 @@ -268,9 +268,9 @@ xfs_bump_ino_vers2( xfs_mount_t *mp; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1); + ASSERT(ip->i_d.di_version == 1); - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); mp = tp->t_mountp; @@ -302,7 +302,7 @@ xfs_bumplink( ASSERT(ip->i_d.di_nlink > 0); ip->i_d.di_nlink++; inc_nlink(VFS_I(ip)); - if ((ip->i_d.di_version == XFS_DINODE_VERSION_1) && + if ((ip->i_d.di_version == 1) && (ip->i_d.di_nlink > XFS_MAXLINK_1)) { /* * The inode has increased its number of links beyond From owner-xfs@oss.sgi.com Thu Oct 9 15:31:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99MVsei029328 for ; Thu, 9 Oct 2008 15:31:54 -0700 X-ASG-Debug-ID: 1223591611-552f01940000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EEC314DC0F3 for ; Thu, 9 Oct 2008 15:33:32 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id hoxZG7mfOlmTFVUr for ; Thu, 09 Oct 2008 15:33:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhQDAE8i7kh5LGoriGdsb2JhbACTWQEBARUiq1qBag X-IronPort-AV: E=Sophos;i="4.33,385,1220193000"; d="scan'208";a="226016350" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 10 Oct 2008 09:03:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ko44W-0007aG-Ty; Fri, 10 Oct 2008 09:33:28 +1100 Date: Fri, 10 Oct 2008 09:33:28 +1100 From: Dave Chinner To: Martin Steigerwald Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Subject: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Message-ID: <20081009223328.GI9597@disturbed> Mail-Followup-To: Martin Steigerwald , linux-xfs@oss.sgi.com References: <1223417377-8679-1-git-send-email-david@fromorbit.com> <200810092017.33042.Martin@lichtvoll.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200810092017.33042.Martin@lichtvoll.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223591612 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085, COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7649 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' 0.10 BSF_SC0_SA085 Custom Rule SA085 On Thu, Oct 09, 2008 at 08:17:32PM +0200, Martin Steigerwald wrote: > > Hi Dave, > > Am Mittwoch 08 Oktober 2008 schrieb Dave Chinner: > > The busy extent tracking in XFS is currently very static and has > > some performance issues. We can only track 128 busy extents per AG, > > and when we overflow this we fall back to synchronous transactions. > > Also, every time we re-use a busy extent we cause a synchronous log > > force, which stops all allocation and freeing in that AG while the > > log force is in progress. > > Could this accelerate > > tar -xf linux-2.6.26.tar.gz > rm -r linux-2.6.26 Not really. There is very little reuse of freed extents in this type of workload. It's when you have 10 users on the filesystem all doing that sort of thing that it will make a difference. > ? > > A student in the Linux Performance Tuning course I hold this week compared > this with ext3, even with the improved mkfs.xfs options (but without > lazy-count=1, cause mkfs.xfs from Debian Etch is too old) and even with > noop as IO scheduler. AFAIR XFS took roughly 3-4 times as long as Ext3, I > did not note the exact numbers. This was with 2.6.25. I can repeat the > test locally with 2.6.26.5 if wanted. Yes, that's par for the course. XFS journals transactions almost immediately, whereas ext3 gathers lots of changees in memory and checkpoints infrequently. Hence XFS writes a lot more to the journal and is hence slower. The dynamic extent tracking is a necessary step to moving the XFS journalling to a more checkpoint-like setup which would perform much less journal I/O and hence run substantially faster.... See the asynchronous transaction aggregation section here: http://xfs.org/index.php/Improving_Metadata_Performance_By_Reducing_Journal_Overhead Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 15:33:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99MXvAf029534 for ; Thu, 9 Oct 2008 15:33:57 -0700 X-ASG-Debug-ID: 1223591736-4ce402100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 602634DC119 for ; Thu, 9 Oct 2008 15:35:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id V7MijC9aNCoWROuV for ; Thu, 09 Oct 2008 15:35:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhQDAE8i7kh5LGoriGdsb2JhbACTWQEBARUiq1qBag X-IronPort-AV: E=Sophos;i="4.33,385,1220193000"; d="scan'208";a="226018950" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 10 Oct 2008 09:05:36 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ko46Y-0007d9-E8; Fri, 10 Oct 2008 09:35:34 +1100 Date: Fri, 10 Oct 2008 09:35:34 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection Subject: Re: [PATCH] fix barrier fail detection Message-ID: <20081009223534.GJ9597@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, toei.rei@stargazer.at References: <20081009130042.GA21071@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081009130042.GA21071@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223591738 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7649 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 09, 2008 at 03:00:42PM +0200, Christoph Hellwig wrote: > Currently we disable barriers as soon as we get a buffer in xlog_iodone > that has the XBF_ORDERED flag cleared. But this can be the case not only > for buffers where the barrier failed, but also the first buffer of a > split log write in case of a log wraparound. Due to the disabled > barriers we can easily get directory corruption on unclean shutdowns. > So instead of using this check add a new buffer flag for failed barrier > writes. > > This is a regression vs 2.6.26 caused by patch to use the right macro > to check for the ORDERED flag, as we previously got true returned for > every buffer. > > Thanks to Toei Rei for reporting the bug. Looks good. Should this be sent straight to Linus to get it into .27? If you want to do that, you can add my SOB. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 15:46:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m99MkuX7030738 for ; Thu, 9 Oct 2008 15:46:56 -0700 X-ASG-Debug-ID: 1223592515-433002360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0574013D6FEB for ; Thu, 9 Oct 2008 15:48:35 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id gAgIfID5Hyts0pYl for ; Thu, 09 Oct 2008 15:48:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhQDAJgl7kh5LGoriGdsb2JhbACTWQEBARUiq3GBag X-IronPort-AV: E=Sophos;i="4.33,385,1220193000"; d="scan'208";a="226033729" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 10 Oct 2008 09:18:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ko4J6-0007uU-Tv; Fri, 10 Oct 2008 09:48:32 +1100 Date: Fri, 10 Oct 2008 09:48:32 +1100 From: Dave Chinner To: Lachlan McIlroy , xfs-oss , xfs-dev X-ASG-Orig-Subj: Re: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations Subject: Re: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations Message-ID: <20081009224832.GK9597@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss , xfs-dev References: <48EB1ABD.3020503@sgi.com> <20081009122726.GH9597@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20081009122726.GH9597@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223592517 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7649 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 09, 2008 at 11:27:26PM +1100, Dave Chinner wrote: > On Tue, Oct 07, 2008 at 06:15:57PM +1000, Lachlan McIlroy wrote: > > If we get an error in xfs_page_state_convert() - and it's not EAGAIN - then > > we throw away the dirty page without converting the delayed allocation. This > > leaves delayed allocations that can never be removed and confuses code that > > expects a flush of the file to clear them. We need to re-dirty the page on > > error so we can try again later or report that the flush failed. > > Actually, those delalloc pages can be removed - they just need to > be handled in ->releasepage. The problem there is that the > delalloc state is checked by looking at the bufferhead, and by > the time we get to ->releasepage the buffer heads have already gone > through discard_buffer() and lost the buffer_delay() flag. > > IIRC I had a patch that did the delalloc conversion correctly in > ->releasepage by utilising a custom ->invalidatepage callouut, but > the performance overhead was very bad because it is done a page at a > time. ISTR even posting it to oss.... FWIW, here's the discussion: http://oss.sgi.com/archives/xfs/2008-04/msg00542.html I'm not saying that we ѕhould be fixing this right now, but this is the underlying problem that is causing the direct I/O read to trip over stale delalloc extents once they've been invalidated. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 17:14:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A0Edbt008546 for ; Thu, 9 Oct 2008 17:14:40 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 700DE30408F; Thu, 9 Oct 2008 17:16:17 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA25488; Fri, 10 Oct 2008 11:16:15 +1100 Message-ID: <48EEACD6.7070805@sgi.com> Date: Fri, 10 Oct 2008 11:16:06 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com Subject: Re: [PATCH] XFS: don't block in xfs_qm_dqflush() during async writeback References: <1223416677-8458-1-git-send-email-david@fromorbit.com> In-Reply-To: <1223416677-8458-1-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Normally dquots are written back via delayed write mechanisms. They > are flushed to their backing buffer by xfssyncd, which is then > pushed out by either AIL or xfsbufd flushing. The flush from the > xfssyncd is supposed to be non-blocking, but xfs_qm_dqflush() always > waits for pinned duots, which means that it will block for the > length of time it takes to do a synchronous log force. This causes > unnecessary extra log I/O to be issued whenever we try to flush a > busy dquot. > > Avoid the log forces and blocking xfssyncd by making xfs_qm_dqflush() > pay attention to what type of sync it is doing when it sees a pinned > dquot and not waiting when doing non-blocking flushes. > This patch looks good. Thanks, Pete From owner-xfs@oss.sgi.com Thu Oct 9 17:42:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A0g2FJ010308 for ; Thu, 9 Oct 2008 17:42:03 -0700 X-ASG-Debug-ID: 1223599422-191702180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E7288129DE74 for ; Thu, 9 Oct 2008 17:43:42 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id REfurvFMKP4wqQSC for ; Thu, 09 Oct 2008 17:43:42 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9A0hfIF022435 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Fri, 10 Oct 2008 02:43:41 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9A0haHt022431; Fri, 10 Oct 2008 02:43:36 +0200 Date: Fri, 10 Oct 2008 02:43:36 +0200 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection Subject: Re: [PATCH] fix barrier fail detection Message-ID: <20081010004336.GA22273@lst.de> References: <20081009130042.GA21071@lst.de> <20081009223534.GJ9597@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081009223534.GJ9597@disturbed> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223599423 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7655 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 10, 2008 at 09:35:34AM +1100, Dave Chinner wrote: > Looks good. Should this be sent straight to Linus to get it into > .27? If you want to do that, you can add my SOB. I'll hope Lachlan or Tim as maintainers will pick up.. From owner-xfs@oss.sgi.com Thu Oct 9 17:42:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A0geH9010497 for ; Thu, 9 Oct 2008 17:42:40 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 30D608F80A5; Thu, 9 Oct 2008 17:44:15 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA26068; Fri, 10 Oct 2008 11:44:12 +1100 Message-ID: <48EEA55C.9010909@sgi.com> Date: Fri, 10 Oct 2008 11:44:12 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com, toei.rei@stargazer.at Subject: Re: [PATCH] fix barrier fail detection References: <20081009130042.GA21071@lst.de> In-Reply-To: <20081009130042.GA21071@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Currently we disable barriers as soon as we get a buffer in xlog_iodone > that has the XBF_ORDERED flag cleared. But this can be the case not only > for buffers where the barrier failed, but also the first buffer of a > split log write in case of a log wraparound. Oops. > Due to the disabled > barriers we can easily get directory corruption on unclean shutdowns. > So instead of using this check add a new buffer flag for failed barrier > writes. > Looks good and I'll check it in to ptools. Thanks, Tim. > This is a regression vs 2.6.26 caused by patch to use the right macro > to check for the ORDERED flag, as we previously got true returned for > every buffer. > > Thanks to Toei Rei for reporting the bug. > > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:38:38.000000000 +0200 > @@ -1007,6 +1007,7 @@ xfs_buf_iodone_work( > (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { > XB_TRACE(bp, "ordered_retry", bp->b_iodone); > bp->b_flags &= ~XBF_ORDERED; > + bp->b_flags |= _XFS_BARRIER_FAILED; > xfs_buf_iorequest(bp); > } else if (bp->b_iodone) > (*(bp->b_iodone))(bp); > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:38:15.000000000 +0200 > @@ -85,6 +85,14 @@ typedef enum { > * modifications being lost. > */ > _XBF_PAGE_LOCKED = (1 << 22), > + > + /* > + * If we try a barrier write, but it fails we have to communicate > + * this to the upper layers. Unfortunately b_error gets overwritten > + * when the buffer is re-issued so we have to add another flag to > + * keep this information. > + */ > + _XFS_BARRIER_FAILED = (1 << 23), > } xfs_buf_flags_t; > > typedef enum { > Index: linux-2.6-xfs/fs/xfs/xfs_log.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-10-09 13:38:44.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-10-09 13:39:32.000000000 +0200 > @@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp) > * layer, it means the underlyin device no longer supports > * barrier I/O. Warn loudly and turn off barriers. > */ > - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { > + if (bp->b_flags & _XFS_BARRIER_FAILED) { > + bp->b_flags &= ~_XFS_BARRIER_FAILED; > l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; > xfs_fs_cmn_err(CE_WARN, l->l_mp, > "xlog_iodone: Barriers are no longer supported" > From owner-xfs@oss.sgi.com Thu Oct 9 18:11:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A1BNUt012457 for ; Thu, 9 Oct 2008 18:11:24 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 1C68330408C; Thu, 9 Oct 2008 18:13:00 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA26716; Fri, 10 Oct 2008 12:12:58 +1100 Message-ID: <48EEAC1A.2080309@sgi.com> Date: Fri, 10 Oct 2008 12:12:58 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com, toei.rei@stargazer.at Subject: Re: [PATCH] fix barrier fail detection References: <20081009130042.GA21071@lst.de> In-Reply-To: <20081009130042.GA21071@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Currently we disable barriers as soon as we get a buffer in xlog_iodone > that has the XBF_ORDERED flag cleared. But this can be the case not only > for buffers where the barrier failed, but also the first buffer of a > split log write in case of a log wraparound. Due to the disabled > barriers we can easily get directory corruption on unclean shutdowns. > So instead of using this check add a new buffer flag for failed barrier > writes. > > This is a regression vs 2.6.26 caused by patch to use the right macro > to check for the ORDERED flag, as we previously got true returned for > every buffer. > > Thanks to Toei Rei for reporting the bug. > > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:38:38.000000000 +0200 > @@ -1007,6 +1007,7 @@ xfs_buf_iodone_work( > (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { > XB_TRACE(bp, "ordered_retry", bp->b_iodone); > bp->b_flags &= ~XBF_ORDERED; > + bp->b_flags |= _XFS_BARRIER_FAILED; > xfs_buf_iorequest(bp); > } else if (bp->b_iodone) > (*(bp->b_iodone))(bp); Actually, probably need to update the comment for this one. The existing comment being: > /* > * We can get an EOPNOTSUPP to ordered writes. Here we clear the > * ordered flag and reissue them. Because we can't tell the higher > * layers directly that they should not issue ordered I/O anymore, they > * need to check if the ordered flag was cleared during I/O completion. > */ > if ((bp->b_error == EOPNOTSUPP) && > (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { > XB_TRACE(bp, "ordered_retry", bp->b_iodone); > bp->b_flags &= ~XBF_ORDERED; > bp->b_flags |= _XFS_BARRIER_FAILED; > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:36:50.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-10-09 13:38:15.000000000 +0200 > @@ -85,6 +85,14 @@ typedef enum { > * modifications being lost. > */ > _XBF_PAGE_LOCKED = (1 << 22), > + > + /* > + * If we try a barrier write, but it fails we have to communicate > + * this to the upper layers. Unfortunately b_error gets overwritten > + * when the buffer is re-issued so we have to add another flag to > + * keep this information. > + */ > + _XFS_BARRIER_FAILED = (1 << 23), > } xfs_buf_flags_t; > > typedef enum { > Index: linux-2.6-xfs/fs/xfs/xfs_log.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-10-09 13:38:44.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-10-09 13:39:32.000000000 +0200 > @@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp) > * layer, it means the underlyin device no longer supports > * barrier I/O. Warn loudly and turn off barriers. > */ > - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { > + if (bp->b_flags & _XFS_BARRIER_FAILED) { > + bp->b_flags &= ~_XFS_BARRIER_FAILED; > l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; > xfs_fs_cmn_err(CE_WARN, l->l_mp, > "xlog_iodone: Barriers are no longer supported" > Okay, we probably should update this comment too. The existing comment being: > /* > * If the ordered flag has been removed by a lower > * layer, it means the underlyin device no longer supports > * barrier I/O. Warn loudly and turn off barriers. > */ Might as well fix the existing typo "underlyin" in the comment as well :) Thanks, --Tim From owner-xfs@oss.sgi.com Thu Oct 9 20:48:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A3m74L026551 for ; Thu, 9 Oct 2008 20:48:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 0C15B8F8074; Thu, 9 Oct 2008 20:49:41 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA29213; Fri, 10 Oct 2008 14:49:39 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id A064858C52B5; Fri, 10 Oct 2008 14:49:39 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - move sync code to its own file Message-Id: <20081010034939.A064858C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 14:49:39 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) move sync code to its own file The sync code in XFS is spread around several files. While it used to make sense to have such a distribution, the code is about to be cleaned up and so centralising it in one spot as the first step makes sense. Signed-off-by: Dave Chinner Date: Fri Oct 10 14:48:57 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32282a fs/xfs/linux-2.6/xfs_sync.h - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h fs/xfs/linux-2.6/xfs_sync.c - 1.1 - new http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c fs/xfs/Makefile - 1.66 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/Makefile.diff?r1=text&tr1=1.66&r2=text&tr2=1.65&f=h fs/xfs/xfs_vfsops.c - 1.575 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.575&r2=text&tr2=1.574&f=h fs/xfs/linux-2.6/xfs_super.c - 1.451 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.451&r2=text&tr2=1.450&f=h fs/xfs/xfs_vfsops.h - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h - move sync code to its own file From owner-xfs@oss.sgi.com Thu Oct 9 20:54:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A3sNVd027102 for ; Thu, 9 Oct 2008 20:54:24 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 884C990896; Thu, 9 Oct 2008 20:55:57 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA29273; Fri, 10 Oct 2008 14:55:55 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 86BA958C52B5; Fri, 10 Oct 2008 14:55:55 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - move xfssyncd code to xfs_sync.c Message-Id: <20081010035555.86BA958C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 14:55:55 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) move xfssyncd code to xfs_sync.c Move all the xfssyncd code to the new xfs_sync.c file. This places it closer to the actual code that it interacts with, rather than just being associated with high level VFS code. Signed-off-by: Dave Chinner Date: Fri Oct 10 14:54:49 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32283a fs/xfs/xfs_mount.h - 1.277 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.277&r2=text&tr2=1.276&f=h fs/xfs/linux-2.6/xfs_vfs.h - 1.82 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vfs.h.diff?r1=text&tr1=1.82&r2=text&tr2=1.81&f=h fs/xfs/linux-2.6/xfs_super.h - 1.82 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.h.diff?r1=text&tr1=1.82&r2=text&tr2=1.81&f=h fs/xfs/linux-2.6/xfs_super.c - 1.452 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.452&r2=text&tr2=1.451&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h - move xfssyncd code to xfs_sync.c From owner-xfs@oss.sgi.com Thu Oct 9 21:03:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A43fC1027848 for ; Thu, 9 Oct 2008 21:03:41 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 30ED5304076; Thu, 9 Oct 2008 21:05:15 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29488; Fri, 10 Oct 2008 15:05:14 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 9A1AA58C52B5; Fri, 10 Oct 2008 15:05:14 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() Message-Id: <20081010040514.9A1AA58C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:05:14 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() xfs_iflush_all() walks the m_inodes list to find inodes that need reclaiming. We already have such a list - the m_del_inodes list. Replace xfs_iflush_all() with a call to xfs_finish_reclaim_all() and clean up xfs_finish_reclaim_all() to handle the different flush modes now needed. Originally based on a patch from Christoph Hellwig. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o revert xfs_syncsub() inode reclaim behaviour back to original code o xfs_quiesce_fs() should use XFS_IFLUSH_DELWRI_ELSE_ASYNC, not XFS_IFLUSH_ASYNC, to prevent change of behaviour. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:04:08 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32284a fs/xfs/xfs_vnodeops.c - 1.776 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.776&r2=text&tr2=1.775&f=h fs/xfs/xfs_vfsops.c - 1.576 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.576&r2=text&tr2=1.575&f=h fs/xfs/xfs_mount.c - 1.447 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.447&r2=text&tr2=1.446&f=h fs/xfs/xfs_inode.c - 1.526 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.526&r2=text&tr2=1.525&f=h fs/xfs/xfs_inode.h - 1.260 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.260&r2=text&tr2=1.259&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h - Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() From owner-xfs@oss.sgi.com Thu Oct 9 21:07:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A47qPe028276 for ; Thu, 9 Oct 2008 21:07:52 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id AE8E2304078; Thu, 9 Oct 2008 21:09:32 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29545; Fri, 10 Oct 2008 15:09:31 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 5205558C52B5; Fri, 10 Oct 2008 15:09:31 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - Use the inode tree for finding dirty inodes Message-Id: <20081010040931.5205558C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:09:31 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Use the inode tree for finding dirty inodes Update xfs_sync_inodes to walk the inode radix tree cache to find dirty inodes. This removes a huge bunch of nasty, messy code for traversing the mount inode list safely and removes another user of the mount inode list. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:09:09 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32285a fs/xfs/linux-2.6/xfs_sync.c - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h - Use the inode tree for finding dirty inodes From owner-xfs@oss.sgi.com Thu Oct 9 21:10:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4AcNV028677 for ; Thu, 9 Oct 2008 21:10:38 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id DB84D8F8072; Thu, 9 Oct 2008 21:12:12 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29590; Fri, 10 Oct 2008 15:12:11 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 19AEE58C52B5; Fri, 10 Oct 2008 15:12:11 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - Traverse inode trees when releasing dquots Message-Id: <20081010041211.19AEE58C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:12:11 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Traverse inode trees when releasing dquots Make releasing all inode dquots traverse the per-ag inode radix trees rather than the mount inode list. This removes another user of the mount inode list. Version 3 o fix comment relating to avoiding trying to release the quota inodes and those in reclaim. Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:11:46 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32286a fs/xfs/linux-2.6/xfs_sync.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h - Traverse inode trees when releasing dquots From owner-xfs@oss.sgi.com Thu Oct 9 21:15:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4FQv3029347 for ; Thu, 9 Oct 2008 21:15:26 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 4365E304053; Thu, 9 Oct 2008 21:17:06 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29667; Fri, 10 Oct 2008 15:17:03 +1100 Message-ID: <48EED73F.1010208@sgi.com> Date: Fri, 10 Oct 2008 15:17:03 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com, toei.rei@stargazer.at Subject: Re: [PATCH] fix barrier fail detection References: <20081009130042.GA21071@lst.de> <48EEAC1A.2080309@sgi.com> In-Reply-To: <48EEAC1A.2080309@sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Timothy Shimmin wrote: > Christoph Hellwig wrote: >> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c >> =================================================================== >> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:36:50.000000000 +0200 >> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-10-09 13:38:38.000000000 +0200 >> @@ -1007,6 +1007,7 @@ xfs_buf_iodone_work( >> (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { >> XB_TRACE(bp, "ordered_retry", bp->b_iodone); >> bp->b_flags &= ~XBF_ORDERED; >> + bp->b_flags |= _XFS_BARRIER_FAILED; >> xfs_buf_iorequest(bp); >> } else if (bp->b_iodone) >> (*(bp->b_iodone))(bp); > > Actually, probably need to update the comment for this one. > >> Index: linux-2.6-xfs/fs/xfs/xfs_log.c >> =================================================================== >> --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-10-09 13:38:44.000000000 +0200 >> +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-10-09 13:39:32.000000000 +0200 >> @@ -1037,7 +1037,8 @@ xlog_iodone(xfs_buf_t *bp) >> * layer, it means the underlyin device no longer supports >> * barrier I/O. Warn loudly and turn off barriers. >> */ >> - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { >> + if (bp->b_flags & _XFS_BARRIER_FAILED) { >> + bp->b_flags &= ~_XFS_BARRIER_FAILED; >> l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; >> xfs_fs_cmn_err(CE_WARN, l->l_mp, >> "xlog_iodone: Barriers are no longer supported" >> > Okay, we probably should update this comment too. > > Might as well fix the existing typo "underlyin" in the comment as well :) > Thanks, > --Tim > i.e. something like: Index: 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-09-19 13:47:36.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.c 2008-10-10 15:07:51.316145158 +1100 @@ -1001,12 +1001,13 @@ xfs_buf_iodone_work( * We can get an EOPNOTSUPP to ordered writes. Here we clear the * ordered flag and reissue them. Because we can't tell the higher * layers directly that they should not issue ordered I/O anymore, they - * need to check if the ordered flag was cleared during I/O completion. + * need to check if the _XFS_BARRIER_FAILED flag was set during I/O completion. */ if ((bp->b_error == EOPNOTSUPP) && (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { XB_TRACE(bp, "ordered_retry", bp->b_iodone); bp->b_flags &= ~XBF_ORDERED; + bp->b_flags |= _XFS_BARRIER_FAILED; xfs_buf_iorequest(bp); } else if (bp->b_iodone) (*(bp->b_iodone))(bp); Index: 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-09-19 13:47:36.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.h 2008-10-10 11:54:23.269373217 +1100 @@ -85,6 +85,14 @@ typedef enum { * modifications being lost. */ _XBF_PAGE_LOCKED = (1 << 22), + + /* + * If we try a barrier write, but it fails we have to communicate + * this to the upper layers. Unfortunately b_error gets overwritten + * when the buffer is re-issued so we have to add another flag to + * keep this information. + */ + _XFS_BARRIER_FAILED = (1 << 23), } xfs_buf_flags_t; typedef enum { Index: 2.6.x-xfs-quilt/fs/xfs/xfs_log.c =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/xfs_log.c 2008-09-22 11:54:19.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/xfs_log.c 2008-10-10 15:09:56.967725107 +1100 @@ -1033,11 +1033,12 @@ xlog_iodone(xfs_buf_t *bp) l = iclog->ic_log; /* - * If the ordered flag has been removed by a lower - * layer, it means the underlyin device no longer supports + * If the _XFS_BARRIER_FAILED flag was set by a lower + * layer, it means the underlying device no longer supports * barrier I/O. Warn loudly and turn off barriers. */ - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { + if (bp->b_flags & _XFS_BARRIER_FAILED) { + bp->b_flags &= ~_XFS_BARRIER_FAILED; l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; xfs_fs_cmn_err(CE_WARN, l->l_mp, "xlog_iodone: Barriers are no longer supported" From owner-xfs@oss.sgi.com Thu Oct 9 21:16:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4GMxW029585 for ; Thu, 9 Oct 2008 21:16:22 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 50E9E30407A; Thu, 9 Oct 2008 21:18:00 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA29805; Fri, 10 Oct 2008 15:17:58 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16380) id C521E58C52B5; Fri, 10 Oct 2008 15:17:58 +1100 (EST) To: sgi.bugs.mangrove@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988147 - don't block in xfs_qm_dqflush() during async writeback. Message-Id: <20081010041758.C521E58C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:17:58 +1100 (EST) From: pleckie@sgi.com (Peter Leckie) don't block in xfs_qm_dqflush() during async writeback. Normally dquots are written back via delayed write mechanisms. They are flushed to their backing buffer by xfssyncd, which is then pushed out by either AIL or xfsbufd flushing. The flush from the xfssyncd is supposed to be non-blocking, but xfs_qm_dqflush() always waits for pinned duots, which means that it will block for the length of time it takes to do a synchronous log force. This causes unnecessary extra log I/O to be issued whenever we try to flush a busy dquot. Avoid the log forces and blocking xfssyncd by making xfs_qm_dqflush() pay attention to what type of sync it is doing when it sees a pinned dquot and not waiting when doing non-blocking flushes. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:17:11 EST 2008 Workarea: chook.melbourne.sgi.com:/build/pleckie/2.6.x-xfs Inspected by: david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32287a fs/xfs/quota/xfs_dquot.c - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h - don't block in xfs_qm_dqflush() during async writeback From owner-xfs@oss.sgi.com Thu Oct 9 21:25:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4PtE0030261 for ; Thu, 9 Oct 2008 21:25:55 -0700 X-ASG-Debug-ID: 1223612855-1c4e023c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 64B65A32661 for ; Thu, 9 Oct 2008 21:27:35 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id nBtXD44IhwJZe6Ic for ; Thu, 09 Oct 2008 21:27:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhQDAHN27kh5LGoriGdsb2JhbACTWQEBARUiqX2Bag X-IronPort-AV: E=Sophos;i="4.33,386,1220193000"; d="scan'208";a="226302229" Received: from ppp121-44-106-43.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.106.43]) by ipmail05.adl2.internode.on.net with ESMTP; 10 Oct 2008 14:57:33 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ko9bA-0002wk-EC; Fri, 10 Oct 2008 15:27:32 +1100 Date: Fri, 10 Oct 2008 15:27:32 +1100 From: Dave Chinner To: Timothy Shimmin Cc: Christoph Hellwig , xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection Subject: Re: [PATCH] fix barrier fail detection Message-ID: <20081010042732.GC8181@disturbed> Mail-Followup-To: Timothy Shimmin , Christoph Hellwig , xfs@oss.sgi.com, toei.rei@stargazer.at References: <20081009130042.GA21071@lst.de> <48EEAC1A.2080309@sgi.com> <48EED73F.1010208@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48EED73F.1010208@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223612856 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7666 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 10, 2008 at 03:17:03PM +1100, Timothy Shimmin wrote: > Timothy Shimmin wrote: ..... > > Actually, probably need to update the comment for this one. ..... > i.e. something like: Looks fine to me. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 9 21:47:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4lXZ5031794 for ; Thu, 9 Oct 2008 21:47:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 9297A304079; Thu, 9 Oct 2008 21:49:13 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA00341; Fri, 10 Oct 2008 15:49:12 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 2E3A61F08E6; Fri, 10 Oct 2008 15:49:12 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988146 - make xfsidbg independent of the main btree implementation. Message-Id: <20081010044912.2E3A61F08E6@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:49:12 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) make xfsidbg independent of the main btree implementation. Add a small btree framework inside xfsidbg which makes it independent of the main btree implementation and it's soon to be changing macros. This will also allow xfsidbg to easily select the right btree type depending on the magic number in the header. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 15:47:30 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32289a fs/xfs/xfsidbg.c - 1.368 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.368&r2=text&tr2=1.367&f=h - make xfsidbg independent of the main btree implementation. From owner-xfs@oss.sgi.com Thu Oct 9 21:55:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,MISSING_HEADERS autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4tDTS032383 for ; Thu, 9 Oct 2008 21:55:14 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 872B49088E; Thu, 9 Oct 2008 21:56:48 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA00412; Fri, 10 Oct 2008 15:56:46 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B91B958C52B5; Fri, 10 Oct 2008 15:56:46 +1100 (EST) Cc: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - Use the inode tree for finding dirty inodes Message-Id: <20081010045646.B91B958C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:56:46 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Use the inode tree for finding dirty inodes Update xfs_sync_inodes to walk the inode radix tree cache to find dirty inodes. This removes a huge bunch of nasty, messy code for traversing the mount inode list safely and removes another user of the mount inode list. Version 3 o rediff against new linux-2.6/xfs_sync.c code Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:56:17 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32290a fs/xfs/linux-2.6/xfs_sync.c - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h - Use the inode tree for finding dirty inodes From owner-xfs@oss.sgi.com Thu Oct 9 21:58:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A4w5fN032757 for ; Thu, 9 Oct 2008 21:58:06 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 5C32E304053; Thu, 9 Oct 2008 21:59:46 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA00463; Fri, 10 Oct 2008 15:59:44 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 8934D58C52B5; Fri, 10 Oct 2008 15:59:44 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - Traverse inode trees when releasing dquots Message-Id: <20081010045944.8934D58C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 15:59:44 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Traverse inode trees when releasing dquots Make releasing all inode dquots traverse the per-ag inode radix trees rather than the mount inode list. This removes another user of the mount inode list. Version 3 o fix comment relating to avoiding trying to release the quota inodes and those in reclaim. Version 2 o add comment explaining use of gang lookups for a single inode o use IRELE, not VN_RELE o move check for ag initialisation to caller. Signed-off-by: Dave Chinner Date: Fri Oct 10 15:59:17 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32291a fs/xfs/quota/xfs_qm_syscalls.c - 1.47 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm_syscalls.c.diff?r1=text&tr1=1.47&r2=text&tr2=1.46&f=h - Traverse inode trees when releasing dquots From owner-xfs@oss.sgi.com Thu Oct 9 22:01:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A51kQo000706 for ; Thu, 9 Oct 2008 22:01:47 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id BA16930405F; Thu, 9 Oct 2008 22:03:20 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA00664; Fri, 10 Oct 2008 16:03:19 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 56FBB1F08E9; Fri, 10 Oct 2008 16:03:19 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988146 - Cleanup maxrecs calculation. Message-Id: <20081010050319.56FBB1F08E9@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:03:19 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Cleanup maxrecs calculation. Clean up the way the maximum and minimum records for the btree blocks are calculated. For the alloc and inobt btrees all the values are pre-calculated in xfs_mount_common, and we switch the current loop around the ugly generic macros that use cpp token pasting to generate type names to two small helpers in normal C code. For the bmbt and bmdr trees these helpers also exist, but can be called during runtime, too. Here we also kill various macros dealing with them and inline the logic into the get_minrecs / get_maxrecs / get_dmaxrecs methods in xfs_bmap_btree.c. Note that all these new helpers take an xfs_mount * argument which will be needed to determine the size of a btree block once we add support for extended btree blocks with CRCs and other RAS information. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 16:02:17 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32292a fs/xfs/xfs_ialloc_btree.h - 1.42 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc_btree.h.diff?r1=text&tr1=1.42&r2=text&tr2=1.41&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_ialloc_btree.c - 1.107 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc_btree.c.diff?r1=text&tr1=1.107&r2=text&tr2=1.106&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_log_recover.c - 1.348 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.348&r2=text&tr2=1.347&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_bmap_btree.h - 1.92 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.h.diff?r1=text&tr1=1.92&r2=text&tr2=1.91&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_bmap_btree.c - 1.196 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.c.diff?r1=text&tr1=1.196&r2=text&tr2=1.195&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_mount.h - 1.278 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.278&r2=text&tr2=1.277&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_mount.c - 1.448 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.448&r2=text&tr2=1.447&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_btree.h - 1.98 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_btree.h.diff?r1=text&tr1=1.98&r2=text&tr2=1.97&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_inode.c - 1.527 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.527&r2=text&tr2=1.526&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_bmap.c - 1.412 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.412&r2=text&tr2=1.411&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_alloc_btree.h - 1.39 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.h.diff?r1=text&tr1=1.39&r2=text&tr2=1.38&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_alloc_btree.c - 1.111 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.c.diff?r1=text&tr1=1.111&r2=text&tr2=1.110&f=h - Cleanup maxrecs calculation. fs/xfs/xfs_dinode.h - 1.87 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dinode.h.diff?r1=text&tr1=1.87&r2=text&tr2=1.86&f=h - Cleanup maxrecs calculation. From owner-xfs@oss.sgi.com Thu Oct 9 22:04:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A5400I001051 for ; Thu, 9 Oct 2008 22:04:00 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id A86038F8073; Thu, 9 Oct 2008 22:05:34 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA00725; Fri, 10 Oct 2008 16:05:33 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 3768B58C52B5; Fri, 10 Oct 2008 16:05:33 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - remove the mount inode list Message-Id: <20081010050533.3768B58C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:05:33 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) remove the mount inode list Now we've removed all users of the mount inode list, we can kill it. This reduces the size of the xfs_inode by 2 pointers. Signed-off-by: Dave Chinner Date: Fri Oct 10 16:05:12 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32293a fs/xfs/xfs_iget.c - 1.247 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.247&r2=text&tr2=1.246&f=h fs/xfs/xfs_mount.h - 1.279 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.279&r2=text&tr2=1.278&f=h fs/xfs/xfs_mount.c - 1.449 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.449&r2=text&tr2=1.448&f=h fs/xfs/xfs_inode.h - 1.261 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.261&r2=text&tr2=1.260&f=h - remove the mount inode list From owner-xfs@oss.sgi.com Thu Oct 9 22:07:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_38 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A57NHR001505 for ; Thu, 9 Oct 2008 22:07:25 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 8E2B88F8076; Thu, 9 Oct 2008 22:09:04 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA00788; Fri, 10 Oct 2008 16:09:03 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 354B01F08E9; Fri, 10 Oct 2008 16:09:03 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PATIAL TAKE 988147 - cleanup btree record / key / ptr addressing macros Message-Id: <20081010050903.354B01F08E9@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:09:03 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) cleanup btree record / key / ptr addressing macros. Replace the generic record / key / ptr addressing macros that use cpp token pasting with simpler macros that do the job for just one given btree type. The new macros lose the cur argument and thus can be used outside the core btree code, but also gain an xfs_mount * argument to allow for checking the CRC flag in the near future. Note that many of these macros aren't actually used in the kernel code, but only in userspace (mostly in xfs_repair). Signed-off-by: Christoph Hellwig Date: Fri Oct 10 16:08:19 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,dchinner The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32295a fs/xfs/xfs_ialloc_btree.h - 1.43 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc_btree.h.diff?r1=text&tr1=1.43&r2=text&tr2=1.42&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_bmap_btree.h - 1.93 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.h.diff?r1=text&tr1=1.93&r2=text&tr2=1.92&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_bmap_btree.c - 1.197 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.c.diff?r1=text&tr1=1.197&r2=text&tr2=1.196&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_btree.h - 1.99 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_btree.h.diff?r1=text&tr1=1.99&r2=text&tr2=1.98&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_inode.c - 1.528 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.528&r2=text&tr2=1.527&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_fsops.c - 1.137 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_fsops.c.diff?r1=text&tr1=1.137&r2=text&tr2=1.136&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_bmap.c - 1.413 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.413&r2=text&tr2=1.412&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_alloc_btree.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h - cleanup btree record / key / ptr addressing macros. fs/xfs/xfs_alloc_btree.c - 1.112 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.c.diff?r1=text&tr1=1.112&r2=text&tr2=1.111&f=h - cleanup btree record / key / ptr addressing macros. From owner-xfs@oss.sgi.com Thu Oct 9 22:09:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A59Tjt001895 for ; Thu, 9 Oct 2008 22:09:31 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 4734B90896; Thu, 9 Oct 2008 22:11:04 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA00832; Fri, 10 Oct 2008 16:11:02 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 8851758FA1A4; Fri, 10 Oct 2008 16:11:02 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988139 - xfsidbg update for mount inode list Message-Id: <20081010051102.8851758FA1A4@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:11:02 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) xfsidbg update for mount inode list Kill the idbg users of the mount inode list. Compile tested only. Signed-off-by: Dave Chinner Date: Fri Oct 10 16:10:42 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-radix Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32296a fs/xfs/xfsidbg.c - 1.369 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.369&r2=text&tr2=1.368&f=h - xfsidbg update for mount inode list From owner-xfs@oss.sgi.com Thu Oct 9 22:17:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A5H7YL002729 for ; Thu, 9 Oct 2008 22:17:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id DFDC890896; Thu, 9 Oct 2008 22:18:47 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA01075; Fri, 10 Oct 2008 16:18:46 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 1E5421EE4D1; Fri, 10 Oct 2008 16:18:46 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988146 - Always use struct xfs_btree_block instead of short / longform structures. Message-Id: <20081010051846.1E5421EE4D1@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:18:46 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Always use struct xfs_btree_block instead of short / longform structures. Always use the generic xfs_btree_block type instead of the short / long structures. Add XFS_BTREE_SBLOCK_LEN / XFS_BTREE_LBLOCK_LEN defines for the length of a short / long form block. The rationale for this is that we will grow more btree block header variants to support CRCs and other RAS information, and always accessing them through the same datatype with unions for the short / long form pointers makes implementing this much easier. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 16:18:20 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32297a fs/xfs/xfs_bmap_btree.h - 1.94 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.h.diff?r1=text&tr1=1.94&r2=text&tr2=1.93&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_bmap.c - 1.414 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.414&r2=text&tr2=1.413&f=h - Always use struct xfs_btree_block instead of short / longform structures. From owner-xfs@oss.sgi.com Thu Oct 9 22:28:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A5SVtH003610 for ; Thu, 9 Oct 2008 22:28:31 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 89D3F8F8076; Thu, 9 Oct 2008 22:30:11 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA01303; Fri, 10 Oct 2008 16:30:09 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 014F658C52B5; Fri, 10 Oct 2008 16:30:08 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 988149 - fix barrier fail detection Message-Id: <20081010053009.014F658C52B5@chook.melbourne.sgi.com> Date: Fri, 10 Oct 2008 16:30:08 +1100 (EST) From: tes@sgi.com (Tim Shimmin) Fix barrier fail detection Currently we disable barriers as soon as we get a buffer in xlog_iodone that has the XBF_ORDERED flag cleared. But this can be the case not only for buffers where the barrier failed, but also the first buffer of a split log write in case of a log wraparound. Due to the disabled barriers we can easily get directory corruption on unclean shutdowns. So instead of using this check add a new buffer flag for failed barrier writes. This is a regression vs 2.6.26 caused by patch to use the right macro to check for the ORDERED flag, as we previously got true returned for every buffer. Thanks to Toei Rei for reporting the bug. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 16:28:19 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/2.6.x-xfs-quilt Inspected by: hch@lst.de,sandeen@sandeen.net,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32298a fs/xfs/xfs_log.c - 1.368 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.368&r2=text&tr2=1.367&f=h - fix barrier fail detection fs/xfs/linux-2.6/xfs_buf.h - 1.128 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.h.diff?r1=text&tr1=1.128&r2=text&tr2=1.127&f=h - fix barrier fail detection fs/xfs/linux-2.6/xfs_buf.c - 1.263 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_buf.c.diff?r1=text&tr1=1.263&r2=text&tr2=1.262&f=h - fix barrier fail detection From owner-xfs@oss.sgi.com Thu Oct 9 23:17:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A6HssL007751 for ; Thu, 9 Oct 2008 23:17:55 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 790AF304076; Thu, 9 Oct 2008 23:19:29 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA02118; Fri, 10 Oct 2008 17:19:27 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 168901F08E9; Fri, 10 Oct 2008 17:19:27 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988146 - Always use struct xfs_btree_block instead of short / longform structures. Message-Id: <20081010061927.168901F08E9@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 17:19:27 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Always use struct xfs_btree_block instead of short / longform structures. Always use the generic xfs_btree_block type instead of the short / long structures. Add XFS_BTREE_SBLOCK_LEN / XFS_BTREE_LBLOCK_LEN defines for the length of a short / long form block. The rationale for this is that we will grow more btree block header variants to support CRCs and other RAS information, and always accessing them through the same datatype with unions for the short / long form pointers makes implementing this much easier. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 17:18:54 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32300a fs/xfs/xfsidbg.c - 1.370 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.370&r2=text&tr2=1.369&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_ialloc_btree.h - 1.44 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc_btree.h.diff?r1=text&tr1=1.44&r2=text&tr2=1.43&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_ialloc_btree.c - 1.108 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ialloc_btree.c.diff?r1=text&tr1=1.108&r2=text&tr2=1.107&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_log_recover.c - 1.349 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.349&r2=text&tr2=1.348&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_bmap_btree.h - 1.96 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.h.diff?r1=text&tr1=1.96&r2=text&tr2=1.95&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_bmap_btree.c - 1.198 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.c.diff?r1=text&tr1=1.198&r2=text&tr2=1.197&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_btree.c - 1.145 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_btree.c.diff?r1=text&tr1=1.145&r2=text&tr2=1.144&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_btree.h - 1.100 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_btree.h.diff?r1=text&tr1=1.100&r2=text&tr2=1.99&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_inode.c - 1.529 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.529&r2=text&tr2=1.528&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_inode.h - 1.262 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.262&r2=text&tr2=1.261&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_alloc.c - 1.204 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc.c.diff?r1=text&tr1=1.204&r2=text&tr2=1.203&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_fsops.c - 1.138 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_fsops.c.diff?r1=text&tr1=1.138&r2=text&tr2=1.137&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_bmap.c - 1.416 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.416&r2=text&tr2=1.415&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_alloc_btree.h - 1.41 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.h.diff?r1=text&tr1=1.41&r2=text&tr2=1.40&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_alloc_btree.c - 1.113 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_alloc_btree.c.diff?r1=text&tr1=1.113&r2=text&tr2=1.112&f=h - Always use struct xfs_btree_block instead of short / longform structures. fs/xfs/xfs_dinode.h - 1.88 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dinode.h.diff?r1=text&tr1=1.88&r2=text&tr2=1.87&f=h - Always use struct xfs_btree_block instead of short / longform structures. From owner-xfs@oss.sgi.com Thu Oct 9 23:22:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A6Mkr1008420 for ; Thu, 9 Oct 2008 23:22:46 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 0041F8F8071; Thu, 9 Oct 2008 23:24:23 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA02192; Fri, 10 Oct 2008 17:24:22 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 88DD91F08E9; Fri, 10 Oct 2008 17:24:22 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 988146 - Move XFS_BMAP_SANITY_CHECK out of line. Message-Id: <20081010062422.88DD91F08E9@chapter11.melbourne.sgi.com> Date: Fri, 10 Oct 2008 17:24:22 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Move XFS_BMAP_SANITY_CHECK out of line. Move the XFS_BMAP_SANITY_CHECK macro out of line and make it a properly typed function. Also pass the xfs_buf for the btree block instead of just the btree block header, as we will need some additional information for it to implement CRC checking of btree blocks. Signed-off-by: Christoph Hellwig Date: Fri Oct 10 17:23:56 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32301a fs/xfs/xfs_bmap_btree.h - 1.97 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap_btree.h.diff?r1=text&tr1=1.97&r2=text&tr2=1.96&f=h - Move XFS_BMAP_SANITY_CHECK out of line. fs/xfs/xfs_bmap.c - 1.417 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_bmap.c.diff?r1=text&tr1=1.417&r2=text&tr2=1.416&f=h - Move XFS_BMAP_SANITY_CHECK out of line. From owner-xfs@oss.sgi.com Thu Oct 9 23:26:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A6Qvop009019 for ; Thu, 9 Oct 2008 23:26:58 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 7D8A18F8078; Thu, 9 Oct 2008 23:28:35 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA02265; Fri, 10 Oct 2008 17:28:29 +1100 Message-ID: <48EEF60D.4020602@sgi.com> Date: Fri, 10 Oct 2008 17:28:29 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Linus Torvalds CC: lkml@vger.kernel.org, xfs-oss , Andrew Morton , stable@kernel.org, toei.rei@stargazer.at Subject: [PATCH] fix barrier fail detection in XFS Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Linus, Please include the following patch. This is an important fix posted by Christoph Hellwig today. Without this fix, XFS can turn off barriers when we wrap our ondisk log. Which could lead to corruption after unclean unmounts/shutdowns on machines without a persistent write cache etc. --Tim --------------- Fix barrier fail detection in XFS Currently we disable barriers as soon as we get a buffer in xlog_iodone that has the XBF_ORDERED flag cleared. But this can be the case not only for buffers where the barrier failed, but also the first buffer of a split log write in case of a log wraparound. Due to the disabled barriers we can easily get directory corruption on unclean shutdowns. So instead of using this check add a new buffer flag for failed barrier writes. This is a regression vs 2.6.26 caused by patch to use the right macro to check for the ORDERED flag, as we previously got true returned for every buffer. Thanks to Toei Rei for reporting the bug. Signed-off-by: Christoph Hellwig Reviewed-by: Eric Sandeen Reviewed-by: David Chinner Signed-off-by: Tim Shimmin Index: 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-09-19 13:47:36.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.c 2008-10-10 15:07:51.316145158 +1100 @@ -1001,12 +1001,13 @@ xfs_buf_iodone_work( * We can get an EOPNOTSUPP to ordered writes. Here we clear the * ordered flag and reissue them. Because we can't tell the higher * layers directly that they should not issue ordered I/O anymore, they - * need to check if the ordered flag was cleared during I/O completion. + * need to check if the _XFS_BARRIER_FAILED flag was set during I/O completion. */ if ((bp->b_error == EOPNOTSUPP) && (bp->b_flags & (XBF_ORDERED|XBF_ASYNC)) == (XBF_ORDERED|XBF_ASYNC)) { XB_TRACE(bp, "ordered_retry", bp->b_iodone); bp->b_flags &= ~XBF_ORDERED; + bp->b_flags |= _XFS_BARRIER_FAILED; xfs_buf_iorequest(bp); } else if (bp->b_iodone) (*(bp->b_iodone))(bp); Index: 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-09-19 13:47:36.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/linux-2.6/xfs_buf.h 2008-10-10 11:54:23.269373217 +1100 @@ -85,6 +85,14 @@ typedef enum { * modifications being lost. */ _XBF_PAGE_LOCKED = (1 << 22), + + /* + * If we try a barrier write, but it fails we have to communicate + * this to the upper layers. Unfortunately b_error gets overwritten + * when the buffer is re-issued so we have to add another flag to + * keep this information. + */ + _XFS_BARRIER_FAILED = (1 << 23), } xfs_buf_flags_t; typedef enum { Index: 2.6.x-xfs-quilt/fs/xfs/xfs_log.c =================================================================== --- 2.6.x-xfs-quilt.orig/fs/xfs/xfs_log.c 2008-09-22 11:54:19.000000000 +1000 +++ 2.6.x-xfs-quilt/fs/xfs/xfs_log.c 2008-10-10 15:09:56.967725107 +1100 @@ -1033,11 +1033,12 @@ xlog_iodone(xfs_buf_t *bp) l = iclog->ic_log; /* - * If the ordered flag has been removed by a lower - * layer, it means the underlyin device no longer supports + * If the _XFS_BARRIER_FAILED flag was set by a lower + * layer, it means the underlying device no longer supports * barrier I/O. Warn loudly and turn off barriers. */ - if ((l->l_mp->m_flags & XFS_MOUNT_BARRIER) && !XFS_BUF_ISORDERED(bp)) { + if (bp->b_flags & _XFS_BARRIER_FAILED) { + bp->b_flags &= ~_XFS_BARRIER_FAILED; l->l_mp->m_flags &= ~XFS_MOUNT_BARRIER; xfs_fs_cmn_err(CE_WARN, l->l_mp, "xlog_iodone: Barriers are no longer supported" From owner-xfs@oss.sgi.com Thu Oct 9 23:45:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A6jFeh010692 for ; Thu, 9 Oct 2008 23:45:15 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 968DF30406E; Thu, 9 Oct 2008 23:46:55 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA02758; Fri, 10 Oct 2008 17:46:54 +1100 Message-ID: <48EF0815.7080001@sgi.com> Date: Fri, 10 Oct 2008 17:45:25 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss , xfs-dev Subject: Re: [PATCH V2] Re-dirty pages on ENOSPC when converting delayed allocations References: <48EB1ABD.3020503@sgi.com> <20081009122726.GH9597@disturbed> In-Reply-To: <20081009122726.GH9597@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Tue, Oct 07, 2008 at 06:15:57PM +1000, Lachlan McIlroy wrote: >> If we get an error in xfs_page_state_convert() - and it's not EAGAIN - then >> we throw away the dirty page without converting the delayed allocation. This >> leaves delayed allocations that can never be removed and confuses code that >> expects a flush of the file to clear them. We need to re-dirty the page on >> error so we can try again later or report that the flush failed. > > Actually, those delalloc pages can be removed - they just need to > be handled in ->releasepage. The problem there is that the > delalloc state is checked by looking at the bufferhead, and by > the time we get to ->releasepage the buffer heads have already gone > through discard_buffer() and lost the buffer_delay() flag. > > IIRC I had a patch that did the delalloc conversion correctly in > ->releasepage by utilising a custom ->invalidatepage callouut, but > the performance overhead was very bad because it is done a page at a > time. ISTR even posting it to oss.... > >> This change is needed to handle the condition where we are at ENOSPC and we >> exhaust the reserved block pool (because many transactions are executing >> concurrently) and calls to xfs_trans_reserve() start failing with ENOSPC >> errors. >> >> Version 2 wont return EAGAIN from xfs_vm_writepage() and also converts an >> ENOSPC error to an EAGAIN for asynchronous writeback to avoid setting an >> error in the inode mapping when we don't need to. >> >> --- a/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:02:04.000000000 +1000 >> +++ b/fs/xfs/linux-2.6/xfs_aops.c 2008-10-07 17:58:04.000000000 +1000 >> @@ -1147,16 +1147,6 @@ error: >> if (iohead) >> xfs_cancel_ioend(iohead); >> >> - /* >> - * If it's delalloc and we have nowhere to put it, >> - * throw it away, unless the lower layers told >> - * us to try again. >> - */ >> - if (err != -EAGAIN) { >> - if (!unmapped) >> - block_invalidatepage(page, 0); >> - ClearPageUptodate(page); >> - } >> return err; >> } > > So we don't throw away pages here.... > >> @@ -1231,19 +1221,16 @@ xfs_vm_writepage( >> * to real space and flush out to disk. >> */ >> error = xfs_page_state_convert(inode, page, wbc, 1, unmapped); >> - if (error == -EAGAIN) >> - goto out_fail; >> if (unlikely(error < 0)) >> - goto out_unlock; >> + goto out_fail; >> >> return 0; >> >> out_fail: >> redirty_page_for_writepage(wbc, page); >> unlock_page(page); >> - return 0; >> -out_unlock: >> - unlock_page(page); >> + if (error == -EAGAIN) >> + error = 0; >> return error; >> } > > And we redirty every page that comes through here with an error. > > IOWs on permanent IO errors we can't get rid of the pages without > a forced shutdown. That was my main objection to the first version > of the patch. If there is a permanent error then a metadata or log I/O will probably soon fail and that will issue a force shutdown anyway and that will cause us to discard the pages. I just don't get why silently discarding writes is a good idea. And even if we issue a warning the user has no idea which writes were discarded. Are you worried we will deadlock the system by running out of pages? Wouldn't it be better to do that than keep the system running in the face of data corruption? > >> --- a/fs/xfs/xfs_iomap.c 2008-10-07 17:02:04.000000000 +1000 >> +++ b/fs/xfs/xfs_iomap.c 2008-10-07 17:58:04.000000000 +1000 >> @@ -269,6 +269,8 @@ xfs_iomap( >> >> error = xfs_iomap_write_allocate(ip, offset, count, >> &imap, &nimaps); >> + if ((flags & BMAPI_TRYLOCK) && error == ENOSPC) >> + error = EAGAIN; >> break; >> } >> > > But you've added the special ENOSPC case to avoid having an error > reported on non-blocking flushes that I suggested. That's not > exactly what I meant or thought I was suggesting. > > What I thought I suggested was to do the above ENOSPC swizzling for the > non-blocking case, but still throw away pages in the blocking flush > case. That is, remove the first two hunks of the patch, and just > use the third hunk. That way we don't introduce entertaining new > ENOSPC problems by retaining the current behaviour, but we still > fix the prolonged depletion of the reserve pool by delalloc > reservations which seemed to be the cause of all the ENOSPC > problems. Are you sure? So a synchronous flush of the file would still discard data and leave the delayed allocation. A flushinval (before a direct I/O) would get an error and fail but a second flushinval would succeed (because it would not try to flush the same page) and we'd hit the BUG_ON with direct I/O. From owner-xfs@oss.sgi.com Fri Oct 10 00:09:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A79g1G014768 for ; Fri, 10 Oct 2008 00:09:42 -0700 X-ASG-Debug-ID: 1223622682-5383025b0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lichtvoll.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9C4B113DB7E7 for ; Fri, 10 Oct 2008 00:11:22 -0700 (PDT) Received: from mail.lichtvoll.de (mondschein.lichtvoll.de [194.150.191.11]) by cuda.sgi.com with ESMTP id ttQtZTCt0uP2I9Ug for ; Fri, 10 Oct 2008 00:11:22 -0700 (PDT) Received: from shambhala.lichtvoll.local (DSL01.83.171.166.26.ip-pool.NEFkom.net [83.171.166.26]) by mail.lichtvoll.de (Postfix) with ESMTP id A5B325ADF3; Fri, 10 Oct 2008 09:11:20 +0200 (CEST) From: Martin Steigerwald To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Subject: Re: [RFC, PATCH 0/7] XFS: dynamic busy extent tracking Date: Fri, 10 Oct 2008 09:11:18 +0200 User-Agent: KMail/1.9.9 References: <1223417377-8679-1-git-send-email-david@fromorbit.com> <200810092017.33042.Martin@lichtvoll.de> <20081009223328.GI9597@disturbed> (sfid-20081010_090018_216466_C5ADA5AA) In-Reply-To: <20081009223328.GI9597@disturbed> Cc: Dave Chinner MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810100911.19345.Martin@lichtvoll.de> X-Barracuda-Connect: mondschein.lichtvoll.de[194.150.191.11] X-Barracuda-Start-Time: 1223622682 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085, COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7674 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' 0.10 BSF_SC0_SA085 Custom Rule SA085 Am Freitag 10 Oktober 2008 schrieben Sie: > On Thu, Oct 09, 2008 at 08:17:32PM +0200, Martin Steigerwald wrote: > > Hi Dave, [...] > > A student in the Linux Performance Tuning course I hold this week > > compared this with ext3, even with the improved mkfs.xfs options (but > > without lazy-count=1, cause mkfs.xfs from Debian Etch is too old) and > > even with noop as IO scheduler. AFAIR XFS took roughly 3-4 times as > > long as Ext3, I did not note the exact numbers. This was with 2.6.25. > > I can repeat the test locally with 2.6.26.5 if wanted. > > Yes, that's par for the course. XFS journals transactions almost > immediately, whereas ext3 gathers lots of changees in memory and > checkpoints infrequently. Hence XFS writes a lot more to the > journal and is hence slower. The dynamic extent tracking is a > necessary step to moving the XFS journalling to a more > checkpoint-like setup which would perform much less journal > I/O and hence run substantially faster.... > > See the asynchronous transaction aggregation section here: > > http://xfs.org/index.php/Improving_Metadata_Performance_By_Reducing_Jou >rnal_Overhead Thanks for the info Dave. I still have your three mails about future improvements on XFS on my reading list. I just read a bit of the first one. Ciao, -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 From owner-xfs@oss.sgi.com Fri Oct 10 02:22:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9A9M0MK030193 for ; Fri, 10 Oct 2008 02:22:00 -0700 X-ASG-Debug-ID: 1223630620-5cbf02780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 835D113DC362; Fri, 10 Oct 2008 02:23:40 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id VmAoifksW0nH8GEA; Fri, 10 Oct 2008 02:23:40 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9A9NcIF015846 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Fri, 10 Oct 2008 11:23:38 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9A9NY8e015839; Fri, 10 Oct 2008 11:23:34 +0200 Date: Fri, 10 Oct 2008 11:23:34 +0200 From: Christoph Hellwig To: Timothy Shimmin , Christoph Hellwig , xfs@oss.sgi.com, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection Subject: Re: [PATCH] fix barrier fail detection Message-ID: <20081010092334.GA15797@lst.de> References: <20081009130042.GA21071@lst.de> <48EEAC1A.2080309@sgi.com> <48EED73F.1010208@sgi.com> <20081010042732.GC8181@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081010042732.GC8181@disturbed> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223630621 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7681 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 10, 2008 at 03:27:32PM +1100, Dave Chinner wrote: > On Fri, Oct 10, 2008 at 03:17:03PM +1100, Timothy Shimmin wrote: > > Timothy Shimmin wrote: > ..... > > > Actually, probably need to update the comment for this one. > ..... > > > i.e. something like: > > Looks fine to me. Yeah, looks good. From owner-xfs@oss.sgi.com Fri Oct 10 11:03:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9AI34ht002319 for ; Fri, 10 Oct 2008 11:03:04 -0700 X-ASG-Debug-ID: 1223661882-1ed003570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp1.linux-foundation.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0093713DF5C0; Fri, 10 Oct 2008 11:04:42 -0700 (PDT) Received: from smtp1.linux-foundation.org (smtp1.linux-foundation.org [140.211.169.13]) by cuda.sgi.com with ESMTP id sf5rBKnrymxn1XEF; Fri, 10 Oct 2008 11:04:42 -0700 (PDT) Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id m9AI4X6C024004 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 10 Oct 2008 11:04:34 -0700 Received: from localhost (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id m9AI4VfN018464; Fri, 10 Oct 2008 11:04:31 -0700 Date: Fri, 10 Oct 2008 11:04:31 -0700 (PDT) From: Linus Torvalds To: Timothy Shimmin cc: lkml@vger.kernel.org, xfs-oss , Andrew Morton , stable@kernel.org, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection in XFS Subject: Re: [PATCH] fix barrier fail detection in XFS In-Reply-To: <48EEF60D.4020602@sgi.com> Message-ID: References: <48EEF60D.4020602@sgi.com> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 X-Barracuda-Connect: smtp1.linux-foundation.org[140.211.169.13] X-Barracuda-Start-Time: 1223661885 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7709 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, 10 Oct 2008, Timothy Shimmin wrote: > > This is an important fix posted by Christoph Hellwig today. > Without this fix, XFS can turn off barriers when we wrap our ondisk log. > Which could lead to corruption after unclean unmounts/shutdowns > on machines without a persistent write cache etc. Ok, it clearly didn't make it into 2.6.27. I assume it it should be marked for stable? Linus From owner-xfs@oss.sgi.com Fri Oct 10 11:06:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9AI6C9s002806 for ; Fri, 10 Oct 2008 11:06:12 -0700 X-ASG-Debug-ID: 1223662073-74b602280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp1.linux-foundation.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1C92A3C13F; Fri, 10 Oct 2008 11:07:53 -0700 (PDT) Received: from smtp1.linux-foundation.org (smtp1.linux-foundation.org [140.211.169.13]) by cuda.sgi.com with ESMTP id 9ZvkPelzqIk6BHxR; Fri, 10 Oct 2008 11:07:53 -0700 (PDT) Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id m9AI7i5A024321 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 10 Oct 2008 11:07:45 -0700 Received: from localhost (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id m9AI7i6E018822; Fri, 10 Oct 2008 11:07:44 -0700 Date: Fri, 10 Oct 2008 11:07:44 -0700 (PDT) From: Linus Torvalds To: Timothy Shimmin cc: lkml@vger.kernel.org, xfs-oss , Andrew Morton , stable@kernel.org, toei.rei@stargazer.at X-ASG-Orig-Subj: Re: [PATCH] fix barrier fail detection in XFS Subject: Re: [PATCH] fix barrier fail detection in XFS In-Reply-To: <48EEF60D.4020602@sgi.com> Message-ID: References: <48EEF60D.4020602@sgi.com> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 X-Barracuda-Connect: smtp1.linux-foundation.org[140.211.169.13] X-Barracuda-Start-Time: 1223662073 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7710 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, 10 Oct 2008, Timothy Shimmin wrote: > > This is an important fix posted by Christoph Hellwig today. Oh, btw, when doing this, please add the From: Christoph Hellwig at the top of the email (and if you re-post the one-liner summary description, prepend it with "Subject: ", so that when I apply it as an email, the "Fix barrier fail detection in XFS" doesn't end up being repeated twice - once from the real email subject line, and once as the first normal line of the email). I did it by hand, so you don't need to re-send, but just for future reference, for when I don't happen to notice (and so that I don't have to do it myself when I _do_ notice) Linus From owner-xfs@oss.sgi.com Fri Oct 10 12:11:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9AJBlhA007266 for ; Fri, 10 Oct 2008 12:11:48 -0700 X-ASG-Debug-ID: 1223666007-351a00ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A0AF14E1689 for ; Fri, 10 Oct 2008 12:13:27 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id ndf6eZBtMevEqvNB for ; Fri, 10 Oct 2008 12:13:27 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 1183D27183; Fri, 10 Oct 2008 15:13:26 -0400 (EDT) Date: Fri, 10 Oct 2008 15:13:26 -0400 (EDT) From: Justin Piszcz To: Tejun Heo cc: "Mr. James W. Laferriere" , Tom Mortensen , Bill Davidsen , Gwendal Grignou , Brian Rademacher , linux-ide@vger.kernel.org, linux-raid maillist , Linux Kernel Maillist , Bruce Allen , smartmontools-support@lists.sourceforge.net, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen Subject: Re: exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen In-Reply-To: Message-ID: References: <3E6D0C24877245C3A5A327129A7B4CA7@909927SOSLA> <5419A02543384E69AF2BA82FF6E66C14@909927SOSLA> <4B1ABD0393EF40FFB0A12242FE8356AF@909927SOSLA> <48DBAB81.8050900@tmr.com> <48E08E2D.6050905@kernel.org> <48E6D481.7050407@kernel.org> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1223666008 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7711 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, 4 Oct 2008, Justin Piszcz wrote: > > > On Sat, 4 Oct 2008, Tejun Heo wrote: > >> Justin Piszcz wrote: >> What do these signifiers mean (they are always the same, no matter the controller used OR the disk in question (happens across 12 disks and 3 different controllers)): [420781.333179] ata6.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen [420781.333189] ata6.00: cmd b0/d8:00:00:4f:c2/00:00:00:00:00/00 tag 0 ^^ ^^(b0/d8)^^ ^^(4f:c2) [420781.333190] res 40/00:ff:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout) ^^ 40:00:ff [420781.333194] ata6.00: status: { DRDY } [420781.333200] ata6: hard resetting link [420781.638589] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [420781.662166] ata6.00: configured for UDMA/133 [420781.662166] ata6: EH complete (at the time there was little to no I/O occuring on this block device, but disks on the raid5 volume were being accessed at the time, so there was system activity, mainly disk reads 300-500KiB/s over ethernet) Nick's(?) problem: > Nick > > ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen > ata1.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0 ^^ ^^ (ea/00) vs. (b0/d8) - mind are always the same (FYI) > res 40/00:00:00:00:00/00:00:00:00:00/a0 Emask 0x4 (timeout) ^^ ^^ (40:00: but no ff) The rest of the messages are the same. Is there any correlation that can be made here? When this happens to others, is it always the same codes as shown above or do they change? If they do not change, how come they vary between users who have this problem? > ata1.00: status: { DRDY } > ata1: soft resetting link > ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) > ata1.00: configured for UDMA/133 > ata1: EH complete > sd 1:0:0:0: [sda] 2930277168 512-byte hardware sectors (1500302 MB) > sd 1:0:0:0: [sda] Write Protect is off > sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00 > sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't > support DPO or FUA Can anything be said about these errors, can we classify them into groups? Or are they just random? It does not appear to happen more or less with one filesystem or another either, one guy is using ext3, I am using XFS-- certainly something much deeper.. Justin. From owner-xfs@oss.sgi.com Fri Oct 10 12:27:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9AJRA1w013362 for ; Fri, 10 Oct 2008 12:27:11 -0700 X-ASG-Debug-ID: 1223666930-351901670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lxorguk.ukuu.org.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A1B1A4E132D for ; Fri, 10 Oct 2008 12:28:50 -0700 (PDT) Received: from lxorguk.ukuu.org.uk (earthlight.etchedpixels.co.uk [81.2.110.250]) by cuda.sgi.com with ESMTP id x4gQk7d5rdX4XIBV for ; Fri, 10 Oct 2008 12:28:50 -0700 (PDT) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by lxorguk.ukuu.org.uk (8.14.2/8.14.2) with ESMTP id m9AJRpiq017146; Fri, 10 Oct 2008 20:27:51 +0100 Date: Fri, 10 Oct 2008 20:27:51 +0100 From: Alan Cox To: Justin Piszcz Cc: Tejun Heo , "Mr. James W. Laferriere" , Tom Mortensen , Bill Davidsen , Gwendal Grignou , Brian Rademacher , linux-ide@vger.kernel.org, linux-raid maillist , Linux Kernel Maillist , Bruce Allen , smartmontools-support@lists.sourceforge.net, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen Subject: Re: exception Emask 0x0 SAct 0x1 / SErr 0x0 action 0x2 frozen Message-ID: <20081010202751.67a6d122@lxorguk.ukuu.org.uk> In-Reply-To: References: <3E6D0C24877245C3A5A327129A7B4CA7@909927SOSLA> <5419A02543384E69AF2BA82FF6E66C14@909927SOSLA> <4B1ABD0393EF40FFB0A12242FE8356AF@909927SOSLA> <48DBAB81.8050900@tmr.com> <48E08E2D.6050905@kernel.org> <48E6D481.7050407@kernel.org> X-Mailer: Claws Mail 3.5.0 (GTK+ 2.12.12; x86_64-redhat-linux-gnu) Organization: Red Hat UK Cyf., Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, Y Deyrnas Gyfunol. Cofrestrwyd yng Nghymru a Lloegr o'r rhif cofrestru 3798903 Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Barracuda-Connect: earthlight.etchedpixels.co.uk[81.2.110.250] X-Barracuda-Start-Time: 1223666931 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7712 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > [420781.333189] ata6.00: cmd b0/d8:00:00:4f:c2/00:00:00:00:00/00 tag 0 > ^^ ^^(b0/d8)^^ ^^(4f:c2) > [420781.333190] res 40/00:ff:00:00:00/00:00:00:00:00/00 Emask 0x4 > (timeout) ^^ 40:00:ff > [420781.333194] ata6.00: status: { DRDY } They are the send and received task file (command blocks) for the failed command. > [420781.333200] ata6: hard resetting link > [420781.638589] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300) > [420781.662166] ata6.00: configured for UDMA/133 > [420781.662166] ata6: EH complete > > (at the time there was little to no I/O occuring on this block device, but > disks on the raid5 volume were being accessed at the time, so there was > system activity, mainly disk reads 300-500KiB/s over ethernet) > > Nick's(?) problem: > > > Nick > > > > ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen > > ata1.00: cmd ea/00:00:00:00:00/00:00:00:00:00/a0 tag 0 > ^^ ^^ (ea/00) vs. (b0/d8) - mind are always the same (FYI) > > res 40/00:00:00:00:00/00:00:00:00:00/a0 Emask 0x4 (timeout) > ^^ ^^ (40:00: but no ff) > > The rest of the messages are the same. Is there any correlation > that can be made here? When this happens to others, is it > always the same codes as shown above or do they change? If they > do not change, how come they vary between users who have this > problem? > > > ata1.00: status: { DRDY } > > ata1: soft resetting link > > ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) > > ata1.00: configured for UDMA/133 > > ata1: EH complete > > sd 1:0:0:0: [sda] 2930277168 512-byte hardware sectors (1500302 MB) > > sd 1:0:0:0: [sda] Write Protect is off > > sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00 > > sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't > > support DPO or FUA > > Can anything be said about these errors, can we classify them into groups? > Or are they just random? It does not appear to happen more or less with > one filesystem or another either, one guy is using ext3, I am using XFS-- > certainly something much deeper.. > > Justin. > -- > To unsubscribe from this list: send the line "unsubscribe linux-ide" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- -- "Alan, I'm getting a bit worried about you." -- Linus Torvalds From owner-xfs@oss.sgi.com Fri Oct 10 21:27:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9B4RwA4029435 for ; Fri, 10 Oct 2008 21:27:58 -0700 X-ASG-Debug-ID: 1223699378-216300580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AB78DA4949B for ; Fri, 10 Oct 2008 21:29:38 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id qHlY0K8IMW3bkVgL for ; Fri, 10 Oct 2008 21:29:38 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id A9395AC3591; Fri, 10 Oct 2008 23:29:36 -0500 (CDT) Message-ID: <48F02BB0.2030107@sandeen.net> Date: Fri, 10 Oct 2008 23:29:36 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss CC: John Willis X-ASG-Orig-Subj: [PATCH] xfsdump: don't put null inode Subject: [PATCH] xfsdump: don't put null inode Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223699379 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7741 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- John Willis pointed this out: $ sudo xfs_db -x /dev/evms/RAID5-SATA-1 cache_node_purge: refcount was 1, not zero (node=0x80dd660) xfs_db: cannot read root inode (22) cache_node_purge: refcount was 1, not zero (node=0x80e0008) xfs_db: cannot read realtime bitmap inode (22) Segmentation fault it dies when pthread code gets a null ptr, like this: (gdb) bt #0 0x0000003ef1c08309 in pthread_mutex_lock () from /lib64/libpthread.so.0 #1 0x000000000044f5af in cache_node_put (cache=0x25a2030, node=0x0) at cache.c:368 #2 0x000000000041ff7e in libxfs_mount (mp=0x0, sb=, dev=, logdev=, rtdev=, flags=1) at init.c:680 #3 0x0000000000416157 in init (argc=2, argv=0x7fffd9e19798) at init.c:125 #4 0x000000000041635a in main (argc=48, argv=0x7fffd9e19798) at init.c:153 (gdb) when reading the root inode fails, and we try to libxfs_iput it anyway. The following seems to fix it ... -Eric Index: xfsprogs/libxfs/init.c =================================================================== --- xfsprogs.orig/libxfs/init.c +++ xfsprogs/libxfs/init.c @@ -677,7 +677,8 @@ libxfs_mount( ASSERT(mp->m_rootip != NULL); } if ((flags & LIBXFS_MOUNT_ROOTINOS) && rtmount_inodes(mp)) { - libxfs_iput(mp->m_rootip, 0); + if (mp->m_rootip) + libxfs_iput(mp->m_rootip, 0); return NULL; } From owner-xfs@oss.sgi.com Fri Oct 10 21:31:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9B4VCm1029910 for ; Fri, 10 Oct 2008 21:31:12 -0700 X-ASG-Debug-ID: 1223699573-254301470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E6EF013EAB6B for ; Fri, 10 Oct 2008 21:32:53 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id iNoOF68Tp6OEBgxS for ; Fri, 10 Oct 2008 21:32:53 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 03307AC3591; Fri, 10 Oct 2008 23:32:52 -0500 (CDT) Message-ID: <48F02C74.8080902@sandeen.net> Date: Fri, 10 Oct 2008 23:32:52 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss CC: John Willis X-ASG-Orig-Subj: Re: [PATCH] xfs_db: don't put null inode Subject: Re: [PATCH] xfs_db: don't put null inode References: <48F02BB0.2030107@sandeen.net> In-Reply-To: <48F02BB0.2030107@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223699573 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7742 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ugh subject should be xfs_db of course :/ Eric Sandeen wrote: > John Willis pointed this out: > > $ sudo xfs_db -x /dev/evms/RAID5-SATA-1 > cache_node_purge: refcount was 1, not zero (node=0x80dd660) > xfs_db: cannot read root inode (22) > cache_node_purge: refcount was 1, not zero (node=0x80e0008) > xfs_db: cannot read realtime bitmap inode (22) > Segmentation fault > > it dies when pthread code gets a null ptr, like this: > > (gdb) bt > #0 0x0000003ef1c08309 in pthread_mutex_lock () from /lib64/libpthread.so.0 > #1 0x000000000044f5af in cache_node_put (cache=0x25a2030, node=0x0) at cache.c:368 > #2 0x000000000041ff7e in libxfs_mount (mp=0x0, sb=, dev=, logdev=, > rtdev=, flags=1) at init.c:680 > #3 0x0000000000416157 in init (argc=2, argv=0x7fffd9e19798) at init.c:125 > #4 0x000000000041635a in main (argc=48, argv=0x7fffd9e19798) at init.c:153 > (gdb) > > when reading the root inode fails, and we try to libxfs_iput it anyway. > > The following seems to fix it ... > > -Eric > > Index: xfsprogs/libxfs/init.c > =================================================================== > --- xfsprogs.orig/libxfs/init.c > +++ xfsprogs/libxfs/init.c > @@ -677,7 +677,8 @@ libxfs_mount( > ASSERT(mp->m_rootip != NULL); > } > if ((flags & LIBXFS_MOUNT_ROOTINOS) && rtmount_inodes(mp)) { > - libxfs_iput(mp->m_rootip, 0); > + if (mp->m_rootip) > + libxfs_iput(mp->m_rootip, 0); > return NULL; > } > > > From owner-xfs@oss.sgi.com Sun Oct 12 05:30:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,J_BACKHAIR_22, J_CHICKENPOX_72 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CCU394029070 for ; Sun, 12 Oct 2008 05:30:03 -0700 X-ASG-Debug-ID: 1223814697-527c016f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C70304E7321 for ; Sun, 12 Oct 2008 05:31:37 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id B8FYSdvGb7ilH0Ci for ; Sun, 12 Oct 2008 05:31:37 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9CCVaIF030408 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 12 Oct 2008 14:31:36 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9CCVag5030406 for xfs@oss.sgi.com; Sun, 12 Oct 2008 14:31:36 +0200 Date: Sun, 12 Oct 2008 14:31:36 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] update xfsqa 189 to check for writeable fs after remount rw Subject: [PATCH] update xfsqa 189 to check for writeable fs after remount rw Message-ID: <20081012123136.GB30272@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223814702 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7823 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: xfs-cmds/xfstests/189 =================================================================== --- xfs-cmds.orig/xfstests/189 2008-08-15 06:11:24.000000000 -1000 +++ xfs-cmds/xfstests/189 2008-10-12 02:24:25.000000000 -1000 @@ -90,6 +90,34 @@ } # +# make sure we really can write to a filesystem after remount,rw +# +_test_remount_write() +{ + echo + echo "try touching file after remount ro -> rw with options" + echo + _scratch_mount + [ $? -eq 0 ] || echo "mount (1) failed unexpectedly" + + touch $SCRATCH_MNT/foobar + [ $? -eq 0 ] || echo "touch (1) failed unexpectedly" + + umount $SCRATCH_MNT + + _scratch_mount -o ro + [ $? -eq 0 ] || echo "mount (2) failed unexpectedly" + + _mount -o remount,rw,filestreams $SCRATCH_MNT + [ $? -eq 0 ] || echo "remount failed unexpectedly" + + touch $SCRATCH_MNT/foobar + [ $? -eq 0 ] || echo "touch (2) failed unexpectedly" + + umount $SCRATCH_MNT +} + +# # barrier is the only option we can change besides ro<->rw which is partially # handled by the VFS and tested elsewhere. Make sure mount accepts going # from barrier (which also is the default) to nobarrier and back. @@ -166,6 +194,7 @@ _add_scratch_fstab _test_remount_rw +_test_remount_write echo echo "add noikeep to fstab for scratch" From owner-xfs@oss.sgi.com Sun Oct 12 05:29:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CCTDAj028961 for ; Sun, 12 Oct 2008 05:29:13 -0700 X-ASG-Debug-ID: 1223814647-520301910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3C594E731D for ; Sun, 12 Oct 2008 05:30:47 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id NZBLB7C1zFszdphs for ; Sun, 12 Oct 2008 05:30:47 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9CCUjIF030342 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 12 Oct 2008 14:30:45 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9CCUioa030340 for xfs@oss.sgi.com; Sun, 12 Oct 2008 14:30:44 +0200 Date: Sun, 12 Oct 2008 14:30:44 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] fix remount rw with unrecognized options Subject: [PATCH] fix remount rw with unrecognized options Message-ID: <20081012123044.GA30272@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223814653 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7823 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When we skip unrecognized options in xfs_fs_remount we should just break out of the switch and not return because otherwise we may skip clearing the xfs-internal read-only flag. This will only show up on some operations like touch because most read-only checks are done by the VFS which things this filesystem is r/w. Eventually we should replace the XFS read-only flag with a helper that always checks the VFS flag to make sure they can never get out of sync. Bug reported and fix verified by Marcel Beister on #xfs. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-11 00:59:04.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-11 00:59:35.000000000 +0200 @@ -1218,7 +1218,7 @@ xfs_fs_remount( "XFS: mount option \"%s\" not supported for remount\n", p); return -EINVAL; #else - return 0; + break; #endif } } From owner-xfs@oss.sgi.com Sun Oct 12 08:16:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_61,J_CHICKENPOX_62,J_CHICKENPOX_63,J_CHICKENPOX_65, J_CHICKENPOX_66,J_CHICKENPOX_83 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CFGZUB011079 for ; Sun, 12 Oct 2008 08:16:36 -0700 X-ASG-Debug-ID: 1223824682-14a102ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 425F0129E8CA for ; Sun, 12 Oct 2008 08:18:03 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id hU4idFu1HZd6bAsH for ; Sun, 12 Oct 2008 08:18:03 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9CFHwIF004230 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sun, 12 Oct 2008 17:17:58 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9CFHwZJ004227 for xfs@oss.sgi.com; Sun, 12 Oct 2008 17:17:58 +0200 Date: Sun, 12 Oct 2008 17:17:58 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] resync libxfs btree code with the latests kernel updates Subject: [PATCH] resync libxfs btree code with the latests kernel updates Message-ID: <20081012151757.GA4199@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223824691 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7831 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Signed-off-by: Christoph Hellwig Index: xfs-cmds/xfsprogs/libxfs/xfs_bmap.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_bmap.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_bmap.c 2008-10-12 15:29:07.000000000 +0200 @@ -2871,24 +2871,24 @@ xfs_bmap_btree_to_extents( int whichfork) /* data or attr fork */ { /* REFERENCED */ - xfs_bmbt_block_t *cblock;/* child btree block */ + struct xfs_btree_block *cblock;/* child btree block */ xfs_fsblock_t cbno; /* child block number */ xfs_buf_t *cbp; /* child block's buffer */ int error; /* error return value */ xfs_ifork_t *ifp; /* inode fork data */ xfs_mount_t *mp; /* mount point structure */ __be64 *pp; /* ptr to block address */ - xfs_bmbt_block_t *rblock;/* root btree block */ + struct xfs_btree_block *rblock;/* root btree block */ + mp = ip->i_mount; ifp = XFS_IFORK_PTR(ip, whichfork); ASSERT(ifp->if_flags & XFS_IFEXTENTS); ASSERT(XFS_IFORK_FORMAT(ip, whichfork) == XFS_DINODE_FMT_BTREE); rblock = ifp->if_broot; ASSERT(be16_to_cpu(rblock->bb_level) == 1); ASSERT(be16_to_cpu(rblock->bb_numrecs) == 1); - ASSERT(XFS_BMAP_BROOT_MAXRECS(ifp->if_broot_bytes) == 1); - mp = ip->i_mount; - pp = XFS_BMAP_BROOT_PTR_ADDR(rblock, 1, ifp->if_broot_bytes); + ASSERT(xfs_bmbt_maxrecs(mp, ifp->if_broot_bytes, 0) == 1); + pp = XFS_BMAP_BROOT_PTR_ADDR(mp, rblock, 1, ifp->if_broot_bytes); cbno = be64_to_cpu(*pp); *logflagsp = 0; #ifdef DEBUG @@ -2898,8 +2898,8 @@ xfs_bmap_btree_to_extents( if ((error = xfs_btree_read_bufl(mp, tp, cbno, 0, &cbp, XFS_BMAP_BTREE_REF))) return error; - cblock = XFS_BUF_TO_BMBT_BLOCK(cbp); - if ((error = xfs_btree_check_lblock(cur, cblock, 0, cbp))) + cblock = XFS_BUF_TO_BLOCK(cbp); + if ((error = xfs_btree_check_block(cur, cblock, 0, cbp))) return error; xfs_bmap_add_free(cbno, 1, cur->bc_private.b.flist, mp); ip->i_d.di_nblocks--; @@ -3281,11 +3281,11 @@ xfs_bmap_extents_to_btree( int *logflagsp, /* inode logging flags */ int whichfork) /* data or attr fork */ { - xfs_bmbt_block_t *ablock; /* allocated (child) bt block */ + struct xfs_btree_block *ablock; /* allocated (child) bt block */ xfs_buf_t *abp; /* buffer for ablock */ xfs_alloc_arg_t args; /* allocation arguments */ xfs_bmbt_rec_t *arp; /* child record pointer */ - xfs_bmbt_block_t *block; /* btree root block */ + struct xfs_btree_block *block; /* btree root block */ xfs_btree_cur_t *cur; /* bmap btree cursor */ xfs_bmbt_rec_host_t *ep; /* extent record pointer */ int error; /* error return value */ @@ -3305,6 +3305,7 @@ xfs_bmap_extents_to_btree( */ xfs_iroot_realloc(ip, 1, whichfork); ifp->if_flags |= XFS_IFBROOT; + /* * Fill in the root. */ @@ -3312,8 +3313,9 @@ xfs_bmap_extents_to_btree( block->bb_magic = cpu_to_be32(XFS_BMAP_MAGIC); block->bb_level = cpu_to_be16(1); block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be64(NULLDFSBNO); - block->bb_rightsib = cpu_to_be64(NULLDFSBNO); + block->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + block->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); + /* * Need a cursor. Can't allocate until bb_level is filled in. */ @@ -3365,12 +3367,12 @@ xfs_bmap_extents_to_btree( /* * Fill in the child block. */ - ablock = XFS_BUF_TO_BMBT_BLOCK(abp); + ablock = XFS_BUF_TO_BLOCK(abp); ablock->bb_magic = cpu_to_be32(XFS_BMAP_MAGIC); ablock->bb_level = 0; - ablock->bb_leftsib = cpu_to_be64(NULLDFSBNO); - ablock->bb_rightsib = cpu_to_be64(NULLDFSBNO); - arp = XFS_BMAP_REC_IADDR(ablock, 1, cur); + ablock->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + ablock->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); + arp = XFS_BMBT_REC_ADDR(mp, ablock, 1); nextents = ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t); for (cnt = i = 0; i < nextents; i++) { ep = xfs_iext_get_ext(ifp, i); @@ -3381,15 +3383,18 @@ xfs_bmap_extents_to_btree( } } ASSERT(cnt == XFS_IFORK_NEXTENTS(ip, whichfork)); - ablock->bb_numrecs = cpu_to_be16(cnt); + xfs_btree_set_numrecs(ablock, cnt); + /* * Fill in the root key and pointer. */ - kp = XFS_BMAP_KEY_IADDR(block, 1, cur); - arp = XFS_BMAP_REC_IADDR(ablock, 1, cur); + kp = XFS_BMBT_KEY_ADDR(mp, block, 1); + arp = XFS_BMBT_REC_ADDR(mp, ablock, 1); kp->br_startoff = cpu_to_be64(xfs_bmbt_disk_get_startoff(arp)); - pp = XFS_BMAP_PTR_IADDR(block, 1, cur); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, xfs_bmbt_get_maxrecs(cur, + be16_to_cpu(block->bb_level))); *pp = cpu_to_be64(args.fsbno); + /* * Do all this logging at the end so that * the root is at the right level. @@ -3871,7 +3876,7 @@ xfs_bmap_compute_maxlevels( maxleafents = MAXAEXTNUM; sz = XFS_BMDR_SPACE_CALC(MINABTPTRS); } - maxrootrecs = (int)XFS_BTREE_BLOCK_MAXRECS(sz, xfs_bmdr, 0); + maxrootrecs = xfs_bmdr_maxrecs(mp, sz, 0); minleafrecs = mp->m_bmap_dmnr[0]; minnoderecs = mp->m_bmap_dmnr[1]; maxblocks = (maxleafents + minleafrecs - 1) / minleafrecs; @@ -4082,6 +4087,22 @@ xfs_bmap_one_block( return rval; } +STATIC int +xfs_bmap_sanity_check( + struct xfs_mount *mp, + struct xfs_buf *bp, + int level) +{ + struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp); + + if (be32_to_cpu(block->bb_magic) != XFS_BMAP_MAGIC || + be16_to_cpu(block->bb_level) != level || + be16_to_cpu(block->bb_numrecs) == 0 || + be16_to_cpu(block->bb_numrecs) > mp->m_bmap_dmxr[level != 0]) + return 0; + return 1; +} + /* * Read in the extents to if_extents. * All inode fields are set up by caller, we just traverse the btree @@ -4094,7 +4115,7 @@ xfs_bmap_read_extents( xfs_inode_t *ip, /* incore inode */ int whichfork) /* data or attr fork */ { - xfs_bmbt_block_t *block; /* current btree block */ + struct xfs_btree_block *block; /* current btree block */ xfs_fsblock_t bno; /* block # of "block" */ xfs_buf_t *bp; /* buffer for "block" */ int error; /* error return value */ @@ -4118,7 +4139,7 @@ xfs_bmap_read_extents( */ level = be16_to_cpu(block->bb_level); ASSERT(level > 0); - pp = XFS_BMAP_BROOT_PTR_ADDR(block, 1, ifp->if_broot_bytes); + pp = XFS_BMAP_BROOT_PTR_ADDR(mp, block, 1, ifp->if_broot_bytes); bno = be64_to_cpu(*pp); ASSERT(bno != NULLDFSBNO); ASSERT(XFS_FSB_TO_AGNO(mp, bno) < mp->m_sb.sb_agcount); @@ -4131,13 +4152,13 @@ xfs_bmap_read_extents( if ((error = xfs_btree_read_bufl(mp, tp, bno, 0, &bp, XFS_BMAP_BTREE_REF))) return error; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); XFS_WANT_CORRUPTED_GOTO( - XFS_BMAP_SANITY_CHECK(mp, block, level), + xfs_bmap_sanity_check(mp, bp, level), error0); if (level == 0) break; - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[1]); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]); bno = be64_to_cpu(*pp); XFS_WANT_CORRUPTED_GOTO(XFS_FSB_SANITY_CHECK(mp, bno), error0); xfs_trans_brelse(tp, bp); @@ -4157,7 +4178,7 @@ xfs_bmap_read_extents( xfs_extnum_t start; - num_recs = be16_to_cpu(block->bb_numrecs); + num_recs = xfs_btree_get_numrecs(block); if (unlikely(i + num_recs > room)) { ASSERT(i + num_recs <= room); xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, @@ -4169,18 +4190,18 @@ xfs_bmap_read_extents( goto error0; } XFS_WANT_CORRUPTED_GOTO( - XFS_BMAP_SANITY_CHECK(mp, block, 0), + xfs_bmap_sanity_check(mp, bp, 0), error0); /* * Read-ahead the next leaf block, if any. */ - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); if (nextbno != NULLFSBLOCK) xfs_btree_reada_bufl(mp, nextbno, 1); /* * Copy records into the extent records. */ - frp = XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1); + frp = XFS_BMBT_REC_ADDR(mp, block, 1); start = i; for (j = 0; j < num_recs; j++, i++, frp++) { xfs_bmbt_rec_host_t *trp = xfs_iext_get_ext(ifp, i); @@ -4211,7 +4232,7 @@ xfs_bmap_read_extents( if ((error = xfs_btree_read_bufl(mp, tp, bno, 0, &bp, XFS_BMAP_BTREE_REF))) return error; - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); } ASSERT(i == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))); ASSERT(i == XFS_IFORK_NEXTENTS(ip, whichfork)); Index: xfs-cmds/xfsprogs/libxfs/xfs_bmap_btree.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_bmap_btree.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_bmap_btree.c 2008-10-12 15:28:54.000000000 +0200 @@ -17,7 +17,6 @@ */ #include - /* * Determine the extent state. */ @@ -39,9 +38,10 @@ xfs_extent_state( */ void xfs_bmdr_to_bmbt( + struct xfs_mount *mp, xfs_bmdr_block_t *dblock, int dblocklen, - xfs_bmbt_block_t *rblock, + struct xfs_btree_block *rblock, int rblocklen) { int dmxr; @@ -54,13 +54,13 @@ xfs_bmdr_to_bmbt( rblock->bb_level = dblock->bb_level; ASSERT(be16_to_cpu(rblock->bb_level) > 0); rblock->bb_numrecs = dblock->bb_numrecs; - rblock->bb_leftsib = cpu_to_be64(NULLDFSBNO); - rblock->bb_rightsib = cpu_to_be64(NULLDFSBNO); - dmxr = (int)XFS_BTREE_BLOCK_MAXRECS(dblocklen, xfs_bmdr, 0); - fkp = XFS_BTREE_KEY_ADDR(xfs_bmdr, dblock, 1); - tkp = XFS_BMAP_BROOT_KEY_ADDR(rblock, 1, rblocklen); - fpp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dblock, 1, dmxr); - tpp = XFS_BMAP_BROOT_PTR_ADDR(rblock, 1, rblocklen); + rblock->bb_u.l.bb_leftsib = cpu_to_be64(NULLDFSBNO); + rblock->bb_u.l.bb_rightsib = cpu_to_be64(NULLDFSBNO); + dmxr = xfs_bmdr_maxrecs(mp, dblocklen, 0); + fkp = XFS_BMDR_KEY_ADDR(dblock, 1); + tkp = XFS_BMBT_KEY_ADDR(mp, rblock, 1); + fpp = XFS_BMDR_PTR_ADDR(dblock, 1, dmxr); + tpp = XFS_BMAP_BROOT_PTR_ADDR(mp, rblock, 1, rblocklen); dmxr = be16_to_cpu(dblock->bb_numrecs); memcpy(tkp, fkp, sizeof(*fkp) * dmxr); memcpy(tpp, fpp, sizeof(*fpp) * dmxr); @@ -401,7 +401,8 @@ xfs_bmbt_set_state( */ void xfs_bmbt_to_bmdr( - xfs_bmbt_block_t *rblock, + struct xfs_mount *mp, + struct xfs_btree_block *rblock, int rblocklen, xfs_bmdr_block_t *dblock, int dblocklen) @@ -413,16 +414,16 @@ xfs_bmbt_to_bmdr( __be64 *tpp; ASSERT(be32_to_cpu(rblock->bb_magic) == XFS_BMAP_MAGIC); - ASSERT(be64_to_cpu(rblock->bb_leftsib) == NULLDFSBNO); - ASSERT(be64_to_cpu(rblock->bb_rightsib) == NULLDFSBNO); + ASSERT(be64_to_cpu(rblock->bb_u.l.bb_leftsib) == NULLDFSBNO); + ASSERT(be64_to_cpu(rblock->bb_u.l.bb_rightsib) == NULLDFSBNO); ASSERT(be16_to_cpu(rblock->bb_level) > 0); dblock->bb_level = rblock->bb_level; dblock->bb_numrecs = rblock->bb_numrecs; - dmxr = (int)XFS_BTREE_BLOCK_MAXRECS(dblocklen, xfs_bmdr, 0); - fkp = XFS_BMAP_BROOT_KEY_ADDR(rblock, 1, rblocklen); - tkp = XFS_BTREE_KEY_ADDR(xfs_bmdr, dblock, 1); - fpp = XFS_BMAP_BROOT_PTR_ADDR(rblock, 1, rblocklen); - tpp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dblock, 1, dmxr); + dmxr = xfs_bmdr_maxrecs(mp, dblocklen, 0); + fkp = XFS_BMBT_KEY_ADDR(mp, rblock, 1); + tkp = XFS_BMDR_KEY_ADDR(dblock, 1); + fpp = XFS_BMAP_BROOT_PTR_ADDR(mp, rblock, 1, rblocklen); + tpp = XFS_BMDR_PTR_ADDR(dblock, 1, dmxr); dmxr = be16_to_cpu(dblock->bb_numrecs); memcpy(tkp, fkp, sizeof(*fkp) * dmxr); memcpy(tpp, fpp, sizeof(*fpp) * dmxr); @@ -599,15 +600,36 @@ xfs_bmbt_get_minrecs( struct xfs_btree_cur *cur, int level) { - return XFS_BMAP_BLOCK_IMINRECS(level, cur); + if (level == cur->bc_nlevels - 1) { + struct xfs_ifork *ifp; + + ifp = XFS_IFORK_PTR(cur->bc_private.b.ip, + cur->bc_private.b.whichfork); + + return xfs_bmbt_maxrecs(cur->bc_mp, + ifp->if_broot_bytes, level == 0) / 2; + } + + return cur->bc_mp->m_bmap_dmnr[level != 0]; } -STATIC int +int xfs_bmbt_get_maxrecs( struct xfs_btree_cur *cur, int level) { - return XFS_BMAP_BLOCK_IMAXRECS(level, cur); + if (level == cur->bc_nlevels - 1) { + struct xfs_ifork *ifp; + + ifp = XFS_IFORK_PTR(cur->bc_private.b.ip, + cur->bc_private.b.whichfork); + + return xfs_bmbt_maxrecs(cur->bc_mp, + ifp->if_broot_bytes, level == 0); + } + + return cur->bc_mp->m_bmap_dmxr[level != 0]; + } /* @@ -624,7 +646,10 @@ xfs_bmbt_get_dmaxrecs( struct xfs_btree_cur *cur, int level) { - return XFS_BMAP_BLOCK_DMAXRECS(level, cur); + if (level != cur->bc_nlevels - 1) + return cur->bc_mp->m_bmap_dmxr[level != 0]; + return xfs_bmdr_maxrecs(cur->bc_mp, cur->bc_private.b.forksize, + level == 0); } STATIC void @@ -844,3 +869,35 @@ xfs_bmbt_init_cursor( return cur; } + +/* + * Calculate number of records in a bmap btree block. + */ +int +xfs_bmbt_maxrecs( + struct xfs_mount *mp, + int blocklen, + int leaf) +{ + blocklen -= XFS_BMBT_BLOCK_LEN(mp); + + if (leaf) + return blocklen / sizeof(xfs_bmbt_rec_t); + return blocklen / (sizeof(xfs_bmbt_key_t) + sizeof(xfs_bmbt_ptr_t)); +} + +/* + * Calculate number of records in a bmap btree inode root. + */ +int +xfs_bmdr_maxrecs( + struct xfs_mount *mp, + int blocklen, + int leaf) +{ + blocklen -= sizeof(xfs_bmdr_block_t); + + if (leaf) + return blocklen / sizeof(xfs_bmdr_rec_t); + return blocklen / (sizeof(xfs_bmdr_key_t) + sizeof(xfs_bmdr_ptr_t)); +} Index: xfs-cmds/xfsprogs/include/xfs_bmap_btree.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_bmap_btree.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_bmap_btree.h 2008-10-12 15:29:07.000000000 +0200 @@ -21,7 +21,7 @@ #define XFS_BMAP_MAGIC 0x424d4150 /* 'BMAP' */ struct xfs_btree_cur; -struct xfs_btree_lblock; +struct xfs_btree_block; struct xfs_mount; struct xfs_inode; struct xfs_trans; @@ -146,71 +146,60 @@ typedef struct xfs_bmbt_key { /* btree pointer type */ typedef __be64 xfs_bmbt_ptr_t, xfs_bmdr_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_lblock xfs_bmbt_block_t; - -#define XFS_BUF_TO_BMBT_BLOCK(bp) ((xfs_bmbt_block_t *)XFS_BUF_PTR(bp)) - -#define XFS_BMAP_RBLOCK_DSIZE(lev,cur) ((cur)->bc_private.b.forksize) -#define XFS_BMAP_RBLOCK_ISIZE(lev,cur) \ - ((int)XFS_IFORK_PTR((cur)->bc_private.b.ip, \ - (cur)->bc_private.b.whichfork)->if_broot_bytes) - -#define XFS_BMAP_BLOCK_DMAXRECS(lev,cur) \ - (((lev) == (cur)->bc_nlevels - 1 ? \ - XFS_BTREE_BLOCK_MAXRECS(XFS_BMAP_RBLOCK_DSIZE(lev,cur), \ - xfs_bmdr, (lev) == 0) : \ - ((cur)->bc_mp->m_bmap_dmxr[(lev) != 0]))) -#define XFS_BMAP_BLOCK_IMAXRECS(lev,cur) \ - (((lev) == (cur)->bc_nlevels - 1 ? \ - XFS_BTREE_BLOCK_MAXRECS(XFS_BMAP_RBLOCK_ISIZE(lev,cur),\ - xfs_bmbt, (lev) == 0) : \ - ((cur)->bc_mp->m_bmap_dmxr[(lev) != 0]))) - -#define XFS_BMAP_BLOCK_DMINRECS(lev,cur) \ - (((lev) == (cur)->bc_nlevels - 1 ? \ - XFS_BTREE_BLOCK_MINRECS(XFS_BMAP_RBLOCK_DSIZE(lev,cur),\ - xfs_bmdr, (lev) == 0) : \ - ((cur)->bc_mp->m_bmap_dmnr[(lev) != 0]))) -#define XFS_BMAP_BLOCK_IMINRECS(lev,cur) \ - (((lev) == (cur)->bc_nlevels - 1 ? \ - XFS_BTREE_BLOCK_MINRECS(XFS_BMAP_RBLOCK_ISIZE(lev,cur),\ - xfs_bmbt, (lev) == 0) : \ - ((cur)->bc_mp->m_bmap_dmnr[(lev) != 0]))) - -#define XFS_BMAP_REC_DADDR(bb,i,cur) (XFS_BTREE_REC_ADDR(xfs_bmbt, bb, i)) - -#define XFS_BMAP_REC_IADDR(bb,i,cur) (XFS_BTREE_REC_ADDR(xfs_bmbt, bb, i)) - -#define XFS_BMAP_KEY_DADDR(bb,i,cur) \ - (XFS_BTREE_KEY_ADDR(xfs_bmbt, bb, i)) - -#define XFS_BMAP_KEY_IADDR(bb,i,cur) \ - (XFS_BTREE_KEY_ADDR(xfs_bmbt, bb, i)) - -#define XFS_BMAP_PTR_DADDR(bb,i,cur) \ - (XFS_BTREE_PTR_ADDR(xfs_bmbt, bb, i, XFS_BMAP_BLOCK_DMAXRECS( \ - be16_to_cpu((bb)->bb_level), cur))) -#define XFS_BMAP_PTR_IADDR(bb,i,cur) \ - (XFS_BTREE_PTR_ADDR(xfs_bmbt, bb, i, XFS_BMAP_BLOCK_IMAXRECS( \ - be16_to_cpu((bb)->bb_level), cur))) +/* + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) + */ +#define XFS_BMBT_BLOCK_LEN(mp) XFS_BTREE_LBLOCK_LEN + +#define XFS_BMBT_REC_ADDR(mp, block, index) \ + ((xfs_bmbt_rec_t *) \ + ((char *)(block) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ + ((index) - 1) * sizeof(xfs_bmbt_rec_t))) + +#define XFS_BMBT_KEY_ADDR(mp, block, index) \ + ((xfs_bmbt_key_t *) \ + ((char *)(block) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ + ((index) - 1) * sizeof(xfs_bmbt_key_t))) + +#define XFS_BMBT_PTR_ADDR(mp, block, index, maxrecs) \ + ((xfs_bmbt_ptr_t *) \ + ((char *)(block) + \ + XFS_BMBT_BLOCK_LEN(mp) + \ + (maxrecs) * sizeof(xfs_bmbt_key_t) + \ + ((index) - 1) * sizeof(xfs_bmbt_ptr_t))) + +#define XFS_BMDR_REC_ADDR(block, index) \ + ((xfs_bmdr_rec_t *) \ + ((char *)(block) + \ + sizeof(struct xfs_bmdr_block) + \ + ((index) - 1) * sizeof(xfs_bmdr_rec_t))) + +#define XFS_BMDR_KEY_ADDR(block, index) \ + ((xfs_bmdr_key_t *) \ + ((char *)(block) + \ + sizeof(struct xfs_bmdr_block) + \ + ((index) - 1) * sizeof(xfs_bmdr_key_t))) + +#define XFS_BMDR_PTR_ADDR(block, index, maxrecs) \ + ((xfs_bmdr_ptr_t *) \ + ((char *)(block) + \ + sizeof(struct xfs_bmdr_block) + \ + (maxrecs) * sizeof(xfs_bmdr_key_t) + \ + ((index) - 1) * sizeof(xfs_bmdr_ptr_t))) /* * These are to be used when we know the size of the block and * we don't have a cursor. */ -#define XFS_BMAP_BROOT_REC_ADDR(bb,i,sz) \ - (XFS_BTREE_REC_ADDR(xfs_bmbt,bb,i)) -#define XFS_BMAP_BROOT_KEY_ADDR(bb,i,sz) \ - (XFS_BTREE_KEY_ADDR(xfs_bmbt,bb,i)) -#define XFS_BMAP_BROOT_PTR_ADDR(bb,i,sz) \ - (XFS_BTREE_PTR_ADDR(xfs_bmbt,bb,i,XFS_BMAP_BROOT_MAXRECS(sz))) - -#define XFS_BMAP_BROOT_NUMRECS(bb) be16_to_cpu((bb)->bb_numrecs) -#define XFS_BMAP_BROOT_MAXRECS(sz) XFS_BTREE_BLOCK_MAXRECS(sz,xfs_bmbt,0) +#define XFS_BMAP_BROOT_PTR_ADDR(mp, bb, i, sz) \ + XFS_BMBT_PTR_ADDR(mp, bb, i, xfs_bmbt_maxrecs(mp, sz, 0)) #define XFS_BMAP_BROOT_SPACE_CALC(nrecs) \ - (int)(sizeof(xfs_bmbt_block_t) + \ + (int)(XFS_BTREE_LBLOCK_LEN + \ ((nrecs) * (sizeof(xfs_bmbt_key_t) + sizeof(xfs_bmbt_ptr_t)))) #define XFS_BMAP_BROOT_SPACE(bb) \ @@ -224,17 +213,11 @@ typedef struct xfs_btree_lblock xfs_bmbt */ #define XFS_BM_MAXLEVELS(mp,w) ((mp)->m_bm_maxlevels[(w)]) -#define XFS_BMAP_SANITY_CHECK(mp,bb,level) \ - (be32_to_cpu((bb)->bb_magic) == XFS_BMAP_MAGIC && \ - be16_to_cpu((bb)->bb_level) == level && \ - be16_to_cpu((bb)->bb_numrecs) > 0 && \ - be16_to_cpu((bb)->bb_numrecs) <= (mp)->m_bmap_dmxr[(level) != 0]) - - /* * Prototypes for xfs_bmap.c to call. */ -extern void xfs_bmdr_to_bmbt(xfs_bmdr_block_t *, int, xfs_bmbt_block_t *, int); +extern void xfs_bmdr_to_bmbt(struct xfs_mount *, xfs_bmdr_block_t *, int, + struct xfs_btree_block *, int); extern void xfs_bmbt_get_all(xfs_bmbt_rec_host_t *r, xfs_bmbt_irec_t *s); extern xfs_filblks_t xfs_bmbt_get_blockcount(xfs_bmbt_rec_host_t *r); extern xfs_fsblock_t xfs_bmbt_get_startblock(xfs_bmbt_rec_host_t *r); @@ -257,7 +240,12 @@ extern void xfs_bmbt_disk_set_all(xfs_bm extern void xfs_bmbt_disk_set_allf(xfs_bmbt_rec_t *r, xfs_fileoff_t o, xfs_fsblock_t b, xfs_filblks_t c, xfs_exntst_t v); -extern void xfs_bmbt_to_bmdr(xfs_bmbt_block_t *, int, xfs_bmdr_block_t *, int); +extern void xfs_bmbt_to_bmdr(struct xfs_mount *, struct xfs_btree_block *, int, + xfs_bmdr_block_t *, int); + +extern int xfs_bmbt_get_maxrecs(struct xfs_btree_cur *, int level); +extern int xfs_bmdr_maxrecs(struct xfs_mount *, int blocklen, int leaf); +extern int xfs_bmbt_maxrecs(struct xfs_mount *, int blocklen, int leaf); extern struct xfs_btree_cur *xfs_bmbt_init_cursor(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, int); Index: xfs-cmds/xfsprogs/include/xfs_dinode.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_dinode.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_dinode.h 2008-10-12 15:28:54.000000000 +0200 @@ -78,8 +78,7 @@ typedef struct xfs_dinode xfs_dinode_core_t di_core; /* * In adding anything between the core and the union, be - * sure to update the macros like XFS_LITINO below and - * XFS_BMAP_RBLOCK_DSIZE in xfs_bmap_btree.h. + * sure to update the macros like XFS_LITINO below. */ __be32 di_next_unlinked;/* agi unlinked list ptr */ union { @@ -166,7 +165,7 @@ typedef enum xfs_dinode_fmt */ #define XFS_LITINO(mp) ((mp)->m_litino) #define XFS_BROOT_SIZE_ADJ \ - (sizeof(xfs_bmbt_block_t) - sizeof(xfs_bmdr_block_t)) + (XFS_BTREE_LBLOCK_LEN - sizeof(xfs_bmdr_block_t)) /* * Inode data & attribute fork sizes, per inode. Index: xfs-cmds/xfsprogs/include/xfs_alloc_btree.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_alloc_btree.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_alloc_btree.h 2008-10-12 15:28:54.000000000 +0200 @@ -24,7 +24,6 @@ struct xfs_buf; struct xfs_btree_cur; -struct xfs_btree_sblock; struct xfs_mount; /* @@ -50,16 +49,6 @@ typedef struct xfs_alloc_rec_incore { /* btree pointer type */ typedef __be32 xfs_alloc_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_sblock xfs_alloc_block_t; - -#define XFS_BUF_TO_ALLOC_BLOCK(bp) ((xfs_alloc_block_t *)XFS_BUF_PTR(bp)) - -/* - * Real block structures have a size equal to the disk block size. - */ -#define XFS_ALLOC_BLOCK_MAXRECS(lev,cur) ((cur)->bc_mp->m_alloc_mxr[lev != 0]) -#define XFS_ALLOC_BLOCK_MINRECS(lev,cur) ((cur)->bc_mp->m_alloc_mnr[lev != 0]) /* * Minimum and maximum blocksize and sectorsize. @@ -83,20 +72,39 @@ typedef struct xfs_btree_sblock xfs_allo #define XFS_CNT_BLOCK(mp) ((xfs_agblock_t)(XFS_BNO_BLOCK(mp) + 1)) /* - * Record, key, and pointer address macros for btree blocks. + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) */ -#define XFS_ALLOC_REC_ADDR(bb,i,cur) \ - XFS_BTREE_REC_ADDR(xfs_alloc, bb, i) - -#define XFS_ALLOC_KEY_ADDR(bb,i,cur) \ - XFS_BTREE_KEY_ADDR(xfs_alloc, bb, i) - -#define XFS_ALLOC_PTR_ADDR(bb,i,cur) \ - XFS_BTREE_PTR_ADDR(xfs_alloc, bb, i, XFS_ALLOC_BLOCK_MAXRECS(1, cur)) +#define XFS_ALLOC_BLOCK_LEN(mp) XFS_BTREE_SBLOCK_LEN +/* + * Record, key, and pointer address macros for btree blocks. + * + * (note that some of these may appear unused, but they are used in userspace) + */ +#define XFS_ALLOC_REC_ADDR(mp, block, index) \ + ((xfs_alloc_rec_t *) \ + ((char *)(block) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ + (((index) - 1) * sizeof(xfs_alloc_rec_t)))) + +#define XFS_ALLOC_KEY_ADDR(mp, block, index) \ + ((xfs_alloc_key_t *) \ + ((char *)(block) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ + ((index) - 1) * sizeof(xfs_alloc_key_t))) + +#define XFS_ALLOC_PTR_ADDR(mp, block, index, maxrecs) \ + ((xfs_alloc_ptr_t *) \ + ((char *)(block) + \ + XFS_ALLOC_BLOCK_LEN(mp) + \ + (maxrecs) * sizeof(xfs_alloc_key_t) + \ + ((index) - 1) * sizeof(xfs_alloc_ptr_t))) extern struct xfs_btree_cur *xfs_allocbt_init_cursor(struct xfs_mount *, struct xfs_trans *, struct xfs_buf *, xfs_agnumber_t, xfs_btnum_t); +extern int xfs_allocbt_maxrecs(struct xfs_mount *, int, int); #endif /* __XFS_ALLOC_BTREE_H__ */ Index: xfs-cmds/xfsprogs/include/xfs_ialloc_btree.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_ialloc_btree.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_ialloc_btree.h 2008-10-12 15:28:54.000000000 +0200 @@ -24,7 +24,6 @@ struct xfs_buf; struct xfs_btree_cur; -struct xfs_btree_sblock; struct xfs_mount; /* @@ -70,11 +69,6 @@ typedef struct xfs_inobt_key { /* btree pointer type */ typedef __be32 xfs_inobt_ptr_t; -/* btree block header type */ -typedef struct xfs_btree_sblock xfs_inobt_block_t; - -#define XFS_BUF_TO_INOBT_BLOCK(bp) ((xfs_inobt_block_t *)XFS_BUF_PTR(bp)) - /* * Bit manipulations for ir_free. */ @@ -85,14 +79,6 @@ typedef struct xfs_btree_sblock xfs_inob #define XFS_INOBT_CLR_FREE(rp,i) ((rp)->ir_free &= ~XFS_INOBT_MASK(i)) /* - * Real block structures have a size equal to the disk block size. - */ -#define XFS_INOBT_BLOCK_MAXRECS(lev,cur) ((cur)->bc_mp->m_inobt_mxr[lev != 0]) -#define XFS_INOBT_BLOCK_MINRECS(lev,cur) ((cur)->bc_mp->m_inobt_mnr[lev != 0]) -#define XFS_INOBT_IS_LAST_REC(cur) \ - ((cur)->bc_ptrs[0] == be16_to_cpu(XFS_BUF_TO_INOBT_BLOCK((cur)->bc_bufs[0])->bb_numrecs)) - -/* * Maximum number of inode btree levels. */ #define XFS_IN_MAXLEVELS(mp) ((mp)->m_in_maxlevels) @@ -104,19 +90,38 @@ typedef struct xfs_btree_sblock xfs_inob #define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1)) /* - * Record, key, and pointer address macros for btree blocks. + * Btree block header size depends on a superblock flag. + * + * (not quite yet, but soon) */ -#define XFS_INOBT_REC_ADDR(bb,i,cur) \ - (XFS_BTREE_REC_ADDR(xfs_inobt, bb, i)) - -#define XFS_INOBT_KEY_ADDR(bb,i,cur) \ - (XFS_BTREE_KEY_ADDR(xfs_inobt, bb, i)) +#define XFS_INOBT_BLOCK_LEN(mp) XFS_BTREE_SBLOCK_LEN -#define XFS_INOBT_PTR_ADDR(bb,i,cur) \ - (XFS_BTREE_PTR_ADDR(xfs_inobt, bb, \ - i, XFS_INOBT_BLOCK_MAXRECS(1, cur))) +/* + * Record, key, and pointer address macros for btree blocks. + * + * (note that some of these may appear unused, but they are used in userspace) + */ +#define XFS_INOBT_REC_ADDR(mp, block, index) \ + ((xfs_inobt_rec_t *) \ + ((char *)(block) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ + (((index) - 1) * sizeof(xfs_inobt_rec_t)))) + +#define XFS_INOBT_KEY_ADDR(mp, block, index) \ + ((xfs_inobt_key_t *) \ + ((char *)(block) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ + ((index) - 1) * sizeof(xfs_inobt_key_t))) + +#define XFS_INOBT_PTR_ADDR(mp, block, index, maxrecs) \ + ((xfs_inobt_ptr_t *) \ + ((char *)(block) + \ + XFS_INOBT_BLOCK_LEN(mp) + \ + (maxrecs) * sizeof(xfs_inobt_key_t) + \ + ((index) - 1) * sizeof(xfs_inobt_ptr_t))) extern struct xfs_btree_cur *xfs_inobt_init_cursor(struct xfs_mount *, struct xfs_trans *, struct xfs_buf *, xfs_agnumber_t); +extern int xfs_inobt_maxrecs(struct xfs_mount *, int, int); #endif /* __XFS_IALLOC_BTREE_H__ */ Index: xfs-cmds/xfsprogs/libxfs/xfs_inode.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_inode.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_inode.c 2008-10-12 15:28:54.000000000 +0200 @@ -539,7 +539,7 @@ xfs_iformat_btree( ifp = XFS_IFORK_PTR(ip, whichfork); dfp = (xfs_bmdr_block_t *)XFS_DFORK_PTR(dip, whichfork); size = XFS_BMAP_BROOT_SPACE(dfp); - nrecs = XFS_BMAP_BROOT_NUMRECS(dfp); + nrecs = be16_to_cpu(dfp->bb_numrecs); /* * blow out if -- fork has less extents than can fit in @@ -567,8 +567,9 @@ xfs_iformat_btree( * Copy and convert from the on-disk structure * to the in-memory structure. */ - xfs_bmdr_to_bmbt(dfp, XFS_DFORK_SIZE(dip, ip->i_mount, whichfork), - ifp->if_broot, size); + xfs_bmdr_to_bmbt(ip->i_mount, dfp, + XFS_DFORK_SIZE(dip, ip->i_mount, whichfork), + ifp->if_broot, size); ifp->if_flags &= ~XFS_IFEXTENTS; ifp->if_flags |= XFS_IFBROOT; @@ -710,9 +711,10 @@ xfs_iroot_realloc( int rec_diff, int whichfork) { + struct xfs_mount *mp = ip->i_mount; int cur_max; xfs_ifork_t *ifp; - xfs_bmbt_block_t *new_broot; + struct xfs_btree_block *new_broot; int new_max; size_t new_size; char *np; @@ -733,8 +735,7 @@ xfs_iroot_realloc( */ if (ifp->if_broot_bytes == 0) { new_size = (size_t)XFS_BMAP_BROOT_SPACE_CALC(rec_diff); - ifp->if_broot = (xfs_bmbt_block_t*)kmem_alloc(new_size, - KM_SLEEP); + ifp->if_broot = kmem_alloc(new_size, KM_SLEEP); ifp->if_broot_bytes = (int)new_size; return; } @@ -745,18 +746,16 @@ xfs_iroot_realloc( * location. The records don't change location because * they are kept butted up against the btree block header. */ - cur_max = XFS_BMAP_BROOT_MAXRECS(ifp->if_broot_bytes); + cur_max = xfs_bmbt_maxrecs(mp, ifp->if_broot_bytes, 0); new_max = cur_max + rec_diff; new_size = (size_t)XFS_BMAP_BROOT_SPACE_CALC(new_max); - ifp->if_broot = (xfs_bmbt_block_t *) - kmem_realloc(ifp->if_broot, - new_size, + ifp->if_broot = kmem_realloc(ifp->if_broot, new_size, (size_t)XFS_BMAP_BROOT_SPACE_CALC(cur_max), /* old size */ KM_SLEEP); - op = (char *)XFS_BMAP_BROOT_PTR_ADDR(ifp->if_broot, 1, - ifp->if_broot_bytes); - np = (char *)XFS_BMAP_BROOT_PTR_ADDR(ifp->if_broot, 1, - (int)new_size); + op = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, ifp->if_broot, 1, + ifp->if_broot_bytes); + np = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, ifp->if_broot, 1, + (int)new_size); ifp->if_broot_bytes = (int)new_size; ASSERT(ifp->if_broot_bytes <= XFS_IFORK_SIZE(ip, whichfork) + XFS_BROOT_SIZE_ADJ); @@ -770,7 +769,7 @@ xfs_iroot_realloc( * records, just get rid of the root and clear the status bit. */ ASSERT((ifp->if_broot != NULL) && (ifp->if_broot_bytes > 0)); - cur_max = XFS_BMAP_BROOT_MAXRECS(ifp->if_broot_bytes); + cur_max = xfs_bmbt_maxrecs(mp, ifp->if_broot_bytes, 0); new_max = cur_max + rec_diff; ASSERT(new_max >= 0); if (new_max > 0) @@ -778,11 +777,11 @@ xfs_iroot_realloc( else new_size = 0; if (new_size > 0) { - new_broot = (xfs_bmbt_block_t *)kmem_alloc(new_size, KM_SLEEP); + new_broot = kmem_alloc(new_size, KM_SLEEP); /* * First copy over the btree block header. */ - memcpy(new_broot, ifp->if_broot, sizeof(xfs_bmbt_block_t)); + memcpy(new_broot, ifp->if_broot, XFS_BTREE_LBLOCK_LEN); } else { new_broot = NULL; ifp->if_flags &= ~XFS_IFBROOT; @@ -795,18 +794,16 @@ xfs_iroot_realloc( /* * First copy the records. */ - op = (char *)XFS_BMAP_BROOT_REC_ADDR(ifp->if_broot, 1, - ifp->if_broot_bytes); - np = (char *)XFS_BMAP_BROOT_REC_ADDR(new_broot, 1, - (int)new_size); + op = (char *)XFS_BMBT_REC_ADDR(mp, ifp->if_broot, 1); + np = (char *)XFS_BMBT_REC_ADDR(mp, new_broot, 1); memcpy(np, op, new_max * (uint)sizeof(xfs_bmbt_rec_t)); /* * Then copy the pointers. */ - op = (char *)XFS_BMAP_BROOT_PTR_ADDR(ifp->if_broot, 1, + op = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, ifp->if_broot, 1, ifp->if_broot_bytes); - np = (char *)XFS_BMAP_BROOT_PTR_ADDR(new_broot, 1, + np = (char *)XFS_BMAP_BROOT_PTR_ADDR(mp, new_broot, 1, (int)new_size); memcpy(np, op, new_max * (uint)sizeof(xfs_dfsbno_t)); } @@ -1149,7 +1146,7 @@ xfs_iflush_fork( ASSERT(ifp->if_broot_bytes <= (XFS_IFORK_SIZE(ip, whichfork) + XFS_BROOT_SIZE_ADJ)); - xfs_bmbt_to_bmdr(ifp->if_broot, ifp->if_broot_bytes, + xfs_bmbt_to_bmdr(mp, ifp->if_broot, ifp->if_broot_bytes, (xfs_bmdr_block_t *)cp, XFS_DFORK_SIZE(dip, mp, whichfork)); } Index: xfs-cmds/xfsprogs/include/xfs_mount.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_mount.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_mount.h 2008-10-12 15:28:22.000000000 +0200 @@ -275,12 +275,12 @@ typedef struct xfs_mount { uint m_blockmask; /* sb_blocksize-1 */ uint m_blockwsize; /* sb_blocksize in words */ uint m_blockwmask; /* blockwsize-1 */ - uint m_alloc_mxr[2]; /* XFS_ALLOC_BLOCK_MAXRECS */ - uint m_alloc_mnr[2]; /* XFS_ALLOC_BLOCK_MINRECS */ - uint m_bmap_dmxr[2]; /* XFS_BMAP_BLOCK_DMAXRECS */ - uint m_bmap_dmnr[2]; /* XFS_BMAP_BLOCK_DMINRECS */ - uint m_inobt_mxr[2]; /* XFS_INOBT_BLOCK_MAXRECS */ - uint m_inobt_mnr[2]; /* XFS_INOBT_BLOCK_MINRECS */ + uint m_alloc_mxr[2]; /* max alloc btree records */ + uint m_alloc_mnr[2]; /* min alloc btree records */ + uint m_bmap_dmxr[2]; /* max bmap btree records */ + uint m_bmap_dmnr[2]; /* min bmap btree records */ + uint m_inobt_mxr[2]; /* max inobt btree records */ + uint m_inobt_mnr[2]; /* min inobt btree records */ uint m_ag_maxlevels; /* XFS_AG_MAXLEVELS */ uint m_bm_maxlevels[2]; /* XFS_BM_MAXLEVELS */ uint m_in_maxlevels; /* XFS_IN_MAXLEVELS */ Index: xfs-cmds/xfsprogs/include/xfs_btree.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_btree.h 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_btree.h 2008-10-12 15:28:54.000000000 +0200 @@ -39,31 +39,16 @@ extern kmem_zone_t *xfs_btree_cur_zone; #define XFS_BTNUM_INO ((xfs_btnum_t)XFS_BTNUM_INOi) /* - * Short form header: space allocation btrees. - */ -typedef struct xfs_btree_sblock { - __be32 bb_magic; /* magic number for block type */ - __be16 bb_level; /* 0 is a leaf */ - __be16 bb_numrecs; /* current # of data records */ - __be32 bb_leftsib; /* left sibling block or NULLAGBLOCK */ - __be32 bb_rightsib; /* right sibling block or NULLAGBLOCK */ -} xfs_btree_sblock_t; - -/* - * Long form header: bmap btrees. - */ -typedef struct xfs_btree_lblock { - __be32 bb_magic; /* magic number for block type */ - __be16 bb_level; /* 0 is a leaf */ - __be16 bb_numrecs; /* current # of data records */ - __be64 bb_leftsib; /* left sibling block or NULLDFSBNO */ - __be64 bb_rightsib; /* right sibling block or NULLDFSBNO */ -} xfs_btree_lblock_t; - -/* - * Combined header and structure, used by common code. + * Generic btree header. + * + * This is a comination of the actual format used on disk for short and long + * format btrees. The first three fields are shared by both format, but + * the pointers are different and should be used with care. + * + * To get the size of the actual short or long form headers please use + * the size macros below. Never use sizeof(xfs_btree_block). */ -typedef struct xfs_btree_block { +struct xfs_btree_block { __be32 bb_magic; /* magic number for block type */ __be16 bb_level; /* 0 is a leaf */ __be16 bb_numrecs; /* current # of data records */ @@ -77,7 +62,11 @@ typedef struct xfs_btree_block { __be64 bb_rightsib; } l; /* long form pointers */ } bb_u; /* rest */ -} xfs_btree_block_t; +}; + +#define XFS_BTREE_SBLOCK_LEN 16 /* size of a short form block */ +#define XFS_BTREE_LBLOCK_LEN 24 /* size of a long form block */ + /* * Generic key, ptr and record wrapper structures. @@ -148,34 +137,6 @@ do { \ case XFS_BTNUM_MAX: ASSERT(0); /* fucking gcc */ ; break; \ } \ } while (0) -/* - * Maximum and minimum records in a btree block. - * Given block size, type prefix, and leaf flag (0 or 1). - * The divisor below is equivalent to lf ? (e1) : (e2) but that produces - * compiler warnings. - */ -#define XFS_BTREE_BLOCK_MAXRECS(bsz,t,lf) \ - ((int)(((bsz) - (uint)sizeof(t ## _block_t)) / \ - (((lf) * (uint)sizeof(t ## _rec_t)) + \ - ((1 - (lf)) * \ - ((uint)sizeof(t ## _key_t) + (uint)sizeof(t ## _ptr_t)))))) -#define XFS_BTREE_BLOCK_MINRECS(bsz,t,lf) \ - (XFS_BTREE_BLOCK_MAXRECS(bsz,t,lf) / 2) - -/* - * Record, key, and pointer address calculation macros. - * Given block size, type prefix, block pointer, and index of requested entry - * (first entry numbered 1). - */ -#define XFS_BTREE_REC_ADDR(t,bb,i) \ - ((t ## _rec_t *)((char *)(bb) + sizeof(t ## _block_t) + \ - ((i) - 1) * sizeof(t ## _rec_t))) -#define XFS_BTREE_KEY_ADDR(t,bb,i) \ - ((t ## _key_t *)((char *)(bb) + sizeof(t ## _block_t) + \ - ((i) - 1) * sizeof(t ## _key_t))) -#define XFS_BTREE_PTR_ADDR(t,bb,i,mxr) \ - ((t ## _ptr_t *)((char *)(bb) + sizeof(t ## _block_t) + \ - (mxr) * sizeof(t ## _key_t) + ((i) - 1) * sizeof(t ## _ptr_t))) #define XFS_BTREE_MAXLEVELS 8 /* max of all btrees */ @@ -322,20 +283,8 @@ typedef struct xfs_btree_cur /* * Convert from buffer to btree block header. */ -#define XFS_BUF_TO_BLOCK(bp) ((xfs_btree_block_t *)XFS_BUF_PTR(bp)) -#define XFS_BUF_TO_LBLOCK(bp) ((xfs_btree_lblock_t *)XFS_BUF_PTR(bp)) -#define XFS_BUF_TO_SBLOCK(bp) ((xfs_btree_sblock_t *)XFS_BUF_PTR(bp)) - +#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)XFS_BUF_PTR(bp)) -/* - * Check that long form block header is ok. - */ -int /* error (0 or EFSCORRUPTED) */ -xfs_btree_check_lblock( - struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_lblock *block, /* btree long form block pointer */ - int level, /* level of the btree block */ - struct xfs_buf *bp); /* buffer containing block, if any */ /* * Check that block header is ok. Index: xfs-cmds/xfsprogs/libxfs/xfs_alloc_btree.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_alloc_btree.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_alloc_btree.c 2008-10-12 15:28:54.000000000 +0200 @@ -155,7 +155,7 @@ xfs_allocbt_update_lastrec( if (numrecs) { xfs_alloc_rec_t *rrp; - rrp = XFS_ALLOC_REC_ADDR(block, numrecs, cur); + rrp = XFS_ALLOC_REC_ADDR(cur->bc_mp, block, numrecs); len = rrp->ar_blockcount; } else { len = 0; @@ -456,3 +456,19 @@ xfs_allocbt_init_cursor( return cur; } + +/* + * Calculate number of records in an alloc btree block. + */ +int +xfs_allocbt_maxrecs( + struct xfs_mount *mp, + int blocklen, + int leaf) +{ + blocklen -= XFS_ALLOC_BLOCK_LEN(mp); + + if (leaf) + return blocklen / sizeof(xfs_alloc_rec_t); + return blocklen / (sizeof(xfs_alloc_key_t) + sizeof(xfs_alloc_ptr_t)); +} Index: xfs-cmds/xfsprogs/libxfs/xfs_ialloc_btree.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_ialloc_btree.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_ialloc_btree.c 2008-10-12 15:28:54.000000000 +0200 @@ -341,3 +341,19 @@ xfs_inobt_init_cursor( return cur; } + +/* + * Calculate number of records in an inobt btree block. + */ +int +xfs_inobt_maxrecs( + struct xfs_mount *mp, + int blocklen, + int leaf) +{ + blocklen -= XFS_INOBT_BLOCK_LEN(mp); + + if (leaf) + return blocklen / sizeof(xfs_inobt_rec_t); + return blocklen / (sizeof(xfs_inobt_key_t) + sizeof(xfs_inobt_ptr_t)); +} Index: xfs-cmds/xfsprogs/libxfs/xfs_mount.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_mount.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_mount.c 2008-10-12 15:28:23.000000000 +0200 @@ -257,8 +257,6 @@ xfs_sb_to_disk( void xfs_mount_common(xfs_mount_t *mp, xfs_sb_t *sbp) { - int i; - mp->m_agfrotor = mp->m_agirotor = 0; spin_lock_init(&mp->m_agirotor_lock); mp->m_maxagi = mp->m_sb.sb_agcount; @@ -295,24 +293,20 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb } ASSERT(mp->m_attroffset < XFS_LITINO(mp)); - for (i = 0; i < 2; i++) { - mp->m_alloc_mxr[i] = XFS_BTREE_BLOCK_MAXRECS(sbp->sb_blocksize, - xfs_alloc, i == 0); - mp->m_alloc_mnr[i] = XFS_BTREE_BLOCK_MINRECS(sbp->sb_blocksize, - xfs_alloc, i == 0); - } - for (i = 0; i < 2; i++) { - mp->m_bmap_dmxr[i] = XFS_BTREE_BLOCK_MAXRECS(sbp->sb_blocksize, - xfs_bmbt, i == 0); - mp->m_bmap_dmnr[i] = XFS_BTREE_BLOCK_MINRECS(sbp->sb_blocksize, - xfs_bmbt, i == 0); - } - for (i = 0; i < 2; i++) { - mp->m_inobt_mxr[i] = XFS_BTREE_BLOCK_MAXRECS(sbp->sb_blocksize, - xfs_inobt, i == 0); - mp->m_inobt_mnr[i] = XFS_BTREE_BLOCK_MINRECS(sbp->sb_blocksize, - xfs_inobt, i == 0); - } + mp->m_alloc_mxr[0] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 1); + mp->m_alloc_mxr[1] = xfs_allocbt_maxrecs(mp, sbp->sb_blocksize, 0); + mp->m_alloc_mnr[0] = mp->m_alloc_mxr[0] / 2; + mp->m_alloc_mnr[1] = mp->m_alloc_mxr[1] / 2; + + mp->m_inobt_mxr[0] = xfs_inobt_maxrecs(mp, sbp->sb_blocksize, 1); + mp->m_inobt_mxr[1] = xfs_inobt_maxrecs(mp, sbp->sb_blocksize, 0); + mp->m_inobt_mnr[0] = mp->m_inobt_mxr[0] / 2; + mp->m_inobt_mnr[1] = mp->m_inobt_mxr[1] / 2; + + mp->m_bmap_dmxr[0] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 1); + mp->m_bmap_dmxr[1] = xfs_bmbt_maxrecs(mp, sbp->sb_blocksize, 0); + mp->m_bmap_dmnr[0] = mp->m_bmap_dmxr[0] / 2; + mp->m_bmap_dmnr[1] = mp->m_bmap_dmxr[1] / 2; mp->m_bsize = XFS_FSB_TO_BB(mp, 1); mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, Index: xfs-cmds/xfsprogs/db/bmap.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/bmap.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/db/bmap.c 2008-10-12 15:28:54.000000000 +0200 @@ -47,7 +47,7 @@ bmap( int *nexp, bmap_ext_t *bep) { - xfs_bmbt_block_t *block; + struct xfs_btree_block *block; xfs_fsblock_t bno; xfs_dfiloff_t curoffset; xfs_dinode_t *dip; @@ -91,29 +91,27 @@ bmap( bno = NULLFSBLOCK; rblock = (xfs_bmdr_block_t *)XFS_DFORK_PTR(dip, whichfork); fsize = XFS_DFORK_SIZE(dip, mp, whichfork); - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, rblock, 1, - XFS_BTREE_BLOCK_MAXRECS(fsize, xfs_bmdr, 0)); - kp = XFS_BTREE_KEY_ADDR(xfs_bmdr, rblock, 1); + pp = XFS_BMDR_PTR_ADDR(rblock, 1, xfs_bmdr_maxrecs(mp, fsize, 0)); + kp = XFS_BMDR_KEY_ADDR(rblock, 1); bno = select_child(curoffset, kp, pp, be16_to_cpu(rblock->bb_numrecs)); for (;;) { set_cur(&typtab[typ], XFS_FSB_TO_DADDR(mp, bno), blkbb, DB_RING_IGN, NULL); - block = (xfs_bmbt_block_t *)iocur_top->data; + block = (struct xfs_btree_block *)iocur_top->data; if (be16_to_cpu(block->bb_level) == 0) break; - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, - XFS_BTREE_BLOCK_MAXRECS(mp->m_sb.sb_blocksize, - xfs_bmbt, 0)); - kp = XFS_BTREE_KEY_ADDR(xfs_bmbt, block, 1); + pp = XFS_BMDR_PTR_ADDR(block, 1, + xfs_bmbt_maxrecs(mp, mp->m_sb.sb_blocksize, 0)); + kp = XFS_BMDR_KEY_ADDR(block, 1); bno = select_child(curoffset, kp, pp, be16_to_cpu(block->bb_numrecs)); } for (;;) { - nextbno = be64_to_cpu(block->bb_rightsib); + nextbno = be64_to_cpu(block->bb_u.l.bb_rightsib); nextents = be16_to_cpu(block->bb_numrecs); - xp = (xfs_bmbt_rec_64_t *)XFS_BTREE_REC_ADDR(xfs_bmbt, - block, 1); + xp = (xfs_bmbt_rec_64_t *) + XFS_BMBT_REC_ADDR(mp, block, 1); for (ep = xp; ep < &xp[nextents] && n < nex; ep++) { if (!bmap_one_extent(ep, &curoffset, eoffset, &n, bep)) { @@ -126,7 +124,7 @@ bmap( break; set_cur(&typtab[typ], XFS_FSB_TO_DADDR(mp, bno), blkbb, DB_RING_IGN, NULL); - block = (xfs_bmbt_block_t *)iocur_top->data; + block = (struct xfs_btree_block *)iocur_top->data; } pop_cur(); } Index: xfs-cmds/xfsprogs/db/bmroot.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/bmroot.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/db/bmroot.c 2008-10-12 15:28:31.000000000 +0200 @@ -101,7 +101,7 @@ bmroota_key_offset( block = (xfs_bmdr_block_t *)((char *)obj + byteize(startoff)); ASSERT(XFS_DFORK_Q(dip) && (char *)block == XFS_DFORK_APTR(dip)); ASSERT(be16_to_cpu(block->bb_level) > 0); - kp = XFS_BTREE_KEY_ADDR(xfs_bmdr, block, idx); + kp = XFS_BMDR_KEY_ADDR(block, idx); return bitize((int)((char *)kp - (char *)block)); } @@ -139,8 +139,8 @@ bmroota_ptr_offset( block = (xfs_bmdr_block_t *)((char *)obj + byteize(startoff)); ASSERT(XFS_DFORK_Q(dip) && (char *)block == XFS_DFORK_APTR(dip)); ASSERT(be16_to_cpu(block->bb_level) > 0); - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, block, idx, - XFS_BTREE_BLOCK_MAXRECS(XFS_DFORK_ASIZE(dip, mp), xfs_bmdr, 0)); + pp = XFS_BMDR_PTR_ADDR(block, idx, + xfs_bmdr_maxrecs(mp, XFS_DFORK_ASIZE(dip, mp), 0)); return bitize((int)((char *)pp - (char *)block)); } @@ -199,7 +199,7 @@ bmrootd_key_offset( dip = obj; block = (xfs_bmdr_block_t *)((char *)obj + byteize(startoff)); ASSERT(be16_to_cpu(block->bb_level) > 0); - kp = XFS_BTREE_KEY_ADDR(xfs_bmdr, block, idx); + kp = XFS_BMDR_KEY_ADDR(block, idx); return bitize((int)((char *)kp - (char *)block)); } @@ -236,8 +236,8 @@ bmrootd_ptr_offset( dip = obj; block = (xfs_bmdr_block_t *)((char *)obj + byteize(startoff)); ASSERT(be16_to_cpu(block->bb_level) > 0); - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, block, idx, - XFS_BTREE_BLOCK_MAXRECS(XFS_DFORK_DSIZE(dip, mp), xfs_bmdr, 0)); + pp = XFS_BMDR_PTR_ADDR(block, idx, + xfs_bmdr_maxrecs(mp, XFS_DFORK_DSIZE(dip, mp), 0)); return bitize((int)((char *)pp - (char *)block)); } Index: xfs-cmds/xfsprogs/db/check.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/check.c 2008-10-03 10:56:13.000000000 +0200 +++ xfs-cmds/xfsprogs/db/check.c 2008-10-12 15:28:54.000000000 +0200 @@ -177,7 +177,7 @@ static int verbose; #define CHECK_BLISTA(a,b) \ (blist_size && check_blist(XFS_AGB_TO_FSB(mp, a, b))) -typedef void (*scan_lbtree_f_t)(xfs_btree_lblock_t *block, +typedef void (*scan_lbtree_f_t)(struct xfs_btree_block *block, int level, dbm_t type, xfs_fsblock_t bno, @@ -189,7 +189,7 @@ typedef void (*scan_lbtree_f_t)(xfs_btre int isroot, typnm_t btype); -typedef void (*scan_sbtree_f_t)(xfs_btree_sblock_t *block, +typedef void (*scan_sbtree_f_t)(struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, @@ -340,19 +340,19 @@ static void scan_lbtree(xfs_fsblock_t r static void scan_sbtree(xfs_agf_t *agf, xfs_agblock_t root, int nlevels, int isroot, scan_sbtree_f_t func, typnm_t btype); -static void scanfunc_bmap(xfs_btree_lblock_t *ablock, int level, - dbm_t type, xfs_fsblock_t bno, +static void scanfunc_bmap(struct xfs_btree_block *block, + int level, dbm_t type, xfs_fsblock_t bno, inodata_t *id, xfs_drfsbno_t *totd, xfs_drfsbno_t *toti, xfs_extnum_t *nex, blkmap_t **blkmapp, int isroot, typnm_t btype); -static void scanfunc_bno(xfs_btree_sblock_t *ablock, int level, +static void scanfunc_bno(struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot); -static void scanfunc_cnt(xfs_btree_sblock_t *ablock, int level, +static void scanfunc_cnt(struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot); -static void scanfunc_ino(xfs_btree_sblock_t *ablock, int level, +static void scanfunc_ino(struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot); static void set_dbmap(xfs_agnumber_t agno, xfs_agblock_t agbno, @@ -2126,9 +2126,9 @@ process_btinode( error++; return; } - if (be16_to_cpu(dib->bb_numrecs) > XFS_BTREE_BLOCK_MAXRECS( - XFS_DFORK_SIZE(dip, mp, whichfork), xfs_bmdr, - be16_to_cpu(dib->bb_level) == 0)) { + if (be16_to_cpu(dib->bb_numrecs) > + xfs_bmdr_maxrecs(mp, XFS_DFORK_SIZE(dip, mp, whichfork), + be16_to_cpu(dib->bb_level) == 0)) { if (!sflag || id->ilist) dbprintf("numrecs for ino %lld %s fork bmap root too " "large (%u)\n", @@ -2139,16 +2139,14 @@ process_btinode( return; } if (be16_to_cpu(dib->bb_level) == 0) { - rp = (xfs_bmbt_rec_32_t *)XFS_BTREE_REC_ADDR(xfs_bmdr, dib, 1); + rp = (xfs_bmbt_rec_32_t *)XFS_BMDR_REC_ADDR(dib, 1); process_bmbt_reclist(rp, be16_to_cpu(dib->bb_numrecs), type, id, totd, blkmapp); *nex += be16_to_cpu(dib->bb_numrecs); return; } else { - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dib, 1, - XFS_BTREE_BLOCK_MAXRECS(XFS_DFORK_SIZE(dip, mp, - whichfork), - xfs_bmdr, 0)); + pp = XFS_BMDR_PTR_ADDR(dib, 1, xfs_bmdr_maxrecs(mp, + XFS_DFORK_SIZE(dip, mp, whichfork), 0)); for (i = 0; i < be16_to_cpu(dib->bb_numrecs); i++) scan_lbtree(be64_to_cpu(pp[i]), be16_to_cpu(dib->bb_level), @@ -4186,7 +4184,7 @@ scan_sbtree( static void scanfunc_bmap( - xfs_btree_lblock_t *ablock, + struct xfs_btree_block *block, int level, dbm_t type, xfs_fsblock_t bno, @@ -4200,7 +4198,6 @@ scanfunc_bmap( { xfs_agblock_t agbno; xfs_agnumber_t agno; - xfs_bmbt_block_t *block = (xfs_bmbt_block_t *)ablock; int i; xfs_bmbt_ptr_t *pp; xfs_bmbt_rec_32_t *rp; @@ -4236,7 +4233,7 @@ scanfunc_bmap( error++; return; } - rp = (xfs_bmbt_rec_32_t *)XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1); + rp = (xfs_bmbt_rec_32_t *)XFS_BMBT_REC_ADDR(mp, block, 1); *nex += be16_to_cpu(block->bb_numrecs); process_bmbt_reclist(rp, be16_to_cpu(block->bb_numrecs), type, id, totd, blkmapp); @@ -4252,7 +4249,7 @@ scanfunc_bmap( error++; return; } - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[0]); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[0]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_lbtree(be64_to_cpu(pp[i]), level, scanfunc_bmap, type, id, totd, toti, nex, blkmapp, 0, btype); @@ -4260,13 +4257,12 @@ scanfunc_bmap( static void scanfunc_bno( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot) { - xfs_alloc_block_t *block = (xfs_alloc_block_t *)ablock; int i; xfs_alloc_ptr_t *pp; xfs_alloc_rec_t *rp; @@ -4299,7 +4295,7 @@ scanfunc_bno( serious_error++; return; } - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); lastblock = 0; for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) { set_dbmap(seqno, be32_to_cpu(rp[i].ar_startblock), @@ -4327,20 +4323,19 @@ scanfunc_bno( serious_error++; return; } - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), level, 0, scanfunc_bno, TYP_BNOBT); } static void scanfunc_cnt( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot) { - xfs_alloc_block_t *block = (xfs_alloc_block_t *)ablock; xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); int i; xfs_alloc_ptr_t *pp; @@ -4373,7 +4368,7 @@ scanfunc_cnt( serious_error++; return; } - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); lastcount = 0; for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) { check_set_dbmap(seqno, be32_to_cpu(rp[i].ar_startblock), @@ -4404,21 +4399,20 @@ scanfunc_cnt( serious_error++; return; } - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), level, 0, scanfunc_cnt, TYP_CNTBT); } static void scanfunc_ino( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agf_t *agf, xfs_agblock_t bno, int isroot) { xfs_agino_t agino; - xfs_inobt_block_t *block = (xfs_inobt_block_t *)ablock; xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); int i; int isfree; @@ -4452,7 +4446,7 @@ scanfunc_ino( serious_error++; return; } - rp = XFS_BTREE_REC_ADDR(xfs_inobt, block, 1); + rp = XFS_INOBT_REC_ADDR(mp, block, 1); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) { agino = be32_to_cpu(rp[i].ir_startino); off = XFS_INO_TO_OFFSET(mp, agino); @@ -4518,7 +4512,7 @@ scanfunc_ino( serious_error++; return; } - pp = XFS_BTREE_PTR_ADDR(xfs_inobt, block, 1, mp->m_inobt_mxr[1]); + pp = XFS_INOBT_PTR_ADDR(mp, block, 1, mp->m_inobt_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), level, 0, scanfunc_ino, TYP_INOBT); } Index: xfs-cmds/xfsprogs/db/frag.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/frag.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/db/frag.c 2008-10-12 15:28:54.000000000 +0200 @@ -51,12 +51,12 @@ static int Rflag; static int rflag; static int vflag; -typedef void (*scan_lbtree_f_t)(xfs_btree_lblock_t *block, +typedef void (*scan_lbtree_f_t)(struct xfs_btree_block *block, int level, extmap_t **extmapp, typnm_t btype); -typedef void (*scan_sbtree_f_t)(xfs_btree_sblock_t *block, +typedef void (*scan_sbtree_f_t)(struct xfs_btree_block *block, int level, xfs_agf_t *agf); @@ -82,9 +82,9 @@ static void scan_lbtree(xfs_fsblock_t r static void scan_sbtree(xfs_agf_t *agf, xfs_agblock_t root, int nlevels, scan_sbtree_f_t func, typnm_t btype); -static void scanfunc_bmap(xfs_btree_lblock_t *ablock, int level, +static void scanfunc_bmap(struct xfs_btree_block *block, int level, extmap_t **extmapp, typnm_t btype); -static void scanfunc_ino(xfs_btree_sblock_t *ablock, int level, +static void scanfunc_ino(struct xfs_btree_block *block, int level, xfs_agf_t *agf); static const cmdinfo_t frag_cmd = @@ -252,13 +252,12 @@ process_btinode( dib = (xfs_bmdr_block_t *)XFS_DFORK_PTR(dip, whichfork); if (be16_to_cpu(dib->bb_level) == 0) { - rp = (xfs_bmbt_rec_32_t *)XFS_BTREE_REC_ADDR(xfs_bmdr, dib, 1); + rp = (xfs_bmbt_rec_32_t *)XFS_BMDR_REC_ADDR(dib, 1); process_bmbt_reclist(rp, be16_to_cpu(dib->bb_numrecs), extmapp); return; } - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dib, 1, - XFS_BTREE_BLOCK_MAXRECS(XFS_DFORK_SIZE(dip, mp, whichfork), - xfs_bmdr, 0)); + pp = XFS_BMDR_PTR_ADDR(dib, 1, + xfs_bmdr_maxrecs(mp, XFS_DFORK_SIZE(dip, mp, whichfork), 0)); for (i = 0; i < be16_to_cpu(dib->bb_numrecs); i++) scan_lbtree(be64_to_cpu(pp[i]), be16_to_cpu(dib->bb_level), scanfunc_bmap, extmapp, @@ -430,23 +429,22 @@ scan_sbtree( static void scanfunc_bmap( - xfs_btree_lblock_t *ablock, + struct xfs_btree_block *block, int level, extmap_t **extmapp, typnm_t btype) { - xfs_bmbt_block_t *block = (xfs_bmbt_block_t *)ablock; int i; xfs_bmbt_ptr_t *pp; xfs_bmbt_rec_t *rp; if (level == 0) { - rp = XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1); + rp = XFS_BMBT_REC_ADDR(mp, block, 1); process_bmbt_reclist((xfs_bmbt_rec_32_t *)rp, be16_to_cpu(block->bb_numrecs), extmapp); return; } - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[0]); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[0]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_lbtree(be64_to_cpu(pp[i]), level, scanfunc_bmap, extmapp, btype); @@ -454,12 +452,11 @@ scanfunc_bmap( static void scanfunc_ino( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agf_t *agf) { xfs_agino_t agino; - xfs_inobt_block_t *block = (xfs_inobt_block_t *)ablock; xfs_agnumber_t seqno = be32_to_cpu(agf->agf_seqno); int i; int j; @@ -468,7 +465,7 @@ scanfunc_ino( xfs_inobt_rec_t *rp; if (level == 0) { - rp = XFS_BTREE_REC_ADDR(xfs_inobt, block, 1); + rp = XFS_INOBT_REC_ADDR(mp, block, 1); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) { agino = be32_to_cpu(rp[i].ir_startino); off = XFS_INO_TO_OFFSET(mp, agino); @@ -494,7 +491,7 @@ scanfunc_ino( } return; } - pp = XFS_BTREE_PTR_ADDR(xfs_inobt, block, 1, mp->m_inobt_mxr[1]); + pp = XFS_INOBT_PTR_ADDR(mp, block, 1, mp->m_inobt_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), level, scanfunc_ino, TYP_INOBT); Index: xfs-cmds/xfsprogs/db/metadump.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/metadump.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/db/metadump.c 2008-10-12 15:28:31.000000000 +0200 @@ -253,7 +253,7 @@ scanfunc_freesp( return 1; } - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); for (i = 0; i < numrecs; i++) { if (!valid_bno(agno, be32_to_cpu(pp[i]))) { if (show_warnings) @@ -1014,8 +1014,8 @@ scanfunc_bmap( typtab[btype].name, agno, agbno); return 1; } - return process_bmbt_reclist(XFS_BTREE_REC_ADDR(xfs_bmbt, - block, 1), nrecs, *(typnm_t*)arg); + return process_bmbt_reclist(XFS_BMBT_REC_ADDR(mp, block, 1), + nrecs, *(typnm_t*)arg); } if (nrecs > mp->m_bmap_dmxr[1]) { @@ -1024,7 +1024,7 @@ scanfunc_bmap( nrecs, typtab[btype].name, agno, agbno); return 1; } - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[1]); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]); for (i = 0; i < nrecs; i++) { xfs_agnumber_t ag; xfs_agblock_t bno; @@ -1076,12 +1076,12 @@ process_btinode( return 1; } - if (level == 0) - return process_bmbt_reclist(XFS_BTREE_REC_ADDR(xfs_bmdr, - dib, 1), nrecs, itype); + if (level == 0) { + return process_bmbt_reclist(XFS_BMDR_REC_ADDR(dib, 1), + nrecs, itype); + } - maxrecs = XFS_BTREE_BLOCK_MAXRECS(XFS_DFORK_SIZE(dip, mp, whichfork), - xfs_bmdr, 0); + maxrecs = xfs_bmdr_maxrecs(mp, XFS_DFORK_SIZE(dip, mp, whichfork), 0); if (nrecs > maxrecs) { if (show_warnings) print_warning("invalid numrecs (%u) in inode %lld %s " @@ -1090,7 +1090,7 @@ process_btinode( return 1; } - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dib, 1, maxrecs); + pp = XFS_BMDR_PTR_ADDR(dib, 1, maxrecs); for (i = 0; i < nrecs; i++) { xfs_agnumber_t ag; xfs_agblock_t bno; @@ -1324,7 +1324,7 @@ scanfunc_ino( typtab[btype].name, agno, agbno); numrecs = mp->m_inobt_mxr[0]; } - rp = XFS_BTREE_REC_ADDR(xfs_inobt, block, 1); + rp = XFS_INOBT_REC_ADDR(mp, block, 1); for (i = 0; i < numrecs; i++, rp++) { if (!copy_inode_chunk(agno, rp)) return 0; @@ -1339,7 +1339,7 @@ scanfunc_ino( numrecs = mp->m_inobt_mxr[1]; } - pp = XFS_BTREE_PTR_ADDR(xfs_inobt, block, 1, mp->m_inobt_mxr[1]); + pp = XFS_INOBT_PTR_ADDR(mp, block, 1, mp->m_inobt_mxr[1]); for (i = 0; i < numrecs; i++) { if (!valid_bno(agno, be32_to_cpu(pp[i]))) { if (show_warnings) Index: xfs-cmds/xfsprogs/repair/dinode.c =================================================================== --- xfs-cmds.orig/xfsprogs/repair/dinode.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/repair/dinode.c 2008-10-12 15:28:54.000000000 +0200 @@ -956,7 +956,7 @@ getfunc_btree(xfs_mount_t *mp, xfs_dfsbno_t fsbno; xfs_buf_t *bp; xfs_dfsbno_t final_fsbno = NULLDFSBNO; - xfs_bmbt_block_t *block; + struct xfs_btree_block *block; xfs_bmdr_block_t *rootblock = (xfs_bmdr_block_t *) XFS_DFORK_PTR(dip, whichfork); @@ -967,9 +967,9 @@ getfunc_btree(xfs_mount_t *mp, * a btree should have at least 2 levels otherwise it * would be an extent list. */ - rkey = XFS_BTREE_KEY_ADDR(xfs_bmdr, rootblock, 1); - rp = XFS_BTREE_PTR_ADDR(xfs_bmdr, rootblock, 1, XFS_BTREE_BLOCK_MAXRECS( - XFS_DFORK_SIZE(dip, mp, whichfork), xfs_bmdr, 1)); + rkey = XFS_BMDR_KEY_ADDR(rootblock, 1); + rp = XFS_BMDR_PTR_ADDR(rootblock, 1, + xfs_bmdr_maxrecs(mp, XFS_DFORK_SIZE(dip, mp, whichfork), 1)); found = -1; for (i = 0; i < be16_to_cpu(rootblock->bb_numrecs) - 1; i++) { if (be64_to_cpu(rkey[i].br_startoff) <= bno && @@ -994,7 +994,7 @@ getfunc_btree(xfs_mount_t *mp, do_error(_("cannot read bmap block %llu\n"), fsbno); return(NULLDFSBNO); } - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); numrecs = be16_to_cpu(block->bb_numrecs); /* @@ -1023,8 +1023,8 @@ getfunc_btree(xfs_mount_t *mp, "minimum (%u, min - %u), proceeding ...\n"), ino, numrecs, mp->m_bmap_dmnr[1]); } - key = XFS_BTREE_KEY_ADDR(xfs_bmbt, block, 1); - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[1]); + key = XFS_BMBT_KEY_ADDR(mp, block, 1); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]); for (found = -1, i = 0; i < numrecs - 1; i++) { if (be64_to_cpu(key[i].br_startoff) <= bno && bno < be64_to_cpu(key[i + 1].br_startoff)) { @@ -1051,7 +1051,7 @@ getfunc_btree(xfs_mount_t *mp, do_error(_("cannot read bmap block %llu\n"), fsbno); return(NULLDFSBNO); } - block = XFS_BUF_TO_BMBT_BLOCK(bp); + block = XFS_BUF_TO_BLOCK(bp); numrecs = be16_to_cpu(block->bb_numrecs); } @@ -1071,7 +1071,7 @@ getfunc_btree(xfs_mount_t *mp, "(%u, min - %u), continuing...\n"), ino, numrecs, mp->m_bmap_dmnr[0]); - rec = XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1); + rec = XFS_BMBT_REC_ADDR(mp, block, 1); for (i = 0; i < numrecs; i++) { libxfs_bmbt_disk_get_all(rec + i, &irec); if (irec.br_startoff <= bno && @@ -1212,9 +1212,9 @@ process_btinode( init_bm_cursor(&cursor, level + 1); - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dib, 1, XFS_BTREE_BLOCK_MAXRECS( - XFS_DFORK_SIZE(dip, mp, whichfork), xfs_bmdr, 0)); - pkey = XFS_BTREE_KEY_ADDR(xfs_bmdr, dib, 1); + pp = XFS_BMDR_PTR_ADDR(dib, 1, + xfs_bmdr_maxrecs(mp, XFS_DFORK_SIZE(dip, mp, whichfork), 0)); + pkey = XFS_BMDR_KEY_ADDR(dib, 1); last_key = NULLDFILOFF; for (i = 0; i < numrecs; i++) { Index: xfs-cmds/xfsprogs/repair/phase5.c =================================================================== --- xfs-cmds.orig/xfsprogs/repair/phase5.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/repair/phase5.c 2008-10-12 15:28:54.000000000 +0200 @@ -351,22 +351,11 @@ finish_cursor(bt_status_t *curs) } /* - * no-cursor versions of the XFS equivalents. The address calculators - * should be used only for interior btree nodes. - * these are adapted from xfs_alloc_btree.h and xfs_tree.h + * XXX(hch): any reason we don't just look at mp->m_alloc_mxr? */ -#define XR_ALLOC_KEY_ADDR(mp, bp, i) \ - (xfs_alloc_key_t *) ((char *) (bp) + sizeof(xfs_alloc_block_t) \ - + ((i)-1) * sizeof(xfs_alloc_key_t)) - -#define XR_ALLOC_PTR_ADDR(mp, bp, i) \ - (xfs_alloc_ptr_t *) ((char *) (bp) + sizeof(xfs_alloc_block_t) \ - + (mp)->m_alloc_mxr[1] * sizeof(xfs_alloc_key_t) \ - + ((i)-1) * sizeof(xfs_alloc_ptr_t)) - #define XR_ALLOC_BLOCK_MAXRECS(mp, level) \ - XFS_BTREE_BLOCK_MAXRECS((mp)->m_sb.sb_blocksize, \ - xfs_alloc, (level) == 0) + xfs_allocbt_maxrecs((mp), (mp)->m_sb.sb_blocksize, \ + (level) == 0) /* * this calculates a freespace cursor for an ag. @@ -632,7 +621,7 @@ prop_freespace_cursor(xfs_mount_t *mp, x bt_status_t *btree_curs, xfs_agblock_t startblock, xfs_extlen_t blockcount, int level, __uint32_t magic) { - xfs_alloc_block_t *bt_hdr; + struct xfs_btree_block *bt_hdr; xfs_alloc_key_t *bt_key; xfs_alloc_ptr_t *bt_ptr; xfs_agblock_t agbno; @@ -644,7 +633,7 @@ prop_freespace_cursor(xfs_mount_t *mp, x return; lptr = &btree_curs->level[level]; - bt_hdr = XFS_BUF_TO_ALLOC_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); if (be16_to_cpu(bt_hdr->bb_numrecs) == 0) { /* @@ -672,7 +661,7 @@ prop_freespace_cursor(xfs_mount_t *mp, x lptr->prev_buf_p = lptr->buf_p; agbno = get_next_blockaddr(agno, level, btree_curs); - bt_hdr->bb_rightsib = cpu_to_be32(agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(agbno); lptr->buf_p = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, agbno), @@ -685,13 +674,13 @@ prop_freespace_cursor(xfs_mount_t *mp, x /* * initialize block header */ - bt_hdr = XFS_BUF_TO_ALLOC_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(magic); bt_hdr->bb_level = cpu_to_be16(level); - bt_hdr->bb_leftsib = cpu_to_be32(lptr->prev_agbno); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = 0; /* @@ -705,8 +694,11 @@ prop_freespace_cursor(xfs_mount_t *mp, x */ be16_add_cpu(&bt_hdr->bb_numrecs, 1); - bt_key = XR_ALLOC_KEY_ADDR(mp, bt_hdr, be16_to_cpu(bt_hdr->bb_numrecs)); - bt_ptr = XR_ALLOC_PTR_ADDR(mp, bt_hdr, be16_to_cpu(bt_hdr->bb_numrecs)); + bt_key = XFS_ALLOC_KEY_ADDR(mp, bt_hdr, + be16_to_cpu(bt_hdr->bb_numrecs)); + bt_ptr = XFS_ALLOC_PTR_ADDR(mp, bt_hdr, + be16_to_cpu(bt_hdr->bb_numrecs), + mp->m_alloc_mxr[1]); bt_key->ar_startblock = cpu_to_be32(startblock); bt_key->ar_blockcount = cpu_to_be32(blockcount); @@ -724,7 +716,7 @@ build_freespace_tree(xfs_mount_t *mp, xf { xfs_agnumber_t i; xfs_agblock_t j; - xfs_alloc_block_t *bt_hdr; + struct xfs_btree_block *bt_hdr; xfs_alloc_rec_t *bt_rec; int level; xfs_agblock_t agbno; @@ -760,13 +752,13 @@ build_freespace_tree(xfs_mount_t *mp, xf /* * initialize block header */ - bt_hdr = XFS_BUF_TO_ALLOC_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(magic); bt_hdr->bb_level = cpu_to_be16(i); - bt_hdr->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = 0; } /* @@ -791,13 +783,13 @@ build_freespace_tree(xfs_mount_t *mp, xf /* * block initialization, lay in block header */ - bt_hdr = XFS_BUF_TO_ALLOC_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(magic); bt_hdr->bb_level = 0; - bt_hdr->bb_leftsib = cpu_to_be32(lptr->prev_agbno); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = cpu_to_be16(lptr->num_recs_pb + (lptr->modulo > 0)); #ifdef XR_BLD_FREE_TRACE @@ -818,8 +810,8 @@ build_freespace_tree(xfs_mount_t *mp, xf ext_ptr->ex_blockcount, 0, magic); - bt_rec = (xfs_alloc_rec_t *) ((char *) bt_hdr + - sizeof(xfs_alloc_block_t)); + bt_rec = (xfs_alloc_rec_t *) + ((char *)bt_hdr + XFS_ALLOC_BLOCK_LEN(mp)); for (j = 0; j < be16_to_cpu(bt_hdr->bb_numrecs); j++) { ASSERT(ext_ptr != NULL); bt_rec[j].ar_startblock = cpu_to_be32( @@ -860,7 +852,7 @@ build_freespace_tree(xfs_mount_t *mp, xf lptr->prev_buf_p = lptr->buf_p; lptr->prev_agbno = lptr->agbno; lptr->agbno = get_next_blockaddr(agno, 0, btree_curs); - bt_hdr->bb_rightsib = cpu_to_be32(lptr->agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(lptr->agbno); lptr->buf_p = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, lptr->agbno), @@ -872,22 +864,11 @@ build_freespace_tree(xfs_mount_t *mp, xf } /* - * no-cursor versions of the XFS equivalents. The address calculators - * should be used only for interior btree nodes. - * these are adapted from xfs_ialloc_btree.h and xfs_tree.h + * XXX(hch): any reason we don't just look at mp->m_inobt_mxr? */ -#define XR_INOBT_KEY_ADDR(mp, bp, i) \ - (xfs_inobt_key_t *) ((char *) (bp) + sizeof(xfs_inobt_block_t) \ - + ((i)-1) * sizeof(xfs_inobt_key_t)) - -#define XR_INOBT_PTR_ADDR(mp, bp, i) \ - (xfs_inobt_ptr_t *) ((char *) (bp) + sizeof(xfs_inobt_block_t) \ - + (mp)->m_inobt_mxr[1] * sizeof(xfs_inobt_key_t) \ - + ((i)-1) * sizeof(xfs_inobt_ptr_t)) - #define XR_INOBT_BLOCK_MAXRECS(mp, level) \ - XFS_BTREE_BLOCK_MAXRECS((mp)->m_sb.sb_blocksize, \ - xfs_inobt, (level) == 0) + xfs_inobt_maxrecs((mp), (mp)->m_sb.sb_blocksize, \ + (level) == 0) /* * we don't have to worry here about how chewing up free extents @@ -986,7 +967,7 @@ void prop_ino_cursor(xfs_mount_t *mp, xfs_agnumber_t agno, bt_status_t *btree_curs, xfs_agino_t startino, int level) { - xfs_inobt_block_t *bt_hdr; + struct xfs_btree_block *bt_hdr; xfs_inobt_key_t *bt_key; xfs_inobt_ptr_t *bt_ptr; xfs_agblock_t agbno; @@ -998,7 +979,7 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agn return; lptr = &btree_curs->level[level]; - bt_hdr = XFS_BUF_TO_INOBT_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); if (be16_to_cpu(bt_hdr->bb_numrecs) == 0) { /* @@ -1026,7 +1007,7 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agn lptr->prev_buf_p = lptr->buf_p; agbno = get_next_blockaddr(agno, level, btree_curs); - bt_hdr->bb_rightsib = cpu_to_be32(agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(agbno); lptr->buf_p = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, agbno), @@ -1039,13 +1020,13 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agn /* * initialize block header */ - bt_hdr = XFS_BUF_TO_INOBT_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); bt_hdr->bb_level = cpu_to_be16(level); - bt_hdr->bb_leftsib = cpu_to_be32(lptr->prev_agbno); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = 0; /* * propagate extent record for first extent in new block up @@ -1057,8 +1038,11 @@ prop_ino_cursor(xfs_mount_t *mp, xfs_agn */ be16_add_cpu(&bt_hdr->bb_numrecs, 1); - bt_key = XR_INOBT_KEY_ADDR(mp, bt_hdr, be16_to_cpu(bt_hdr->bb_numrecs)); - bt_ptr = XR_INOBT_PTR_ADDR(mp, bt_hdr, be16_to_cpu(bt_hdr->bb_numrecs)); + bt_key = XFS_INOBT_KEY_ADDR(mp, bt_hdr, + be16_to_cpu(bt_hdr->bb_numrecs)); + bt_ptr = XFS_INOBT_PTR_ADDR(mp, bt_hdr, + be16_to_cpu(bt_hdr->bb_numrecs), + mp->m_inobt_mxr[1]); bt_key->ir_startino = cpu_to_be32(startino); *bt_ptr = cpu_to_be32(btree_curs->level[level-1].agbno); @@ -1112,7 +1096,7 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnu xfs_agblock_t j; xfs_agblock_t agbno; xfs_agino_t first_agino; - xfs_inobt_block_t *bt_hdr; + struct xfs_btree_block *bt_hdr; xfs_inobt_rec_t *bt_rec; ino_tree_node_t *ino_rec; bt_stat_level_t *lptr; @@ -1139,13 +1123,13 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnu /* * initialize block header */ - bt_hdr = XFS_BUF_TO_INOBT_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); bt_hdr->bb_level = cpu_to_be16(i); - bt_hdr->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = 0; } /* @@ -1167,13 +1151,13 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnu /* * block initialization, lay in block header */ - bt_hdr = XFS_BUF_TO_INOBT_BLOCK(lptr->buf_p); + bt_hdr = XFS_BUF_TO_BLOCK(lptr->buf_p); memset(bt_hdr, 0, mp->m_sb.sb_blocksize); bt_hdr->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); bt_hdr->bb_level = 0; - bt_hdr->bb_leftsib = cpu_to_be32(lptr->prev_agbno); - bt_hdr->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + bt_hdr->bb_u.s.bb_leftsib = cpu_to_be32(lptr->prev_agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); bt_hdr->bb_numrecs = cpu_to_be16(lptr->num_recs_pb + (lptr->modulo > 0)); @@ -1184,8 +1168,8 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnu prop_ino_cursor(mp, agno, btree_curs, ino_rec->ino_startnum, 0); - bt_rec = (xfs_inobt_rec_t *) ((char *) bt_hdr + - sizeof(xfs_inobt_block_t)); + bt_rec = (xfs_inobt_rec_t *) + ((char *)bt_hdr + XFS_INOBT_BLOCK_LEN(mp)); for (j = 0; j < be16_to_cpu(bt_hdr->bb_numrecs); j++) { ASSERT(ino_rec != NULL); bt_rec[j].ir_startino = @@ -1219,7 +1203,7 @@ build_ino_tree(xfs_mount_t *mp, xfs_agnu lptr->prev_buf_p = lptr->buf_p; lptr->prev_agbno = lptr->agbno; lptr->agbno = get_next_blockaddr(agno, 0, btree_curs); - bt_hdr->bb_rightsib = cpu_to_be32(lptr->agbno); + bt_hdr->bb_u.s.bb_rightsib = cpu_to_be32(lptr->agbno); lptr->buf_p = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, lptr->agbno), @@ -1615,23 +1599,22 @@ phase5(xfs_mount_t *mp) #ifdef XR_BLD_FREE_TRACE fprintf(stderr, "inobt level 1, maxrec = %d, minrec = %d\n", - XFS_BTREE_BLOCK_MAXRECS(mp->m_sb.sb_blocksize, xfs_inobt, 0), - XFS_BTREE_BLOCK_MINRECS(mp->m_sb.sb_blocksize, xfs_inobt, 0) + xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, 0), + xfs_inobt_maxrecs(mp->m_sb.sb_blocksize, 0) / 2 ); fprintf(stderr, "inobt level 0 (leaf), maxrec = %d, minrec = %d\n", - XFS_BTREE_BLOCK_MAXRECS(mp->m_sb.sb_blocksize, xfs_inobt, 1), - XFS_BTREE_BLOCK_MINRECS(mp->m_sb.sb_blocksize, xfs_inobt, 1) - ); + xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, xfs_inobt, 1), + xfs_inobt_maxrecs(mp, mp->m_sb.sb_blocksize, xfs_inobt, 1) / 2); fprintf(stderr, "xr inobt level 0 (leaf), maxrec = %d\n", XR_INOBT_BLOCK_MAXRECS(mp, 0)); fprintf(stderr, "xr inobt level 1 (int), maxrec = %d\n", XR_INOBT_BLOCK_MAXRECS(mp, 1)); fprintf(stderr, "bnobt level 1, maxrec = %d, minrec = %d\n", - XFS_BTREE_BLOCK_MAXRECS(mp->m_sb.sb_blocksize, xfs_alloc, 0), - XFS_BTREE_BLOCK_MINRECS(mp->m_sb.sb_blocksize, xfs_alloc, 0)); + xfs_allocbt_maxrecs(mp, mp->m_sb.sb_blocksize, 0), + xfs_allocbt_maxrecs(mp, mp->m_sb.sb_blocksize, 0) / 2); fprintf(stderr, "bnobt level 0 (leaf), maxrec = %d, minrec = %d\n", - XFS_BTREE_BLOCK_MAXRECS(mp->m_sb.sb_blocksize, xfs_alloc, 1), - XFS_BTREE_BLOCK_MINRECS(mp->m_sb.sb_blocksize, xfs_alloc, 1)); + xfs_allocbt_maxrecs(mp, mp->m_sb.sb_blocksize, 1), + xfs_allocbt_maxrecs(mp, mp->m_sb.sb_blocksize, 1) / 2); #endif /* * make sure the root and realtime inodes show up allocated Index: xfs-cmds/xfsprogs/repair/prefetch.c =================================================================== --- xfs-cmds.orig/xfsprogs/repair/prefetch.c 2008-10-02 09:44:22.000000000 +0200 +++ xfs-cmds/xfsprogs/repair/prefetch.c 2008-10-12 15:28:54.000000000 +0200 @@ -221,7 +221,7 @@ pf_scan_lbtree( int level, int isadir, prefetch_args_t *args, - int (*func)(xfs_btree_lblock_t *block, + int (*func)(struct xfs_btree_block *block, int level, int isadir, prefetch_args_t *args)) @@ -236,7 +236,7 @@ pf_scan_lbtree( XFS_BUF_SET_PRIORITY(bp, isadir ? B_DIR_BMAP : B_BMAP); - rc = (*func)((xfs_btree_lblock_t *)XFS_BUF_PTR(bp), level - 1, isadir, args); + rc = (*func)(XFS_BUF_TO_BLOCK(bp), level - 1, isadir, args); libxfs_putbuf(bp); @@ -245,7 +245,7 @@ pf_scan_lbtree( static int pf_scanfunc_bmap( - xfs_btree_lblock_t *block, + struct xfs_btree_block *block, int level, int isadir, prefetch_args_t *args) @@ -268,13 +268,13 @@ pf_scanfunc_bmap( if (numrecs > mp->m_bmap_dmxr[0] || !isadir) return 0; return pf_read_bmbt_reclist(args, - XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1), numrecs); + XFS_BMBT_REC_ADDR(mp, block, 1), numrecs); } if (numrecs > mp->m_bmap_dmxr[1]) return 0; - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[1]); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]); for (i = 0; i < numrecs; i++) { dbno = be64_to_cpu(pp[i]); @@ -316,8 +316,7 @@ pf_read_btinode( return; dsize = XFS_DFORK_DSIZE(dino, mp); - pp = XFS_BTREE_PTR_ADDR(xfs_bmdr, dib, 1, - XFS_BTREE_BLOCK_MAXRECS(dsize, xfs_bmdr, 0)); + pp = XFS_BMDR_PTR_ADDR(dib, 1, xfs_bmdr_maxrecs(mp, dsize, 0)); for (i = 0; i < numrecs; i++) { dbno = be64_to_cpu(pp[i]); Index: xfs-cmds/xfsprogs/copy/xfs_copy.c =================================================================== --- xfs-cmds.orig/xfsprogs/copy/xfs_copy.c 2008-10-12 15:28:26.000000000 +0200 +++ xfs-cmds/xfsprogs/copy/xfs_copy.c 2008-10-12 15:28:54.000000000 +0200 @@ -513,7 +513,7 @@ main(int argc, char **argv) xfs_agnumber_t num_ags, agno; xfs_agblock_t bno; xfs_daddr_t begin, next_begin, ag_begin, new_begin, ag_end; - xfs_alloc_block_t *block; + struct xfs_btree_block *block; xfs_alloc_ptr_t *ptr; xfs_alloc_rec_t *rec_ptr; extern char *optarg; @@ -897,7 +897,7 @@ main(int argc, char **argv) - (__uint64_t)mp->m_sb.sb_fdblocks + 10 * num_ags)); kids = num_targets; - block = (xfs_alloc_block_t *) btree_buf.data; + block = (struct xfs_btree_block *) btree_buf.data; for (agno = 0; agno < num_ags && kids > 0; agno++) { /* read in first blocks of the ag */ @@ -943,15 +943,16 @@ main(int argc, char **argv) btree_buf.length = source_blocksize; read_wbuf(source_fd, &btree_buf, mp); - block = (xfs_alloc_block_t *) ((char *) btree_buf.data - + pos - btree_buf.position); + block = (struct xfs_btree_block *) + ((char *)btree_buf.data + + pos - btree_buf.position); ASSERT(be32_to_cpu(block->bb_magic) == XFS_ABTB_MAGIC); if (be16_to_cpu(block->bb_level) == 0) break; - ptr = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, + ptr = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); bno = be32_to_cpu(ptr[0]); } @@ -976,7 +977,7 @@ main(int argc, char **argv) exit(1); } - rec_ptr = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rec_ptr = XFS_ALLOC_REC_ADDR(mp, block, 1); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++, rec_ptr++) { /* calculate in daddr's */ @@ -1041,22 +1042,23 @@ main(int argc, char **argv) w_buf.min_io_size >> BBSHIFT); } - if (be32_to_cpu(block->bb_rightsib) == NULLAGBLOCK) + if (be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK) break; /* read in next btree record block */ btree_buf.position = pos = (xfs_off_t) XFS_AGB_TO_DADDR(mp, agno, be32_to_cpu( - block->bb_rightsib)) << BBSHIFT; + block->bb_u.s.bb_rightsib)) << BBSHIFT; btree_buf.length = source_blocksize; /* let read_wbuf handle alignment */ read_wbuf(source_fd, &btree_buf, mp); - block = (xfs_alloc_block_t *) ((char *) btree_buf.data - + pos - btree_buf.position); + block = (struct xfs_btree_block *) + ((char *) btree_buf.data + + pos - btree_buf.position); ASSERT(be32_to_cpu(block->bb_magic) == XFS_ABTB_MAGIC); } Index: xfs-cmds/xfsprogs/db/freesp.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/freesp.c 2008-10-12 15:28:26.000000000 +0200 +++ xfs-cmds/xfsprogs/db/freesp.c 2008-10-12 15:28:54.000000000 +0200 @@ -41,14 +41,14 @@ static void histinit(int maxlen); static int init(int argc, char **argv); static void printhist(void); static void scan_ag(xfs_agnumber_t agno); -static void scanfunc_bno(xfs_btree_sblock_t *ablock, typnm_t typ, int level, +static void scanfunc_bno(struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf); -static void scanfunc_cnt(xfs_btree_sblock_t *ablock, typnm_t typ, int level, +static void scanfunc_cnt(struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf); static void scan_freelist(xfs_agf_t *agf); static void scan_sbtree(xfs_agf_t *agf, xfs_agblock_t root, typnm_t typ, int nlevels, - void (*func)(xfs_btree_sblock_t *block, typnm_t typ, + void (*func)(struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf)); static int usage(void); @@ -256,7 +256,7 @@ scan_sbtree( xfs_agblock_t root, typnm_t typ, int nlevels, - void (*func)(xfs_btree_sblock_t *block, + void (*func)(struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf)) @@ -270,57 +270,55 @@ scan_sbtree( dbprintf("can't read btree block %u/%u\n", seqno, root); return; } - (*func)((xfs_btree_sblock_t *)iocur_top->data, typ, nlevels - 1, agf); + (*func)(iocur_top->data, typ, nlevels - 1, agf); pop_cur(); } /*ARGSUSED*/ static void scanfunc_bno( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf) { - xfs_alloc_block_t *block = (xfs_alloc_block_t *)ablock; int i; xfs_alloc_ptr_t *pp; xfs_alloc_rec_t *rp; if (level == 0) { - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) addtohist(be32_to_cpu(agf->agf_seqno), be32_to_cpu(rp[i].ar_startblock), be32_to_cpu(rp[i].ar_blockcount)); return; } - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), typ, level, scanfunc_bno); } static void scanfunc_cnt( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, typnm_t typ, int level, xfs_agf_t *agf) { - xfs_alloc_block_t *block = (xfs_alloc_block_t *)ablock; int i; xfs_alloc_ptr_t *pp; xfs_alloc_rec_t *rp; if (level == 0) { - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) addtohist(be32_to_cpu(agf->agf_seqno), be32_to_cpu(rp[i].ar_startblock), be32_to_cpu(rp[i].ar_blockcount)); return; } - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); for (i = 0; i < be16_to_cpu(block->bb_numrecs); i++) scan_sbtree(agf, be32_to_cpu(pp[i]), typ, level, scanfunc_cnt); } Index: xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c =================================================================== --- xfs-cmds.orig/xfsprogs/mkfs/xfs_mkfs.c 2008-10-12 15:28:26.000000000 +0200 +++ xfs-cmds/xfsprogs/mkfs/xfs_mkfs.c 2008-10-12 15:28:54.000000000 +0200 @@ -616,7 +616,7 @@ main( __uint64_t agsize; xfs_alloc_rec_t *arec; int attrversion; - xfs_btree_sblock_t *block; + struct xfs_btree_block *block; int blflag; int blocklog; unsigned int blocksize; @@ -2237,14 +2237,14 @@ an AG size that is one stripe unit small buf = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)), bsize); - block = XFS_BUF_TO_SBLOCK(buf); + block = XFS_BUF_TO_BLOCK(buf); memset(block, 0, blocksize); block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC); block->bb_level = 0; block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); - arec = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); + arec = XFS_ALLOC_REC_ADDR(mp, block, 1); arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); if (loginternal && agno == logagno) { if (lalign) { @@ -2280,14 +2280,14 @@ an AG size that is one stripe unit small buf = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)), bsize); - block = XFS_BUF_TO_SBLOCK(buf); + block = XFS_BUF_TO_BLOCK(buf); memset(block, 0, blocksize); block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC); block->bb_level = 0; block->bb_numrecs = cpu_to_be16(1); - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); - arec = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); + arec = XFS_ALLOC_REC_ADDR(mp, block, 1); arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp)); if (loginternal && agno == logagno) { if (lalign) { @@ -2313,13 +2313,13 @@ an AG size that is one stripe unit small buf = libxfs_getbuf(mp->m_dev, XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)), bsize); - block = XFS_BUF_TO_SBLOCK(buf); + block = XFS_BUF_TO_BLOCK(buf); memset(block, 0, blocksize); block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC); block->bb_level = 0; block->bb_numrecs = 0; - block->bb_leftsib = cpu_to_be32(NULLAGBLOCK); - block->bb_rightsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_leftsib = cpu_to_be32(NULLAGBLOCK); + block->bb_u.s.bb_rightsib = cpu_to_be32(NULLAGBLOCK); libxfs_writebuf(buf, LIBXFS_EXIT_ON_FAILURE); } Index: xfs-cmds/xfsprogs/repair/scan.c =================================================================== --- xfs-cmds.orig/xfsprogs/repair/scan.c 2008-10-12 15:28:26.000000000 +0200 +++ xfs-cmds/xfsprogs/repair/scan.c 2008-10-12 15:28:54.000000000 +0200 @@ -47,7 +47,7 @@ scan_sbtree( int nlevels, xfs_agnumber_t agno, int suspect, - void (*func)(xfs_btree_sblock_t *block, + void (*func)(struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -63,8 +63,7 @@ scan_sbtree( do_error(_("can't read btree block %d/%d\n"), agno, root); return; } - (*func)((xfs_btree_sblock_t *)XFS_BUF_PTR(bp), - nlevels - 1, root, agno, suspect, isroot); + (*func)(XFS_BUF_TO_BLOCK(bp), nlevels - 1, root, agno, suspect, isroot); libxfs_putbuf(bp); } @@ -75,7 +74,7 @@ int scan_lbtree( xfs_dfsbno_t root, int nlevels, - int (*func)(xfs_btree_lblock_t *block, + int (*func)(struct xfs_btree_block *block, int level, int type, int whichfork, @@ -110,7 +109,7 @@ scan_lbtree( XFS_FSB_TO_AGBNO(mp, root)); return(1); } - err = (*func)((xfs_btree_lblock_t *)XFS_BUF_PTR(bp), nlevels - 1, + err = (*func)(XFS_BUF_TO_BLOCK(bp), nlevels - 1, type, whichfork, root, ino, tot, nex, blkmapp, bm_cursor, isroot, check_dups, &dirty); @@ -126,7 +125,7 @@ scan_lbtree( int scanfunc_bmap( - xfs_btree_lblock_t *ablock, + struct xfs_btree_block *block, int level, int type, int whichfork, @@ -140,7 +139,6 @@ scanfunc_bmap( int check_dups, int *dirty) { - xfs_bmbt_block_t *block = (xfs_bmbt_block_t *)ablock; int i; int err; xfs_bmbt_ptr_t *pp; @@ -197,12 +195,12 @@ _("bad fwd (right) sibling pointer (saw bm_cursor->level[level].fsbno); return(1); } - if (be64_to_cpu(block->bb_leftsib) != + if (be64_to_cpu(block->bb_u.l.bb_leftsib) != bm_cursor->level[level].fsbno) { do_warn( _("bad back (left) sibling pointer (saw %llu parent block says %llu)\n" "\tin inode %llu (%s fork) bmap btree block %llu\n"), - be64_to_cpu(block->bb_leftsib), + be64_to_cpu(block->bb_u.l.bb_leftsib), bm_cursor->level[level].fsbno, ino, forkname, bno); return(1); @@ -212,11 +210,11 @@ _("bad back (left) sibling pointer (saw * This is the first or only block on this level. * Check that the left sibling pointer is NULL */ - if (be64_to_cpu(block->bb_leftsib) != NULLDFSBNO) { + if (be64_to_cpu(block->bb_u.l.bb_leftsib) != NULLDFSBNO) { do_warn( _("bad back (left) sibling pointer (saw %llu should be NULL (0))\n" "\tin inode %llu (%s fork) bmap btree block %llu\n"), - be64_to_cpu(block->bb_leftsib), + be64_to_cpu(block->bb_u.l.bb_leftsib), ino, forkname, bno); return(1); } @@ -227,9 +225,9 @@ _("bad back (left) sibling pointer (saw */ bm_cursor->level[level].fsbno = bno; bm_cursor->level[level].left_fsbno = - be64_to_cpu(block->bb_leftsib); + be64_to_cpu(block->bb_u.l.bb_leftsib); bm_cursor->level[level].right_fsbno = - be64_to_cpu(block->bb_rightsib); + be64_to_cpu(block->bb_u.l.bb_rightsib); switch (get_fsbno_state(mp, bno)) { case XR_E_UNKNOWN: @@ -304,7 +302,7 @@ _("bad back (left) sibling pointer (saw mp->m_bmap_dmxr[0]); return(1); } - rp = XFS_BTREE_REC_ADDR(xfs_bmbt, block, 1); + rp = XFS_BMBT_REC_ADDR(mp, block, 1); *nex += numrecs; /* * XXX - if we were going to fix up the btree record, @@ -353,8 +351,8 @@ _("out-of-order bmap key (file offset) i ino, numrecs, mp->m_bmap_dmnr[1], mp->m_bmap_dmxr[1]); return(1); } - pp = XFS_BTREE_PTR_ADDR(xfs_bmbt, block, 1, mp->m_bmap_dmxr[1]); - pkey = XFS_BTREE_KEY_ADDR(xfs_bmbt, block, 1); + pp = XFS_BMBT_PTR_ADDR(mp, block, 1, mp->m_bmap_dmxr[1]); + pkey = XFS_BMBT_KEY_ADDR(mp, block, 1); last_key = NULLDFILOFF; @@ -442,7 +440,7 @@ _("out-of-order bmap key (file offset) i void scanfunc_bno( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -451,7 +449,6 @@ scanfunc_bno( ) { xfs_agblock_t b, e; - xfs_alloc_block_t *block = (xfs_alloc_block_t *)ablock; int i; xfs_alloc_ptr_t *pp; xfs_alloc_rec_t *rp; @@ -507,7 +504,7 @@ _("bno freespace btree block claimed (st if (hdr_errors) suspect++; - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); for (i = 0; i < numrecs; i++) { if (be32_to_cpu(rp[i].ar_blockcount) == 0 || be32_to_cpu(rp[i].ar_startblock) == 0 || @@ -541,7 +538,7 @@ _("bno freespace btree block claimed (st /* * interior record */ - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); if (numrecs > mp->m_alloc_mxr[1]) { numrecs = mp->m_alloc_mxr[1]; @@ -585,7 +582,7 @@ _("bno freespace btree block claimed (st void scanfunc_cnt( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -593,7 +590,6 @@ scanfunc_cnt( int isroot ) { - xfs_alloc_block_t *block; xfs_alloc_ptr_t *pp; xfs_alloc_rec_t *rp; xfs_agblock_t b, e; @@ -602,7 +598,6 @@ scanfunc_cnt( int numrecs; int state; - block = (xfs_alloc_block_t *)ablock; hdr_errors = 0; if (be32_to_cpu(block->bb_magic) != XFS_ABTC_MAGIC) { @@ -652,7 +647,7 @@ _("bcnt freespace btree block claimed (s if (hdr_errors) suspect++; - rp = XFS_BTREE_REC_ADDR(xfs_alloc, block, 1); + rp = XFS_ALLOC_REC_ADDR(mp, block, 1); for (i = 0; i < numrecs; i++) { if (be32_to_cpu(rp[i].ar_blockcount) == 0 || be32_to_cpu(rp[i].ar_startblock) == 0 || @@ -694,7 +689,7 @@ _("bcnt freespace btree block claimed (s /* * interior record */ - pp = XFS_BTREE_PTR_ADDR(xfs_alloc, block, 1, mp->m_alloc_mxr[1]); + pp = XFS_ALLOC_PTR_ADDR(mp, block, 1, mp->m_alloc_mxr[1]); if (numrecs > mp->m_alloc_mxr[1]) { numrecs = mp->m_alloc_mxr[1]; @@ -745,7 +740,7 @@ _("bcnt freespace btree block claimed (s */ void scanfunc_ino( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -754,7 +749,6 @@ scanfunc_ino( ) { xfs_ino_t lino; - xfs_inobt_block_t *block; int i; xfs_agino_t ino; xfs_agblock_t agbno; @@ -768,7 +762,6 @@ scanfunc_ino( ino_tree_node_t *ino_rec, *first_rec, *last_rec; int hdr_errors; - block = (xfs_inobt_block_t *)ablock; hdr_errors = 0; if (be32_to_cpu(block->bb_magic) != XFS_IBT_MAGIC) { @@ -831,7 +824,7 @@ _("inode btree block claimed (state %d), suspect++; } - rp = XFS_BTREE_REC_ADDR(xfs_inobt, block, 1); + rp = XFS_INOBT_REC_ADDR(mp, block, 1); /* * step through the records, each record points to @@ -1019,7 +1012,7 @@ _("inode rec for ino %llu (%d/%d) overla hdr_errors++; } - pp = XFS_BTREE_PTR_ADDR(xfs_inobt, block, 1, mp->m_inobt_mxr[1]); + pp = XFS_INOBT_PTR_ADDR(mp, block, 1, mp->m_inobt_mxr[1]); /* * don't pass bogus tree flag down further if this block Index: xfs-cmds/xfsprogs/db/btblock.c =================================================================== --- xfs-cmds.orig/xfsprogs/db/btblock.c 2008-10-12 15:28:47.000000000 +0200 +++ xfs-cmds/xfsprogs/db/btblock.c 2008-10-12 15:28:54.000000000 +0200 @@ -37,25 +37,25 @@ struct xfs_db_btree { size_t ptr_len; } btrees[] = { [/*0x424d415*/0] = { /* BMAP */ - sizeof(struct xfs_btree_lblock), + XFS_BTREE_LBLOCK_LEN, sizeof(xfs_bmbt_key_t), sizeof(xfs_bmbt_rec_t), sizeof(__be64), }, [/*0x4142544*/2] = { /* ABTB */ - sizeof(struct xfs_btree_sblock), + XFS_BTREE_SBLOCK_LEN, sizeof(xfs_alloc_key_t), sizeof(xfs_alloc_rec_t), sizeof(__be32), }, [/*0x4142544*/3] = { /* ABTC */ - sizeof(struct xfs_btree_sblock), + XFS_BTREE_SBLOCK_LEN, sizeof(xfs_alloc_key_t), sizeof(xfs_alloc_rec_t), sizeof(__be32), }, [/*0x4941425*/4] = { /* IABT */ - sizeof(struct xfs_btree_sblock), + XFS_BTREE_SBLOCK_LEN, sizeof(xfs_inobt_key_t), sizeof(xfs_inobt_rec_t), sizeof(__be32), @@ -208,13 +208,13 @@ const field_t bmapbtd_hfld[] = { { NULL } }; -#define OFF(f) bitize(offsetof(xfs_bmbt_block_t, bb_ ## f)) +#define OFF(f) bitize(offsetof(struct xfs_btree_block, bb_ ## f)) const field_t bmapbta_flds[] = { { "magic", FLDT_UINT32X, OI(OFF(magic)), C1, 0, TYP_NONE }, { "level", FLDT_UINT16D, OI(OFF(level)), C1, 0, TYP_NONE }, { "numrecs", FLDT_UINT16D, OI(OFF(numrecs)), C1, 0, TYP_NONE }, - { "leftsib", FLDT_DFSBNO, OI(OFF(leftsib)), C1, 0, TYP_BMAPBTA }, - { "rightsib", FLDT_DFSBNO, OI(OFF(rightsib)), C1, 0, TYP_BMAPBTA }, + { "leftsib", FLDT_DFSBNO, OI(OFF(u.l.bb_leftsib)), C1, 0, TYP_BMAPBTA }, + { "rightsib", FLDT_DFSBNO, OI(OFF(u.l.bb_rightsib)), C1, 0, TYP_BMAPBTA }, { "recs", FLDT_BMAPBTAREC, btblock_rec_offset, btblock_rec_count, FLD_ARRAY|FLD_ABASE1|FLD_COUNT|FLD_OFFSET, TYP_NONE }, { "keys", FLDT_BMAPBTAKEY, btblock_key_offset, btblock_key_count, @@ -227,8 +227,8 @@ const field_t bmapbtd_flds[] = { { "magic", FLDT_UINT32X, OI(OFF(magic)), C1, 0, TYP_NONE }, { "level", FLDT_UINT16D, OI(OFF(level)), C1, 0, TYP_NONE }, { "numrecs", FLDT_UINT16D, OI(OFF(numrecs)), C1, 0, TYP_NONE }, - { "leftsib", FLDT_DFSBNO, OI(OFF(leftsib)), C1, 0, TYP_BMAPBTD }, - { "rightsib", FLDT_DFSBNO, OI(OFF(rightsib)), C1, 0, TYP_BMAPBTD }, + { "leftsib", FLDT_DFSBNO, OI(OFF(u.s.bb_leftsib)), C1, 0, TYP_BMAPBTD }, + { "rightsib", FLDT_DFSBNO, OI(OFF(u.s.bb_rightsib)), C1, 0, TYP_BMAPBTD }, { "recs", FLDT_BMAPBTDREC, btblock_rec_offset, btblock_rec_count, FLD_ARRAY|FLD_ABASE1|FLD_COUNT|FLD_OFFSET, TYP_NONE }, { "keys", FLDT_BMAPBTDKEY, btblock_key_offset, btblock_key_count, @@ -300,13 +300,13 @@ const field_t inobt_hfld[] = { { NULL } }; -#define OFF(f) bitize(offsetof(struct xfs_btree_sblock, bb_ ## f)) +#define OFF(f) bitize(offsetof(struct xfs_btree_block, bb_ ## f)) const field_t inobt_flds[] = { { "magic", FLDT_UINT32X, OI(OFF(magic)), C1, 0, TYP_NONE }, { "level", FLDT_UINT16D, OI(OFF(level)), C1, 0, TYP_NONE }, { "numrecs", FLDT_UINT16D, OI(OFF(numrecs)), C1, 0, TYP_NONE }, - { "leftsib", FLDT_AGBLOCK, OI(OFF(leftsib)), C1, 0, TYP_INOBT }, - { "rightsib", FLDT_AGBLOCK, OI(OFF(rightsib)), C1, 0, TYP_INOBT }, + { "leftsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_leftsib)), C1, 0, TYP_INOBT }, + { "rightsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_rightsib)), C1, 0, TYP_INOBT }, { "recs", FLDT_INOBTREC, btblock_rec_offset, btblock_rec_count, FLD_ARRAY|FLD_ABASE1|FLD_COUNT|FLD_OFFSET, TYP_NONE }, { "keys", FLDT_INOBTKEY, btblock_key_offset, btblock_key_count, @@ -342,13 +342,13 @@ const field_t bnobt_hfld[] = { { NULL } }; -#define OFF(f) bitize(offsetof(xfs_alloc_block_t, bb_ ## f)) +#define OFF(f) bitize(offsetof(struct xfs_btree_block, bb_ ## f)) const field_t bnobt_flds[] = { { "magic", FLDT_UINT32X, OI(OFF(magic)), C1, 0, TYP_NONE }, { "level", FLDT_UINT16D, OI(OFF(level)), C1, 0, TYP_NONE }, { "numrecs", FLDT_UINT16D, OI(OFF(numrecs)), C1, 0, TYP_NONE }, - { "leftsib", FLDT_AGBLOCK, OI(OFF(leftsib)), C1, 0, TYP_BNOBT }, - { "rightsib", FLDT_AGBLOCK, OI(OFF(rightsib)), C1, 0, TYP_BNOBT }, + { "leftsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_leftsib)), C1, 0, TYP_BNOBT }, + { "rightsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_rightsib)), C1, 0, TYP_BNOBT }, { "recs", FLDT_BNOBTREC, btblock_rec_offset, btblock_rec_count, FLD_ARRAY|FLD_ABASE1|FLD_COUNT|FLD_OFFSET, TYP_NONE }, { "keys", FLDT_BNOBTKEY, btblock_key_offset, btblock_key_count, @@ -380,13 +380,13 @@ const field_t cntbt_hfld[] = { { NULL } }; -#define OFF(f) bitize(offsetof(xfs_alloc_block_t, bb_ ## f)) +#define OFF(f) bitize(offsetof(struct xfs_btree_block, bb_ ## f)) const field_t cntbt_flds[] = { { "magic", FLDT_UINT32X, OI(OFF(magic)), C1, 0, TYP_NONE }, { "level", FLDT_UINT16D, OI(OFF(level)), C1, 0, TYP_NONE }, { "numrecs", FLDT_UINT16D, OI(OFF(numrecs)), C1, 0, TYP_NONE }, - { "leftsib", FLDT_AGBLOCK, OI(OFF(leftsib)), C1, 0, TYP_CNTBT }, - { "rightsib", FLDT_AGBLOCK, OI(OFF(rightsib)), C1, 0, TYP_CNTBT }, + { "leftsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_leftsib)), C1, 0, TYP_CNTBT }, + { "rightsib", FLDT_AGBLOCK, OI(OFF(u.s.bb_rightsib)), C1, 0, TYP_CNTBT }, { "recs", FLDT_CNTBTREC, btblock_rec_offset, btblock_rec_count, FLD_ARRAY|FLD_ABASE1|FLD_COUNT|FLD_OFFSET, TYP_NONE }, { "keys", FLDT_CNTBTKEY, btblock_key_offset, btblock_key_count, Index: xfs-cmds/xfsprogs/include/xfs_inode.h =================================================================== --- xfs-cmds.orig/xfsprogs/include/xfs_inode.h 2008-10-12 15:28:47.000000000 +0200 +++ xfs-cmds/xfsprogs/include/xfs_inode.h 2008-10-12 15:28:54.000000000 +0200 @@ -63,7 +63,7 @@ typedef struct xfs_ext_irec { typedef struct xfs_ifork { int if_bytes; /* bytes in if_u1 */ int if_real_bytes; /* bytes allocated in if_u1 */ - xfs_bmbt_block_t *if_broot; /* file's incore btree root */ + struct xfs_btree_block *if_broot; /* file's incore btree root */ short if_broot_bytes; /* bytes allocated for root */ unsigned char if_flags; /* per-fork flags */ unsigned char if_ext_max; /* max # of extent records */ @@ -213,7 +213,6 @@ struct ktrace; struct xfs_buf; struct xfs_bmap_free; struct xfs_bmbt_irec; -struct xfs_bmbt_block; struct xfs_inode_log_item; struct xfs_mount; struct xfs_trans; Index: xfs-cmds/xfsprogs/libxfs/xfs_alloc.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_alloc.c 2008-10-12 15:28:47.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_alloc.c 2008-10-12 15:28:54.000000000 +0200 @@ -327,21 +327,20 @@ xfs_alloc_fixup_trees( return error; XFS_WANT_CORRUPTED_RETURN(i == 1); } + #ifdef DEBUG - { - xfs_alloc_block_t *bnoblock; - xfs_alloc_block_t *cntblock; + if (bno_cur->bc_nlevels == 1 && cnt_cur->bc_nlevels == 1) { + struct xfs_btree_block *bnoblock; + struct xfs_btree_block *cntblock; - if (bno_cur->bc_nlevels == 1 && - cnt_cur->bc_nlevels == 1) { - bnoblock = XFS_BUF_TO_ALLOC_BLOCK(bno_cur->bc_bufs[0]); - cntblock = XFS_BUF_TO_ALLOC_BLOCK(cnt_cur->bc_bufs[0]); - XFS_WANT_CORRUPTED_RETURN( - be16_to_cpu(bnoblock->bb_numrecs) == - be16_to_cpu(cntblock->bb_numrecs)); - } + bnoblock = XFS_BUF_TO_BLOCK(bno_cur->bc_bufs[0]); + cntblock = XFS_BUF_TO_BLOCK(cnt_cur->bc_bufs[0]); + + XFS_WANT_CORRUPTED_RETURN( + bnoblock->bb_numrecs == cntblock->bb_numrecs); } #endif + /* * Deal with all four cases: the allocated record is contained * within the freespace record, so we can have new freespace Index: xfs-cmds/xfsprogs/libxfs/xfs_btree.c =================================================================== --- xfs-cmds.orig/xfsprogs/libxfs/xfs_btree.c 2008-10-12 15:28:47.000000000 +0200 +++ xfs-cmds/xfsprogs/libxfs/xfs_btree.c 2008-10-12 15:28:54.000000000 +0200 @@ -31,10 +31,10 @@ const __uint32_t xfs_magics[XFS_BTNUM_MA }; -int /* error (0 or EFSCORRUPTED) */ +STATIC int /* error (0 or EFSCORRUPTED) */ xfs_btree_check_lblock( struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_lblock *block, /* btree long form block pointer */ + struct xfs_btree_block *block, /* btree long form block pointer */ int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer for block, if any */ { @@ -47,12 +47,14 @@ xfs_btree_check_lblock( be16_to_cpu(block->bb_level) == level && be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && - block->bb_leftsib && - (be64_to_cpu(block->bb_leftsib) == NULLDFSBNO || - XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_leftsib))) && - block->bb_rightsib && - (be64_to_cpu(block->bb_rightsib) == NULLDFSBNO || - XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_rightsib))); + block->bb_u.l.bb_leftsib && + (be64_to_cpu(block->bb_u.l.bb_leftsib) == NULLDFSBNO || + XFS_FSB_SANITY_CHECK(mp, + be64_to_cpu(block->bb_u.l.bb_leftsib))) && + block->bb_u.l.bb_rightsib && + (be64_to_cpu(block->bb_u.l.bb_rightsib) == NULLDFSBNO || + XFS_FSB_SANITY_CHECK(mp, + be64_to_cpu(block->bb_u.l.bb_rightsib))); if (unlikely(XFS_TEST_ERROR(!lblock_ok, mp, XFS_ERRTAG_BTREE_CHECK_LBLOCK, XFS_RANDOM_BTREE_CHECK_LBLOCK))) { @@ -68,7 +70,7 @@ xfs_btree_check_lblock( STATIC int /* error (0 or EFSCORRUPTED) */ xfs_btree_check_sblock( struct xfs_btree_cur *cur, /* btree cursor */ - struct xfs_btree_sblock *block, /* btree short form block pointer */ + struct xfs_btree_block *block, /* btree short form block pointer */ int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer containing block */ { @@ -85,12 +87,12 @@ xfs_btree_check_sblock( be16_to_cpu(block->bb_level) == level && be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && - (be32_to_cpu(block->bb_leftsib) == NULLAGBLOCK || - be32_to_cpu(block->bb_leftsib) < agflen) && - block->bb_leftsib && - (be32_to_cpu(block->bb_rightsib) == NULLAGBLOCK || - be32_to_cpu(block->bb_rightsib) < agflen) && - block->bb_rightsib; + (be32_to_cpu(block->bb_u.s.bb_leftsib) == NULLAGBLOCK || + be32_to_cpu(block->bb_u.s.bb_leftsib) < agflen) && + block->bb_u.s.bb_leftsib && + (be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK || + be32_to_cpu(block->bb_u.s.bb_rightsib) < agflen) && + block->bb_u.s.bb_rightsib; if (unlikely(XFS_TEST_ERROR(!sblock_ok, cur->bc_mp, XFS_ERRTAG_BTREE_CHECK_SBLOCK, XFS_RANDOM_BTREE_CHECK_SBLOCK))) { @@ -113,13 +115,10 @@ xfs_btree_check_block( int level, /* level of the btree block */ struct xfs_buf *bp) /* buffer containing block, if any */ { - if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { - return xfs_btree_check_lblock(cur, - (struct xfs_btree_lblock *)block, level, bp); - } else { - return xfs_btree_check_sblock(cur, - (struct xfs_btree_sblock *)block, level, bp); - } + if (cur->bc_flags & XFS_BTREE_LONG_PTRS) + return xfs_btree_check_lblock(cur, block, level, bp); + else + return xfs_btree_check_sblock(cur, block, level, bp); } /* @@ -304,8 +303,8 @@ xfs_btree_dup_cursor( static inline size_t xfs_btree_block_len(struct xfs_btree_cur *cur) { return (cur->bc_flags & XFS_BTREE_LONG_PTRS) ? - sizeof(struct xfs_btree_lblock) : - sizeof(struct xfs_btree_sblock); + XFS_BTREE_LBLOCK_LEN : + XFS_BTREE_SBLOCK_LEN; } /* @@ -488,7 +487,7 @@ xfs_btree_islastblock( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to check */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ block = xfs_btree_get_block(cur, level, &bp); @@ -508,7 +507,7 @@ xfs_btree_firstrec( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to change */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ /* @@ -537,7 +536,7 @@ xfs_btree_lastrec( xfs_btree_cur_t *cur, /* btree cursor */ int level) /* level to change */ { - xfs_btree_block_t *block; /* generic btree block pointer */ + struct xfs_btree_block *block; /* generic btree block pointer */ xfs_buf_t *bp; /* buffer containing block */ /* @@ -754,7 +753,7 @@ xfs_btree_setbuf( int lev, /* level in btree */ xfs_buf_t *bp) /* new buffer to set */ { - xfs_btree_block_t *b; /* btree block */ + struct xfs_btree_block *b; /* btree block */ xfs_buf_t *obp; /* old buffer pointer */ obp = cur->bc_bufs[lev]; @@ -1192,20 +1191,20 @@ xfs_btree_log_block( int first; /* first byte offset logged */ int last; /* last byte offset logged */ static const short soffsets[] = { /* table of offsets (short) */ - offsetof(struct xfs_btree_sblock, bb_magic), - offsetof(struct xfs_btree_sblock, bb_level), - offsetof(struct xfs_btree_sblock, bb_numrecs), - offsetof(struct xfs_btree_sblock, bb_leftsib), - offsetof(struct xfs_btree_sblock, bb_rightsib), - sizeof(struct xfs_btree_sblock) + offsetof(struct xfs_btree_block, bb_magic), + offsetof(struct xfs_btree_block, bb_level), + offsetof(struct xfs_btree_block, bb_numrecs), + offsetof(struct xfs_btree_block, bb_u.s.bb_leftsib), + offsetof(struct xfs_btree_block, bb_u.s.bb_rightsib), + XFS_BTREE_SBLOCK_LEN }; static const short loffsets[] = { /* table of offsets (long) */ - offsetof(struct xfs_btree_lblock, bb_magic), - offsetof(struct xfs_btree_lblock, bb_level), - offsetof(struct xfs_btree_lblock, bb_numrecs), - offsetof(struct xfs_btree_lblock, bb_leftsib), - offsetof(struct xfs_btree_lblock, bb_rightsib), - sizeof(struct xfs_btree_lblock) + offsetof(struct xfs_btree_block, bb_magic), + offsetof(struct xfs_btree_block, bb_level), + offsetof(struct xfs_btree_block, bb_numrecs), + offsetof(struct xfs_btree_block, bb_u.l.bb_leftsib), + offsetof(struct xfs_btree_block, bb_u.l.bb_rightsib), + XFS_BTREE_LBLOCK_LEN }; XFS_BTREE_TRACE_CURSOR(cur, XBT_ENTRY); @@ -2958,7 +2957,7 @@ xfs_btree_kill_iroot( if (index) { xfs_iroot_realloc(cur->bc_private.b.ip, index, cur->bc_private.b.whichfork); - block = (struct xfs_btree_block *)ifp->if_broot; + block = ifp->if_broot; } be16_add_cpu(&block->bb_numrecs, index); Index: xfs-cmds/xfsprogs/repair/scan.h =================================================================== --- xfs-cmds.orig/xfsprogs/repair/scan.h 2008-10-12 15:28:47.000000000 +0200 +++ xfs-cmds/xfsprogs/repair/scan.h 2008-10-12 15:28:54.000000000 +0200 @@ -25,7 +25,7 @@ void scan_sbtree( int nlevels, xfs_agnumber_t agno, int suspect, - void (*func)(xfs_btree_sblock_t *block, + void (*func)(struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -36,7 +36,7 @@ void scan_sbtree( int scan_lbtree( xfs_dfsbno_t root, int nlevels, - int (*func)(xfs_btree_lblock_t *block, + int (*func)(struct xfs_btree_block *block, int level, int type, int whichfork, @@ -60,7 +60,7 @@ int scan_lbtree( int check_dups); int scanfunc_bmap( - xfs_btree_lblock_t *ablock, + struct xfs_btree_block *block, int level, int type, int whichfork, @@ -75,7 +75,7 @@ int scanfunc_bmap( int *dirty); void scanfunc_bno( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -83,7 +83,7 @@ void scanfunc_bno( int isroot); void scanfunc_cnt( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, @@ -92,7 +92,7 @@ void scanfunc_cnt( void scanfunc_ino( - xfs_btree_sblock_t *ablock, + struct xfs_btree_block *block, int level, xfs_agblock_t bno, xfs_agnumber_t agno, From owner-xfs@oss.sgi.com Sun Oct 12 15:18:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CMIGrb024995 for ; Sun, 12 Oct 2008 15:18:17 -0700 X-ASG-Debug-ID: 1223849992-057e00fb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CBA8C4E82EA for ; Sun, 12 Oct 2008 15:19:53 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id TurDaTso7glqXbjh for ; Sun, 12 Oct 2008 15:19:53 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 37EA4AC358C; Sun, 12 Oct 2008 17:19:52 -0500 (CDT) Message-ID: <48F27807.1080702@sandeen.net> Date: Sun, 12 Oct 2008 17:19:51 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fix remount rw with unrecognized options Subject: Re: [PATCH] fix remount rw with unrecognized options References: <20081012123044.GA30272@lst.de> In-Reply-To: <20081012123044.GA30272@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223849998 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > When we skip unrecognized options in xfs_fs_remount we should just break > out of the switch and not return because otherwise we may skip clearing > the xfs-internal read-only flag. This will only show up on some > operations like touch because most read-only checks are done by the VFS > which things this filesystem is r/w. Eventually we should replace the > XFS read-only flag with a helper that always checks the VFS flag to make > sure they can never get out of sync. > > Bug reported and fix verified by Marcel Beister on #xfs. Seems reasonable. I think this is 2.6.27.1 material? -Eric > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-11 00:59:04.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-11 00:59:35.000000000 +0200 > @@ -1218,7 +1218,7 @@ xfs_fs_remount( > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; > #else > - return 0; > + break; > #endif > } > } > > From owner-xfs@oss.sgi.com Sun Oct 12 15:19:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CMJ1sc025153 for ; Sun, 12 Oct 2008 15:19:01 -0700 X-ASG-Debug-ID: 1223850036-3dc500870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C53D0A5565C for ; Sun, 12 Oct 2008 15:20:36 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id npOfC7he9uO95Ke4 for ; Sun, 12 Oct 2008 15:20:36 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9CMKWIF019764 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Mon, 13 Oct 2008 00:20:32 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9CMKW4j019762; Mon, 13 Oct 2008 00:20:32 +0200 Date: Mon, 13 Oct 2008 00:20:32 +0200 From: Christoph Hellwig To: Eric Sandeen Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fix remount rw with unrecognized options Subject: Re: [PATCH] fix remount rw with unrecognized options Message-ID: <20081012222032.GA19748@lst.de> References: <20081012123044.GA30272@lst.de> <48F27807.1080702@sandeen.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F27807.1080702@sandeen.net> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223850043 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 12, 2008 at 05:19:51PM -0500, Eric Sandeen wrote: > Christoph Hellwig wrote: > > When we skip unrecognized options in xfs_fs_remount we should just break > > out of the switch and not return because otherwise we may skip clearing > > the xfs-internal read-only flag. This will only show up on some > > operations like touch because most read-only checks are done by the VFS > > which things this filesystem is r/w. Eventually we should replace the > > XFS read-only flag with a helper that always checks the VFS flag to make > > sure they can never get out of sync. > > > > Bug reported and fix verified by Marcel Beister on #xfs. > > Seems reasonable. > > I think this is 2.6.27.1 material? Yes. From owner-xfs@oss.sgi.com Sun Oct 12 15:20:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CMKADT025523 for ; Sun, 12 Oct 2008 15:20:10 -0700 X-ASG-Debug-ID: 1223850105-474303930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5CF3D4E846F for ; Sun, 12 Oct 2008 15:21:45 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id N1jfX7T2ZsiaPEdy for ; Sun, 12 Oct 2008 15:21:45 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 05675AC358C; Sun, 12 Oct 2008 17:21:45 -0500 (CDT) Message-ID: <48F27878.7050303@sandeen.net> Date: Sun, 12 Oct 2008 17:21:44 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fix remount rw with unrecognized options Subject: Re: [PATCH] fix remount rw with unrecognized options References: <20081012123044.GA30272@lst.de> <48F27807.1080702@sandeen.net> <20081012222032.GA19748@lst.de> In-Reply-To: <20081012222032.GA19748@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1223850109 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Sun, Oct 12, 2008 at 05:19:51PM -0500, Eric Sandeen wrote: >> Christoph Hellwig wrote: >>> When we skip unrecognized options in xfs_fs_remount we should just break >>> out of the switch and not return because otherwise we may skip clearing >>> the xfs-internal read-only flag. This will only show up on some >>> operations like touch because most read-only checks are done by the VFS >>> which things this filesystem is r/w. Eventually we should replace the >>> XFS read-only flag with a helper that always checks the VFS flag to make >>> sure they can never get out of sync. >>> >>> Bug reported and fix verified by Marcel Beister on #xfs. >> Seems reasonable. >> >> I think this is 2.6.27.1 material? > > Yes. > > The recent bug on oss.sgi.com is probably the same; I'm updating it now. -Eric From owner-xfs@oss.sgi.com Sun Oct 12 15:31:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9CMVGVF026726 for ; Sun, 12 Oct 2008 15:31:16 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 9F5268F8069; Sun, 12 Oct 2008 15:32:54 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA17185; Mon, 13 Oct 2008 09:32:42 +1100 Message-ID: <48F28911.606@sgi.com> Date: Mon, 13 Oct 2008 09:32:33 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Eric Sandeen CC: xfs-oss , John Willis Subject: Re: [PATCH] xfs_db: don't put null inode References: <48F02BB0.2030107@sandeen.net> <48F02C74.8080902@sandeen.net> In-Reply-To: <48F02C74.8080902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Thanks Eric (and John). Barry, can you please rv and pull this into libxfs Cheers Eric Sandeen wrote: > Ugh subject should be xfs_db of course :/ > > Eric Sandeen wrote: >> John Willis pointed this out: >> >> $ sudo xfs_db -x /dev/evms/RAID5-SATA-1 >> cache_node_purge: refcount was 1, not zero (node=0x80dd660) >> xfs_db: cannot read root inode (22) >> cache_node_purge: refcount was 1, not zero (node=0x80e0008) >> xfs_db: cannot read realtime bitmap inode (22) >> Segmentation fault >> >> it dies when pthread code gets a null ptr, like this: >> >> (gdb) bt >> #0 0x0000003ef1c08309 in pthread_mutex_lock () from /lib64/libpthread.so.0 >> #1 0x000000000044f5af in cache_node_put (cache=0x25a2030, node=0x0) at cache.c:368 >> #2 0x000000000041ff7e in libxfs_mount (mp=0x0, sb=, dev=, logdev=, >> rtdev=, flags=1) at init.c:680 >> #3 0x0000000000416157 in init (argc=2, argv=0x7fffd9e19798) at init.c:125 >> #4 0x000000000041635a in main (argc=48, argv=0x7fffd9e19798) at init.c:153 >> (gdb) >> >> when reading the root inode fails, and we try to libxfs_iput it anyway. >> >> The following seems to fix it ... >> >> -Eric >> >> Index: xfsprogs/libxfs/init.c >> =================================================================== >> --- xfsprogs.orig/libxfs/init.c >> +++ xfsprogs/libxfs/init.c >> @@ -677,7 +677,8 @@ libxfs_mount( >> ASSERT(mp->m_rootip != NULL); >> } >> if ((flags & LIBXFS_MOUNT_ROOTINOS) && rtmount_inodes(mp)) { >> - libxfs_iput(mp->m_rootip, 0); >> + if (mp->m_rootip) >> + libxfs_iput(mp->m_rootip, 0); >> return NULL; >> } >> >> >> > > -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Sun Oct 12 19:40:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_50,HTML_MESSAGE, J_CHICKENPOX_27 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D2eEeD013429 for ; Sun, 12 Oct 2008 19:40:14 -0700 X-ASG-Debug-ID: 1223865709-57fd01e90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailgw3a.lmco.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9E04CA58DDF for ; Sun, 12 Oct 2008 19:41:49 -0700 (PDT) Received: from mailgw3a.lmco.com (mailgw3a.lmco.com [192.35.35.7]) by cuda.sgi.com with ESMTP id 20e1m694HGXMJxR8 for ; Sun, 12 Oct 2008 19:41:49 -0700 (PDT) Received: from emss09g01.ems.lmco.com (relay6.ems.lmco.com [166.17.13.59])by mailgw3a.lmco.com (LM-6) with ESMTP id m9D2B03K000655for ; Sun, 12 Oct 2008 22:11:00 -0400 (EDT) Received: from CONVERSION2-DAEMON.lmco.com by lmco.com (PMDF V6.3-x14 #31428) id <0K8N00A01NECCV@lmco.com> for xfs@oss.sgi.com; Sun, 12 Oct 2008 22:11:00 -0400 (EDT) Received: from EMSS04I00.us.lmco.com ([166.17.13.135]) by lmco.com (PMDF V6.3-x14 #31428) with ESMTP id <0K8N002EMNE7NO@lmco.com> for xfs@oss.sgi.com; Sun, 12 Oct 2008 22:10:55 -0400 (EDT) Received: from emss04m05.us.lmco.com ([166.17.13.61]) by EMSS04I00.us.lmco.com with Microsoft SMTPSVC(5.0.2195.6713); Sun, 12 Oct 2008 22:10:55 -0400 Date: Sun, 12 Oct 2008 22:10:54 -0400 From: "Ngo, Andrew" X-ASG-Orig-Subj: Stale XFS mount for Kernel 2.6.25.14 Subject: Stale XFS mount for Kernel 2.6.25.14 To: xfs@oss.sgi.com Cc: "Johnson, Je" , "Ngo, Andrew" Message-id: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft Exchange V6.5 Thread-Topic: Stale XFS mount for Kernel 2.6.25.14 Thread-Index: Acks2OkvR9Qim+2+RBaAK4sHPxqhcw== X-MS-Has-Attach: X-MS-TNEF-Correlator: X-OriginalArrivalTime: 13 Oct 2008 02:10:55.0288 (UTC) FILETIME=[ECB91380:01C92CD8] X-Barracuda-Connect: mailgw3a.lmco.com[192.35.35.7] X-Barracuda-Start-Time: 1223865713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7864 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 928 Hi, This is my first attempt to report a stale mount problem. If this is not the relevant mail list, please let me know. I suspect that my problem is xfs related, thus I select this mailing list. I have a system that recently upgraded it's kernel to 2.6.25.14. The system's previous kernel was 2.6.18.-8.el5. With the previous kernel, I have no problem with executing the following commands when the system is in operation. Note that the /mnt/mountpoint is mounted on a XFS file system. mount -o rw,remount /mnt/mountpoint mount -o ro,remount /mnt/mountpoint With kernel 2.6.25.14, however, the mount command may be hang when changing from rw to ro. When this happen, system is very sluggish. Even the "shutdown -r now" command is not taken. The only way to get out of this hang is by manually pressing the power button Your sugguestion is greatly appreciated. Andy Ngo [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Sun Oct 12 21:03:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_72 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D43duO022401 for ; Sun, 12 Oct 2008 21:03:39 -0700 X-ASG-Debug-ID: 1223870715-207603740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9CA414E9047 for ; Sun, 12 Oct 2008 21:05:15 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Y1d6DVj0TOmXCsjD for ; Sun, 12 Oct 2008 21:05:15 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAGRk8kh5LHzj/2dsb2JhbAC4L4Fs X-IronPort-AV: E=Sophos;i="4.33,400,1220193000"; d="scan'208";a="209843526" Received: from ppp121-44-124-227.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.124.227]) by ipmail01.adl6.internode.on.net with ESMTP; 13 Oct 2008 14:29:40 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpEap-0008GO-HK; Mon, 13 Oct 2008 14:59:39 +1100 Date: Mon, 13 Oct 2008 14:59:39 +1100 From: Dave Chinner To: "Ngo, Andrew" Cc: xfs@oss.sgi.com, "Johnson, Je" X-ASG-Orig-Subj: Re: Stale XFS mount for Kernel 2.6.25.14 Subject: Re: Stale XFS mount for Kernel 2.6.25.14 Message-ID: <20081013035939.GB10716@disturbed> Mail-Followup-To: "Ngo, Andrew" , xfs@oss.sgi.com, "Johnson, Je" References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1223870718 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7867 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 12, 2008 at 10:10:54PM -0400, Ngo, Andrew wrote: > Hi, > > This is my first attempt to report a stale mount problem. If this is > not the relevant mail list, please let me know. I suspect that my > problem is xfs related, thus I select this mailing list. > > I have a system that recently upgraded it's kernel to 2.6.25.14. The > system's previous kernel was 2.6.18.-8.el5. With the previous kernel, I > have no problem with executing the following commands when the system is > in operation. Note that the /mnt/mountpoint is mounted on a XFS file > system. > > mount -o rw,remount /mnt/mountpoint > mount -o ro,remount /mnt/mountpoint > > With kernel 2.6.25.14, however, the mount command may be hang when > changing from rw to ro. When this happen, system is very sluggish. That's because the remount,ro is actually flushing all the dirty data to disk in 2.6.25. There is also a check to catch when the remount,ro fails to clean everything that is dirty - that's probably what is triggering. Do you have an oops in the dmesg log when mount hangs? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 12 23:28:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6SALx031384 for ; Sun, 12 Oct 2008 23:28:11 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id A51F28F8047; Sun, 12 Oct 2008 23:29:46 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07476; Mon, 13 Oct 2008 17:29:43 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id C434358C38F4; Mon, 13 Oct 2008 17:29:43 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - split out two helpers from xfs_syncsub Message-Id: <20081013062943.C434358C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:29:43 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) split out two helpers from xfs_syncsub Split out two helpers from xfs_syncsub for the dummy log commit and the superblock writeout. Signed-off-by: Christoph Hellwig Signed-off-by: Dave Chinner Date: Mon Oct 13 17:29:16 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32303a fs/xfs/linux-2.6/xfs_sync.c - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h - split out two helpers from xfs_syncsub From owner-xfs@oss.sgi.com Sun Oct 12 23:30:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6UDSf031709 for ; Sun, 12 Oct 2008 23:30:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 2A88D8F805D; Sun, 12 Oct 2008 23:31:54 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07632; Mon, 13 Oct 2008 17:31:53 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id C7F9258C38F4; Mon, 13 Oct 2008 17:31:53 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - Use struct inodes instead of vnodes to kill vn_grab Message-Id: <20081013063153.C7F9258C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:31:53 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Use struct inodes instead of vnodes to kill vn_grab With the sync code relocated to the linux-2.6 directory we can use struct inodes directly. If we do the same thing for the quota release code, we can remove vn_grab altogether. While here, convert the VN_BAD() checks to is_bad_inode() so we can remove vnodes entirely from this code. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:31:33 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32304a fs/xfs/quota/xfs_qm_syscalls.c - 1.48 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm_syscalls.c.diff?r1=text&tr1=1.48&r2=text&tr2=1.47&f=h fs/xfs/linux-2.6/xfs_vnode.c - 1.163 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.c.diff?r1=text&tr1=1.163&r2=text&tr2=1.162&f=h fs/xfs/linux-2.6/xfs_vnode.h - 1.159 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.h.diff?r1=text&tr1=1.159&r2=text&tr2=1.158&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h - Use struct inodes instead of vnodes to kill vn_grab From owner-xfs@oss.sgi.com Sun Oct 12 23:31:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6VliT032044 for ; Sun, 12 Oct 2008 23:31:48 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id EB8F390889; Sun, 12 Oct 2008 23:33:22 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07681; Mon, 13 Oct 2008 17:33:21 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 94DC358C38F4; Mon, 13 Oct 2008 17:33:21 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - use xfs_sync_inodes rather than xfs_syncsub Message-Id: <20081013063321.94DC358C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:33:21 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) use xfs_sync_inodes rather than xfs_syncsub Kill the unused arg in xfs_syncsub() and xfs_sync_inodes(). For callers of xfs_syncsub() that only want to flush inodes, replace xfs_syncsub() with direct calls to xfs_sync_inodes() as that is all that is being done with the specific flags being passed in. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:33:00 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32305a fs/xfs/xfs_vfsops.c - 1.577 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.577&r2=text&tr2=1.576&f=h fs/xfs/xfs_mount.h - 1.280 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.280&r2=text&tr2=1.279&f=h fs/xfs/quota/xfs_qm_syscalls.c - 1.49 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm_syscalls.c.diff?r1=text&tr1=1.49&r2=text&tr2=1.48&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h - use xfs_sync_inodes rather than xfs_syncsub From owner-xfs@oss.sgi.com Sun Oct 12 23:33:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6X7lK032369 for ; Sun, 12 Oct 2008 23:33:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 18D18304088; Sun, 12 Oct 2008 23:34:42 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07721; Mon, 13 Oct 2008 17:34:41 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B524458C38F4; Mon, 13 Oct 2008 17:34:41 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - kill xfs_syncsub Message-Id: <20081013063441.B524458C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:34:41 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) kill xfs_syncsub Now that the only caller is xfs_sync(), merge the two together as it makes no sense to keep them separate. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:34:22 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32306a fs/xfs/linux-2.6/xfs_sync.c - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h - kill xfs_syncsub From owner-xfs@oss.sgi.com Sun Oct 12 23:34:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6YIDl032627 for ; Sun, 12 Oct 2008 23:34:19 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id D8ED090887; Sun, 12 Oct 2008 23:35:59 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07770; Mon, 13 Oct 2008 17:35:58 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 8693F58C38F4; Mon, 13 Oct 2008 17:35:58 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - xfssyncd: don't call xfs_sync Message-Id: <20081013063558.8693F58C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:35:58 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) xfssyncd: don't call xfs_sync Start de-multiplexing xfs_sync() by making xfs_sync_worker() call the specific sync functions it needs. This is only a small, unique subset of the entire xfs_sync() code so is easier to follow. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:35:40 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32307a fs/xfs/linux-2.6/xfs_sync.c - 1.12 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.11&f=h - xfssyncd: don't call xfs_sync From owner-xfs@oss.sgi.com Sun Oct 12 23:35:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6ZW9s000468 for ; Sun, 12 Oct 2008 23:35:32 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 2FFAA90887; Sun, 12 Oct 2008 23:37:13 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07801; Mon, 13 Oct 2008 17:37:12 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B795358C52AB; Mon, 13 Oct 2008 17:37:12 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - make SYNC_ATTR no longer use xfs_sync Message-Id: <20081013063712.B795358C52AB@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:37:12 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) make SYNC_ATTR no longer use xfs_sync Continue to de-multiplex xfs_sync be replacing all SYNC_ATTR callers with direct calls xfs_sync_inodes(). Add an assert into xfs_sync() to ensure we caught all the SYNC_ATTR callers. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:36:54 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32308a fs/xfs/xfs_vfsops.c - 1.578 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.578&r2=text&tr2=1.577&f=h fs/xfs/linux-2.6/xfs_super.c - 1.453 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.453&r2=text&tr2=1.452&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.4 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.3&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h - make SYNC_ATTR no longer use xfs_sync From owner-xfs@oss.sgi.com Sun Oct 12 23:37:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6bT9R000808 for ; Sun, 12 Oct 2008 23:37:29 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id BAC98304097; Sun, 12 Oct 2008 23:39:10 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07848; Mon, 13 Oct 2008 17:39:09 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 5B8C358C38F4; Mon, 13 Oct 2008 17:39:09 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - make SYNC_DELWRI no longer use xfs_sync Message-Id: <20081013063909.5B8C358C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:39:09 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) make SYNC_DELWRI no longer use xfs_sync Continue to de-multiplex xfs_sync be replacing all SYNC_DELWRI callers with direct calls functions that do the work. Isolate the data quiesce case to a function in xfs_sync.c. Isolate the FSDATA case with explicit calls to xfs_sync_fsdata(). Version 2: o Push delwri related log forces into xfs_sync_inodes(). Signed-off-by: Dave Chinner Date: Mon Oct 13 17:38:29 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32309a fs/xfs/xfs_vfsops.c - 1.579 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.579&r2=text&tr2=1.578&f=h fs/xfs/linux-2.6/xfs_super.c - 1.454 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.454&r2=text&tr2=1.453&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h - make SYNC_DELWRI no longer use xfs_sync From owner-xfs@oss.sgi.com Sun Oct 12 23:39:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6dsxb001225 for ; Sun, 12 Oct 2008 23:39:54 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id D4712304093; Sun, 12 Oct 2008 23:41:35 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07893; Mon, 13 Oct 2008 17:41:34 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7E09658C38F4; Mon, 13 Oct 2008 17:41:34 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - Kill SYNC_CLOSE Message-Id: <20081013064134.7E09658C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:41:34 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Kill SYNC_CLOSE SYNC_CLOSE is only ever used and checked in conjunction with SYNC_WAIT, and this only done in one spot. The only thing this does is make XFS_bflush() calls to the data buftargs. This will happen very shortly afterwards the xfs_sync() call anyway in the unmount path via the xfs_close_devices(), so this code is redundant and can be removed. That only user of SYNC_CLOSE is now gone, so kill the flag completely. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:41:16 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32310a fs/xfs/linux-2.6/xfs_super.c - 1.455 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.455&r2=text&tr2=1.454&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.6 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.5&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.15 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.15&r2=text&tr2=1.14&f=h - Kill SYNC_CLOSE From owner-xfs@oss.sgi.com Sun Oct 12 23:41:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6f4OJ001507 for ; Sun, 12 Oct 2008 23:41:04 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id C64C6304096; Sun, 12 Oct 2008 23:42:45 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07945; Mon, 13 Oct 2008 17:42:44 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7C1CF58C38F4; Mon, 13 Oct 2008 17:42:44 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - Kill xfs_sync() Message-Id: <20081013064244.7C1CF58C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:42:44 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Kill xfs_sync() There are no more callers to xfs_sync() now, so remove the function altogther. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:42:24 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32311a fs/xfs/xfs_iget.c - 1.248 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.248&r2=text&tr2=1.247&f=h fs/xfs/quota/xfs_qm.c - 1.76 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm.c.diff?r1=text&tr1=1.76&r2=text&tr2=1.75&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.7 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.6&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.16 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.16&r2=text&tr2=1.15&f=h - Kill xfs_sync() From owner-xfs@oss.sgi.com Sun Oct 12 23:42:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6ga5Q001808 for ; Sun, 12 Oct 2008 23:42:36 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 744268F8068; Sun, 12 Oct 2008 23:44:18 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA07987; Mon, 13 Oct 2008 17:44:17 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 2533558C38F4; Mon, 13 Oct 2008 17:44:17 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - Move remaining quiesce code. Message-Id: <20081013064417.2533558C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:44:17 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Move remaining quiesce code. With all the other filesystem sync code it in xfs_sync.c including the data quiesce code, it makes sense to move the remaining quiesce code to the same place. Signed-off-by: Dave Chinner Date: Mon Oct 13 17:43:56 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32312a fs/xfs/xfs_vfsops.c - 1.580 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.580&r2=text&tr2=1.579&f=h fs/xfs/linux-2.6/xfs_super.c - 1.456 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.456&r2=text&tr2=1.455&f=h fs/xfs/xfs_vfsops.h - 1.13 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.h.diff?r1=text&tr1=1.13&r2=text&tr2=1.12&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.8 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.7&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.17 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.17&r2=text&tr2=1.16&f=h - Move remaining quiesce code. From owner-xfs@oss.sgi.com Sun Oct 12 23:45:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9D6iq32002220 for ; Sun, 12 Oct 2008 23:45:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 06BA590889; Sun, 12 Oct 2008 23:46:33 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA08140; Mon, 13 Oct 2008 17:46:32 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id A172C58C38F4; Mon, 13 Oct 2008 17:46:32 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988140 - Remove exported symbol xfs_syncsub() since it no longer exists. Message-Id: <20081013064632.A172C58C38F4@chook.melbourne.sgi.com> Date: Mon, 13 Oct 2008 17:46:32 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Remove exported symbol xfs_syncsub() since it no longer exists. Date: Mon Oct 13 17:45:58 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32313a fs/xfs/linux-2.6/xfs_ksyms.c - 1.91 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.91&r2=text&tr2=1.90&f=h - Remove exported symbol xfs_syncsub() since it no longer exists. From owner-xfs@oss.sgi.com Mon Oct 13 05:05:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_72,RCVD_BAD_ID autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9DC5bWg004590 for ; Mon, 13 Oct 2008 05:05:38 -0700 X-ASG-Debug-ID: 1223899633-785f00b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailgw2a.lmco.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1999A5C80F for ; Mon, 13 Oct 2008 05:07:13 -0700 (PDT) Received: from mailgw2a.lmco.com (mailgw2a.lmco.com [192.91.147.7]) by cuda.sgi.com with ESMTP id HrBfu0jbvMa4hVrS for ; Mon, 13 Oct 2008 05:07:13 -0700 (PDT) Received: from emss01g01.ems.lmco.com (relay1.ems.lmco.com [137.249.139.141])by mailgw2a.lmco.com (LM-6) with ESMTP id m9DC6xTo005244;Mon, 13 Oct 2008 08:06:59 -0400 (EDT) Received: from CONVERSION2-DAEMON.lmco.com by lmco.com (PMDF V6.3-x14 #31428) id <0K8O00F01EZN6S@lmco.com>; Mon, 13 Oct 2008 05:06:59 -0700 (PDT) Received: from EMSS04I00.us.lmco.com ([166.17.13.135]) by lmco.com (PMDF V6.3-x14 #31428) with ESMTP id <0K8O00E2TEZEYH@lmco.com>; Mon, 13 Oct 2008 05:06:54 -0700 (PDT) Received: from emss04m05.us.lmco.com ([166.17.13.61]) by EMSS04I00.us.lmco.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 13 Oct 2008 08:06:53 -0400 Date: Mon, 13 Oct 2008 08:06:53 -0400 From: "Ngo, Andrew" X-ASG-Orig-Subj: RE: Stale XFS mount for Kernel 2.6.25.14 Subject: RE: Stale XFS mount for Kernel 2.6.25.14 In-reply-to: <20081013035939.GB10716@disturbed> To: Dave Chinner Cc: xfs@oss.sgi.com, "Johnson, Je" , "Ngo, Andrew" Message-id: <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft Exchange V6.5 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Thread-Topic: Stale XFS mount for Kernel 2.6.25.14 Thread-Index: AcktJQhmcWjT+CMtS2+hWv8Ow7jKFAAAtlTQ Content-class: urn:content-classes:message X-MS-Has-Attach: X-MS-TNEF-Correlator: References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> X-OriginalArrivalTime: 13 Oct 2008 12:06:53.0697 (UTC) FILETIME=[2E654710:01C92D2C] X-Barracuda-Connect: mailgw2a.lmco.com[192.91.147.7] X-Barracuda-Start-Time: 1223899636 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.07 X-Barracuda-Spam-Status: No, SCORE=0.07 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7889 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.09 RCVD_BAD_ID RCVD_BAD_ID No. There is no oops in the /var/log/messages when the mount command hangs. Andy Ngo -----Original Message----- From: Dave Chinner [mailto:david@fromorbit.com] Sent: Monday, October 13, 2008 12:00 AM To: Ngo, Andrew Cc: xfs@oss.sgi.com; Johnson, Je Subject: Re: Stale XFS mount for Kernel 2.6.25.14 On Sun, Oct 12, 2008 at 10:10:54PM -0400, Ngo, Andrew wrote: > Hi, > > This is my first attempt to report a stale mount problem. If this is > not the relevant mail list, please let me know. I suspect that my > problem is xfs related, thus I select this mailing list. > > I have a system that recently upgraded it's kernel to 2.6.25.14. The > system's previous kernel was 2.6.18.-8.el5. With the previous kernel, > I have no problem with executing the following commands when the > system is in operation. Note that the /mnt/mountpoint is mounted on a > XFS file system. > > mount -o rw,remount /mnt/mountpoint > mount -o ro,remount /mnt/mountpoint > > With kernel 2.6.25.14, however, the mount command may be hang when > changing from rw to ro. When this happen, system is very sluggish. That's because the remount,ro is actually flushing all the dirty data to disk in 2.6.25. There is also a check to catch when the remount,ro fails to clean everything that is dirty - that's probably what is triggering. Do you have an oops in the dmesg log when mount hangs? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 09:26:19 2008 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9DGQISr000351 for ; Mon, 13 Oct 2008 09:26:19 -0700 X-ASG-Debug-ID: 1223915276-7c9d00e60000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from qb-out-1314.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E2A2A68130 for ; Mon, 13 Oct 2008 09:27:56 -0700 (PDT) Received: from qb-out-1314.google.com (qb-out-1314.google.com [72.14.204.174]) by cuda.sgi.com with ESMTP id gaPX3JLEvnTgd9LD for ; Mon, 13 Oct 2008 09:27:56 -0700 (PDT) Received: by qb-out-1314.google.com with SMTP id c6so1664096qbc.8 for ; Mon, 13 Oct 2008 09:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=5zjFRjRd870gm7Rl/rSBFBduFf1Yu3J/3yA/gvlS88Y=; b=cbZ/rh2U21c+8LIXPD9HCumXZeCSsTFNtIXtRiHqh4KXyHTFj1nfwy5iFvFbSSVrtx 90B5KTY22n0JUAw1sEyv+0b/J5JYNhO7Eo02OhWYbbC7EjdqQoEzlP+wT0xKXOz2ZrDx Zr8UCMhKV/YVM1vx/wh+1XAzdvHJMBgHEK3Jk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=gmDonzbAd62f9GTptVgeqCBLoV2E6ILfHAGazNcUJfM1c6CyRXHAbJfCoKCfR/7Flq zgvUkyt44MI/ZhZYbF6X6NVwFw6dKjs67rRvH7DJot9M5HidH4W7kwx2MZ4MvMio3BBL xL7mMUAOuwOVNVP/9asM8I4T1XELjDWGV0QOI= Received: by 10.210.41.14 with SMTP id o14mr5732001ebo.83.1223915273486; Mon, 13 Oct 2008 09:27:53 -0700 (PDT) Received: by 10.210.10.15 with HTTP; Mon, 13 Oct 2008 09:27:53 -0700 (PDT) Message-ID: <5eea93010810130927n58cd7b37raa06230b6f30fa3d@mail.gmail.com> Date: Mon, 13 Oct 2008 17:27:53 +0100 From: "CONGRES AACPEM" To: amah_bello2020@yahoo.fr X-ASG-Orig-Subj: =?ISO-8859-1?Q?congres_Am=E9ricano-canadienne_du_Changement_Climatique?= Subject: =?ISO-8859-1?Q?congres_Am=E9ricano-canadienne_du_Changement_Climatique?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_36203_2223181.1223915273459" X-Barracuda-Connect: qb-out-1314.google.com[72.14.204.174] X-Barracuda-Start-Time: 1223915278 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 ------=_Part_36203_2223181.1223915273459 Content-Type: multipart/alternative; boundary="----=_Part_36204_9613132.1223915273459" ------=_Part_36204_9613132.1223915273459 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Bonjour Mesdames/Messieurs, Nous serions particuli=E8rement int=E9ress=E9s que votre organisation puis= se =EAtre repr=E9sent=E9e =E0 notre conf=E9rence, et vous invitons officiellement =E0= y envoyer au maximum quatre d=E9l=E9gu=E9s. Une cinquantaine d'associations, ONG, lea= ders d'opinion et d=E9cideurs Politiques Africains sont attendu =E0 cette conf= =E9rence. Selon nous, l'int=E9r=EAt exprim=E9 par votre organisation/entreprise, inst= itution m=E9riterait qu'elle puisse b=E9n=E9ficier du soutien de l'* *AACPEM et de = ses partenaires dans la mesure o=F9 celle-ci est engag=E9e dans la lutte contre= le r=E9chauffement climatique. Nous vous invitons donc vivement =E0 soutenir l= a participation de vos d=E9l=E9gu=E9s =E0 notre conf=E9rence. Veuillez adressez vos demande de participation directement Par courriel greenpeace_aacpem.cg2008@torontomail.com ou par Fax : +1-954-656-0822 Si vous avez des questions particuli=E8res ou des sujets de pr=E9occupation= , n'h=E9sitez pas =E0 contacter *Mr. Stanislas B. G. Boris *Coordinateur des Services aux Participants (Afrique), (+228) 9595312** Veuillez trouver en attach=E9 la lettre d'information G=E9n=E9ral sur : FLa date et le lieu des =E9v=E8nements FLes th=E8mes de l'=E9dition FLes documents d'inscription FLes conditions de participation et diverses accommodations *TOGO*** * * *Mr. Stanislas B. G. Boris * Direction de l'=E9cologie et de la rehabilitation du milieu 14 rue de Chaminade Tel : +228 9595312 11BP : 17493 Kara -Togo Email : *afrik.ecologynetwork@africamail.com* * * * * *CANADA* 115, 62th Street Edson (Alberta) Fax : +1-954-656-0822 Postal Code: HF122 Edmonton * * (Alberta) Email : greenpeace_aacpem.cg2008@torontomail.com Best Regard, *JOBIN M=E9lanie* Secr=E9taire G=E9n=E9ral ------=_Part_36204_9613132.1223915273459 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline

Bonjour  = ; = Mesdames/Messieurs,

 Nous serions particuli= =E8rement int=E9ress=E9s que votre organisation puisse =EAtre repr=E9sent= =E9e =E0 notre conf=E9rence, et vous invitons officiellement =E0 y envoyer = au maximum quatre d=E9l=E9gu=E9s. Une cinquantaine d'associations, ONG, lea= ders d'opinion et d=E9cideurs Politiques Africains sont attendu =E0 cette c= onf=E9rence. Selon nous, l'int=E9r=EAt exprim=E9 par votre organisation/ent= reprise, institution  m=E9rit= erait qu'elle puisse b=E9n=E9ficier du soutien de l' = AACPEM et de ses p= artenaires dans la mesure o=F9 celle-ci est engag=E9e dans la lutte contre = le r=E9chauffement climatique. Nous vous invitons donc vivement =E0 souteni= r la participation de vos d=E9l=E9gu=E9s =E0 notre conf=E9rence.=

Ve= uillez adressez vos demande de participation directement

Par courriel greenpeace_aacpem.cg2008@torontomail.com ou par Fax : +1-954-= 656-0822

 

Si= vous avez des questions particuli=E8res ou des sujets de pr=E9occupation, = n'h=E9sitez pas =E0 contacter

 Mr. Stanislas B. G. Boris = Coordinateur des Services = aux Participants (Afrique), (+228) 9595312

&n= bsp;

Veuillez trouver en attach=E9 la lettre d'information G= =E9n=E9ral sur :<= /span>

 

FLa date et le lieu des =E9v= =E8nements

FLes th=E8mes de l'=E9dition<= /span>

FLes documents d'inscription<= /span>

FLes conditions de participat= ion et diverses accommodations  = ;         

&n= bsp;

TOGO=  

Mr. Stanislas B. G. Bor= is

Di= rection de l'=E9cologie et de la rehabilitation  du milieu

14= rue de Chaminade

Te= l : +228 9595312

11= BP : 17493 Kara -Togo

Email : afrik.ecologynetwork@africamail.com

<= b> 

<= b> 

<= b>CANADA

<= span lang=3D"EN-GB" style=3D"FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-l= anguage: EN-GB"> 

115, 62th Street Edson (Alberta)<= span style=3D"mso-spacerun: yes">  Fax : +1-954-656-0822

<= span style=3D"FONT-SIZE: 10pt; COLOR: #003366; FONT-FAMILY: Arial">Postal C= ode: HF122 Edmonton (Alberta)

Email : greenpeace_aacpem.cg2008@torontomail.com<= /span>

<= span style=3D"FONT-SIZE: 9pt; FONT-FAMILY: Arial"> 

<= font face=3D"Times New Roman">Best Regard,

JOBIN M=E9lanie<=
/b>

<= tt>Secr=E9taire G=E9n=E9ral=

<= font face=3D"Times New Roman"> 

<= font face=3D"Times New Roman"> 

<= font face=3D"Times New Roman"> 

<= font face=3D"Times New Roman"> 

<= font face=3D"Times New Roman"> 

<= font face=3D"Times New Roman"> 

------=_Part_36204_9613132.1223915273459-- ------=_Part_36203_2223181.1223915273459 Content-Type: application/pdf; name="=?ISO-8859-1?Q?Conf=E9rence__Canadienne_du_Changement_Climatique.pdf?=" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fm994o2l Content-Disposition: attachment; filename="=?ISO-8859-1?Q?Conf=E9rence__Canadienne_du_Changement_Climatique.pdf?=" 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 1z114sc+OXn57U/876wV/Oz7bzvpJ6teuGDVmnNP/MSkLba//c6npq95cu71O73zc6+w4RfL8ZMX 39d+1wsXbfzsyrW3nLvHR85cPf9T33tm9cZjbrv7tus3PHrq+Z439pa9N1y46uuHnPvQA5tmjnzw jHWXrD3w6Q2XXDY45uy77378d0eqA4/m/L+fnfJ8a99w3FX+oN4wfslZP9zhlEPu3nbug+8dvf7Z I9TVN/zhr1P/cvSMlWumz/nsPTfcMn/Kvnes//XJt379oRW3XjnHn/ltT33q4C2uWbdw9Sd/du4L Jx721SkrZuy54PYz1ox9dMcDxnznsalv8nsXfPq9K99/+NFfuGr1tVd+if/29ZuOum/ZT4ffOPMR 9svnRsx/bsf1q768ZnD1N4YsummPtx/0uy03BQv2OWncv983eu3Dd0669d5ld228edy35j10/jVP 7L3pJ1c9tecv3n/Ui7vNfvHFqSfc+O7fvCp2ffik3af9+O6JR7w4/b9uGHXJJ3/z5GNbH3LO6e+7 /7A7t1l6/wFfX/3yT997z87Lv/GVdavWX/vKWesv3uM/h7+09oldXrnjpe9ccPXpFz9+3pyJQ784 fOl2L2/6/ul37fPxcybPVSMe+NWHJ1y+NrzunXed9vuLvAcG7r3zL8MeOOy6my6f9oW1V4zfNHje 76645szpx12+bsyOZz+07qW95bmH3nbITretn/fkv02/76i10549+8M3L3zqzDG7bTr55o9OueOU b51+4bhjl18ydPDGW2/e/t6dX//ZxueOj6af9K+bfnjs4j32fe2Yk195z9L2hgcuvHTb1be/b838 F5762nNr71++/dhx0065pnPfuo0jrxj/L3/88R0XXPT45f90xXmfvut7B4zZduGFez321M+feWbd Xo89v+zzq37w1V9PXvjy8C8dHN5z8K9WXHbtI4e+sd1FL/32P6aufu3ViS8/++qW23z3bbcMzN+/ ZdhbM5awt9YtwVRo2DtwYkAkYoC1FsB/JwycMRB50vwT18HPxy1rzV0MNThICdFavHSAeVprxeOX vBXCn6IVcd+LVGvxsoGj26M7yhO+imR7TGeQewFT2m9v0WGekFwF7W060ou4CML2dh3hsQjEVXtc Z1B6yvy2JZQLIvhHtkfC6yDiTLZ3gCelmGpv3xlUXuBzHrWHxlW0H4r21u7XCdC47wehbi85rcM9 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 AdSkqwWCJQC6CJ1tbP+FrqAy3u3/pz4NrTIdxbyhPjY9QYHWLrg3YhBmhLB0aYB1uIOp92B3CAOA No6/l578Uki9gP5jhCgRFf1pkdkPj3S/aTK/bJ5ecs9dkn+Po4D8gGT+jqYUcA6QyOnye2841eSn TN45lF9ducf9OgnpslVvv2hCb8Jv31v1Rgau4cCcAnB0P4hSPrfKj9tt/O23XHJBXAJpBRsfCXNv E+amWZCW1qH0jj9WE9JlLouzI0PZR6wxkR9rGupX8Bl8ORnoNuM/nP0f8IRrWWVuZHN0cmVhbQpl bmRvYmoKNDQgMCBvYmoKNjM3NgplbmRvYmoKNCAwIG9iago8PC9UeXBlL1BhZ2UvTWVkaWFCb3gg WzAgMCA1OTUgODQyXQovUm90YXRlIDAvUGFyZW50IDMgMCBSCi9SZXNvdXJjZXM8PC9Qcm9jU2V0 Wy9QREYgL0ltYWdlQyAvSW1hZ2VJIC9UZXh0XQovQ29sb3JTcGFjZSAyMiAwIFIKL1hPYmplY3Qg MjMgMCBSCi9Gb250IDI0IDAgUgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjI1IDAgb2Jq Cjw8L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgMC9QYXJlbnQgMyAw IFIKL1Jlc291cmNlczw8L1Byb2NTZXRbL1BERiAvSW1hZ2VDIC9JbWFnZUkgL1RleHRdCi9Db2xv clNwYWNlIDM1IDAgUgovWE9iamVjdCAzNiAwIFIKL0ZvbnQgMzcgMCBSCj4+Ci9Db250ZW50cyAy NiAwIFIKPj4KZW5kb2JqCjM4IDAgb2JqCjw8L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4 NDJdCi9Sb3RhdGUgMC9QYXJlbnQgMyAwIFIKL1Jlc291cmNlczw8L1Byb2NTZXRbL1BERiAvVGV4 dF0KL0ZvbnQgNDEgMCBSCj4+Ci9Db250ZW50cyAzOSAwIFIKPj4KZW5kb2JqCjQyIDAgb2JqCjw8 L1R5cGUvUGFnZS9NZWRpYUJveCBbMCAwIDU5NSA4NDJdCi9Sb3RhdGUgMC9QYXJlbnQgMyAwIFIK L1Jlc291cmNlczw8L1Byb2NTZXRbL1BERiAvSW1hZ2VDIC9UZXh0XQovWE9iamVjdCA1MCAwIFIK L0ZvbnQgNTEgMCBSCj4+Ci9Db250ZW50cyA0MyAwIFIKPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5 cGUgL1BhZ2VzIC9LaWRzIFsKNCAwIFIKMjUgMCBSCjM4IDAgUgo0MiAwIFIKXSAvQ291bnQgNAov Um90YXRlIDA+PgplbmRvYmoKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9nIC9QYWdlcyAzIDAgUgov TWV0YWRhdGEgNjkgMCBSCj4+CmVuZG9iago3IDAgb2JqClsvSW5kZXhlZAovRGV2aWNlUkdCCjI1 NQooIFwyNTNcMjUzXClcMjQyXDI0MjJcMjQyXDI0MlwpXDIzMVwyMzEyXDI0MlwyMzE7XDI0Mlwy MzFOXDI1M1wyMzF0XDI0Mn5cMjE2XDI0MlwyMzFcMjQyXDMyMVwyMzdcMjUxXDMxMXZOXDI2Nlwy NDJFXDI1M1wyMzFOXDI1M1wyNDIyXDI1M1wyNDJcKVwyNTNcMjUzIFwyNDJcMjQyO1wyNDJcMjQy XDM1NVwzNTNcMjE0XDM3N1wzNzdcMjIwXDM0NVwzNDFcMjczXDMzMFwzMjBcMTc3RVwyNDJcMjM2 XDM3N1wzNzdaXDM3N1wzNzFPXDM3N1wzNzdEXDM3N1wzNjRcKVwzNzdcMzUzXClcMzc3XDMzNSZc Mzc3XDM0MCFcMzc3XDM2MiZcMzc3XDM3N1wyMTA7XDI1M1wyMzZcMzUzXDMxMCBcMzIxXDI2Mipc MjcxXDIzNSFcMjUwXDIyMCVcMjM2XDIxMiRcMjM0XDIwMSJcMjc2XDI1MixKXDI3N1wyNDdcMzMx XDMwMyFcMjE1XDIwMSVcMjA2eCR0YFwpaFUkT1ogT008R0tcKX1vI1wzNjRcMzI3IEJcMjY2XDI1 MGVgJD4rMjIyIFwpXClcKSBcKVwpXCkgXClcKVwpICAgICAgXCkgXCkgMjIyXDIyMHQgXDM3N1wz NzdBIFwyNTNcMjQyNFwpLlwzNzdcMzc3IztcMjY2XDI0MiBcMjQyXDIzMTJcMjUzXDI1Mzs7IDVG PjJcKSBcKSAgMlwyNTNcMjMxZUNDXDM3N1wzNzIjcGAiMlwyNjZcMjQyTEYgOzIgZWRLMlwpXClc MjUwXDIzNCBcKVwyNTNcMjQydnFNXDM1NFwzMjdBIlwpMlwpMiBEXDI0MVwyMTFFLSBcMzc3XDM3 NyQyXDI2NlwyNTNcMjI3fk1cMjQxXDIzMktcKTstXCkyXCkkRCBcKVcgKk4qXCkyMjZTIFwpYCAg XDI0MlwyNTMyayBcKWsgMlQtXDI3NFwyNTJmcVwyMDZWRnM9XDI2MVwyNzZcMzAzXDI2N1wyNTFc MjcwNmskXDMxNFwzMTFcMjcyXDM0NFwzNDVcMzIwXDM1M1wzNDFcMzM3XDMwMVwzMDRcMzA2XDM3 MVwzNzVcMzcxXDM3N1wzNzdcMzc3XDMxM1wzMTNcMzI1XDM0MFwzMzdcMzUzUnE9U29MXDM2NVwz NjNcMzU2XDM2NlwzNzdcMzc3QW0qXDM0N1wzNTJcMzcwXDIwN1wyMDR0RVwyNTNcMjQyXDMzMlwz MDdcMzA0TnlkT3VYTlwxNzd5XDIyMFwyMzdcMzAxZWpcMjUxXDIzN1wyNDB8XDMwNlwzMjBcMzU0 O1FcMjM0PEZfU3RcMjcyIVwpVUxqXDI0N1wyMDVXdFwzNTNcMzEwXDMwMlwzMjBba1wzMTRWT1wp XDI0MlwyMzE5R1wyMDVHXVwyNDJcMzU1ZDNcMzIxOzRcKUVcMjMxSmtcMjY1XDIxNG9cMjI3XDM3 N1wzNDVcMzQ3XDM2Njs7XDI3MTszMk5cMjMxXDM3N1wyNDBcMjQ3XDM3N0FCNio6XDM3N1wzNzJc MzcyXDM3N3F8LUpcMjMxXDM3N1VVXDM3NzlEXDMyMzRNO1xcXDI3Mk5FXDIzMVNqXDI3MztdXDI0 NVwzMjdcMjQ3XDI2NlwzNzdcMzQzXDM1MTJXXDI0N1wzNzRVV1wzMjBcMjExXDIxNFwzNzJcMzQw XDM0N0JFXDI0MlwzNzdcMzQ3XDI1MitMXDI1MVwzNzcrLVwzNzQ5S1wzNzc/RjtcMjMxXDIzMUtO XDIzNDJcMjM0XDIxNVcgIFwzMDRcMjU1XDIyNmo1I1wyMDMsI1wyMjA4QlwyNzZcKCtKICBRKyBc MjM0LiQ7ICBcMjExX0tEXCklTiVcKVwzMjMqLUtHXDI1NyBcMjMxXDI0MkFcMjIxXDIxMFwzNTMt MlwzMDJVNFwzNjYgJFwpa1wpOX1xJVwyMjJcMjIwXDIxMV0lIDJcKVwzNzcgIFwzNzcgIiBFXDI1 MyBOXDI3N1wzNzcgI1wpTlwyNzcgTlwyNjYgTlwzMTAyTlwyNjYgRVwyNDIgMiAgRVwyNjZXRVwy NDIyRVwyNjZFRVwyNTM7RVwyNjYyTlwyNzdcMzc3XDM3N1wyNzMzXDIxNlwyMDBcKUVcMjc3MkVc Mjc3O1wpIDIgICBcMjMxXDIzMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCldZW5kb2JqCjIyIDAgb2JqCjw8L1I3Cjcg MCBSPj4KZW5kb2JqCjIzIDAgb2JqCjw8L1IxMAoxMCAwIFIvUjkKOSAwIFIvUjgKOCAwIFI+Pgpl bmRvYmoKMTAgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQovQ29sb3JTcGFjZS9EZXZpY2VSR0IKL1dp ZHRoIDM5NwovSGVpZ2h0IDMyNgovQml0c1BlckNvbXBvbmVudCA4Ci9GaWx0ZXIvRENURGVjb2Rl L0xlbmd0aCA4NzcwPj5zdHJlYW0K/9j/7gAOQWRvYmUAZAAAAAAB/9sAQwAOCgsNCwkODQwNEA8O ERYkFxYUFBYsICEaJDQuNzYzLjIyOkFTRjo9Tj4yMkhiSU5WWF1eXThFZm1lWmxTW11Z/9sAQwEP EBAWExYqFxcqWTsyO1lZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZ/8AAEQgBRgGNAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkK C//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNi coIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SF hoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn 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 0UUVZlcSilpMUBcKSlooC43FFLSUWC5NRiiipKExRRRQMMU00UUAFJiiigApKKKAFxRiiigYlFFF MAooooAKKKKACiiigYUUUUAFLiiigQVf0nUHsZ8Y3RScMv8AWiigFuddnOPpmmlqKKzNRCabuoop gGaTNFFAgzSZoopgGaTNFFIAzSZoooEGaM0UUAUNZUvYNg42kMfeubzRRVxMam4Uc0UVRmFLiiig BKMUUUAJSHiiigD/2QplbmRzdHJlYW0KZW5kb2JqCjkgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQov Q29sb3JTcGFjZS9EZXZpY2VSR0IKL1dpZHRoIDIxMDAKL0hlaWdodCA0NTAKL0JpdHNQZXJDb21w b25lbnQgOAovRmlsdGVyL0ZsYXRlRGVjb2RlCi9EZWNvZGVQYXJtczw8L1ByZWRpY3RvciAxNQov Q29sdW1ucyAyMTAwCi9Db2xvcnMgMz4+L0xlbmd0aCA0MTM2MzA+PnN0cmVhbQp4nOy9Cbhl11Ue uNcezjl3eFO9oeYqDSXJ1mBZ1uBJsoVtMFNoQndI6K+7IWkINN2QDzKYhkADYfigMemQQHAC3YQ0 YXQguAl4wFjyLNuyLCNLVaWSVKpB9ebhjufsqfda+9xXr2TJjhy/eq9K+/dT+b777nDGtdf4/+C9 ZwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCZcLkIoTCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQmXE6k4 kZCQkJCQkJCQkJCQkJCQkJCQkJCQkJBwWZGKEwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJlxWpOJGQ kJCQkJCQkJCQkJCQkJCQkJCQkJCQcFmRihMJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCZcVqTiRkJCQ kJCQkJCQkJCQkJCQkJCQkJCQkHBZkYoTCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQmXFak4kXBlIVyu sPV355kDJg1jkjnGjGc8PNx8idcMJL7F4cUefhxzPLwUPye8R4cHnsmKZZwB9+yCtg+eq/7g1Ppf nV5qdPP/5Y0zP3bXuGNcMhvezSzDj8JPt5YJj88nJCRcZfBb7IwjE8Et3v0+2BbBeLAVhv4maAVl ztFz4cnwgmBegpHhjj4hvJ6H30AwD/R5cbVFKwRohcJz4bGlNyqgDwwrMsQvB2a0lko6slyOXizx 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 IeFxRXJOJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ8rkjOiYSEhISEhISEhISEhISEhISEhISEhISE xxXJOZGQkJCQkJCQkJCQkJCQkJCQkJCQkJCQ8LgiOScSEhISEhISEhISEhISEhISEhISEhISEh5X JOdEQkJCQkJCQkJCQkJCQkJCQkJCQkJCQsLjiuScSEhISEhISEhISEhISEhISEhISEhISEh4XJGc EwkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJjyuScyIhISHhqQTvneWlYEXpWaaFUowJ5pm3jKsnemyP DM18xpjx3HOWGW1V5hiDcXOYGNOOfpTwo9OMWScywU6DSSUkJCQkJCQkJCQkJCQkPBngmDG+ynXL cVC/vWDWMyN8oZk1nDedRDOxcNx5ZqWXhgnUzp/oUSc8lZGcEwkJCQlPHXjmK2YkyySzlmnBMs1k 7rwTTjL5RI/uJKAZU8ccHxE+Y7wDspJlSlrD0MkCr8EEWRCMLApVSURKSEhISEhISEhISEhISBgO 1nvjWe65E45iGTPHnHLeM/iN5xjiyBm3goPaLfGfCQmPGZJzIiEhIeGpAxAcOt5lVuQY7uCck1a6 zGtmi9Mmx0AzlzFhWKUqkIYyGHdF/ggOrxl6h3TAvMJPT+A4ExISEhISEhISEhISEhJOP4A+rQ3z xucFA/Wac9TDpfMhqlGEaEBupffCq+SaSHhskZwTCQkJCU8heJQiDnftB+6bP2uk+J6zmhxkDOGE 8qeFJX/RsJYyvlR/eOvM5lWtN55ZMNaxrEmZpcxwpqJ/QlC1Kg9S1BM63oSEhISEhISEhISEhISE 0weeWWe0LBVrlKX/8v75u9rsB8+Y2NLSlXPGZS0Furb1zjAnuCpY0rkTHmMk50RCQkLCUwleO/OZ vfrlH7xtw6rJP3ze1I+fPcm8YTI0bnjyQzOdffKQ/+GPfKO92PzJS1e/4wUbpxTLYQpcGeOZ4uSf sMxL7EZxWswpISEhISEhISEhISEhIeHJADQDe489JeSNB9u/8un9X9rdvXTnxFufve5FZ+aZY8ox x5kT8KcR8E+vTodAx4TTGMk5kZCQkPBUgt+7WL75c4f+/ZtdZvjq9fanL574/Wdv5OL0yDEo2Xzh R1917cEPX3+oyHTH8g0bxt734u0Xbc6nMswK0V4JDqKR8VTcKclICQkJCQkJCQkJCQkJCQknCeeZ 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 L1IxNwoxNyAwIFIvUjE5CjE5IDAgUi9SMTIKMTIgMCBSPj4KZW5kb2JqCjI4IDAgb2JqClsvSW5k ZXhlZAovRGV2aWNlUkdCCjI1NQooXDM3NlwzNzZcMzc2XDMxMlwzMTJcMzEyXDI2MVwyNjFcMjYx XDI2NlwyNjZcMjY2XDI2NFwyNjRcMjY0XDMwMlwzMDJcMzAyXDM3NVwzNzVcMzc1XDMzMlwzMzJc MzMyXDI1NFwyNTRcMjU0XDI1MFwyNTBcMjUwXDI1N1wyNTdcMjU3XDI3NFwyNzRcMjc0XDMyN1wz MjdcMzI3XDM1N1wzNTdcMzU3XDM3MVwzNzFcMzcxXDM0NlwzNDZcMzQ2XDMyMVwzMjFcMzIxXDM2 NVwzNjVcMzY1XDI3N1wyNzdcMjc3XDM0MVwzNDFcMzQxXDIzNlwyMzZcMjM2cG9vampqZWVlXDIx NFwyMTRcMjE0YGBgX19fdHR0fX19eXl5XDAwNVwwMDVcMDA1XDAwMFwwMDBcMDAwNzc3XDIzMFwy MzBcMjMwXDAyMFwwMTdcMDE3Ly8vXDM1MlwzNTJcMzUyXDM1NVwzNTVcMzU1JCQkQD8/XDI3MVwy NzFcMjcxXDAzMFwwMzBcMDMwXGZcZlxmXDM2MlwzNjJcMzYyXDAzNlwwMzZcMDM2XDMzM1wzMzNc MzMzXDMzNlwzMzZcMzM2XDM0NFwzNDRcMzQ0XDIyN1wyMjdcMjI3XDIyM1wyMjNcMjIzXDMyNVwz MjVcMzI1XDIxN1wyMTdcMjE3XDI0M1wyNDNcMjQzWFhYXChcKFwoXDMwNlwzMDZcMzA2XDI0NVwy NDVcMjQ1XDMxN1wzMTdcMzE3XDIwNVwyMDVcMjA1XDMxNFwzMTRcMzE0Tk1NXDIwMFwxNzdcMTc3 XDIxMFwyMTBcMjEwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAw MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwKV1lbmRvYmoK MzEgMCBvYmoKWy9JbmRleGVkCi9EZXZpY2VSR0IKMTUKKFwzNzZcMzc3XDM3N1wzMzZcMzUyXDM3 N1wyNTZcMzE1XDM3N1wyMTZcMjcyXDM3N2lcMjQyXDM3NkB+XDMzN1wzMTFcMzM1XDM3N09cMjE1 XDM1NlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCldZW5kb2JqCjM1IDAg b2JqCjw8L1IyOAoyOCAwIFIvUjMxCjMxIDAgUj4+CmVuZG9iagozNiAwIG9iago8PC9SMzIKMzIg MCBSL1IzMAozMCAwIFIvUjI5CjI5IDAgUj4+CmVuZG9iagozMiAwIG9iago8PC9TdWJ0eXBlL0lt YWdlCi9Db2xvclNwYWNlL0RldmljZVJHQgovV2lkdGggMTY5Ci9IZWlnaHQgNzUKL0JpdHNQZXJD b21wb25lbnQgOAovRmlsdGVyL0RDVERlY29kZS9MZW5ndGggMjY5OT4+c3RyZWFtCv/Y/+4ADkFk b2JlAGQAAAAAAf/bAEMADgoLDQsJDg0MDRAPDhEWJBcWFBQWLCAhGiQ0Ljc2My4yMjpBU0Y6PU4+ MjJIYklOVlhdXl04RWZtZVpsU1tdWf/bAEMBDxAQFhMWKhcXKlk7MjtZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWf/AABEIAEsAqQMBIgACEQEDEQH/xAAf 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 dvuxjt+J5oUkHMjMh8b6FJAJDdFXP/LIxtvz6YAqXTtXubq6mnulSysxFujhk/1zAdZCOw9qLbU0 ewsrk2sX229YiFFHUc859NvJqKK8WLUdV1K82+XZqtspQfeP3iB75YCi6Fzo828UTre+LLi8tkkk gMiENsPOAAcflXpWsa/psvhy5kS43LPE8cYCnJbb0xj3FXYr65bUra1kgiXzYmlkAOTGAQAP1/St XA9BVXTKTueQ/D27g07Wpjf5ijmhMallOCdw4P5UzxNpFz4X8Rx3enhhCzebCwGdp7r/AJ7GvYcD 0FLgGi6GcrN4p0+88LTTySiKaWBkMRB3B8Yxj61w/wAPL6303XJXvZPJSSEorMDjOQcfpXsO0egp Ni/3R+VAHmXxOvra8ls4LaUSyQF/MCgnbnFa3hrWNFHg6Cwv7uND5bRyxtkHkmu32Kf4R+VHlp/d X8qAOMs/ES674ps7LTvMSxtVaR3wR5hAwB9OayPHPhy6tdV/tvTo2kQsJJFUZKMO/wBDXpQRVOQo B+lOoTA5vTPGej3tkss15FbS4+eKQ4Knv9anstZm1a/UadDnTkz5lzIpAkPYJ6/WtJ9OspJPMezt 2f8AvGME1aACjAAAFGgC0UUUgCsy80sTX6X9tMbe7VPLL7dwdfRh35rTooE1czrjTftdhcW11cPI Z0KM4G3A9hUMWjFdQtb2S6kklgiMWNoCkHHbt0rXopWQuVGOdEX7DHbLO4K3P2ln2gl23Fufx/lR Povmz3zi6kSO9jCyKAM5C4BB+lbFFFkHKjHGi+W2nPFcsr2UZiB2A7lIGfp0qIeHgumSWa3UmWuP tCyFQSG3bufWt2ijlQciM220ww6pJftOzySRLGwxxwTyPTr0rSoop2GlYKKKKBhRRRQAUUUUAFFF FABRRRQAUUUUAf/ZCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoKPDwvU3VidHlwZS9JbWFnZQov Q29sb3JTcGFjZS9EZXZpY2VSR0IKL1dpZHRoIDkzCi9IZWlnaHQgOTAKL0JpdHNQZXJDb21wb25l bnQgOAovRmlsdGVyL0RDVERlY29kZS9MZW5ndGggMjg5Nj4+c3RyZWFtCv/Y/+4ADkFkb2JlAGQA AAAAAf/bAEMADgoLDQsJDg0MDRAPDhEWJBcWFBQWLCAhGiQ0Ljc2My4yMjpBU0Y6PU4+MjJIYklO VlhdXl04RWZtZVpsU1tdWf/bAEMBDxAQFhMWKhcXKlk7MjtZWVlZWVlZWVlZWVlZWVlZWVlZWVlZ WVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWf/AABEIAFoAXQMBIgACEQEDEQH/xAAfAAABBQEB AQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYT UWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX WFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE xcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAA AQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGh scEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlq c3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV 1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AMqg0UGvSPPCmSzRwjMrhAenPJ+g 71c0vTLzWZGW0xFbIcSXTDKrjqFH8R/QdzXT6bY6Vp7oNOSOa5lIAvJf3nOODkEcHDDjHIweoqJT UdN2aKnfVnLW2n6neDNrply6kZ3OBGD9CxGavR+GdceMs1pAh/um4Gf0BH610x/tG5ClTNiW2x/d 2SYYHOCMYJHUHpx61bhtbsWF0hBQyj92nncplcHDc4OcnuBWUqsvI0UI9jhZdG1qBS0ulSkDjMci yH8gc/pVATL5picNFKOsbqVYfgea9CSG8tooHYTYjDs6xuSX5G1cEkAnPOOBjqBUE8ttqVpHHqti lwWd0KgfMgUZJGcEY6Egg9MDnFUqr66icI+hw9Famp+HpbOE3mlyNf2HVkzmSMd8f3gPTqP1rKjd ZEDoQykZBrWMlJXRlKDiLRRRTJCrOlaZJrepfZEYpbx4a5kHUA9FB9Tz9ACapzyCGF5DyFGcep7C u50VIfDul29vcJJ50o865kVc7XYE4IHJAAI4BwFJOOtZ1Jcq03ZrTjd3ZoXVnJDaRW1hEq26LtVI ztaNgcqwJOCAeoPX35BksdJt7bEhijM2MFgOBznAHoCOM8gAelT6bZW9haiK1BERJcZYnk896t1y OT2R08q3Y13VF3MQAO5NUm1iwVtpuUz7dK5vV9Re9uGRWPkISFGeDjufWpLXQ7i5tBOrou4ZVT1I 7c9s11LDRjFSqu1zkeIlKTVNXsdXDPFOgeJ1dT3BzVe9so7yF1YYZht3YycZBwfUEgZHcVx9pczW NxvjJBBwy54IHUGu2tp1ubdJk+64yKzrUXRaaehpRrKqmmtTOtILyK/JctHboMAZBVhyB1JOcbSS em3AyDXMeLdEWxdtWsl/0aQg3Ea9FJ6OAOx7/XPrXdTwpcQSQyrujkUqw9QRg1nQG2CnSUtZfJRC jKwBUIcgZJPQ4PHX2xWcZtPmRq4q1mecDBGRyKKfcWjabqFzp7knyGwh7mM8qfrjg+4pldt09Ucr VnZk+nQC71zTbY42vOHYeoQFiP0rt5VuJtb8l5YxExJMauH3IB0ZWOVz0+UH3Ncr4WRX8U2hbqkU pX64A/kTXVaRJGdRlSEQxKwZmjRmYFsjJGUGOvIBI56d6wqN3+RtBLlRvVFc7/s8nl8vtO3644qO +WRrOYQsVl25Uj17Vk2d1qP2RJ1KXcbDLLja4PcDHBric7OxU6ii+WxyfnKFVt6hTgA+ua1LfxDc WsC2ymI4GEJzkD88GsrWtLzPLeWCs8DMTJHj5oWPUEemc9Pp2rCznvXoRoTrxT9p+B5ShODvGR0P nB5GBcFhyfxrsvDjFtHiJ5BLbcemT/8AXrzzTdLlvn3sfJtV5knYcAeg9SewFd5by3LWqR6fCtrZ xKAssnJKgdh/jWGJbg1GU+Y2wydOTk3c3axNZBt/MlGFjlUB2w2UI6ONo5PQDJHQYNTaFJNLavNP K0m9ztJGPl6dO3ek11A0MLGFZishKgvswdpxg7h3xnnpmsqTTaZ6Clzw5jlvGkY+36ZehXU3MLRs GGGGMMMjseTn8qwq6TxcFOk6U5QRMLlgiAg4UhscgkZwFzg9TXN120vhSManxIt6LMtv4m0uZiQv mNEfqykD9cV2VoDDrBZlILyOh3K/yjsd7HBJwowB3A7GvP5w5jzEdsqEOhHZgcg/mK7Ke5S9trPW otm1kBC7QSsnTGScDB4AwecnBOCJqK79SoP3fQ6zBPWsYs2kXjMw/wBDnbJP/PNvf2NX4bk3Fl5s BieXGCocFQ2OQSM9K5zUNS1NWZLhBEh4xsBB/HmvNqyUdycTUUEpM2b+1LEX1iQJ0GeOki+hqoxt Lq90+ZYINkyuz5jUnIA4JIzwc1hWuo3VocQzEKeq9R/9ammedmJCYDbyAAf4gN2Pbisfb21jdHA8 XF6pM6O2i/tW4+0yjFpEcQx44b/aIp17cNfynT7M8H/XSDoi+g9/8/TnZNTunhWESeXEqhdi8DH1 6/rT7C/voMRWvzD+4Ez+eOaSqp6DWLi/ds9dztYYkhiVIxhVAAH0rK8QSiOKLMbnlvmwpTkYKtu4 5zgdPr2N6ymuGtt97GkLAZOGyP8A6351Qt7+4utQaHyFNs4P32XO0cblxkMp447Z5Pau6n3R6t04 pLQ5rxgoh/sezAwyCSZxx6AdgBySegA9KwqtavejU9durtOYlxBCexVSckexJJqrXdBWirnPVs3Z BWj4f1GOwunsrw40+7bIfOPIl6Zz2B9exweOaz6a6q6FWAKkYI9abSkrMmMuVncRSyaTMBLyGYKY 1bbHGhONx6/XJOTls8DI34pYriPchDjjIPUcZwR2ODXn2k68tmkVnrEZurGJg0UxBZoSOm4dwOx6 j0PbpmExT7Zp0iXHnsC1ymGJG4AKByNoHUnkc9ySOacLvU6IvTujaFpbg5EEefXaM0PawvPHKyfP Fnac9M9agt74SW1xcNt8uJ3AwckquRk+5IP4YqsuvWxER8uUeado+6e6jrnn7w4GT14rBQfQr3Ea L2sDnLxRsfUqDTsRQRk/IiKMk8ACs2bVJCsgtrfc+JDHvbAfYcMBjnOcYBxn1FQOl1eT43mSCVI5 YpBHlFIweQSBjIyRySGwCMZpqHcNOiHXt1JerJDbodqYcgj5pFzkMg6EAgcHrz0yCcXxFqLaXaya bayp9uvCXlaNdqwqQATjJwTjjnqSfSl1TxLHZg21gY76/BbM20eVb56gHvgY4B+p7Vyqht7ySSNL NIdzyMclj6n/AA7V0U6ffYicra9RY0WNFRBhVGAPalpaSug5goNFBoAKLZ57GUy2FzJayE5bYQVY +6ng/lRRQNSaehsw+K9QSN47uxtLtJFw5VjEzgjHPBHSrT+LYZ0/0jRpd4UooE6kYJBIzkY5Udu1 c5RWfs49jVVGzbPiycSNLaaNBBMxOXeYtkHk8ADqQCcHnHNZd9qGo6kCt7eMYT/yxi/dx4x0IHJH 1NQUVShGL0RDqNiIqooVFCqOgAwBS0UVRAUUUUAf/9kKZW5kc3RyZWFtCmVuZG9iagoyOSAwIG9i ago8PC9TdWJ0eXBlL0ltYWdlCi9Db2xvclNwYWNlIDI4IDAgUgovV2lkdGggMTUwCi9IZWlnaHQg MTI2Ci9CaXRzUGVyQ29tcG9uZW50IDgKL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjM0Mz4+ c3RyZWFtCnic7VoNV+I6Ey6ogNWAxFalKtHWl6jU+oGg3SX3//+sd5I2H21aQHbleu7pc86ubWaa PJ1MZiYpjtOgQYMGDRo0cFrtvf0q7O0fdByn26uTHrpHx6hv9jSoUHNPyuMNcbuiv9OSluefVeP8 AsbEo2qhfxaMLr3WqUnrpEJv5JVZoatze6jrg5JWMCY1uBk6zm2dEDAeh1FwdKd62q9SCv9XGu+g SmtSJj+qZUWBlbeCVc79friKFXGLw3X8jVgFD481EKzqhBrj62nOKqySjgq+56C4qo+ozOru6Smp xNMzeDvqVgsNdE9Q1tOwqqPuaZFVv1uh9ZRMnQbbAt++VOO1B7Z/u6iRFjHrQk+n1d28mquwur/X 97cSq/lj7epaExlMnENP7ZrVbHhyf16tsrgtsToP60baLDJkeICwtVfD6maoBnt+qGH1XmI1+ius yB5EhhpWYyzH6tSZflGODB+f7zW4B7/qenXSIrwU8uAKWT6B9zXducmmy6BBLY7xgcSTJURKhls6 VndaWDd3ZGs/1T1lOMrXff/AglXolBBo35tZwpZeEotn1Tpd6Gf0QkM3ljNPMuGJvRwu17A616qv Niu9oqNBJasz1YqovcY+hOSXLbheZ6uxQpWtlNC0VaSf2desbsYW5nzapxNbsM5Wvz97OT67lhC1 D6VwT8fEzr1s7R3qtNLHqlWhzR+aflqCz3KmabA9Tlu/M7RaA0s4TKWUyzXypo9CaH760Lry78fQ HEDLn62hihjperXK21fWyA9m2Oksx0qiH3Ody7Hd+vi3IkMFxi1Tt7NUgsdzFaGC01hexlphfWTQ qheW8KO2sOBj7xd0Ozpejdsqooa6srp+1c/6a1id7O/l2LcTODpSUgvt8upOXSWbvvVkp23Z1hsM 1HX7eA2rBpvjRB1KuOWjCJjB+6ojiwy98iykPSlq3zndXlG77SJnoNrcdTM40snJXoO/Y2LnsBxk UnQsWINSBPHgo6y9mMIWRd1erWFlRIYXm9XKyDApFGRGZBi7Tr9c10AseNF361itrq9WsiI35pyb keHQ2rtBbOsYkWFdFO1dswxX1y1LOPglpZU4OzKVDy9lT1fgNndXV4bm9QVUDye+bLq+X8Oqwea4 Uyc4T/axTf9USp9OO7r5WT3THRqt+nRpWHgWnhblyFQpPJVPAss414m+Kjsr6Y1Rt0c6+bdVq1Ez hLx1ONc9j3mK7dzqomJddv7T3YQyoREZiOB6aKxAnmLNNbiOlXFaUhEZ9J5pYuwmJvqZhZrCjhGh BKuBfpjyXUXnYvPIgF9uM7y8fFjCZy8X3r72tNcN3+Uzty+HevO6N1OtIqF02q/5/SyLOccz9dza yNBRWCnsrG+2Gmvvq4b6wRh0a3DMYwB6qxOXlBFMqN2cz/bdm1LimFqdWmfIl9GiGpM5OPDhpEZa Vu6BZ9rNeSY6isVdlBcXVqeTZa/EKvgr56LhoPLbRB7FUBZYltmKMCODXNjls7751t9xTMyhp7bd LD+XnJkcO7P1rLzzYFSJ+S/+zWteLSwimPMlfxKUegoCefb4Bt3Mz2V6+ZiXFOfWNy9zdZewUmip VikXB1kxZJnUzwQa1IEbfFor1ZA1Rt8WqYDfHzzfKYMMn8t6d8MSK3/xEFfiYckjQ43QUAvP8nx9 ZAtVQhksw0tF0er0gZYjw6g2Mmz2FeBhlsfGqsig9vqw7lQVvUlkqI9XG7B6jF4SNTGrWDlvD+gr rK5vomoseGzvLWqk0c1yyd4PzFoSWz3d6F3G3bteZ+6kPJQV2/cu/rmoxK9PcIQTVi28uPB696fT wopObCW9URwah63dq/JQt835aIN/C4ixdL1WFTzG/6nDQpbfYoZXPbUZGASr7Z6khP9TFEh+ywjQ o1v2mSMJw5Bs93IpLrDC+W2Ck4ziHyAgjOXGwkFMwiWfzhmFHSrjnP0ITMmDcQLC7MoDYRzAyD7l NHyat1OasfKol4o2SoVrUPrlT7oJCREi4oVdEvrMJ2HiRIQyFpGlk4YkYCwmvoNCEnuzmHh8xgPX J7GcQalhzmACSgwHJOAvsYWDBNwJAvFgNpHQZ9YPiomzFFtruEowZ+skzOXWQZlbZ6yESQlBRb/i N9AKz8Rf948UZorSiBsr5a8vsFTbfJgHDs6XH+pRH2pzN+RfHPjSy1hlswQaFit4Wx9m4OumopwU p0UdnLFCOKEZq5QP5GfndMAh9RgVyxVhFoj3yFiJ8iACcjYrFIaIft1UMC+iU+FZ2QyCoWbi9VIS yhlc0oTJmXKyR3y41zMo3shmBZfLrUzFsgvuWR4JAzBHhFBEYuaH4Nng7Uvuy4Hh9+DojAXczXJv p1zXLbEKSYS5scjXTQVhPS/PEn6VBDCZogUWNV3y7pAvrxJxJSLDEq78RMZ2F27FrqsQ210qooUP C/nHga/ef5tDGTiOpYf8IIBbWL8gbbA7YABar7ZLJPn3J1pbEBrl3q4AMZN6CYKsXxsEt8gkf4pI 1CCAGYng/2TGsjIaDORlWZEHfL7AXLj1+ERDGJ59r/lSQkyPmvHSgYi6l4QhrzCgnoGU4jsp5CYa k1gUn9tkl68AF1IqFqOiWFQJEeIs86ozz6Mznlag+vvmtYHFvEkEvDJljIoqwZOkRYUOBuTgeblo 3u9ASmT64qVLXoPxdJu5uGIFhVAmoX+8fdgENE/1ULMFkPfFT0l4KVBilWQGQozthBVEhniGsRdz P0pC2BlgFoqKymAFuyGfRC52qdxLfDeQL37CE4tqK6UyoBqsoHyH/xlXC7nL74IVIDETDq5d88lP S0sNGvw3QBVSvg/Lt/gJbLmyfVmG7Jd6SMm/G/kJg2AFeS7bYvPfIvEgpRKNL1vD3YQHMygCi+zk ISE5q8IuPQGSO9phFVkF2clIQIIKVgEkpB0ZK69RGN+dM8ICXsKgMMYZq5ipoxpxLudQWbx+Nysq yxdxeMeNxcgMF/2KV81LPnuY7GTrXpxBBtPk8dMobM0glp+ydmGsMqsUClL4Y7Oi/CyJMX8nxoKd QQ6UH6DDRgJJVpEUqnO53XiW/siYH5Nh8evmnJWCPpfbiWdhrG0ljvUdUW4hnIrKS9tKlVc/bv/f oEGDBg12j/8Dz32tGAplbmRzdHJlYW0KZW5kb2JqCjM3IDAgb2JqCjw8L1IxMwoxMyAwIFIvUjE0 CjE0IDAgUi9SMTUKMTUgMCBSL1IxNwoxNyAwIFIvUjMzCjMzIDAgUj4+CmVuZG9iago0MSAwIG9i ago8PC9SMTMKMTMgMCBSL1IxNAoxNCAwIFIvUjE1CjE1IDAgUi9SMTEKMTEgMCBSL1IxNwoxNyAw IFIvUjEyCjEyIDAgUj4+CmVuZG9iago1MCAwIG9iago8PC9SNDUKNDUgMCBSPj4KZW5kb2JqCjQ1 IDAgb2JqCjw8L1N1YnR5cGUvSW1hZ2UKL0NvbG9yU3BhY2UvRGV2aWNlUkdCCi9XaWR0aCAxOTgK L0hlaWdodCAxNTkKL0JpdHNQZXJDb21wb25lbnQgOAovRmlsdGVyL0RDVERlY29kZS9MZW5ndGgg MzkzND4+c3RyZWFtCv/Y/+4ADkFkb2JlAGQAAAAAAf/bAEMADgoLDQsJDg0MDRAPDhEWJBcWFBQW LCAhGiQ0Ljc2My4yMjpBU0Y6PU4+MjJIYklOVlhdXl04RWZtZVpsU1tdWf/bAEMBDxAQFhMWKhcX Klk7MjtZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWf/A ABEIAJ8AxgMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAAC AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1 9vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAAB AncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Sl pqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA AhEDEQA/AKFFFFB8yFFFFABRRRQAUUUUAFFT2dpPezCK3jMjd8dB9T2rp7HwlEFDXsrO392M4A/H vQbU6E6nwo5GgDccKCT6CvRYdD02EDbaRHHdxuP61citoYVxFEiD0VcUHXHAS6s4Ky0C/vCpEJhQ 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 ooooA6axVdQ02xiguIo5bV9zRScBiDn8q37WS8a6AmktEjCnEcZLM3vnjFedZ9D+NXdL1GTTbhp4 41dipX5u1B3UsSotcyOoi1aRDrFxwwhcBIye44P51X1C7sNX01bxpvJnt/m2E859Md8+tcrJK8sj uzHMhJb3zUdAnipNWa0PQLhpLxRPa6oIYdmdoVTz7ms3w9f/AGm2uYHu/LvHfIlYAkjAxwfpXJDg cHFA/LFAPFvmUrHSeJUkt4bdWv5JyxO9WIxx3wKtX2spBrVl9nnRrcoEcZ+XBPX8K5HOepzRQQ8S 7tpHQ+MXB1GEo3SLOQenJp/iS5L6dpyLLlWTLgHrwOv61zbMWOSSx9TzR/TigUq7fN5nW+HpjNoz 21rcLb3avnLKDn8O9OuUkS+tLW81XzY2yZUOFHHI6dq5EEqcg4PYg0hJJyeT6mgpYm0UrHXp4leT WFto0iFrv2bjnOPXOcUyTWbaPU720vAJrSVgQQMgHA4rk/5UdKA+tTsdXJo+jRQy3Iug0e07FMmQ D7d6v219FfWEJtb9bQxrh1KqT29a4UijFA44pRfuxNXXrpp7sRi8N3HH0baBg/gOayqOBx+lFBzT k5yuwooooICiiigD/9kKZW5kc3RyZWFtCmVuZG9iago1MSAwIG9iago8PC9SMTMKMTMgMCBSL1I0 Ngo0NiAwIFIvUjE0CjE0IDAgUi9SMTUKMTUgMCBSL1I0OAo0OCAwIFIvUjE3CjE3IDAgUi9SMTIK MTIgMCBSPj4KZW5kb2JqCjEzIDAgb2JqCjw8L0Jhc2VGb250L1RpbWVzLUJvbGQvVHlwZS9Gb250 Ci9FbmNvZGluZyA1OCAwIFIvU3VidHlwZS9UeXBlMT4+CmVuZG9iago1OCAwIG9iago8PC9UeXBl L0VuY29kaW5nL0RpZmZlcmVuY2VzWwoxNDYvcXVvdGVyaWdodAoyMzIvZWdyYXZlL2VhY3V0ZS9l Y2lyY3VtZmxleF0+PgplbmRvYmoKMjAgMCBvYmoKPDwvQmFzZUZvbnQvRE1DWkxUK1ZlcmRhbmEs SXRhbGljL0ZvbnREZXNjcmlwdG9yIDIxIDAgUi9UeXBlL0ZvbnQKL0ZpcnN0Q2hhciAxL0xhc3RD aGFyIDEzL1dpZHRoc1sgNjAzIDQyNyA2MDcgMzk0IDUyMSAyNzQgNTk2IDM1MiA2MjMgNjkzIDYx NSA3ODcgNjE2XQovRW5jb2RpbmcgNTkgMCBSL1N1YnR5cGUvVHJ1ZVR5cGU+PgplbmRvYmoKNTkg MCBvYmoKPDwvVHlwZS9FbmNvZGluZy9CYXNlRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0RpZmZl cmVuY2VzWwoxL1Avci9vL3QvYy9sL2Uvc3BhY2UvZC9LL1kvTy9UXT4+CmVuZG9iago0NiAwIG9i ago8PC9CYXNlRm9udC9LUFNIQk8rV2luZ2RpbmdzL0ZvbnREZXNjcmlwdG9yIDQ3IDAgUi9UeXBl L0ZvbnQKL0ZpcnN0Q2hhciAxL0xhc3RDaGFyIDEvV2lkdGhzWyA5NDJdCi9FbmNvZGluZyA2MCAw IFIvU3VidHlwZS9UcnVlVHlwZT4+CmVuZG9iago2MCAwIG9iago8PC9UeXBlL0VuY29kaW5nL0Jh c2VFbmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvRGlmZmVyZW5jZXNbCjEvaGFuZHB0cmlnaHRdPj4K ZW5kb2JqCjE0IDAgb2JqCjw8L0Jhc2VGb250L1RpbWVzLVJvbWFuL1R5cGUvRm9udAovRW5jb2Rp bmcgNjEgMCBSL1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKNjEgMCBvYmoKPDwvVHlwZS9FbmNvZGlu Zy9EaWZmZXJlbmNlc1sKMTMzL2VsbGlwc2lzXT4+CmVuZG9iagoxNSAwIG9iago8PC9CYXNlRm9u dC9UVU5BWkkrVmVyZGFuYS9Gb250RGVzY3JpcHRvciAxNiAwIFIvVHlwZS9Gb250Ci9GaXJzdENo YXIgMS9MYXN0Q2hhciA3Ny9XaWR0aHNbIDc4NyA0MjcgNjIzIDYwMSA2MzMgMjc0IDUyMSA1OTYg NTk2IDM1MiA2MjMgMzk0IDU5MiA1MjEgMjc0CjI2OSA0MjEgNjg0IDk3MyA2MjMgNjA3IDM1MiA1 OTYgMzY0IDYzMyA2MzMgNjIzIDYwNyA2OTMgNTkyIDYzMgo0NTQgNzMyIDY5OCA3NzUgNTkyIDY4 NiAzOTQgNjAxIDM2NCA1NTcgNDU0IDYyMyA1OTYgNDU0IDYzNiA0NTQKMjY5IDYwMyA2MzMgNDU0 IDc3MSA2MzYgNjM2IDYzNiA4NDMgNzQ4IDYxNiA1MjUgMzQ0IDYzNiA0NTUgNjg0CjU3NSA2OTUg NDU0IDYzMyA1NDUgNjM2IDEwNzYgNjM2IDYzNiA3MjcgNzg3IDgxOCA2MzYgNjg0XQovRW5jb2Rp bmcgNjIgMCBSL1N1YnR5cGUvVHJ1ZVR5cGU+PgplbmRvYmoKNjIgMCBvYmoKPDwvVHlwZS9FbmNv ZGluZy9CYXNlRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0RpZmZlcmVuY2VzWwoxL08vci9nL2Ev bi9pL3MvZWFjdXRlL2Uvc3BhY2UvcC90L3YvYy9sL3F1b3RlcmlnaHQKL0kvQS9tL2Qvby9mL2Vn cmF2ZS9jb21tYS91L2gvcS9vY2lyY3VtZmxleC9LL3kvRS9oeXBoZW4KL1UvQy9HL3gvQi9leGNs YW0vYWdyYXZlL3BlcmlvZC9ML2NvbG9uL2IvZWNpcmN1bWZsZXgvcGFyZW5sZWZ0L3R3by9wYXJl bnJpZ2h0L3F1b3Rlc2luZ2xlCi9QL3VncmF2ZS9zZW1pY29sb24vRC9vbmUvbmluZQo1Ni9NL04v VC96L2ovemVyby9KL1MvRi9SL3NsYXNoL3VjaXJjdW1mbGV4L3F1ZXN0aW9uL2ZpdmUvcGVyY2Vu dC90aHJlZQovc2l4L2FtcGVyc2FuZC9RL2VsbGlwc2lzL2VpZ2h0L1ZdPj4KZW5kb2JqCjExIDAg b2JqCjw8L0Jhc2VGb250L0hlbHZldGljYS1Cb2xkL1R5cGUvRm9udAovRW5jb2RpbmcgNjMgMCBS L1N1YnR5cGUvVHlwZTE+PgplbmRvYmoKNjMgMCBvYmoKPDwvVHlwZS9FbmNvZGluZy9EaWZmZXJl bmNlc1sKMTQ2L3F1b3RlcmlnaHQKMjMzL2VhY3V0ZV0+PgplbmRvYmoKNDggMCBvYmoKPDwvQmFz ZUZvbnQvQ1hPWUJJK1dlYmRpbmdzL0ZvbnREZXNjcmlwdG9yIDQ5IDAgUi9UeXBlL0ZvbnQKL0Zp cnN0Q2hhciAxL0xhc3RDaGFyIDIvV2lkdGhzWyAxMDAwIDEwMDBdCi9FbmNvZGluZyA2NCAwIFIv U3VidHlwZS9UcnVlVHlwZT4+CmVuZG9iago2NCAwIG9iago8PC9UeXBlL0VuY29kaW5nL0Jhc2VF bmNvZGluZy9XaW5BbnNpRW5jb2RpbmcvRGlmZmVyZW5jZXNbCjEvVUlmb3J3YXJkL1VJZmFzdGZv cndhcmRdPj4KZW5kb2JqCjE3IDAgb2JqCjw8L0Jhc2VGb250L0tOUVpISytWZXJkYW5hLEJvbGQv Rm9udERlc2NyaXB0b3IgMTggMCBSL1R5cGUvRm9udAovRmlyc3RDaGFyIDEvTGFzdENoYXIgNjAv V2lkdGhzWyAzNDIgODMwIDcxMiA3MTEgNzExIDg0NyA2ODcgNjUwIDY2NCAxMDU4IDY5OSA0OTcg NjY4IDcxMSA2NjQKNTg4IDcxMSA2OTkgMzMyIDY4MyA3MTIgNDU2IDU0MyA3NzYgNjM3IDc2MiA3 ODIgNjgyIDU0MyAzNDIgMzQyCjcyNCA3MzMgNTkzIDY5OSA2NjQgOTQ4IDU4NyA2OTkgNjY0IDcx MiA0MDIgNTU1IDgxMiA1NDYgODUwIDM2MQo2NjkgNjUxIDMzMiA0MjIgNzY0IDgzNyAzNjEgNjk5 IDYxNyA3MTIgODExIDY2OCA0MDJdCi9FbmNvZGluZyA2NSAwIFIvU3VidHlwZS9UcnVlVHlwZT4+ CmVuZG9iago2NSAwIG9iago8PC9UeXBlL0VuY29kaW5nL0Jhc2VFbmNvZGluZy9XaW5BbnNpRW5j b2RpbmcvRGlmZmVyZW5jZXNbCjEvc3BhY2UvRC91L3R3by9mb3VyL04vby92L2UvbS9iL3IvYS96 ZXJvL2VhY3V0ZS9jCi9laWdodC9kL3F1b3RlcmlnaHQvRS9uL3QvcGFyZW5sZWZ0L0EvTC9CL1Iv VC9wYXJlbnJpZ2h0L2wvaS9DCi9QL3MvcC9lZ3JhdmUvTS9xdW90ZWRibC9xL2VjaXJjdW1mbGV4 L2gvY29sb24vSi9VL0kvTy9wZXJpb2QveAoveS9xdW90ZXNpbmdsZS9mL1YvSC9jb21tYS9nL3F1 ZXN0aW9uL3VncmF2ZS9HL2FncmF2ZS9leGNsYW1dPj4KZW5kb2JqCjE5IDAgb2JqCjw8L0Jhc2VG b250L1RpbWVzLUJvbGRJdGFsaWMvVHlwZS9Gb250Ci9FbmNvZGluZyA2NiAwIFIvU3VidHlwZS9U eXBlMT4+CmVuZG9iago2NiAwIG9iago8PC9UeXBlL0VuY29kaW5nL0RpZmZlcmVuY2VzWwoyMzMv ZWFjdXRlXT4+CmVuZG9iagoxMiAwIG9iago8PC9CYXNlRm9udC9IZWx2ZXRpY2EvVHlwZS9Gb250 Ci9FbmNvZGluZyA2NyAwIFIvU3VidHlwZS9UeXBlMT4+CmVuZG9iago2NyAwIG9iago8PC9UeXBl L0VuY29kaW5nL0RpZmZlcmVuY2VzWwoxNDYvcXVvdGVyaWdodAoxNTAvZW5kYXNoCjIzMy9lYWN1 dGVdPj4KZW5kb2JqCjMzIDAgb2JqCjw8L0Jhc2VGb250L1ZSQkJXTStWZXJkYW5hLEJvbGRJdGFs aWMvRm9udERlc2NyaXB0b3IgMzQgMCBSL1R5cGUvRm9udAovRmlyc3RDaGFyIDEvTGFzdENoYXIg OS9XaWR0aHNbIDg0NyA3NjIgNzExIDcxMSA3MTEgMzQyIDgxMiA3MTAgMzYxXQovRW5jb2Rpbmcg NjggMCBSL1N1YnR5cGUvVHJ1ZVR5cGU+PgplbmRvYmoKNjggMCBvYmoKPDwvVHlwZS9FbmNvZGlu Zy9CYXNlRW5jb2RpbmcvV2luQW5zaUVuY29kaW5nL0RpZmZlcmVuY2VzWwoxL04vQi9kb2xsYXIv Zml2ZS9zZXZlbi9zcGFjZS9VL1MvcGVyaW9kXT4+CmVuZG9iagoyMSAwIG9iago8PC9UeXBlL0Zv bnREZXNjcmlwdG9yL0ZvbnROYW1lL0RNQ1pMVCtWZXJkYW5hLEl0YWxpYy9Gb250QkJveFswIC0x NSA4NzUgNzU5XS9GbGFncyA0Ci9Bc2NlbnQgNzU5Ci9DYXBIZWlnaHQgNzU5Ci9EZXNjZW50IC0x NQovSXRhbGljQW5nbGUgMAovU3RlbVYgMTMxCi9NaXNzaW5nV2lkdGggMTAwMAovRm9udEZpbGUy IDUyIDAgUj4+CmVuZG9iago1MiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUKL0xlbmd0aDEg ODI4MC9MZW5ndGggNDMzOT4+c3RyZWFtCnic7TlrdBRllverV1d1J+lKd+fZSaqaTkJCh7waOukY oUzSDRh3EiCPbrC1A42GyKORh4gDnYAJmAACo4Co4OPsnnFW1wqLEhQxuu6KCiqK54wvBlcGRc0s 89CzO5Jkb3V3kDjj7Hh298ecQ319v/ruvd/jvr77VVUDAYBE6AQaGhvmlpRD9MqZiVXLwqVt4Rie dRqANC1cs0q+1nuDGQkfIX7+lvCtS/c929IDQL0CwH5565I7b4n1TygCEH7RvqgtdPKlrjcBZBmJ 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 6IXm6kufMYG/D8zEvEegc/QLegO7H3Jgu3JjginLVGSqNv/E7DcvMetyKIbJtqanZTNMT1qWJS0t S3I7suZn3ZVFZ9WkSbJU1QANchDCEJHxKSYxUc5IA4tokS20JZxFsqic9L1ZVmNiorAnGfcl6jDd OeTGeNW87nSiFs6o9zH5b04qdrCoj1hdrRNjx5rORo8L2KjvXBVme4XT7KTpDRNGfrpWL14fKlxh 0dsrI2W9ewS+LzIhUn+0ngnsHR6euChn1ows/rEk052b5OkFlG8vuW7kxdh7kPT/WLbGyzBZEi/P jhUq98+Ue+lEOjKuPKkVhoqW+Vjeu1qulqvlarlarpb/XdG+VES/uAJYYt8GSSYChw1n85xWb8NM ekZxdXnFj/5X7W//YrRnWKwZzT4XE0dHsSZajTiDtROaYQ604tt+A8xE282AYqiGcqiI9jBFv6UC cJAE0LLo9lDbsraiWavalixeqM1HdgD7V0vyvb9FL8LF0XEEMtaNXAbqbfibAbYP6q8E7gboYd4F 7zj4Dah/Al/Be38VOKCVuQTNzCvg+yGgyqFqDJgPwT8GdAdURmFi9H//v3yRGPSrTz93s7H6a7DG HPfU0aPLtPuzpev4kd+P+A0qjw7Ctz8qNuy/AWzIrIkKZW5kc3RyZWFtCmVuZG9iago0NyAwIG9i ago8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnROYW1lL0tQU0hCTytXaW5nZGluZ3MvRm9udEJC b3hbNjIgMCA4NTcgNzIyXS9GbGFncyA0Ci9Bc2NlbnQgNzIyCi9DYXBIZWlnaHQgNzIyCi9EZXNj ZW50IDAKL0l0YWxpY0FuZ2xlIDAKL1N0ZW1WIDEyOAovTWlzc2luZ1dpZHRoIDUwMAovRm9udEZp bGUyIDUzIDAgUj4+CmVuZG9iago1MyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUKL0xlbmd0 aDEgNTU0NC9MZW5ndGggMzEzMT4+c3RyZWFtCnic7Vd9cFTVFT/3vs/NB9lsvlmQt3luAiRLSDbJ JiSEJdkNIVs1IQF2g4HNFywQSAwhEhAmiAhuwG6FOtWqgIoiX74lKIFhLEXBdGzHOqOOFqr9iKNj XatTEKdTkp73XoJgW6d/dDrOtO/s7/7uPee8c+85776PBQIAsdAHDNTcVZeTB9qRWIPNopY1TZ36 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 27lo0TEzaVJMfubkrDiRLSwoyzNkpDmq79naRdYbnJMmE4Nx5FSjb2nj8rTkUKYvn+SRrBkJJG7C 9tuSlk6aUVIgsK51R+YajSkpkoVUFETPIKmmKRKdMdlc4iH4jhnfvfNgqvAQwDlwqu+ljP+skO0k 9H/574r2fUHHvjgS8UmHB5mI4LXvjv/tg8X/gWrLqvX5Qr0Pxloc49tCqw8BE9aPgvqMNwAsXrl2 RStinfZdh/Xl/u3ZxFuHX8AXo7coyPiioO/7DHw+HEMBfS99x6HmQ/sgrLx4Zllc6VXRrBfg4LE9 IyqH3xDeBhipifpQyMVhzHj+fwcj/t2JCmVuZHN0cmVhbQplbmRvYmoKMTYgMCBvYmoKPDwvVHlw ZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9UVU5BWkkrVmVyZGFuYS9Gb250QkJveFstMjkgLTIw NiAxMDAzIDgxOF0vRmxhZ3MgNAovQXNjZW50IDc2NAovQ2FwSGVpZ2h0IDc2NAovRGVzY2VudCAt MjA2Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAxNTAKL01pc3NpbmdXaWR0aCAxMDAwCi9Gb250Rmls ZTIgNTQgMCBSPj4KZW5kb2JqCjU0IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovTGVuZ3Ro MSAyNDI4OC9MZW5ndGggMTQ1MTY+PnN0cmVhbQp4nO18eXwURfp3VfUx3XP13DOZZDIzmdyTMCGZ SQgkTJP7AJMACQkwJIGAgCABAnL9DKtyyCoirvd97LqrPzUERNDsiqKI166Ixy6uB4qsukbZ1WVd IJO3qnomBI/9+e6+n/d9/9jpdE91TXV31VPfep7v81R1AAQA6MBGwIDGhmmBfEA/M9/Ah5Z5Szu7 lfPWEwDAN+at7vFMvm8Swhl/xOe3LOi+eGlR05EsAFAPPj998ZK1C5Tyqp8BUDd14fzOrlc+vfVO AOb8EmcWLsQZ5gniawCwS/B56sKlPWuU8rNyAGBmL1k2r1M5b/oEAP7c0s413dw3zIe4/A6c6bm0 c+n8WP324UNC97KVPcr5nK3k9+4V87vXzv/9MC7fh+v0EZ/MW7hT3BF2Axth3gUGAIb/NHw8uiba FW1jfgbc+JqbwENgPzgEfgvinwHwLP1eDfrBAfAyGP35CfgZ+AV4BRwDX47k3QLuAg+DvgvK7aC5 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 /KaBGaANVIEGsBfkgFTQCKoxB6wFy4GEOVw9mA7WgzFgNsgEBjAOpINsMAuk4bstBkYQAC5QCVZg DmYFWqAGBaAXJIMM3C9JwAnywFhQhNn2FGAGuaAQZIEQMIGNIAU4gABsIAEz8CB4GCSCYlpDE+5X 8t+oefJvB1rmr+jqvJT+A2ncFrgDcD9aCsKFp6fAqeELMmC8GBzZ0WvYJ0iHvtG7cAe4kXsNrETp 4AHmPvA43m+I7+hT+n0r/h5i7hv+iLOBqzkbtOHve/H+YGx/SskHt+F9Hd6XM/fBmfi6k6N37Inc Q3ZuDXByG8Bh7iawks/G3xI4zN4KDvNBfI53Zg64mrkf5HA/Ba+yPTj/N7jMOfw9Gaxkjyrf3A6c twZsZr/ADPkd0E/v+WN2G5zO/hYsZM+B/awfLMLfS9jnwGIslwqS5gxgP8oHj6Fnhg/SPR88pToM 9pN89h2wmF6HyzGL6fWXMhlgIv5tFzsASmN7Cf0Ogsj/9k7q9X07rt+P3t+5cCd1+5d2G/Fe/u/v 2JPo/7E7xus9/y93jKVCRS//kw8Zg+hSy66+x55sl0r+BhKVQfvQ5RVEv4N9ujuE4duibZobBFJS pHoBf/4XabMH9AplbmRzdHJlYW0KZW5kb2JqCjQ5IDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0 b3IvRm9udE5hbWUvQ1hPWUJJK1dlYmRpbmdzL0ZvbnRCQm94WzYyIC0zMSA4NjUgNjI1XS9GbGFn cyA0Ci9Bc2NlbnQgNjI1Ci9DYXBIZWlnaHQgNjI1Ci9EZXNjZW50IC0zMQovSXRhbGljQW5nbGUg MAovU3RlbVYgMTI5Ci9NaXNzaW5nV2lkdGggNTAwCi9Gb250RmlsZTIgNTUgMCBSPj4KZW5kb2Jq CjU1IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovTGVuZ3RoMSAzNTUyL0xlbmd0aCAxNjU0 Pj5zdHJlYW0KeJztF0tsG8f1zX6oFUXFpKsqshnbs15TpSwpUuTEblKNsyJ3ZTW0HcoW411/lxRJ U4KVELHrqj4RKIS4TFMkQJDkEBc59JBDUQ/ji6PmYCA9GKh9NQw0QA2kRwvwxaeCZt/sUoIZuEZ7 CJACfbM7+/7vzXvD2SUQAOiFGsiQff3o2AT4ELmJ0xvzS/lqQPecAyD75y9eoJN7X/o7Mr5BulKu nl1a/cWVrwEkC0BZPXvuV+VAX7uL061KKV+8Z/3kAgb4HOm9FWRE/9x9BaBLKO2qLF1YDvR7KU6V c2/N5wO6+w/o/+ZSfrkq/Sb0NurvQiZ9M79Uauf3R5y2Vt86f6Ftf1nIq2+XqldqkSLqYz7kg1A7 myfBo6fIfpBQIyCBAlJNFdQi/Fr9Vv0YPpEi8DIYkIUJyJCt6iB8DsfgG3JNeo3kYAg+hZtQhEM4 tsBn0jLOqIcc31snJW1XzsAyuSWdJUUyJ7cwyiX0fFUuk9+Tw/ABjIOh7oakHFHvwYp0AlJwF24p l2CL+bxtpVNT5qv72eTPXnn5p/v2vjT2/OhIcjCxy9i5Y6AvFt3U2xPu1rpCqiJLBEZsY9qjfNDj yqAxMzMqaCOPjPxjDI9TZE136nDq+Wq0U9NEzfJ3NM1A09zQJFE6CZOjI9Q2KL9tGfQ6OT7rIP6e ZbiUr/n4IR9XBn2iFwldRwtqD1QsyolHbT59sVK3PQv9NXrCaSNdCo+OQCPcg2gPYjxpVBskuZ/4 iJS0X2lIoPWKsFxO2Pkiz846thXXddfnQdr3xUNp3uX7ogsiZ3iXNkZu1H97PQoFbzhSNIr5kw6X 82hUl+16/R0eG+ZDhsWHLv1jAJdc4iOGZfNhA51ljmwEIFxNRA1afwiYvLF2v5OTb3NCiehDEKhY 4kaZUL6OA+aGGeL6dF3k8u51EwpI8NqsE9AUCvEvwBwbdrnkCcmNdcmPc0JSW5dsmHuGLlple+3r YmWA1wp0dASr718JvFBOuTzoFeYr4pkv1Q3LCuo253DTQsTMt9dqN8bHUD/v4SIWRBlmHT5mVHmf kQoUkEFFDxaOOr5J24z3pTl4820rPmZbIi9q1z0rSFD4MmadL2FP617jRRq/tgdeBFfkwfvT2JRB u+4Uy3yHFy/i/ixTJ65z08XyuYZTckWXjCgfuofhdD+ib4Vr+472urJYeVdCo44Ul13RLWTQaZyM 1CQKotgunxQdTU1Sh8RhXQ2jtDUE1uEHCTmRnhEiWZimZ+K6qwfwlJTi7ZzUBNce8xVFxkZOQZx/ m1qgLRIaonbJeizBDqdqO8G2tyfnKYlatAOjhSbaObMukhP4y0WehG58lujiAOWQpY5RMlwD95CZ dcTaRK1Ff/GMw/dfqCzeBuFcq9l6FM4JTgcM+JxvyTuw26cliMIYTKNpoiVOSTC/yq5UV2or7698 tqKWCqxYYPMFlj/NvNPszGlWOMVOn2InXXbCZcdd5uTYsRx7I8fcOZabY0ez7EiWzWbZ6wfZ4YPs 0EGWzbCDGfbaAfbzA2zmAJtOMzvNrDQ7kGLpFDs1xeamWGaKpaYYJJMYfnNMk8x9m179Sz8xnrF3 Rmw9bFPN3hGytyv2Nsl+Duyt2oDWr/Vpm7Wo9owW0cKapoU0RZM00DLXu1pHMlzLnnAahPzO5Zsz kJlLfQmEtFbeG34ipMi2DP/oqMOtbW6GTyAC2xr9kHKH8bRLffFsjFymfOds3Vjm5pHlRphexoMs t9yQSIrLz+k6wR+hkT55PEUyWaehoWH6ZPDsj1b3PzlmJzT27bMXaHAMeK7VGIfqtQl8RW2pDlTP B12qAcg15Q5+2XTBdjOiyt0KaAp+nHQRGLsdnYzeJtE7t/F6YXxPTI8l9Jhek6H5Ibn7KKnc+efu D+U/AZHRlSreuRK+53pgkcjSIs7IRwfNNfSw9sJ4N4mptWZNwltoktXWjdB95QbaqJA0fySsFpWQ pIJMFHVR4BC901xDDzjQRbPtRCax0P1mbQJdmcJVM3CIYPxXg7VH+f/jBzXELgpOlz4QGwvIVrxD iDwb//6+HP8XQIFd/qyI+jyQxLn6gPinK0Ee1geCAhHYLD5VEQuBBnCsVCguvHn2vC8B8j6o/3FE rZN8AA9aHQyynhjUvq9bw00QDLIa7IenAAnuBr+6embT5EPYEizg6uG//VI8G3+VxlvNR2UK/r+e iF8jhH8BwRuwzwplbmRzdHJlYW0KZW5kb2JqCjE4IDAgb2JqCjw8L1R5cGUvRm9udERlc2NyaXB0 b3IvRm9udE5hbWUvS05RWkhLK1ZlcmRhbmEsQm9sZC9Gb250QkJveFswIC0yMDYgOTc4IDgxOF0v RmxhZ3MgNAovQXNjZW50IDc2NAovQ2FwSGVpZ2h0IDc2NAovRGVzY2VudCAtMjA2Ci9JdGFsaWNB bmdsZSAwCi9TdGVtViAxNDYKL01pc3NpbmdXaWR0aCAxMDAwCi9Gb250RmlsZTIgNTYgMCBSPj4K ZW5kb2JqCjU2IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovTGVuZ3RoMSAxNjAzMi9MZW5n dGggOTkxNT4+c3RyZWFtCnic7Xt7fFTVtfDe+zznfeaZSSbJmclMXkzC5EFeJJIhDyAJkAABEiAm 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 8g6D0BvR319Qz+HqL112Ku99fDj2syLAKAEwOggY8agwqNER4BUmDD0pDuoBN45j6LG3egD4DD2E RWwg+iOOqFJXzSRE5DifPaj8dWhQuYInX+aYd9+laMIlx1IN2nQ1HUS/AYeEppmQlkN6Cb9EyiEd jCZmEaSeq2mEGWFD7J+5bdybvBXSYf4tQSfMhBQSPhJbxRc1Lkh7IA1qvtDWf0PaoL2km6L7D71L v0P/qmGaYbdhUE2/MFYa7zS+acoy9ZhOSbXSIem35mxIL1rcfycVXpOmWposy//LtOnvpO/8j6d/ +yfTX/6V/pX+lf6V/pX++aT+Rjn6HwLUStP/fQOvFPNQYNKb7HG5s5unNVTPrbKGprimHs+YNV/n C6QWFOnrp6flz5uzOodrXFOXlF2clWdeuEhbU+I31aaEx3Wz/+w/4P1vuFjUr+Yspc+nZeA3oU8x zaFOF8igdPCf7CgO5aLZqBm8rQZUjeaCl2cFV2QKxGZT0XGUgWah+eDh+1AApaICVIT0qB5NV08s 56E5aDXEthxqRGtQHUpC2agYZaE8ZEYL0SKkBX+kBPmRCdWiFBRG41A3ipIWQzRO/28DgT+kR2je kjWd7Te3Z1WsWtGpPkX4HsT9t1d63b9Yfoo+Hf1aAx7rhq8COQkEKEYvs8fQkeuBPA73ZvQCwGNj QM4hbwxOUOAiKBSDoRg0XgcdFGCOs9cD+2e0nwJfiJy8E53ifoaW8Y/AfUMU+C1QP4ZOsTeizexq NI4CF49OCffBs58AnEbLuPegLwBfEQVuHcrkw+j7fCKM+d8ALoJv4ZrQPK4fHWWfQU1wX8A1oCam HfnV8jF0FGj04DVwVNyAjtJ27na1/1Haj/kS3n8etTKPwnvH0ENcPkpWYQFK4Arg/o8AxeubAPD7 h4Hi9o9ABGKJ/+UA8rr5/ycADglR3ft3LhyFgciTz7aayj5Hruim/cGKOX+l9+M5m5jRbmW+4XER IlGkUXUDXP8HCMuxggplbmRzdHJlYW0KZW5kb2JqCjM0IDAgb2JqCjw8L1R5cGUvRm9udERlc2Ny aXB0b3IvRm9udE5hbWUvVlJCQldNK1ZlcmRhbmEsQm9sZEl0YWxpYy9Gb250QkJveFswIC0xNzYg ODc1IDc2OV0vRmxhZ3MgNAovQXNjZW50IDc2OQovQ2FwSGVpZ2h0IDc2OQovRGVzY2VudCAtMTc2 Ci9JdGFsaWNBbmdsZSAwCi9TdGVtViAxMzEKL01pc3NpbmdXaWR0aCAxMDAwCi9Gb250RmlsZTIg NTcgMCBSPj4KZW5kb2JqCjU3IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZQovTGVuZ3RoMSA3 ODg0L0xlbmd0aCA0MTI3Pj5zdHJlYW0KeJztOQt0G9WV782MZiSNbP1/lu0ZeSw7tmzLtmz5k1AP tmVwlIBJDJGSKJESmTghwQKbLCHEcigmQUkoCaEkZttNgWXhFMg4QDCBEm83fNrCpgGcbcunofwa invSbemWT+S9M7IDSdMunLPn7Dl78p7ue/fzfnPvfffNGyGMEMpBQ4hEXZcv9NUiJRU0QnHVynXx ZJZ2vYQQnrdy/QDfPZRYAYw3gf7t1clV60YOXnUbQsQRhFS/W7V2w9XZ9rowQuqB3p544uiGb61F qHA3MAO9wLDEtL8GmQR0ce+6gRun57sTivfW9q2MZ2nLywjRX6yL35ikf0L8ANq/Dkz+2vi6nun2 Frl/sq9/IEsXyjWfvL4n+ez3nU9A+z8hRK6gLUgL6zqGuJnyq4mKZjlT75xdZhJTn6D/paSehm+S 8DGi7BzOqm86L96Nh/CNeKUC/4D7cBxyJ87He/At+Dq8Di/HC9E96CR2YTNWYwwSDcboE+yWaXQa /wgb0S9xBLfCWNXTg06i19EfiXfQw4Dfih5Ch9EE+g36L5yLPWg28NajIjQLrUJzURC34C7cizfD qA5cA60OQ98P0CmYKxdGNGMet+ER/CAeg6fdS7xLfIpvJ+YTn5M/xUZcjD5GnxErCBO+D/8JjcD4 FVhEh9BLaIKUkAP9ED1J1pIPop3oXvQaeQjNE+d0Nzc1NgTq6/y1NdW+qsoKb3nZrNIST7FQ5Oa5 woJ8V57TYbdZLWaT0aDPzdGxWo2aoVUUSWBUgSVHW3jUyXhdbrc7UjlN551NS6TH8J9uCZnOauQ6 p1P+OXTBOXThGfoyCVmkDqGtXR54FHV8ICGzhC0SkmfB5vkw03SnYGKNEFwtOdsSsRj0aBcMvNRx yje9FGXsUVbbJrT1aCsr0KiWBZQFDNomR3HHt7CCEB3B5lECqXMqKySTVyI8QRnWSOK2GCBCO4wE EvOXkrGp8e1fFSHoNoOZsxiW6DaJUeblV0tiXELb+NGK8fT2MQNaEfPqEkIivhQ0F4c1jiLSE+zt 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 ssozCLHCTtir7GRBQX11vVhPkEoQntnzk0pMiCqFEdRYUy0feFHs9aqU3W+jsru/FGKu8quvQ+5a SgnCEBHk6AshWYkFDE0Ryw5nJtbNL1+FbfseGHEWF29aue7Riy5qwdvwon/Gnqs7yy6bumf3fQ4P n45+dnzg6msyp1ytNbhn2arIQq7SZvPmF3ZU1wxFTmA2UJV5+NL4VfOEKpvF52x7YmTzkYsuniNr 8q6pd+nHwAftsB8jvLHZKhpXE2voPuNGE1OdC+ECb7bZLTabXZeTs1nLWrRa1q5lka3IVm+ba1tq W2vbaGNsNqfoxI4mLxtiCba1XDtHO1e7SHuDVqV1OB3NWkbWOwtKZuwsad5JmUFPLX6ImV6/4hJR ZSdGIYRsya3yqmAjQu1QkKi8H0kCufni+rpAA4RM5ZQCPTaY6cd+0Zl5IHMw86vMq7nq4/jW44zm um+nvlcEQeaLZZmfZU6+drxisYcc+aInv822LL59N7lffvfnvprx+ZLzrPww5D+fLxOD58+k60we J8ep5gv5Qr6QL+QL+UL+v8zyjVv5yoiQJfs9DOcBwPUb1XgYRx7ZGDB+03+R/p8kCtUqJSXr55Rm agpKLJdAU1DWwH2TgXtLHuitEQWQUZGYlO+G8BoPGLqq5/pE/Np4RWvf2kTnQHzt6pXyWPhOpPra qzjnb8BT6NTUWQw80wyfAeJZdBaoJFT9dYB4D9X/LfhKuyVfF2gHmv2N4IW/BtV+xMhAp9Bd53yv /euEszAq7T+0XD/nE+TKKu/RFzdo5Ppg9U05mUcyi3LuV2MYS6PYCdJ/A3WRXloKZW5kc3RyZWFt CmVuZG9iago2OSAwIG9iago8PC9UeXBlL01ldGFkYXRhCi9TdWJ0eXBlL1hNTC9MZW5ndGggMTQw Mz4+c3RyZWFtCjw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3pr YzlkJz8+Cjw/YWRvYmUteGFwLWZpbHRlcnMgZXNjPSJDUkxGIj8+Cjx4OnhtcG1ldGEgeG1sbnM6 eD0nYWRvYmU6bnM6bWV0YS8nIHg6eG1wdGs9J1hNUCB0b29sa2l0IDIuOS4xLTEzLCBmcmFtZXdv cmsgMS42Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4K PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JzY1YmFjZTc2LTlmNGItMTFkZC0wMDAwLTI2OWRj MDQwZDg5YycgeG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJyBwZGY6UHJv ZHVjZXI9J0dQTCBHaG9zdHNjcmlwdCA4LjYxJy8+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0 PSc2NWJhY2U3Ni05ZjRiLTExZGQtMDAwMC0yNjlkYzA0MGQ4OWMnIHhtbG5zOnhhcD0naHR0cDov L25zLmFkb2JlLmNvbS94YXAvMS4wLycgeGFwOk1vZGlmeURhdGU9JzIwMDgtMTAtMTdUMjA6MzY6 MjUtMTI6MDAnIHhhcDpDcmVhdGVEYXRlPScyMDA4LTEwLTE3VDIwOjM2OjI1LTEyOjAwJz48eGFw OkNyZWF0b3JUb29sPlBERkNyZWF0b3IgVmVyc2lvbiAwLjkuNTwveGFwOkNyZWF0b3JUb29sPjwv cmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nNjViYWNlNzYtOWY0 Yi0xMWRkLTAwMDAtMjY5ZGMwNDBkODljJyB4bWxuczp4YXBNTT0naHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL21tLycgeGFwTU06RG9jdW1lbnRJRD0nNjViYWNlNzYtOWY0Yi0xMWRkLTAwMDAt MjY5ZGMwNDBkODljJy8+CjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSc2NWJhY2U3Ni05ZjRi LTExZGQtMDAwMC0yNjlkYzA0MGQ4OWMnIHhtbG5zOmRjPSdodHRwOi8vcHVybC5vcmcvZGMvZWxl bWVudHMvMS4xLycgZGM6Zm9ybWF0PSdhcHBsaWNhdGlvbi9wZGYnPjxkYzp0aXRsZT48cmRmOkFs dD48cmRmOmxpIHhtbDpsYW5nPSd4LWRlZmF1bHQnPkNvbmZcMzUxcmVuY2UgIENhbmFkaWVubmUg ZHUgQ2hhbmdlbWVudCBDbGltYXRpcXVlPC9yZGY6bGk+PC9yZGY6QWx0PjwvZGM6dGl0bGU+PGRj OmNyZWF0b3I+PHJkZjpTZXE+PHJkZjpsaT5BTlRPSU5FPC9yZGY6bGk+PC9yZGY6U2VxPjwvZGM6 Y3JlYXRvcj48L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSd3Jz8+CmVuZHN0cmVhbQpl bmRvYmoKMiAwIG9iago8PC9Qcm9kdWNlcihHUEwgR2hvc3RzY3JpcHQgOC42MSkKL0NyZWF0aW9u RGF0ZShEOjIwMDgxMDE3MjAzNjI1LTEyJzAwJykKL01vZERhdGUoRDoyMDA4MTAxNzIwMzYyNS0x MicwMCcpCi9UaXRsZShDb25mXDM1MXJlbmNlICBDYW5hZGllbm5lIGR1IENoYW5nZW1lbnQgQ2xp bWF0aXF1ZSkKL0NyZWF0b3IoUERGQ3JlYXRvciBWZXJzaW9uIDAuOS41KQovQXV0aG9yKEFOVE9J TkUpCi9LZXl3b3JkcygpCi9TdWJqZWN0KCk+PmVuZG9iagp4cmVmCjAgNzAKMDAwMDAwMDAwMCA2 NTUzNSBmIAowMDAwMDI1NjY4IDAwMDAwIG4gCjAwMDA1Mjc0MjcgMDAwMDAgbiAKMDAwMDAyNTU3 OSAwMDAwMCBuIAowMDAwMDI0ODc5IDAwMDAwIG4gCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAw NTcyMCAwMDAwMCBuIAowMDAwMDI1NzMzIDAwMDAwIG4gCjAwMDA0NTA1MTcgMDAwMDAgbiAKMDAw MDAzNjY4MiAwMDAwMCBuIAowMDAwMDI3NzY1IDAwMDAwIG4gCjAwMDA0ODQ3ODAgMDAwMDAgbiAK MDAwMDQ4NjA1NiAwMDAwMCBuIAowMDAwNDgzMDM0IDAwMDAwIG4gCjAwMDA0ODM3NjYgMDAwMDAg biAKMDAwMDQ4MzkxMSAwMDAwMCBuIAowMDAwNDk0NTc0IDAwMDAwIG4gCjAwMDA0ODUyMDAgMDAw MDAgbiAKMDAwMDUxMTMxOCAwMDAwMCBuIAowMDAwNDg1OTA4IDAwMDAwIG4gCjAwMDA0ODMyMTAg MDAwMDAgbiAKMDAwMDQ4NjUzMyAwMDAwMCBuIAowMDAwMDI3Njg1IDAwMDAwIG4gCjAwMDAwMjc3 MTUgMDAwMDAgbiAKMDAwMDQ2Njg3OCAwMDAwMCBuIAowMDAwMDI1MDcyIDAwMDAwIG4gCjAwMDAw MDU3NDAgMDAwMDAgbiAKMDAwMDAxMzIzOSAwMDAwMCBuIAowMDAwNDY2OTg3IDAwMDAwIG4gCjAw MDA0NzYxNzEgMDAwMDAgbiAKMDAwMDQ3MzEzMCAwMDAwMCBuIAowMDAwNDY5OTY1IDAwMDAwIG4g CjAwMDA0NzAyODUgMDAwMDAgbiAKMDAwMDQ4NjIyMyAwMDAwMCBuIAowMDAwNTIxNTI0IDAwMDAw IG4gCjAwMDA0NzAxODggMDAwMDAgbiAKMDAwMDQ3MDIzMSAwMDAwMCBuIAowMDAwNDc4NjYwIDAw MDAwIG4gCjAwMDAwMjUyNjcgMDAwMDAgbiAKMDAwMDAxMzI2MCAwMDAwMCBuIAowMDAwMDE4Mzg5 IDAwMDAwIG4gCjAwMDA0Nzg3MzYgMDAwMDAgbiAKMDAwMDAyNTQxMSAwMDAwMCBuIAowMDAwMDE4 NDEwIDAwMDAwIG4gCjAwMDAwMjQ4NTggMDAwMDAgbiAKMDAwMDQ3ODg1NSAwMDAwMCBuIAowMDAw NDgzNTI0IDAwMDAwIG4gCjAwMDA0OTExNjIgMDAwMDAgbiAKMDAwMDQ4NDk0MSAwMDAwMCBuIAow MDAwNTA5MzgwIDAwMDAwIG4gCjAwMDA0Nzg4MjMgMDAwMDAgbiAKMDAwMDQ4MjkzNiAwMDAwMCBu IAowMDAwNDg2NzQwIDAwMDAwIG4gCjAwMDA0OTEzNjAgMDAwMDAgbiAKMDAwMDQ5NDc3OSAwMDAw MCBuIAowMDAwNTA5NTgxIDAwMDAwIG4gCjAwMDA1MTE1MjUgMDAwMDAgbiAKMDAwMDUyMTczNyAw MDAwMCBuIAowMDAwNDgzMTE2IDAwMDAwIG4gCjAwMDA0ODM0MTQgMDAwMDAgbiAKMDAwMDQ4MzY3 NCAwMDAwMCBuIAowMDAwNDgzODQ5IDAwMDAwIG4gCjAwMDA0ODQzNjUgMDAwMDAgbiAKMDAwMDQ4 NDg2NiAwMDAwMCBuIAowMDAwNDg1MDk2IDAwMDAwIG4gCjAwMDA0ODU1OTEgMDAwMDAgbiAKMDAw MDQ4NTk5NiAwMDAwMCBuIAowMDAwNDg2MTM3IDAwMDAwIG4gCjAwMDA0ODY0MTQgMDAwMDAgbiAK MDAwMDUyNTk0NyAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDcwIC9Sb290IDEgMCBSIC9JbmZv IDIgMCBSCi9JRCBbPEJBRDM2QURFODBERDFGQzVBOTE2RjBEMDkxNUNBQTk4PjxCQUQzNkFERTgw REQxRkM1QTkxNkYwRDA5MTVDQUE5OD5dCj4+CnN0YXJ0eHJlZgo1Mjc2ODQKJSVFT0YK ------=_Part_36203_2223181.1223915273459-- From owner-xfs@oss.sgi.com Mon Oct 13 15:38:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,SUBJ_FORWARDED autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9DMc5L7016154 for ; Mon, 13 Oct 2008 15:38:06 -0700 X-ASG-Debug-ID: 1223937584-5752036d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE46213F0D71 for ; Mon, 13 Oct 2008 15:39:46 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 6bYeu92samWdCvCU for ; Mon, 13 Oct 2008 15:39:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPNp80h5LF1j/2dsb2JhbAC9UoFs X-IronPort-AV: E=Sophos;i="4.33,405,1220193000"; d="scan'208";a="229044765" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 09:09:33 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpW4a-0007JK-9b; Tue, 14 Oct 2008 09:39:32 +1100 Date: Tue, 14 Oct 2008 09:39:32 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: hch@lst.de X-ASG-Orig-Subj: fw: [PATCH] fix instant oops with tracing enabled Subject: fw: [PATCH] fix instant oops with tracing enabled Message-ID: <20081013223932.GE10716@disturbed> Mail-Followup-To: xfs@oss.sgi.com, hch@lst.de MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223937587 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7911 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- SGI folks, Looks like Christoph is having problems posting to the list; the spam filter is dropping all his mail. In the mean time, here's a fix for an oops in the tracing code as a result of the last check ins. I didn't see this because the "combine inodes" patches removes xfs_icount altogether. If that series is going to be included in the current round of checkins then this patch probably isn't needed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From: Christoph Hellwig We can only read inode->i_count if the inode is actually there and not a NULL pointer. This was introduced in one of the recent sync patches. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vnode.c 2008-10-13 12:07:38.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.c 2008-10-13 12:07:47.000000000 -0400 @@ -92,7 +92,7 @@ static inline int xfs_icount(struct xfs_ { struct inode *inode = VFS_I(ip); - if (!inode) + if (inode) return atomic_read(&inode->i_count); return -1; } From owner-xfs@oss.sgi.com Mon Oct 13 16:38:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9DNclpV027173 for ; Mon, 13 Oct 2008 16:38:47 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 170458F80A3; Mon, 13 Oct 2008 16:40:25 -0700 (PDT) Received: from [134.15.251.7] (melb-sw-corp-251-7.corp.sgi.com [134.15.251.7]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA06873; Tue, 14 Oct 2008 10:40:23 +1100 Message-ID: <48F3EA6F.9000209@sgi.com> Date: Tue, 14 Oct 2008 10:40:15 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com, hch@lst.de Subject: Re: fw: [PATCH] fix instant oops with tracing enabled References: <20081013223932.GE10716@disturbed> In-Reply-To: <20081013223932.GE10716@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > SGI folks, > > Looks like Christoph is having problems posting to the list; > the spam filter is dropping all his mail. In the mean time, > here's a fix for an oops in the tracing code as a result of > the last check ins. I didn't see this because the "combine > inodes" patches removes xfs_icount altogether. Lachlan also saw some regressions after merging these patchsets : . replace the mount inode list with radix tree traversals . clean up sync code > If that > series is going to be included in the current round of checkins > then this patch probably isn't needed. The agreed plan for 2.6.28 still has the following patchsets to go in: . Combine the XFS and Linux inode structures V2 . Track reclaimable inodes in inode cache . AIL cleanup and bug fixes . Account for allocated blocks when expanding directories . Check for valid transaction headers in recovery . fix remount rw with unrecognized options It's starting to look like a pretty aggressive merge and QA schedule. Dave, is it worth doing any testing until these are *all* merged? Thanks -- Mark From owner-xfs@oss.sgi.com Mon Oct 13 18:16:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E1GDsC004360 for ; Mon, 13 Oct 2008 18:16:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id AD34F8F807F; Mon, 13 Oct 2008 18:17:49 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA09751; Tue, 14 Oct 2008 12:17:48 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id AC14E58FA1E9; Tue, 14 Oct 2008 12:17:47 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988255 - fix instant oops with tracing enabled Message-Id: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> Date: Tue, 14 Oct 2008 12:17:47 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) fix instant oops with tracing enabled We can only read inode->i_count if the inode is actually there and not a NULL pointer. This was introduced in one of the recent sync patches. Signed-off-by: Christoph Hellwig Date: Tue Oct 14 12:17:19 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-sync Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32315a fs/xfs/linux-2.6/xfs_vnode.c - 1.164 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.c.diff?r1=text&tr1=1.164&r2=text&tr2=1.163&f=h - fix instant oops with tracing enabled From owner-xfs@oss.sgi.com Mon Oct 13 19:03:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_72,RCVD_BAD_ID autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E236Be007806 for ; Mon, 13 Oct 2008 19:03:09 -0700 X-ASG-Debug-ID: 1223949881-12fc00f10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailgw2a.lmco.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 12CC413F2363 for ; Mon, 13 Oct 2008 19:04:41 -0700 (PDT) Received: from mailgw2a.lmco.com (mailgw2a.lmco.com [192.91.147.7]) by cuda.sgi.com with ESMTP id GSsBXCJbQwM0kbHR for ; Mon, 13 Oct 2008 19:04:41 -0700 (PDT) Received: from emss03g01.ems.lmco.com (relay3.ems.lmco.com [141.240.4.144])by mailgw2a.lmco.com (LM-6) with ESMTP id m9E24Xoe023592;Mon, 13 Oct 2008 22:04:33 -0400 (EDT) Received: from CONVERSION2-DAEMON.lmco.com by lmco.com (PMDF V6.3-x14 #31428) id <0K8P00901HRLYC@lmco.com>; Mon, 13 Oct 2008 22:04:33 -0400 (EDT) Received: from EMSS04I00.us.lmco.com ([166.17.13.135]) by lmco.com (PMDF V6.3-x14 #31428) with ESMTP id <0K8P000S4HRF6I@lmco.com>; Mon, 13 Oct 2008 22:04:28 -0400 (EDT) Received: from emss04m05.us.lmco.com ([166.17.13.61]) by EMSS04I00.us.lmco.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 13 Oct 2008 22:04:27 -0400 Date: Mon, 13 Oct 2008 22:04:27 -0400 From: "Ngo, Andrew" X-ASG-Orig-Subj: RE: Stale XFS mount for Kernel 2.6.25.14 Subject: RE: Stale XFS mount for Kernel 2.6.25.14 In-reply-to: <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> To: Dave Chinner , v9fs-developer@lists.sourceforge.net Cc: xfs@oss.sgi.com, "Johnson, Je" , "Ngo, Andrew" Message-id: <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft Exchange V6.5 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Thread-Topic: Stale XFS mount for Kernel 2.6.25.14 Thread-Index: AcktJQhmcWjT+CMtS2+hWv8Ow7jKFAAAtlTQAB2XZQA= Content-class: urn:content-classes:message X-MS-Has-Attach: X-MS-TNEF-Correlator: References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> X-OriginalArrivalTime: 14 Oct 2008 02:04:27.0851 (UTC) FILETIME=[3034A1B0:01C92DA1] X-Barracuda-Connect: mailgw2a.lmco.com[192.91.147.7] X-Barracuda-Start-Time: 1223949889 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.07 X-Barracuda-Spam-Status: No, SCORE=0.07 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7919 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.09 RCVD_BAD_ID RCVD_BAD_ID Dave, Do you know of a solution to this problem? Currently this is a major impact for my system. Thanks in advance. Andy Ngo -----Original Message----- From: Ngo, Andrew Sent: Monday, October 13, 2008 8:07 AM To: 'Dave Chinner' Cc: xfs@oss.sgi.com; Johnson, Je; Ngo, Andrew Subject: RE: Stale XFS mount for Kernel 2.6.25.14 No. There is no oops in the /var/log/messages when the mount command hangs. Andy Ngo -----Original Message----- From: Dave Chinner [mailto:david@fromorbit.com] Sent: Monday, October 13, 2008 12:00 AM To: Ngo, Andrew Cc: xfs@oss.sgi.com; Johnson, Je Subject: Re: Stale XFS mount for Kernel 2.6.25.14 On Sun, Oct 12, 2008 at 10:10:54PM -0400, Ngo, Andrew wrote: > Hi, > > This is my first attempt to report a stale mount problem. If this is > not the relevant mail list, please let me know. I suspect that my > problem is xfs related, thus I select this mailing list. > > I have a system that recently upgraded it's kernel to 2.6.25.14. The > system's previous kernel was 2.6.18.-8.el5. With the previous kernel, > I have no problem with executing the following commands when the > system is in operation. Note that the /mnt/mountpoint is mounted on a > XFS file system. > > mount -o rw,remount /mnt/mountpoint > mount -o ro,remount /mnt/mountpoint > > With kernel 2.6.25.14, however, the mount command may be hang when > changing from rw to ro. When this happen, system is very sluggish. That's because the remount,ro is actually flushing all the dirty data to disk in 2.6.25. There is also a check to catch when the remount,ro fails to clean everything that is dirty - that's probably what is triggering. Do you have an oops in the dmesg log when mount hangs? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 19:03:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E23Wlm007909 for ; Mon, 13 Oct 2008 19:03:32 -0700 X-ASG-Debug-ID: 1223949906-3bff01470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2550B4EFF4C for ; Mon, 13 Oct 2008 19:05:12 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id pH3J8phAhCD8x1TW for ; Mon, 13 Oct 2008 19:05:12 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPCa80h5LF1j/2dsb2JhbAC2WAiGUGcIfQ X-IronPort-AV: E=Sophos;i="4.33,406,1220193000"; d="scan'208";a="229208761" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 12:34:58 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpZHN-0003Xf-3r; Tue, 14 Oct 2008 13:04:57 +1100 Date: Tue, 14 Oct 2008 13:04:57 +1100 From: Dave Chinner To: Mark Goodwin Cc: xfs@oss.sgi.com, hch@lst.de X-ASG-Orig-Subj: Re: fw: [PATCH] fix instant oops with tracing enabled Subject: Re: fw: [PATCH] fix instant oops with tracing enabled Message-ID: <20081014020457.GG10716@disturbed> Mail-Followup-To: Mark Goodwin , xfs@oss.sgi.com, hch@lst.de References: <20081013223932.GE10716@disturbed> <48F3EA6F.9000209@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F3EA6F.9000209@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223949915 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0055 1.0000 -1.9849 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.98 X-Barracuda-Spam-Status: No, SCORE=-1.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7919 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 10:40:15AM +1000, Mark Goodwin wrote: > > > Dave Chinner wrote: >> SGI folks, >> >> Looks like Christoph is having problems posting to the list; >> the spam filter is dropping all his mail. In the mean time, >> here's a fix for an oops in the tracing code as a result of >> the last check ins. I didn't see this because the "combine >> inodes" patches removes xfs_icount altogether. > > Lachlan also saw some regressions after merging these patchsets : > . replace the mount inode list with radix tree traversals > . clean up sync code Can you share with us all what those problems are? I can't help find and fix the problems if I don't get told about them. perhaps you should be opening bugzilla bugs rather than internal bugworks PVs for regressions as a result of merges of community patch sets.... >> If that >> series is going to be included in the current round of checkins >> then this patch probably isn't needed. > > The agreed plan for 2.6.28 still has the following patchsets to go in: > > . Combine the XFS and Linux inode structures V2 > . Track reclaimable inodes in inode cache > . AIL cleanup and bug fixes > . Account for allocated blocks when expanding directories > . Check for valid transaction headers in recovery > . fix remount rw with unrecognized options > > It's starting to look like a pretty aggressive merge and QA schedule. We've got all of the -rc series to address regressions. > Dave, is it worth doing any testing until these are *all* merged? IMO, no, but that's up to you guys. I'd just merge them, run some basic QA then push them to linus. We've still got the whole -rc series to address regressions. And if you tell us about regressions, we can help track them down and get them fixed quickly. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 19:04:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E24G8s008288 for ; Mon, 13 Oct 2008 19:04:16 -0700 X-ASG-Debug-ID: 1223949957-2d0702a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 257504EFF5C for ; Mon, 13 Oct 2008 19:05:58 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id FA8ehbuPDe1pDAAI for ; Mon, 13 Oct 2008 19:05:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPCa80h5LF1j/2dsb2JhbAC9MIFs X-IronPort-AV: E=Sophos;i="4.33,406,1220193000"; d="scan'208";a="229209515" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 12:35:56 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpZIK-0003ZR-5B; Tue, 14 Oct 2008 13:05:56 +1100 Date: Tue, 14 Oct 2008 13:05:56 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988255 - fix instant oops with tracing enabled Subject: Re: TAKE 988255 - fix instant oops with tracing enabled Message-ID: <20081014020556.GH10716@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs@oss.sgi.com References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223949959 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0199 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7919 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 12:17:47PM +1100, Lachlan McIlroy wrote: > fix instant oops with tracing enabled > > We can only read inode->i_count if the inode is actually there and not > a NULL pointer. This was introduced in one of the recent sync patches. > > Signed-off-by: Christoph Hellwig BTW, this now means that other pending patches won't apply cleanly.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 19:13:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E2DuZ8009547 for ; Mon, 13 Oct 2008 19:13:57 -0700 X-ASG-Debug-ID: 1223950537-12fb015e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E58613F2733 for ; Mon, 13 Oct 2008 19:15:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id mGEtb1V90DQLvjAT for ; Mon, 13 Oct 2008 19:15:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPCa80h5LF1j/2dsb2JhbAC9MIFs X-IronPort-AV: E=Sophos;i="4.33,406,1220193000"; d="scan'208";a="229216681" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 12:45:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpZRe-0003nJ-Jr; Tue, 14 Oct 2008 13:15:34 +1100 Date: Tue, 14 Oct 2008 13:15:34 +1100 From: Dave Chinner To: "Ngo, Andrew" Cc: v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" X-ASG-Orig-Subj: Re: Stale XFS mount for Kernel 2.6.25.14 Subject: Re: Stale XFS mount for Kernel 2.6.25.14 Message-ID: <20081014021534.GI10716@disturbed> Mail-Followup-To: "Ngo, Andrew" , v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223950538 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7919 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- [Andrew, Please don't top post replies - it makes it completely impossible to folow the thread. ] > -----Original Message----- On Mon, Oct 13, 2008 at 10:04:27PM -0400, Ngo, Andrew wrote: On Mon, Oct 13, 2008 at 10:04:27PM -0400, Ngo, Andrew wrote: > > Dave, > > Do you know of a solution to this problem? Currently this is a major > impact for my system. Thanks in advance. I don't know what the problem is, so I certainly don't have a solution for you. You'll need to provide a whole lot more detail about your system and problem for us to make any sense of it. Such as: What hardware do you have (including storage)? What's the storage structure (DM, MD, iSCSI, etc)? Output of 'xfs_info '? What are you really trying to acheive with the remount command? Is the filesystem busy at the time the ro,remount is run? (e.g. any large background writes occurring?) Does the problem go away if you do: # xfs_freeze -f # xfs_freeze -u # mount -o ro,remount Or does the first freeze command trigger the same problem? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 20:39:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_33,J_CHICKENPOX_34,J_CHICKENPOX_36,RCVD_BAD_ID autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E3d2YF020644 for ; Mon, 13 Oct 2008 20:39:04 -0700 X-ASG-Debug-ID: 1223955643-5c6f02bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailgw3a.lmco.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C69E54F03AE for ; Mon, 13 Oct 2008 20:40:44 -0700 (PDT) Received: from mailgw3a.lmco.com (mailgw3a.lmco.com [192.35.35.7]) by cuda.sgi.com with ESMTP id QEYKc0kLAGGQM15X for ; Mon, 13 Oct 2008 20:40:44 -0700 (PDT) Received: from emss09g01.ems.lmco.com (relay6.ems.lmco.com [166.17.13.59])by mailgw3a.lmco.com (LM-6) with ESMTP id m9E3eNNO026651;Mon, 13 Oct 2008 23:40:23 -0400 (EDT) Received: from CONVERSION2-DAEMON.lmco.com by lmco.com (PMDF V6.3-x14 #31428) id <0K8P00K01M7BLW@lmco.com>; Mon, 13 Oct 2008 23:40:23 -0400 (EDT) Received: from EMSS04I00.us.lmco.com ([166.17.13.135]) by lmco.com (PMDF V6.3-x14 #31428) with ESMTP id <0K8P002A5M767E@lmco.com>; Mon, 13 Oct 2008 23:40:18 -0400 (EDT) Received: from emss04m05.us.lmco.com ([166.17.13.61]) by EMSS04I00.us.lmco.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 13 Oct 2008 23:40:17 -0400 Date: Mon, 13 Oct 2008 23:40:17 -0400 From: "Ngo, Andrew" X-ASG-Orig-Subj: RE: Stale XFS mount for Kernel 2.6.25.14 Subject: RE: Stale XFS mount for Kernel 2.6.25.14 In-reply-to: <20081014021534.GI10716@disturbed> To: Dave Chinner Cc: v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" , "Ngo, Andrew" Message-id: <8604545CB7815D419F5FF108D3E434BA3BD631@emss04m05.us.lmco.com> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft Exchange V6.5 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Thread-Topic: Stale XFS mount for Kernel 2.6.25.14 Thread-Index: AcktotMfznL9iDcvS2+uCVYlelzSNwACBxQA Content-class: urn:content-classes:message X-MS-Has-Attach: X-MS-TNEF-Correlator: References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> <20081014021534.GI10716@disturbed> X-OriginalArrivalTime: 14 Oct 2008 03:40:17.0996 (UTC) FILETIME=[938F20C0:01C92DAE] X-Barracuda-Connect: mailgw3a.lmco.com[192.35.35.7] X-Barracuda-Start-Time: 1223955644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.07 X-Barracuda-Spam-Status: No, SCORE=0.07 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7923 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.09 RCVD_BAD_ID RCVD_BAD_ID What hardware do you have (including storage)? [Andrew Ngo]Mother board: H8DA3-2 Processor: Quad Core Opteron Storage: Quad SAS drives What's the storage structure (DM, MD, iSCSI, etc)? Output of 'xfs_info '? [Andrew Ngo]xfs_info /mtpt meta-data=/dev/sda3 isize=256 agcount=16 agsize=672219 blks = sectsz=512 attr=0 data = bsize=4096 blocks=10755504, imaxpct=25 = sunit=0; swidth=0 blks, unwritten=1 naming = version2 bsize=4096 log = internal bsize=4096 blocks=525, version=1 sectsz=512 sunit=0 blocks realtime = none extsz=65536 blocks=0 rtextents=0 What are you really trying to acheive with the remount command? [Andrew Ngo]This server hosts the patch directory for the developers. When the developers are not patching software, the file system is ro. When the developers needs to patch the software, the file system is changed to rw. Is the filesystem busy at the time the ro,remount is run? (e.g. any large background writes occurring?) [Andrew Ngo]Yes. Note that I make a script that performs the "mount -o rw,remount " and "mount -o ro,remount ". When the system is not being used, I can finish the loop of 100 mount operations; however, when the system is being used, a couple of the above mount commands, even manually, will cause the system to hang. Does the problem go away if you do: # xfs_freeze -f # xfs_freeze -u # mount -o ro,remount [Andrew Ngo] When the mount command hangs, the above commands continue the hang the system. Or does the first freeze command trigger the same problem? [Andrew Ngo] Yes, the xfs_freeze -f command hang the system, just like the stale mount command does. -----Original Message----- From: Dave Chinner [mailto:david@fromorbit.com] Sent: Monday, October 13, 2008 10:16 PM To: Ngo, Andrew Cc: v9fs-developer@lists.sourceforge.net; xfs@oss.sgi.com; Johnson, Je Subject: Re: Stale XFS mount for Kernel 2.6.25.14 [Andrew, Please don't top post replies - it makes it completely impossible to folow the thread. ] > -----Original Message----- On Mon, Oct 13, 2008 at 10:04:27PM -0400, Ngo, Andrew wrote: On Mon, Oct 13, 2008 at 10:04:27PM -0400, Ngo, Andrew wrote: > > Dave, > > Do you know of a solution to this problem? Currently this is a major > impact for my system. Thanks in advance. I don't know what the problem is, so I certainly don't have a solution for you. You'll need to provide a whole lot more detail about your system and problem for us to make any sense of it. Such as: What hardware do you have (including storage)? What's the storage structure (DM, MD, iSCSI, etc)? Output of 'xfs_info '? What are you really trying to acheive with the remount command? Is the filesystem busy at the time the ro,remount is run? (e.g. any large background writes occurring?) Does the problem go away if you do: # xfs_freeze -f # xfs_freeze -u # mount -o ro,remount Or does the first freeze command trigger the same problem? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 21:32:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E4WiVt024717 for ; Mon, 13 Oct 2008 21:32:44 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id B44D48F8047; Mon, 13 Oct 2008 21:34:23 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA15568; Tue, 14 Oct 2008 15:34:21 +1100 Message-ID: <48F42F12.1010409@sgi.com> Date: Tue, 14 Oct 2008 15:33:06 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs@oss.sgi.com Subject: Re: TAKE 988255 - fix instant oops with tracing enabled References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> <20081014020556.GH10716@disturbed> In-Reply-To: <20081014020556.GH10716@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Tue, Oct 14, 2008 at 12:17:47PM +1100, Lachlan McIlroy wrote: >> fix instant oops with tracing enabled >> >> We can only read inode->i_count if the inode is actually there and not >> a NULL pointer. This was introduced in one of the recent sync patches. >> >> Signed-off-by: Christoph Hellwig > > BTW, this now means that other pending patches won't apply cleanly.... > Yeah this patch hunk didn't apply but was easy to hand merge. It also didn't compile because of a missing comma from the 4th last line. Can you please make sure each of your patch series compile on their own? @@ -84,25 +84,12 @@ vn_ioerror( #ifdef XFS_INODE_TRACE -/* - * Reference count of Linux inode if present, -1 if the xfs_inode - * has no associated Linux inode. - */ -static inline int xfs_icount(struct xfs_inode *ip) -{ - struct inode *inode = VFS_I(ip); - - if (!inode) - return atomic_read(&inode->i_count); - return -1; -} - #define KTRACE_ENTER(ip, vk, s, line, ra) \ ktrace_enter( (ip)->i_trace, \ /* 0 */ (void *)(__psint_t)(vk), \ /* 1 */ (void *)(s), \ /* 2 */ (void *)(__psint_t) line, \ -/* 3 */ (void *)(__psint_t)xfs_icount(ip), \ +/* 3 */ (void *)(__psint_t)atomic_read(&VFS_I(ip)->i_count) \ /* 4 */ (void *)(ra), \ /* 5 */ NULL, \ /* 6 */ (void *)(__psint_t)current_cpu(), \ From owner-xfs@oss.sgi.com Mon Oct 13 21:46:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E4k7Os025157 for ; Mon, 13 Oct 2008 21:46:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 5294D90896; Mon, 13 Oct 2008 21:47:43 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA16181; Tue, 14 Oct 2008 15:47:41 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7DC1C58FA1E9; Tue, 14 Oct 2008 15:47:41 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - factor xfs_iget_core() into hit and miss cases Message-Id: <20081014044741.7DC1C58FA1E9@chook.melbourne.sgi.com> Date: Tue, 14 Oct 2008 15:47:41 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) factor xfs_iget_core() into hit and miss cases There are really two cases in xfs_iget_core(). The first is the cache hit case, the second is the miss case. They share very little code, and hence can easily be factored out into separate functions. This makes the code much easier to understand and subsequently modify. Signed-off-by: Dave Chinner Date: Tue Oct 14 15:46:57 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32317a fs/xfs/xfs_iget.c - 1.249 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.249&r2=text&tr2=1.248&f=h - factor xfs_iget_core() into hit and miss cases From owner-xfs@oss.sgi.com Mon Oct 13 21:48:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E4mvTq025411 for ; Mon, 13 Oct 2008 21:48:58 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id DB15D9088C; Mon, 13 Oct 2008 21:50:39 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA16282; Tue, 14 Oct 2008 15:50:38 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 4253258FA1E9; Tue, 14 Oct 2008 15:50:38 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Never call mark_inode_dirty_sync() directly Message-Id: <20081014045038.4253258FA1E9@chook.melbourne.sgi.com> Date: Tue, 14 Oct 2008 15:50:38 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Never call mark_inode_dirty_sync() directly Once the Linux inode and the XFS inode are combined, we cannot rely on just check if the linux inode exists as a method of determining if it is valid or not. Hence we should always call xfs_mark_inode_dirty_sync() instead as it does the correct checks to determine if the liinux inode is in a valid state or not. Signed-off-by: Dave Chinner Date: Tue Oct 14 15:50:14 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32318a fs/xfs/linux-2.6/xfs_super.c - 1.457 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.457&r2=text&tr2=1.456&f=h fs/xfs/linux-2.6/xfs_iops.c - 1.301 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.301&r2=text&tr2=1.300&f=h fs/xfs/linux-2.6/xfs_aops.c - 1.166 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.166&r2=text&tr2=1.165&f=h - Never call mark_inode_dirty_sync() directly From owner-xfs@oss.sgi.com Mon Oct 13 22:39:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E5dkIe026473 for ; Mon, 13 Oct 2008 22:39:46 -0700 X-ASG-Debug-ID: 1223962885-2af401b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9C3D613F3253 for ; Mon, 13 Oct 2008 22:41:26 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id Q5FpjwHF3NK82N1g for ; Mon, 13 Oct 2008 22:41:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAGTM80h5LF1j/2dsb2JhbAC9PIFs X-IronPort-AV: E=Sophos;i="4.33,407,1220193000"; d="scan'208";a="229386169" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 16:11:10 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpceb-0000Lb-1n; Tue, 14 Oct 2008 16:41:09 +1100 Date: Tue, 14 Oct 2008 16:41:03 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988255 - fix instant oops with tracing enabled Subject: Re: TAKE 988255 - fix instant oops with tracing enabled Message-ID: <20081014054103.GK10716@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs@oss.sgi.com References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> <20081014020556.GH10716@disturbed> <48F42F12.1010409@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F42F12.1010409@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223962888 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 03:33:06PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Tue, Oct 14, 2008 at 12:17:47PM +1100, Lachlan McIlroy wrote: >>> fix instant oops with tracing enabled >>> >>> We can only read inode->i_count if the inode is actually there and not >>> a NULL pointer. This was introduced in one of the recent sync patches. >>> >>> Signed-off-by: Christoph Hellwig >> >> BTW, this now means that other pending patches won't apply cleanly.... >> > > Yeah this patch hunk didn't apply but was easy to hand merge. It also > didn't compile because of a missing comma from the 4th last line. Can > you please make sure each of your patch series compile on their own? I do make sure every patch compiles given the config options a mainline kernel allows. However, the CONFIG_XFS_TRACE option is not present in mainline-derived kernels so it's not obvious when problems occur inside code that isn't easily configurable on such a kernel.... As it is, I haven't done a CONFIG_XFS_TRACE build for several months because I've found that I haven't needed tracing to find problems esoteric problems. Using watchpoints, breakpoints and single stepping catches problems as they occur rather than needing tracing to try to work out what went wrong after a problem has occurred. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 22:52:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_33,J_CHICKENPOX_34 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E5qNxl026958 for ; Mon, 13 Oct 2008 22:52:23 -0700 X-ASG-Debug-ID: 1223963644-189b01af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 643D4130B7AF for ; Mon, 13 Oct 2008 22:54:05 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id vYydQak72pEBWfB3 for ; Mon, 13 Oct 2008 22:54:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOfP80h5LF1j/2dsb2JhbAC9MoFs X-IronPort-AV: E=Sophos;i="4.33,407,1220193000"; d="scan'208";a="229396226" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 16:23:49 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpcqq-0000dZ-Lm; Tue, 14 Oct 2008 16:53:48 +1100 Date: Tue, 14 Oct 2008 16:53:48 +1100 From: Dave Chinner To: "Ngo, Andrew" Cc: v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" X-ASG-Orig-Subj: Re: Stale XFS mount for Kernel 2.6.25.14 Subject: Re: Stale XFS mount for Kernel 2.6.25.14 Message-ID: <20081014055348.GL10716@disturbed> Mail-Followup-To: "Ngo, Andrew" , v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> <20081014021534.GI10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD631@emss04m05.us.lmco.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <8604545CB7815D419F5FF108D3E434BA3BD631@emss04m05.us.lmco.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223963646 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0195 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 13, 2008 at 11:40:17PM -0400, Ngo, Andrew wrote: > What's the storage structure (DM, MD, iSCSI, etc)? > > Output of 'xfs_info '? > > [Andrew Ngo]xfs_info /mtpt > meta-data=/dev/sda3 isize=256 agcount=16 agsize=672219 blks > = sectsz=512 attr=0 > data = bsize=4096 blocks=10755504, imaxpct=25 > = sunit=0; swidth=0 blks, unwritten=1 > naming = version2 bsize=4096 > log = internal bsize=4096 blocks=525, version=1 > sectsz=512 sunit=0 blocks > realtime = none extsz=65536 blocks=0 rtextents=0 I think your cut-n-paste has dropped characters there - the log cannot be that small - it must be at least 10MB in size (2560 blocks, IIRC). Can you check this, please? > What are you really trying to acheive with the remount command? > > [Andrew Ngo]This server hosts the patch directory for the developers. > When the developers are not patching software, the file system is ro. > When the developers needs to patch the software, the file system is > changed to rw. Ok. So when a software update needs to be done, the filesystem is made writable, correct? But once the update is done, it then gets made RO again? how much data gets written when an update is run? > Is the filesystem busy at the time the ro,remount is run? > (e.g. any large background writes occurring?) > > [Andrew Ngo]Yes. So you try to make a busy, dirty filesystem read only while an application is still writing to it? > Note that I make a script that performs the "mount -o rw,remount " > and "mount -o ro,remount ". When the system is not being used, I > can finish the loop of 100 mount operations; however, when the system is > being used, a couple of the above mount commands, even manually, will > cause the system to hang. > > Does the problem go away if you do: > > # xfs_freeze -f > # xfs_freeze -u > # mount -o ro,remount > > [Andrew Ngo] When the mount command hangs, the above commands continue > the hang the system. I meant using that sequence of commands instead of just a single "mount -o ro,remount " to make the fs RO. They won't magically fix anything once something is broken. > Or does the first freeze command trigger the same problem? > [Andrew Ngo] Yes, the xfs_freeze -f command hang the system, just like > the stale mount command does. Is that before or after a remount has already hung? Next time you hang the system, please attach the output that appears in your syslog from: # echo t > /proc/sysrq-trigger Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 23:00:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_46, J_CHICKENPOX_56 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E60bNA027382 for ; Mon, 13 Oct 2008 23:00:38 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id AF28D9089F; Mon, 13 Oct 2008 23:02:15 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18244; Tue, 14 Oct 2008 17:02:13 +1100 Message-ID: <48F443A9.70808@sgi.com> Date: Tue, 14 Oct 2008 17:00:57 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH 3/5] Inode: Allow external initialisers References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <1223416332-7026-4-git-send-email-david@fromorbit.com> In-Reply-To: <1223416332-7026-4-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave, this is modifying files outside fs/xfs. Who has reviewed this patch? Dave Chinner wrote: > To allow XFS to combine the XFS and linux inodes into a single > structure, we need to drive inode lookup from the XFS inode cache, > not the generic inode cache. This means that we need initialise a > struct inode from a context outside alloc_inode() as it is no longer > used by XFS. > > Factor and export the struct inode initialisation code from > alloc_inode() to inode_init_always() as a counterpart to > inode_init_once(). i.e. we have to call this init function for each > inode instantiation (always), as opposed inode_init_once() which is > only called on slab object instantiation (once). > > Signed-off-by: Dave Chinner > --- > fs/inode.c | 152 +++++++++++++++++++++++++++++----------------------- > include/linux/fs.h | 1 + > 2 files changed, 85 insertions(+), 68 deletions(-) > > diff --git a/fs/inode.c b/fs/inode.c > index 0487ddb..e7ee999 100644 > --- a/fs/inode.c > +++ b/fs/inode.c > @@ -108,84 +108,100 @@ static void wake_up_inode(struct inode *inode) > wake_up_bit(&inode->i_state, __I_LOCK); > } > > -static struct inode *alloc_inode(struct super_block *sb) > +/** > + * inode_init_always - perform inode structure intialisation > + * @sb - superblock inode belongs to. > + * @inode - inode to initialise > + * > + * These are initializations that need to be done on every inode > + * allocation as the fields are not initialised by slab allocation. > + */ > +struct inode *inode_init_always(struct super_block *sb, struct inode *inode) > { > static const struct address_space_operations empty_aops; > static struct inode_operations empty_iops; > static const struct file_operations empty_fops; > - struct inode *inode; > - > - if (sb->s_op->alloc_inode) > - inode = sb->s_op->alloc_inode(sb); > - else > - inode = (struct inode *) kmem_cache_alloc(inode_cachep, GFP_KERNEL); > > - if (inode) { > - struct address_space * const mapping = &inode->i_data; > - > - inode->i_sb = sb; > - inode->i_blkbits = sb->s_blocksize_bits; > - inode->i_flags = 0; > - atomic_set(&inode->i_count, 1); > - inode->i_op = &empty_iops; > - inode->i_fop = &empty_fops; > - inode->i_nlink = 1; > - atomic_set(&inode->i_writecount, 0); > - inode->i_size = 0; > - inode->i_blocks = 0; > - inode->i_bytes = 0; > - inode->i_generation = 0; > + struct address_space * const mapping = &inode->i_data; > + > + inode->i_sb = sb; > + inode->i_blkbits = sb->s_blocksize_bits; > + inode->i_flags = 0; > + atomic_set(&inode->i_count, 1); > + inode->i_op = &empty_iops; > + inode->i_fop = &empty_fops; > + inode->i_nlink = 1; > + atomic_set(&inode->i_writecount, 0); > + inode->i_size = 0; > + inode->i_blocks = 0; > + inode->i_bytes = 0; > + inode->i_generation = 0; > #ifdef CONFIG_QUOTA > - memset(&inode->i_dquot, 0, sizeof(inode->i_dquot)); > + memset(&inode->i_dquot, 0, sizeof(inode->i_dquot)); > #endif > - inode->i_pipe = NULL; > - inode->i_bdev = NULL; > - inode->i_cdev = NULL; > - inode->i_rdev = 0; > - inode->dirtied_when = 0; > - if (security_inode_alloc(inode)) { > - if (inode->i_sb->s_op->destroy_inode) > - inode->i_sb->s_op->destroy_inode(inode); > - else > - kmem_cache_free(inode_cachep, (inode)); > - return NULL; > - } > + inode->i_pipe = NULL; > + inode->i_bdev = NULL; > + inode->i_cdev = NULL; > + inode->i_rdev = 0; > + inode->dirtied_when = 0; > + if (security_inode_alloc(inode)) { > + if (inode->i_sb->s_op->destroy_inode) > + inode->i_sb->s_op->destroy_inode(inode); > + else > + kmem_cache_free(inode_cachep, (inode)); > + return NULL; > + } > > - spin_lock_init(&inode->i_lock); > - lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); > + spin_lock_init(&inode->i_lock); > + lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); > > - mutex_init(&inode->i_mutex); > - lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key); > + mutex_init(&inode->i_mutex); > + lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key); > > - init_rwsem(&inode->i_alloc_sem); > - lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key); > + init_rwsem(&inode->i_alloc_sem); > + lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key); > > - mapping->a_ops = &empty_aops; > - mapping->host = inode; > - mapping->flags = 0; > - mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE); > - mapping->assoc_mapping = NULL; > - mapping->backing_dev_info = &default_backing_dev_info; > - mapping->writeback_index = 0; > + mapping->a_ops = &empty_aops; > + mapping->host = inode; > + mapping->flags = 0; > + mapping_set_gfp_mask(mapping, GFP_HIGHUSER_PAGECACHE); > + mapping->assoc_mapping = NULL; > + mapping->backing_dev_info = &default_backing_dev_info; > + mapping->writeback_index = 0; > > - /* > - * If the block_device provides a backing_dev_info for client > - * inodes then use that. Otherwise the inode share the bdev's > - * backing_dev_info. > - */ > - if (sb->s_bdev) { > - struct backing_dev_info *bdi; > + /* > + * If the block_device provides a backing_dev_info for client > + * inodes then use that. Otherwise the inode share the bdev's > + * backing_dev_info. > + */ > + if (sb->s_bdev) { > + struct backing_dev_info *bdi; > > - bdi = sb->s_bdev->bd_inode_backing_dev_info; > - if (!bdi) > - bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; > - mapping->backing_dev_info = bdi; > - } > - inode->i_private = NULL; > - inode->i_mapping = mapping; > + bdi = sb->s_bdev->bd_inode_backing_dev_info; > + if (!bdi) > + bdi = sb->s_bdev->bd_inode->i_mapping->backing_dev_info; > + mapping->backing_dev_info = bdi; > } > + inode->i_private = NULL; > + inode->i_mapping = mapping; > + > return inode; > } > +EXPORT_SYMBOL(inode_init_always); > + > +static struct inode *alloc_inode(struct super_block *sb) > +{ > + struct inode *inode; > + > + if (sb->s_op->alloc_inode) > + inode = sb->s_op->alloc_inode(sb); > + else > + inode = kmem_cache_alloc(inode_cachep, GFP_KERNEL); > + > + if (inode) > + return inode_init_always(sb, inode); > + return NULL; > +} > > void destroy_inode(struct inode *inode) > { > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 580b513..ce55983 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -1811,6 +1811,7 @@ extern loff_t default_llseek(struct file *file, loff_t offset, int origin); > > extern loff_t vfs_llseek(struct file *file, loff_t offset, int origin); > > +extern struct inode * inode_init_always(struct super_block *, struct inode *); > extern void inode_init_once(struct inode *); > extern void iput(struct inode *); > extern struct inode * igrab(struct inode *); From owner-xfs@oss.sgi.com Mon Oct 13 23:02:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E62smw027643 for ; Mon, 13 Oct 2008 23:02:54 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 61283304072; Mon, 13 Oct 2008 23:04:30 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18335; Tue, 14 Oct 2008 17:04:28 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 7CA0858FA1E9; Tue, 14 Oct 2008 17:04:28 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988236 - xfstests/189 remount test Message-Id: <20081014060428.7CA0858FA1E9@chook.melbourne.sgi.com> Date: Tue, 14 Oct 2008 17:04:28 +1100 (EST) From: tes@sgi.com (Tim Shimmin) test out a remount bug where ro->rw doesn't update xfs flag and thinks it is still readonly. Test using touch. Code provided by Christoph Hellwig. Signed-off-by: Christoph Hellwig Date: Tue Oct 14 17:00:59 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/xfs-cmds Inspected by: hch@lst.de The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/xfs-cmds/master-melb Modid: master-melb:xfs-cmds:32320a xfstests/189 - 1.3 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfstests/189.diff?r1=text&tr1=1.3&r2=text&tr2=1.2&f=h - test out a remount bug where ro->rw doesn't update xfs flag and thinks it is still readonly. Test using touch. Code provided by Christoph Hellwig. Subject: TAKE 985710 983964 - add comment to test about its related bugs in bugworks Date: Mon Sep 15 13:45:24 AEST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/xfs-cmds Inspected by: tes The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/xfs-cmds/master-melb Modid: master-melb:xfs-cmds:32116a xfstests/189 - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfstests/189.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h - add comment to test about its related bugs in bugworks From owner-xfs@oss.sgi.com Mon Oct 13 23:10:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E6AUZR028109 for ; Mon, 13 Oct 2008 23:10:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id EE7308F807F for ; Mon, 13 Oct 2008 23:12:09 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18540 for ; Tue, 14 Oct 2008 17:12:08 +1100 Message-ID: <48F43838.9040606@sgi.com> Date: Tue, 14 Oct 2008 17:12:08 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: Re: TAKE 988255 - fix instant oops with tracing enabled References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> <20081014020556.GH10716@disturbed> <48F42F12.1010409@sgi.com> <20081014054103.GK10716@disturbed> In-Reply-To: <20081014054103.GK10716@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Tue, Oct 14, 2008 at 03:33:06PM +1000, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Tue, Oct 14, 2008 at 12:17:47PM +1100, Lachlan McIlroy wrote: >>>> fix instant oops with tracing enabled >>>> >>>> We can only read inode->i_count if the inode is actually there and not >>>> a NULL pointer. This was introduced in one of the recent sync patches. >>>> >>>> Signed-off-by: Christoph Hellwig >>> BTW, this now means that other pending patches won't apply cleanly.... >>> >> Yeah this patch hunk didn't apply but was easy to hand merge. It also >> didn't compile because of a missing comma from the 4th last line. Can >> you please make sure each of your patch series compile on their own? > > I do make sure every patch compiles given the config options a > mainline kernel allows. However, the CONFIG_XFS_TRACE option is not > present in mainline-derived kernels so it's not obvious when > problems occur inside code that isn't easily configurable on > such a kernel.... > > As it is, I haven't done a CONFIG_XFS_TRACE build for several months > because I've found that I haven't needed tracing to find problems > esoteric problems. Using watchpoints, breakpoints and single > stepping catches problems as they occur rather than needing tracing > to try to work out what went wrong after a problem has occurred. > OOI, can anyone comment on any suggestions for other tracing mechanisms. I recall Christoph mentioning something in the past but it wasn't ready yet or something???. I'd really like to be able to access tracing output via proc instead of just within kdb, as I have used in the past with Greg Banks qtrace patches. --Tim From owner-xfs@oss.sgi.com Mon Oct 13 23:49:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E6nMJw029788 for ; Mon, 13 Oct 2008 23:49:24 -0700 X-ASG-Debug-ID: 1223967064-117102f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B6AF130BDFA for ; Mon, 13 Oct 2008 23:51:04 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id KrefRvrr5AZuIli9 for ; Mon, 13 Oct 2008 23:51:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPfd80h5LF1j/2dsb2JhbAC9KoFs X-IronPort-AV: E=Sophos;i="4.33,407,1220193000"; d="scan'208";a="229442285" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 17:20:51 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpdk1-0001xY-RS; Tue, 14 Oct 2008 17:50:49 +1100 Date: Tue, 14 Oct 2008 17:50:49 +1100 From: Dave Chinner To: Timothy Shimmin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988255 - fix instant oops with tracing enabled Subject: Re: TAKE 988255 - fix instant oops with tracing enabled Message-ID: <20081014065049.GM10716@disturbed> Mail-Followup-To: Timothy Shimmin , xfs@oss.sgi.com References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> <20081014020556.GH10716@disturbed> <48F42F12.1010409@sgi.com> <20081014054103.GK10716@disturbed> <48F43838.9040606@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F43838.9040606@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223967065 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0440 1.0000 -1.7379 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.74 X-Barracuda-Spam-Status: No, SCORE=-1.74 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 05:12:08PM +1100, Timothy Shimmin wrote: > Dave Chinner wrote: > > On Tue, Oct 14, 2008 at 03:33:06PM +1000, Lachlan McIlroy wrote: > >> Dave Chinner wrote: > >>> On Tue, Oct 14, 2008 at 12:17:47PM +1100, Lachlan McIlroy wrote: > >>>> fix instant oops with tracing enabled > >>>> > >>>> We can only read inode->i_count if the inode is actually there and not > >>>> a NULL pointer. This was introduced in one of the recent sync patches. > >>>> > >>>> Signed-off-by: Christoph Hellwig > >>> BTW, this now means that other pending patches won't apply cleanly.... > >>> > >> Yeah this patch hunk didn't apply but was easy to hand merge. It also > >> didn't compile because of a missing comma from the 4th last line. Can > >> you please make sure each of your patch series compile on their own? > > > > I do make sure every patch compiles given the config options a > > mainline kernel allows. However, the CONFIG_XFS_TRACE option is not > > present in mainline-derived kernels so it's not obvious when > > problems occur inside code that isn't easily configurable on > > such a kernel.... > > > > As it is, I haven't done a CONFIG_XFS_TRACE build for several months > > because I've found that I haven't needed tracing to find problems > > esoteric problems. Using watchpoints, breakpoints and single > > stepping catches problems as they occur rather than needing tracing > > to try to work out what went wrong after a problem has occurred. > > > OOI, can anyone comment on any suggestions for other tracing mechanisms. > I recall Christoph mentioning something in the past but it wasn't > ready yet or something???. Well, I'd suggest that we probably should turn all the trace points into markers so that systemtap can hook them and you can write probes to extract the traces in real-time.... > I'd really like to be able to access tracing output via proc > instead of just within kdb, > as I have used in the past with Greg Banks qtrace patches. Perhaps extending something like: Documentation/ftrace.txt would be the appropriate way to go to acheive this. I think in the past Christoph has suggested switching the ktrace code over a relayfs mechanism and providing a userspace decoder would allow both kdb and userspace to access the same traces... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 13 23:51:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9E6pjLu030104 for ; Mon, 13 Oct 2008 23:51:46 -0700 X-ASG-Debug-ID: 1223967206-18a4028f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED46A130BE08 for ; Mon, 13 Oct 2008 23:53:27 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id I4IjuDBK5a80urRV for ; Mon, 13 Oct 2008 23:53:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPfd80h5LF1j/2dsb2JhbAC9KoFs X-IronPort-AV: E=Sophos;i="4.33,407,1220193000"; d="scan'208";a="229443926" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 17:23:23 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpdm8-00020K-T8; Tue, 14 Oct 2008 17:53:00 +1100 Date: Tue, 14 Oct 2008 17:53:00 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 3/5] Inode: Allow external initialisers Subject: Re: [PATCH 3/5] Inode: Allow external initialisers Message-ID: <20081014065300.GN10716@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <1223416332-7026-4-git-send-email-david@fromorbit.com> <48F443A9.70808@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F443A9.70808@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1223967207 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 05:00:57PM +1000, Lachlan McIlroy wrote: > Dave, this is modifying files outside fs/xfs. Who has reviewed this patch? It's been posted to -fsdevel twice without anyone commenting except for Christoph.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 14 05:53:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ECrsTd021434 for ; Tue, 14 Oct 2008 05:53:55 -0700 X-ASG-Debug-ID: 1223988936-1da103a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 58E394F299B; Tue, 14 Oct 2008 05:55:36 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 0fUAAEPhahP2RbIB; Tue, 14 Oct 2008 05:55:36 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KpjR2-0004qo-4S; Tue, 14 Oct 2008 12:55:36 +0000 Date: Tue, 14 Oct 2008 08:55:36 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: Dave Chinner , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 3/5] Inode: Allow external initialisers Subject: Re: [PATCH 3/5] Inode: Allow external initialisers Message-ID: <20081014125536.GA13296@infradead.org> References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <1223416332-7026-4-git-send-email-david@fromorbit.com> <48F443A9.70808@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F443A9.70808@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223988937 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7944 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 05:00:57PM +1000, Lachlan McIlroy wrote: > Dave, this is modifying files outside fs/xfs. Who has reviewed this patch? I have, and it's also Cc'ed to -fsdevel. From owner-xfs@oss.sgi.com Tue Oct 14 05:55:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ECtFA5021730 for ; Tue, 14 Oct 2008 05:55:17 -0700 X-ASG-Debug-ID: 1223989010-4fc901110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CC2E04E8A8D; Tue, 14 Oct 2008 05:56:50 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id P0FZDRbL43hqsZ8S; Tue, 14 Oct 2008 05:56:50 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KpjSE-0005f7-4V; Tue, 14 Oct 2008 12:56:50 +0000 Date: Tue, 14 Oct 2008 08:56:50 -0400 From: Christoph Hellwig To: Timothy Shimmin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988255 - fix instant oops with tracing enabled Subject: Re: TAKE 988255 - fix instant oops with tracing enabled Message-ID: <20081014125650.GB13296@infradead.org> References: <20081014011747.AC14E58FA1E9@chook.melbourne.sgi.com> <20081014020556.GH10716@disturbed> <48F42F12.1010409@sgi.com> <20081014054103.GK10716@disturbed> <48F43838.9040606@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F43838.9040606@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1223989010 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7944 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 05:12:08PM +1100, Timothy Shimmin wrote: > OOI, can anyone comment on any suggestions for other tracing mechanisms. > I recall Christoph mentioning something in the past but it wasn't > ready yet or something???. > I'd really like to be able to access tracing output via proc > instead of just within kdb, > as I have used in the past with Greg Banks qtrace patches. Yah, I've been working on doing that and wire it up with trace_mark. I'll move it up on my TODO list a little.. From owner-xfs@oss.sgi.com Tue Oct 14 06:10:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9EDA3gL024116 for ; Tue, 14 Oct 2008 06:10:04 -0700 X-ASG-Debug-ID: 1223989902-18d502800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 81F8C130C7CD; Tue, 14 Oct 2008 06:11:42 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id PE45GYA7nVnDbaFa; Tue, 14 Oct 2008 06:11:42 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9EDBfIF017991 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Tue, 14 Oct 2008 15:11:41 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9EDBfPI017989; Tue, 14 Oct 2008 15:11:41 +0200 Date: Tue, 14 Oct 2008 15:11:40 +0200 From: Christoph Hellwig To: Mark Goodwin Cc: xfs@oss.sgi.com, hch@lst.de X-ASG-Orig-Subj: Re: fw: [PATCH] fix instant oops with tracing enabled Subject: Re: fw: [PATCH] fix instant oops with tracing enabled Message-ID: <20081014131140.GB17351@lst.de> References: <20081013223932.GE10716@disturbed> <48F3EA6F.9000209@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F3EA6F.9000209@sgi.com> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1223989906 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7945 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 10:40:15AM +1000, Mark Goodwin wrote: > Lachlan also saw some regressions after merging these patchsets : > . replace the mount inode list with radix tree traversals > . clean up sync code What exactly? I saw some softlookup in 042, but when applying Dave's xfs_sync_inodeS_ag fix (or the hal of it applying without the del inodes tracking in the radix tree) it goes away. > >If that > >series is going to be included in the current round of checkins > >then this patch probably isn't needed. > > The agreed plan for 2.6.28 still has the following patchsets to go in: > > . Combine the XFS and Linux inode structures V2 > . Track reclaimable inodes in inode cache > . AIL cleanup and bug fixes > . Account for allocated blocks when expanding directories > . Check for valid transaction headers in recovery > . fix remount rw with unrecognized options 3-6 are small bug fixes and should go in ASAP. I'd really like to see 1 and 2 and volunter to help sorting out any fallout. Not entirely sure about the AIL patches - they seem ready but at least they don't have much impact on everything else. So if you really want to reduce the amount of patches those would be the ones. From owner-xfs@oss.sgi.com Tue Oct 14 14:53:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_32,J_CHICKENPOX_33,J_CHICKENPOX_34,J_CHICKENPOX_38,RCVD_BAD_ID autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ELrFYd007855 for ; Tue, 14 Oct 2008 14:53:17 -0700 X-ASG-Debug-ID: 1224021296-4ba403b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailgw3a.lmco.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB8F81B5B036 for ; Tue, 14 Oct 2008 14:54:56 -0700 (PDT) Received: from mailgw3a.lmco.com (mailgw3a.lmco.com [192.35.35.7]) by cuda.sgi.com with ESMTP id V3Vuj0IrS4dAUJkS for ; Tue, 14 Oct 2008 14:54:56 -0700 (PDT) Received: from emss04g01.ems.lmco.com (relay4.ems.lmco.com [166.17.13.122])by mailgw3a.lmco.com (LM-6) with ESMTP id m9ELso8N027017;Tue, 14 Oct 2008 17:54:50 -0400 (EDT) Received: from CONVERSION2-DAEMON.lmco.com by lmco.com (PMDF V6.3-x14 #31428) id <0K8R007010VE96@lmco.com>; Tue, 14 Oct 2008 17:54:50 -0400 (EDT) Received: from EMSS04I00.us.lmco.com ([166.17.13.135]) by lmco.com (PMDF V6.3-x14 #31428) with ESMTP id <0K8R00FJF0V9SG@lmco.com>; Tue, 14 Oct 2008 17:54:45 -0400 (EDT) Received: from emss04m05.us.lmco.com ([166.17.13.61]) by EMSS04I00.us.lmco.com with Microsoft SMTPSVC(5.0.2195.6713); Tue, 14 Oct 2008 17:54:45 -0400 Date: Tue, 14 Oct 2008 17:54:45 -0400 From: "Ngo, Andrew" X-ASG-Orig-Subj: RE: Stale XFS mount for Kernel 2.6.25.14 Subject: RE: Stale XFS mount for Kernel 2.6.25.14 In-reply-to: <20081014055348.GL10716@disturbed> To: Dave Chinner Cc: v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" , "Ngo, Andrew" Message-id: <8604545CB7815D419F5FF108D3E434BA3BD63B@emss04m05.us.lmco.com> MIME-version: 1.0 X-MIMEOLE: Produced By Microsoft Exchange V6.5 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Thread-Topic: Stale XFS mount for Kernel 2.6.25.14 Thread-Index: Ackt7wz8oPrad0JbQ4GEW//ZJOpylwAA1r1Q Content-class: urn:content-classes:message X-MS-Has-Attach: X-MS-TNEF-Correlator: References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> <20081014021534.GI10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD631@emss04m05.us.lmco.com> <20081014055348.GL10716@disturbed> X-OriginalArrivalTime: 14 Oct 2008 21:54:45.0416 (UTC) FILETIME=[78643A80:01C92E47] X-Barracuda-Connect: mailgw3a.lmco.com[192.35.35.7] X-Barracuda-Start-Time: 1224021297 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.07 X-Barracuda-Spam-Status: No, SCORE=0.07 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7970 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.09 RCVD_BAD_ID RCVD_BAD_ID Dave, Here is the response to your questions. Thanks... > I think your cut-n-paste has dropped characters there - the log cannot be that small - it > must be at least 10MB in size (2560 blocks, IIRC). Can you check this, please? [Andrew Ngo]xfs_info /mtpt meta-data=/dev/sda3 isize=256 agcount=16 agsize=672219 blks = sectsz=512 attr=0 data = bsize=4096 blocks=10755504, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming = version2 bsize=4096 log = internal bsize=4096 blocks=5251, version=1 = sectsz=512 sunit=0 blks realtime = none extsz=65536 blocks=0 rtextents=0 If the log size is too small, please advise on how to configure the log to a larger size. > Ok. So when a software update needs to be done, the filesystem is made writable, correct? > But once the update is done, it then gets made RO again? how much data gets written when an > update is run? [Andrew Ngo]It depends on the size of the patch. > So you try to make a busy, dirty filesystem read only while an application is still writing > to it? [Andrew Ngo]Actually, we only perform the mount ro after we patch the softwarfe. At that time, we have full control of the screen which means that the system is not busy; but I don't know if the file system is still busy under the cover. When the file system is actually busy, the mount command should return saying the partition is busy. For us, it is not returning anything. It just hangs. > Is that before or after a remount has already hung? [Andrew Ngo]The xfs_freeze -f command hangs the system after the remount has already hung. -----Original Message----- From: Dave Chinner [mailto:david@fromorbit.com] Sent: Tuesday, October 14, 2008 1:54 AM To: Ngo, Andrew Cc: v9fs-developer@lists.sourceforge.net; xfs@oss.sgi.com; Johnson, Je Subject: Re: Stale XFS mount for Kernel 2.6.25.14 On Mon, Oct 13, 2008 at 11:40:17PM -0400, Ngo, Andrew wrote: > What's the storage structure (DM, MD, iSCSI, etc)? > > Output of 'xfs_info '? > > [Andrew Ngo]xfs_info /mtpt > meta-data=/dev/sda3 isize=256 agcount=16 agsize=672219 blks > = sectsz=512 attr=0 > data = bsize=4096 blocks=10755504, imaxpct=25 > = sunit=0; swidth=0 blks, unwritten=1 > naming = version2 bsize=4096 > log = internal bsize=4096 blocks=525, version=1 > sectsz=512 sunit=0 blocks > realtime = none extsz=65536 blocks=0 rtextents=0 I think your cut-n-paste has dropped characters there - the log cannot be that small - it must be at least 10MB in size (2560 blocks, IIRC). Can you check this, please? > What are you really trying to acheive with the remount command? > > [Andrew Ngo]This server hosts the patch directory for the developers. > When the developers are not patching software, the file system is ro. > When the developers needs to patch the software, the file system is > changed to rw. Ok. So when a software update needs to be done, the filesystem is made writable, correct? But once the update is done, it then gets made RO again? how much data gets written when an update is run? > Is the filesystem busy at the time the ro,remount is run? > (e.g. any large background writes occurring?) > > [Andrew Ngo]Yes. So you try to make a busy, dirty filesystem read only while an application is still writing to it? > Note that I make a script that performs the "mount -o rw,remount " > and "mount -o ro,remount ". When the system is not being used, > I can finish the loop of 100 mount operations; however, when the > system is being used, a couple of the above mount commands, even > manually, will cause the system to hang. > > Does the problem go away if you do: > > # xfs_freeze -f > # xfs_freeze -u > # mount -o ro,remount > > [Andrew Ngo] When the mount command hangs, the above commands continue > the hang the system. I meant using that sequence of commands instead of just a single "mount -o ro,remount " to make the fs RO. They won't magically fix anything once something is broken. > Or does the first freeze command trigger the same problem? > [Andrew Ngo] Yes, the xfs_freeze -f command hang the system, just like > the stale mount command does. Is that before or after a remount has already hung? Next time you hang the system, please attach the output that appears in your syslog from: # echo t > /proc/sysrq-trigger Cheers, Dave. -- Dave Chinner david@fromorbit.com ngo@lmco.com>, v9fs-developer@lists.sourceforge.net, xfs@oss.sgi.com, "Johnson, Je" Message-ID: <20081014055348.GL10716@disturbed> Received: from mailgw3b.lmco.com (mg_filter) by mailgw3b.lmco.com with mailout; Tue, 14 Oct 2008 01:54:09 %z Received: from ipmail05.adl2.internode.on.net by mailgw3b.lmco.com with ESMTP id m9E5s5Mf015764; Tue, 14 Oct 2008 01:54:05 -0400 (EDT) Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 14 Oct 2008 16:23:49 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpcqq-0000dZ-Lm; Tue, 14 Oct 2008 16:53:48 +1100 References: <8604545CB7815D419F5FF108D3E434BA3BD626@emss04m05.us.lmco.com> <20081013035939.GB10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD628@emss04m05.us.lmco.com> <8604545CB7815D419F5FF108D3E434BA3BD62F@emss04m05.us.lmco.com> <20081014021534.GI10716@disturbed> <8604545CB7815D419F5FF108D3E434BA3BD631@emss04m05.us.lmco.com> Subject: Re: Stale XFS mount for Kernel 2.6.25.14 To: "Ngo, Andrew" User-Agent: Mutt/1.5.18 (2008-05-17) X-IronPort-AV: E=Sophos;i="4.33,407,1220193000"; d="scan'208";a="229396226" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOfP80h5LF1j/2dsb2JhbAC9MoFs X-MessageGate-spam: 116 X-MessageGate-virus: 1 On Mon, Oct 13, 2008 at 11:40:17PM -0400, Ngo, Andrew wrote: > What's the storage structure (DM, MD, iSCSI, etc)? > > Output of 'xfs_info '? > > [Andrew Ngo]xfs_info /mtpt > meta-data=/dev/sda3 isize=256 agcount=16 agsize=672219 blks > = sectsz=512 attr=0 > data = bsize=4096 blocks=10755504, imaxpct=25 > = sunit=0; swidth=0 blks, unwritten=1 > naming = version2 bsize=4096 > log = internal bsize=4096 blocks=525, version=1 > sectsz=512 sunit=0 blocks > realtime = none extsz=65536 blocks=0 rtextents=0 I think your cut-n-paste has dropped characters there - the log cannot be that small - it must be at least 10MB in size (2560 blocks, IIRC). Can you check this, please? > What are you really trying to acheive with the remount command? > > [Andrew Ngo]This server hosts the patch directory for the developers. > When the developers are not patching software, the file system is ro. > When the developers needs to patch the software, the file system is > changed to rw. Ok. So when a software update needs to be done, the filesystem is made writable, correct? But once the update is done, it then gets made RO again? how much data gets written when an update is run? > Is the filesystem busy at the time the ro,remount is run? > (e.g. any large background writes occurring?) > > [Andrew Ngo]Yes. So you try to make a busy, dirty filesystem read only while an application is still writing to it? > Note that I make a script that performs the "mount -o rw,remount " > and "mount -o ro,remount ". When the system is not being used, > I can finish the loop of 100 mount operations; however, when the > system is being used, a couple of the above mount commands, even > manually, will cause the system to hang. > > Does the problem go away if you do: > > # xfs_freeze -f > # xfs_freeze -u > # mount -o ro,remount > > [Andrew Ngo] When the mount command hangs, the above commands continue > the hang the system. I meant using that sequence of commands instead of just a single "mount -o ro,remount " to make the fs RO. They won't magically fix anything once something is broken. > Or does the first freeze command From owner-xfs@oss.sgi.com Tue Oct 14 17:09:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F09aZm024367 for ; Tue, 14 Oct 2008 17:09:36 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id A3BD58F808B; Tue, 14 Oct 2008 17:11:12 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA09756; Wed, 15 Oct 2008 11:11:08 +1100 Message-ID: <48F542E3.9090506@sgi.com> Date: Wed, 15 Oct 2008 11:09:55 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Dave Chinner , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org Subject: Re: [PATCH 3/5] Inode: Allow external initialisers References: <1223416332-7026-1-git-send-email-david@fromorbit.com> <1223416332-7026-4-git-send-email-david@fromorbit.com> <48F443A9.70808@sgi.com> <20081014125536.GA13296@infradead.org> In-Reply-To: <20081014125536.GA13296@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Okay. Thanks Christoph. Christoph Hellwig wrote: > On Tue, Oct 14, 2008 at 05:00:57PM +1000, Lachlan McIlroy wrote: >> Dave, this is modifying files outside fs/xfs. Who has reviewed this patch? > > I have, and it's also Cc'ed to -fsdevel. > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > From owner-xfs@oss.sgi.com Tue Oct 14 17:26:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F0Qlnt026567 for ; Tue, 14 Oct 2008 17:26:47 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 7CCA49088C; Tue, 14 Oct 2008 17:28:25 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA10035; Wed, 15 Oct 2008 11:28:22 +1100 Message-ID: <48F546ED.6050702@sgi.com> Date: Wed, 15 Oct 2008 11:27:09 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Mark Goodwin , xfs@oss.sgi.com Subject: Re: fw: [PATCH] fix instant oops with tracing enabled References: <20081013223932.GE10716@disturbed> <48F3EA6F.9000209@sgi.com> <20081014131140.GB17351@lst.de> In-Reply-To: <20081014131140.GB17351@lst.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Tue, Oct 14, 2008 at 10:40:15AM +1000, Mark Goodwin wrote: >> Lachlan also saw some regressions after merging these patchsets : >> . replace the mount inode list with radix tree traversals >> . clean up sync code > > What exactly? I saw some softlookup in 042, but when applying Dave's > xfs_sync_inodeS_ag fix (or the hal of it applying without the del inodes > tracking in the radix tree) it goes away. I saw this panic but I don't think it's related to the above patches: [252921.307588] BUG: unable to handle kernel <3>BUG: scheduling while atomic: dd/16976/0xf101da90 [252921.307908] Modules linked in: [252921.307911] Pid: 16976, comm: dd Not tainted 2.6.27-rc8 #183 [252921.307913] [252921.307913] Call Trace: [252921.307920] [] __schedule_bug+0x62/0x66 [252921.307923] [] schedule+0x99/0x7c7 [252921.307925] [] schedule_timeout+0x22/0xb4 [252921.307929] [] ? add_wait_queue_exclusive+0x3c/0x41 [252921.307932] [] xlog_state_get_iclog_space+0xe8/0x278 [252921.307934] [] ? default_wake_function+0x0/0xf [252921.307936] [] xlog_write+0x114/0x579 [252921.307938] [] ? xfs_buf_item_pin+0x76/0x7b [252921.307940] [] xfs_log_write+0x38/0x62 [252921.307943] [] _xfs_trans_commit+0x1fd/0x3c6 [252921.307945] [] xfs_iomap_write_allocate+0x2d5/0x387 [252921.307947] [] xfs_iomap+0x331/0x3ba [252921.307950] [] xfs_map_blocks+0x30/0x69 [252921.307952] [] xfs_page_state_convert+0x2e5/0x594 [252921.307953] [] ? xfs_vm_releasepage+0xae/0xbd [252921.307955] [] xfs_vm_writepage+0xc7/0x109 [252921.307958] [] shrink_page_list+0x31a/0x57c [252921.307960] [] shrink_inactive_list+0x126/0x39d [252921.307962] [] shrink_zone+0xe5/0x10a [252921.307964] [] try_to_free_pages+0x248/0x3cf [252921.307966] [] ? isolate_pages_global+0x0/0x34 [252921.307967] [] __alloc_pages_internal+0x262/0x3b6 [252921.307969] [] ? xfs_buf_get_flags+0x6b/0x165 [252921.307972] [] alloc_pages_current+0xb9/0xc2 [252921.307974] [] new_slab+0x57/0x283 [252921.307975] [] __slab_alloc+0x1e8/0x3dd [252921.307977] [] ? kmem_zone_alloc+0x58/0xaa [252921.307980] [] ? xfs_bmap_search_multi_extents+0x9a/0xda [252921.307982] [] kmem_cache_alloc+0x43/0x76 [252921.307983] [] kmem_zone_alloc+0x58/0xaa [252921.307985] [] kmem_zone_zalloc+0xf/0x31 [252921.307986] [] _xfs_trans_alloc+0x25/0x5f [252921.307988] [] xfs_trans_alloc+0x96/0xa1 [252921.307990] [] xfs_iomap_write_allocate+0x147/0x387 [252921.307991] [] ? xfs_iomap+0x2de/0x3ba [252921.307993] [] xfs_iomap+0x331/0x3ba [252921.307995] [] xfs_map_blocks+0x30/0x69 [252921.307996] [] xfs_page_state_convert+0x2e5/0x594 [252921.307998] [] xfs_vm_writepage+0xc7/0x109 [252921.307999] [] __writepage+0x12/0x2b [252921.308001] [] write_cache_pages+0x1b3/0x317 [252921.308003] [] ? __writepage+0x0/0x2b [252921.308004] [] generic_writepages+0x1f/0x25 [252921.308006] [] xfs_vm_writepages+0x43/0x4b [252921.308007] [] do_writepages+0x28/0x37 [252921.308011] [] __writeback_single_inode+0x145/0x29f [252921.308015] [] ? prop_fraction_single+0x3d/0x5f [252921.308017] [] generic_sync_sb_inodes+0x1d0/0x2ba [252921.308019] [] sync_sb_inodes+0x9/0xb [252921.308021] [] writeback_inodes+0x64/0xad [252921.308023] [] balance_dirty_pages_ratelimited_nr+0x16b/0x2dd [252921.308027] [] generic_file_buffered_write+0x203/0x625 [252921.308028] [] ? get_page_from_freelist+0x45e/0x5d0 [252921.308031] [] ? xfs_rw_enter_trace+0xbf/0xca [252921.308032] [] xfs_write+0x64f/0x9cf [252921.308035] [] ? find_lock_page+0x2b/0x61 [252921.308037] [] __xfs_file_write+0x4c/0x4e [252921.308038] [] xfs_file_aio_write+0x11/0x13 [252921.308040] [] do_sync_write+0xe2/0x126 [252921.308042] [] ? __do_fault+0x326/0x36c [252921.308044] [] ? autoremove_wake_function+0x0/0x38 [252921.308047] [] ? selinux_file_permission+0x10d/0x116 [252921.308050] [] ? security_file_permission+0x11/0x13 [252921.308052] [] vfs_write+0xae/0x157 [252921.308053] [] sys_write+0x47/0x6f [252921.308055] [] system_call_fastpath+0x16/0x1b [252921.308056] [252921.308125] paging request at ffff881829c85a78 [252921.308125] IP: [] cpuacct_charge+0x2b/0x34 [252921.308125] PGD 202063 PUD 0 [252921.308125] Oops: 0000 [1] SMP I saw sync get stuck in an infinite loop running test 042 - maybe the same problem you saw. [1]kdb> btp 7356 Stack traceback for pid 7356 0xffff880071d10740 7356 7390 1 2 R 0xffff880071d10ba8 sync sp ip Function (args) 0xffff880058cc3c88 0xffffffff81540566 kdb_interrupt+0x66 (0xffff8800720e4ac4, 0x202, 0x0, 0xffff88007119b810, 0xffff880058cc3d48, 0xffff88007213deb8) 0xffff880058cc3ce8 0xffffffff8153ff8e _spin_unlock_irqrestore+0x8 (0xffff8800720e4ac4, 0x202) 0xffff880058cc3d20 0xffffffff81229b96 __down_read_trylock+0x3f (invalid) 0xffff880058cc3d40 0xffffffff8104a34d down_read_trylock+0x9 0xffff880058cc3d50 0xffffffff8118bcd9 xfs_ilock_nowait+0xaf (0xffff8800720e4a00, invalid) 0xffff880058cc3d80 0xffffffff811bc3d9 xfs_sync_inodes_ag+0x12a (0xffff88007119b800, invalid, invalid, 0x0) 0xffff880058cc3e00 0xffffffff811bc6ee xfs_sync_inodes+0x65 (0xffff88007119b800, invalid, 0x0) 0xffff880058cc3e40 0xffffffff811bc785 xfs_syncsub+0x67 (0xffff88007119b800, invalid, 0x0) 0xffff880058cc3e80 0xffffffff811bc9d0 xfs_sync+0x7d (0xffff88007119b800, invalid) 0xffff880058cc3eb0 0xffffffff811ba6b9 xfs_fs_sync_super+0x38 (0xffff88007e056000) 0xffff880058cc3f20 0xffffffff810a5311 sync_filesystems+0xb7 (invalid) 0xffff880058cc3f50 0xffffffff810c2deb do_sync+0x37 (0x1) 0xffff880058cc3f70 0xffffffff810c2e25 sys_sync+0xe not matched: from 0xffffffff8100bfad to 0xffffffff8100c025 drop_through 0 bb_jmp[7 I saw the panic in _xfs_itrace_exit() which has now been fixed. And I also saw this assertion: <4>[34770.626472] Assertion failed: (index >= 0) && (index < ktp->kt_nentries), file: fs/xfs/support/ktrace.c, line: 173 <0>[34770.626511] ------------[ cut here ]------------ <2>[34770.627419] kernel BUG at fs/xfs/support/debug.c:81! [2]kdb> bt Stack traceback for pid 400 0xffff88007e883a00 400 2 1 2 R 0xffff88007e883e68 *xfslogd/2 sp ip Function (args) 0xffff88007e66fbf8 0xffffffff811bd5d5 assfail+0x1a (invalid, invalid, invalid) 0xffff88007e66fc28 0xffffffff811bdb24 ktrace_enter+0x8b (invalid, invalid, invalid, invalid, invalid, invalid, invalid, invalid, invalid) 0xffff88007e66fc78 0xffffffff81175b35 xfs_buf_item_trace+0xe6 (0xffffffff816d8948, 0xffff88007c47cb40) 0xffff88007e66fd18 0xffffffff81175b60 xfs_buf_item_committed+0x1c (0xffff88007c47cb40, 0x100000b1f) 0xffff88007e66fd38 0xffffffff811a4766 xfs_trans_chunk_committed+0x60 (0xffff880050124780, 0x100000b1f, invalid) 0xffff88007e66fd98 0xffffffff811a4873 xfs_trans_committed+0x43 (0xffff880050124670, invalid) 0xffff88007e66fdc8 0xffffffff81197b2a xlog_state_do_callback+0x19a (0xffff88007ef78400, invalid, 0xffff88007ef79000) 0xffff88007e66fe38 0xffffffff81197d6d xlog_state_done_syncing+0xda (0xffff88007ef79000, invalid) 0xffff88007e66fe68 0xffffffff81198587 xlog_iodone+0x154 (0xffff88006ac37c80) 0xffff88007e66fe98 0xffffffff811b3afb xfs_buf_iodone_work+0x65 (invalid) 0xffff88007e66feb8 0xffffffff81043cfb run_workqueue+0x7c (0xffff88007e866b80) 0xffff88007e66fed8 0xffffffff81044711 worker_thread+0xd8 (0xffff88007e866b80) 0xffff88007e66ff28 0xffffffff810470a3 kthread+0x49 (invalid) 0xffff88007e66ff48 0xffffffff8100ce89 child_rip+0xa (invalid, invalid) > >>> If that >>> series is going to be included in the current round of checkins >>> then this patch probably isn't needed. >> The agreed plan for 2.6.28 still has the following patchsets to go in: >> >> . Combine the XFS and Linux inode structures V2 >> . Track reclaimable inodes in inode cache >> . AIL cleanup and bug fixes >> . Account for allocated blocks when expanding directories >> . Check for valid transaction headers in recovery >> . fix remount rw with unrecognized options > > > 3-6 are small bug fixes and should go in ASAP. I'd really like to see 1 > and 2 and volunter to help sorting out any fallout. Not entirely sure > about the AIL patches - they seem ready but at least they don't have > much impact on everything else. So if you really want to reduce the > amount of patches those would be the ones. > > > From owner-xfs@oss.sgi.com Tue Oct 14 17:47:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F0lojG028718 for ; Tue, 14 Oct 2008 17:47:50 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 529DE9088B; Tue, 14 Oct 2008 17:49:32 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA10480; Wed, 15 Oct 2008 11:49:30 +1100 Message-ID: <48F54C20.8060704@sgi.com> Date: Wed, 15 Oct 2008 11:49:20 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner , xfs@oss.sgi.com Subject: crash with latest code drop. Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Dave and list, I hit the following crash with the latest code drop that was pushed in yesterday while running test 177 in a loop, after 4-5 loops it crashed as follows: "<0>general protection fault: 0000 [1] SMP" [1]kdb> bt Stack traceback for pid 5425 0xffff88007b9b38d0 5425 5242 1 1 R 0xffff88007b9b3c38 *sync sp ip Function (args) 0xffff88006c45fde8 0xffffffff80320990 radix_tree_tagged+0xa (0x6b6b6b6b6b6b6b73, 0x0) 0xffff88006c45fe10 0xffffffffa01f36c6 [xfs]xfs_sync_inodes_ag+0x197 (0xffff88007d4025c8, invalid, invalid) 0xffff88006c45fe80 0xffffffffa01f38d1 [xfs]xfs_sync_inodes+0x63 (0xffff88007d4025c8, invalid) 0xffff88006c45fec0 0xffffffffa01f3997 [xfs]xfs_quiesce_data+0x13 (0xffff88007d4025c8) 0xffff88006c45fee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b (0xffff88007d9f10b8) 0xffff88006c45ff40 0xffffffff80292fd2 sync_filesystems+0xae (invalid) 0xffff88006c45ff60 0xffffffff802af48b do_sync+0x2f (0x1) 0xffff88006c45ff70 0xffffffff802af4c4 sys_sync+0xe bb_special_case: Invalid bb_reg_state.memory, missing trailing entries bb_special_case: on transfer to int_with_check Assuming system_call_fastpath is 'pass through' with 6 register parameters kdb_bb: 0xffffffff8020be0b [kernel]system_call_fastpath failed at 0xffffffff8020be98 Using old style backtrace, unreliable with no arguments sp ip Function (args) 0xffff88006c45fdb0 0xffffffffa01f369a [xfs]xfs_sync_inodes_ag+0x16b 0xffff88006c45fde8 0xffffffff80320990 radix_tree_tagged+0xa 0xffff88006c45fe10 0xffffffffa01f36c6 [xfs]xfs_sync_inodes_ag+0x197 0xffff88006c45fe80 0xffffffffa01f38d1 [xfs]xfs_sync_inodes+0x63 0xffff88006c45fec0 0xffffffffa01f3997 [xfs]xfs_quiesce_data+0x13 0xffff88006c45fec8 0xffffffff802452b9 autoremove_wake_function 0xffff88006c45fee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b 0xffff88006c45ff00 0xffffffff8043b871 __down_read+0x12 0xffff88006c45ff10 0xffffffffa024d395 [ext3]ext3_sync_fs+0x46 0xffff88006c45ff40 0xffffffff80292fd2 sync_filesystems+0xae 0xffff88006c45ff60 0xffffffff802af48b do_sync+0x2f 0xffff88006c45ff70 0xffffffff802af4c4 sys_sync+0xe [1]kdb> rd r15 = 0x0000000000000002 r14 = 0x0000000000000000 r13 = 0x000000000000000a r12 = 0x0000000000000040 bp = 0xffff88003793a9d8 bx = 0xffff880055c10250 r11 = 0x0000000000000001 r10 = 0xffff880055d0ade8 r9 = 0x000000000002309f r8 = 0xffffffffa01f369a ax = 0x0000000000200000 cx = 0x0000000000000015 dx = 0x0000000000000000 si = 0x0000000000000000 di = 0x6b6b6b6b6b6b6b73 orig_ax = 0xffffffffffffffff ip = 0xffffffff80320990 cs = 0x0000000000000010 flags = 0x0000000000010206 sp = 0xffff88006c45fe00 ss = 0x0000000000000018 ®s = 0xffff88006c45fd68 [1]kdb> id %ip 0xffffffff80320990 radix_tree_tagged+0xa: and 0x4(%rdi),%eax 0xffffffff80320993 radix_tree_tagged+0xd: retq 0xffffffff80320994 radix_tree_callback: cmp $0x7,%rsi 0xffffffff80320998 radix_tree_callback+0x4: push %rbx 0xffffffff80320999 radix_tree_callback+0x5: je 0xffffffff803209a1 radix_tree_callback+0xd 0xffffffff8032099b radix_tree_callback+0x7: cmp $0x17,%rsi 0xffffffff8032099f radix_tree_callback+0xb: jne 0xffffffff803209e1 radix_tree_callback+0x4d 0xffffffff803209a1 radix_tree_callback+0xd: movslq %edx,%rax 0xffffffff803209a4 radix_tree_callback+0x10: mov 3961501(%rip),%rdx # 0xffffffff806e7c48 _cpu_pda 0xffffffff803209ab radix_tree_callback+0x17: mov $0xffffffff80796480,%rbx 0xffffffff803209b2 radix_tree_callback+0x1e: mov (%rdx,%rax,8),%rax 0xffffffff803209b6 radix_tree_callback+0x22: add 0x8(%rax),%rbx 0xffffffff803209ba radix_tree_callback+0x26: jmp 0xffffffff803209db radix_tree_callback+0x47 0xffffffff803209bc radix_tree_callback+0x28: cltq 0xffffffff803209be radix_tree_callback+0x2a: mov 5545627(%rip),%rdi # 0xffffffff8086a860 __key.8127 0xffffffff803209c5 radix_tree_callback+0x31: mov (%rbx,%rax,8),%rsi The back trace is a little busted xfs_sync_inodes_ag appears to be calling: xfs_sync_inodes_ag->xfs_flush_pages->mapping_tagged->radix_tree_tagged() The poison appears to be from the i_mapping pointer in the linux inode and it crashes in radix_tree_tagged() after following &mapping->page_tree. Any insight into the possible causes for this crash would be much appreciated as this crash may be related to another issue I'm looking at where sync fails to write out a deleted inode due to missing XFS_DINODE_MAGIC. Thanks, Pete From owner-xfs@oss.sgi.com Tue Oct 14 17:57:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F0uxPB030105 for ; Tue, 14 Oct 2008 17:57:00 -0700 X-ASG-Debug-ID: 1224032321-642e013a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 86F4EA8BB5C for ; Tue, 14 Oct 2008 17:58:41 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id wnHj9Jvl4GpCaMve for ; Tue, 14 Oct 2008 17:58:41 -0700 (PDT) Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 11:24:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpuev-0003vw-7e; Wed, 15 Oct 2008 11:54:41 +1100 Date: Wed, 15 Oct 2008 11:54:41 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , Mark Goodwin , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: fw: [PATCH] fix instant oops with tracing enabled Subject: Re: fw: [PATCH] fix instant oops with tracing enabled Message-ID: <20081015005441.GR10716@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , Mark Goodwin , xfs@oss.sgi.com References: <20081013223932.GE10716@disturbed> <48F3EA6F.9000209@sgi.com> <20081014131140.GB17351@lst.de> <48F546ED.6050702@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F546ED.6050702@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224032322 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 15, 2008 at 11:27:09AM +1000, Lachlan McIlroy wrote: > Christoph Hellwig wrote: >> On Tue, Oct 14, 2008 at 10:40:15AM +1000, Mark Goodwin wrote: >>> Lachlan also saw some regressions after merging these patchsets : >>> . replace the mount inode list with radix tree traversals >>> . clean up sync code >> >> What exactly? I saw some softlookup in 042, but when applying Dave's >> xfs_sync_inodeS_ag fix (or the hal of it applying without the del inodes >> tracking in the radix tree) it goes away. > > I saw this panic but I don't think it's related to the above patches: > > [252921.307588] BUG: unable to handle kernel <3>BUG: scheduling while atomic: dd/16976/0xf101da90 Isn't there another line with this ouutput that looks like: atomic = 1 in_interrupt = 0 To indicate the "atomic" reason? > [252921.307908] Modules linked in: > [252921.307911] Pid: 16976, comm: dd Not tainted 2.6.27-rc8 #183 > [252921.307913] [252921.307913] Call Trace: [ snip exceedingly deep stack that'll blow a 4k ia32 stack completely ] In summary, the stack is: write balance_dirty_pages xfs_iomap_write_allocate try_to_free_pages xfs_iomap_write_allocate _xfs_trans_commit xlog_write xlog_state_get_iclog_space The question is what is the reason for running in atomic mode? The only place I can see a sleep happening in this function is the call to sv_wait(), which means the atomic state must have come from higher up.... Seems very strange. > I saw sync get stuck in an infinite loop running test 042 - maybe the same > problem you saw. Yes, that's the lockup that the later patch I posted fixes. > I saw the panic in _xfs_itrace_exit() which has now been fixed. > > And I also saw this assertion: > > <4>[34770.626472] Assertion failed: (index >= 0) && (index < ktp->kt_nentries), file: fs/xfs/support/ktrace.c, line: 173 > <0>[34770.626511] ------------[ cut here ]------------ > <2>[34770.627419] kernel BUG at fs/xfs/support/debug.c:81! I can't see how that is related to the changes - it's a trace buffer index overrun. That kind of implies that the ktrace_t has been corrupted. Memory corruption of some kind? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 14 18:22:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F1Mfnl000407 for ; Tue, 14 Oct 2008 18:22:41 -0700 X-ASG-Debug-ID: 1224033861-1b9a02480000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A64544FCAE4 for ; Tue, 14 Oct 2008 18:24:22 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 2XvR2teLsZpGtJpF for ; Tue, 14 Oct 2008 18:24:22 -0700 (PDT) Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 11:49:15 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpv2P-0004sB-5t; Wed, 15 Oct 2008 12:18:57 +1100 Date: Wed, 15 Oct 2008 12:18:57 +1100 From: Dave Chinner To: Peter Leckie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015011857.GS10716@disturbed> Mail-Followup-To: Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F54C20.8060704@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224033863 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7980 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 15, 2008 at 11:49:20AM +1000, Peter Leckie wrote: > Hi Dave and list, I hit the following crash with the latest code drop > that was pushed in yesterday > while running test 177 in a loop, after 4-5 loops it crashed as follows: > "<0>general protection fault: 0000 [1] SMP" .... > > > [1]kdb> bt > Stack traceback for pid 5425 > 0xffff88007b9b38d0 5425 5242 1 1 R 0xffff88007b9b3c38 *sync > sp ip Function (args) > 0xffff88006c45fde8 0xffffffff80320990 radix_tree_tagged+0xa > (0x6b6b6b6b6b6b6b73, 0x0) > 0xffff88006c45fe10 0xffffffffa01f36c6 [xfs]xfs_sync_inodes_ag+0x197 > (0xffff88007d4025c8, invalid, invalid) > 0xffff88006c45fe80 0xffffffffa01f38d1 [xfs]xfs_sync_inodes+0x63 > (0xffff88007d4025c8, invalid) > 0xffff88006c45fec0 0xffffffffa01f3997 [xfs]xfs_quiesce_data+0x13 > (0xffff88007d4025c8) > 0xffff88006c45fee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b > (0xffff88007d9f10b8) > 0xffff88006c45ff40 0xffffffff80292fd2 sync_filesystems+0xae (invalid) > 0xffff88006c45ff60 0xffffffff802af48b do_sync+0x2f (0x1) > 0xffff88006c45ff70 0xffffffff802af4c4 sys_sync+0xe > bb_special_case: Invalid bb_reg_state.memory, missing trailing entries > bb_special_case: on transfer to int_with_check > Assuming system_call_fastpath is 'pass through' with 6 register parameters > kdb_bb: 0xffffffff8020be0b [kernel]system_call_fastpath failed at > 0xffffffff8020be98 > > Using old style backtrace, unreliable with no arguments > sp ip Function (args) > 0xffff88006c45fdb0 0xffffffffa01f369a [xfs]xfs_sync_inodes_ag+0x16b > 0xffff88006c45fde8 0xffffffff80320990 radix_tree_tagged+0xa > 0xffff88006c45fe10 0xffffffffa01f36c6 [xfs]xfs_sync_inodes_ag+0x197 > 0xffff88006c45fe80 0xffffffffa01f38d1 [xfs]xfs_sync_inodes+0x63 > 0xffff88006c45fec0 0xffffffffa01f3997 [xfs]xfs_quiesce_data+0x13 > 0xffff88006c45fec8 0xffffffff802452b9 autoremove_wake_function > 0xffff88006c45fee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b > 0xffff88006c45ff00 0xffffffff8043b871 __down_read+0x12 > 0xffff88006c45ff10 0xffffffffa024d395 [ext3]ext3_sync_fs+0x46 > 0xffff88006c45ff40 0xffffffff80292fd2 sync_filesystems+0xae > 0xffff88006c45ff60 0xffffffff802af48b do_sync+0x2f > 0xffff88006c45ff70 0xffffffff802af4c4 sys_sync+0xe > > > [1]kdb> rd > r15 = 0x0000000000000002 r14 = 0x0000000000000000 > r13 = 0x000000000000000a r12 = 0x0000000000000040 > bp = 0xffff88003793a9d8 bx = 0xffff880055c10250 > r11 = 0x0000000000000001 r10 = 0xffff880055d0ade8 > r9 = 0x000000000002309f r8 = 0xffffffffa01f369a > ax = 0x0000000000200000 cx = 0x0000000000000015 > dx = 0x0000000000000000 si = 0x0000000000000000 > di = 0x6b6b6b6b6b6b6b73 orig_ax = 0xffffffffffffffff > ip = 0xffffffff80320990 cs = 0x0000000000000010 > flags = 0x0000000000010206 sp = 0xffff88006c45fe00 > ss = 0x0000000000000018 ®s = 0xffff88006c45fd68 > > > [1]kdb> id %ip > 0xffffffff80320990 radix_tree_tagged+0xa: and 0x4(%rdi),%eax > 0xffffffff80320993 radix_tree_tagged+0xd: retq > 0xffffffff80320994 radix_tree_callback: cmp $0x7,%rsi > 0xffffffff80320998 radix_tree_callback+0x4: push %rbx > 0xffffffff80320999 radix_tree_callback+0x5: je > 0xffffffff803209a1 radix_tree_callback+0xd > 0xffffffff8032099b radix_tree_callback+0x7: cmp $0x17,%rsi > 0xffffffff8032099f radix_tree_callback+0xb: jne > 0xffffffff803209e1 radix_tree_callback+0x4d > 0xffffffff803209a1 radix_tree_callback+0xd: movslq %edx,%rax > 0xffffffff803209a4 radix_tree_callback+0x10: mov > 3961501(%rip),%rdx # 0xffffffff806e7c48 _cpu_pda > 0xffffffff803209ab radix_tree_callback+0x17: mov > $0xffffffff80796480,%rbx > 0xffffffff803209b2 radix_tree_callback+0x1e: mov (%rdx,%rax,8),%rax > 0xffffffff803209b6 radix_tree_callback+0x22: add 0x8(%rax),%rbx > 0xffffffff803209ba radix_tree_callback+0x26: jmp > 0xffffffff803209db radix_tree_callback+0x47 > 0xffffffff803209bc radix_tree_callback+0x28: cltq > 0xffffffff803209be radix_tree_callback+0x2a: mov > 5545627(%rip),%rdi # 0xffffffff8086a860 __key.8127 > 0xffffffff803209c5 radix_tree_callback+0x31: mov (%rbx,%rax,8),%rsi > > > > The back trace is a little busted xfs_sync_inodes_ag appears to be calling: > xfs_sync_inodes_ag->xfs_flush_pages->mapping_tagged->radix_tree_tagged() I think you'll find it's VN_DIRTY() here: 158 /* 159 * If we have to flush data or wait for I/O completion 160 * we need to drop the ilock that we currently hold. 161 * If we need to drop the lock, insert a marker if we 162 * have not already done so. 163 */ 164 if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { 165 xfs_iunlock(ip, XFS_ILOCK_SHARED); 166 error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); 167 if (flags & SYNC_IOWAIT) 168 vn_iowait(ip); 169 xfs_ilock(ip, XFS_ILOCK_SHARED); 170 } As: #define VN_DIRTY(vp) mapping_tagged(vp->i_mapping, \ PAGECACHE_TAG_DIRTY) Seems like we have a possible race with reclaim - we've found the dirty inode in the radix tree, then checked the reclaim state, then locked the inode, then tried to access the linux inode which is now now longer present. Can you confirm that the xfs_inode has either the I_RECLAIM or I_RECLAIMABLE flag set on it when the panic occurred? If this is the case, then the patch below will probably fix it. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 23 ++++------------------- 1 files changed, 4 insertions(+), 19 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 08b2acf..85495df 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -80,7 +80,6 @@ xfs_sync_inodes_ag( do { struct inode *inode; - boolean_t inode_refed; xfs_inode_t *ip = NULL; /* @@ -133,26 +132,15 @@ xfs_sync_inodes_ag( /* * If we can't get a reference on the VFS_I, the inode must be - * in reclaim. If we can get the inode lock without blocking, - * it is safe to flush the inode because we hold the tree lock - * and xfs_iextract will block right now. Hence if we lock the - * inode while holding the tree lock, xfs_ireclaim() is - * guaranteed to block on the inode lock we now hold and hence - * it is safe to reference the inode until we drop the inode - * locks completely. + * in reclaim. Leave it for the reclaim code to flush. */ - inode_refed = B_FALSE; if (igrab(inode)) { read_unlock(&pag->pag_ici_lock); xfs_ilock(ip, lock_flags); - inode_refed = B_TRUE; } else { - if (!xfs_ilock_nowait(ip, lock_flags)) { - /* leave it to reclaim */ - read_unlock(&pag->pag_ici_lock); - continue; - } + /* leave it to reclaim */ read_unlock(&pag->pag_ici_lock); + continue; } /* @@ -186,10 +174,7 @@ xfs_sync_inodes_ag( if (lock_flags) xfs_iunlock(ip, lock_flags); - - if (inode_refed) { - IRELE(ip); - } + IRELE(ip); if (error) last_error = error; From owner-xfs@oss.sgi.com Tue Oct 14 18:28:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F1SDgV001188 for ; Tue, 14 Oct 2008 18:28:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 8B4E89088B; Tue, 14 Oct 2008 18:29:52 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA11328; Wed, 15 Oct 2008 12:29:49 +1100 Message-ID: <48F55555.9000204@sgi.com> Date: Wed, 15 Oct 2008 12:28:37 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , Mark Goodwin , xfs@oss.sgi.com Subject: Re: fw: [PATCH] fix instant oops with tracing enabled References: <20081013223932.GE10716@disturbed> <48F3EA6F.9000209@sgi.com> <20081014131140.GB17351@lst.de> <48F546ED.6050702@sgi.com> <20081015005441.GR10716@disturbed> In-Reply-To: <20081015005441.GR10716@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Wed, Oct 15, 2008 at 11:27:09AM +1000, Lachlan McIlroy wrote: >> Christoph Hellwig wrote: >>> On Tue, Oct 14, 2008 at 10:40:15AM +1000, Mark Goodwin wrote: >>>> Lachlan also saw some regressions after merging these patchsets : >>>> . replace the mount inode list with radix tree traversals >>>> . clean up sync code >>> What exactly? I saw some softlookup in 042, but when applying Dave's >>> xfs_sync_inodeS_ag fix (or the hal of it applying without the del inodes >>> tracking in the radix tree) it goes away. >> I saw this panic but I don't think it's related to the above patches: >> >> [252921.307588] BUG: unable to handle kernel <3>BUG: scheduling while atomic: dd/16976/0xf101da90 > > Isn't there another line with this ouutput that looks like: > > atomic = 1 in_interrupt = 0 > > To indicate the "atomic" reason? No, no other output. > >> [252921.307908] Modules linked in: >> [252921.307911] Pid: 16976, comm: dd Not tainted 2.6.27-rc8 #183 >> [252921.307913] [252921.307913] Call Trace: > > [ snip exceedingly deep stack that'll blow a 4k ia32 stack > completely ] > > In summary, the stack is: > > write > balance_dirty_pages > xfs_iomap_write_allocate > > try_to_free_pages > xfs_iomap_write_allocate > _xfs_trans_commit > xlog_write > xlog_state_get_iclog_space > > > The question is what is the reason for running in atomic mode? > The only place I can see a sleep happening in this function is > the call to sv_wait(), which means the atomic state must have come > from higher up.... Seems very strange. Yeah it's got me bugged too. I had seen a similar problem in this code before where the tracing code was allocating memory with a spinlock held but that's gone now. > >> I saw sync get stuck in an infinite loop running test 042 - maybe the same >> problem you saw. > > Yes, that's the lockup that the later patch I posted fixes. Good. > >> I saw the panic in _xfs_itrace_exit() which has now been fixed. >> >> And I also saw this assertion: >> >> <4>[34770.626472] Assertion failed: (index >= 0) && (index < ktp->kt_nentries), file: fs/xfs/support/ktrace.c, line: 173 >> <0>[34770.626511] ------------[ cut here ]------------ >> <2>[34770.627419] kernel BUG at fs/xfs/support/debug.c:81! > > I can't see how that is related to the changes - it's a trace > buffer index overrun. That kind of implies that the ktrace_t > has been corrupted. Memory corruption of some kind? Yeah or maybe a use after free. The buffer and the buffer log item look sane but the ktrace hanging off the buffer log item is hosed. It's the first time I've seen it and it may just be a coincidence. From owner-xfs@oss.sgi.com Tue Oct 14 18:39:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F1dLKI002550 for ; Tue, 14 Oct 2008 18:39:21 -0700 X-ASG-Debug-ID: 1224034862-424501360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 173514FCBB0 for ; Tue, 14 Oct 2008 18:41:03 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id dJ9WASyw5D7jsnxR for ; Tue, 14 Oct 2008 18:41:03 -0700 (PDT) Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 12:02:09 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpvF8-0005Bv-QS for xfs@oss.sgi.com; Wed, 15 Oct 2008 12:32:06 +1100 Date: Wed, 15 Oct 2008 12:32:06 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Attribution of patches in the git tree... Subject: Attribution of patches in the git tree... Message-ID: <20081015013206.GT10716@disturbed> Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224034864 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4943 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7980 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Folks, Just noticed that all the btree factoring patches in the master tree are attributed to Christoph, even when his patch descriptions gave a different attribution for the source of the patch. e.g: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/xfs-2.6.git;a=commit;h=ea8fb246ad5230263f13e45635fad80cc04e28a0 > [XFS] implement generic xfs_btree_increment > > From: Dave Chinner > > Because this is the first major generic btree routine this patch includes > some infrastrucure, first a few routines to deal with a btree block that > can be either in short or long form, second xfs_btree_read_buf_block, > which is the new central routine to read a btree block given a cursor, and > third the new xfs_btree_ptr_addr routine to calculate the address for a > given btree pointer record. The description has a "From: blah" line indicates the author of the patch was not the person who sent the patch. i.e. the git "author" is incorrect, and the only way to find that out is by looking at the commit description. In future, can we please get the attribution for patches correct in the git tree so that things like pull requests and historical mining of the trees accurately reflect who the author of the patches really are? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 14 18:46:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F1kfgK003384 for ; Tue, 14 Oct 2008 18:46:41 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id DA75B8F8097; Tue, 14 Oct 2008 18:48:17 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA11783; Wed, 15 Oct 2008 12:48:15 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id D53EF58FA1E9; Wed, 15 Oct 2008 12:48:15 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Inode: Allow external initialisers Message-Id: <20081015014815.D53EF58FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 12:48:15 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Date: Wed Oct 15 12:47:17 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: 2.6.x-xfs-melb:linux:32321a fs/inode.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/inode.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h - Inode: Allow external initialisers To allow XFS to combine the XFS and linux inodes into a single structure, we need to drive inode lookup from the XFS inode cache, not the generic inode cache. This means that we need initialise a struct inode from a context outside alloc_inode() as it is no longer used by XFS. Factor and export the struct inode initialisation code from alloc_inode() to inode_init_always() as a counterpart to inode_init_once(). i.e. we have to call this init function for each inode instantiation (always), as opposed inode_init_once() which is only called on slab object instantiation (once). Signed-off-by: Dave Chinner include/linux/fs.h - 1.40 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs.h.diff?r1=text&tr1=1.40&r2=text&tr2=1.39&f=h - Inode: Allow external initialisers From owner-xfs@oss.sgi.com Tue Oct 14 18:57:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F1v4XH004667 for ; Tue, 14 Oct 2008 18:57:05 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 18E69304089; Tue, 14 Oct 2008 18:58:40 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA11905; Wed, 15 Oct 2008 12:58:39 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id ACD5358FA1E9; Wed, 15 Oct 2008 12:58:39 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Inode: Allow external list initialisation Message-Id: <20081015015839.ACD5358FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 12:58:39 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Date: Wed Oct 15 12:58:12 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: 2.6.x-xfs-melb:linux:32322a fs/inode.c - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/inode.c.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h include/linux/fs.h - 1.41 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/include/linux/fs.h.diff?r1=text&tr1=1.41&r2=text&tr2=1.40&f=h - Inode: Allow external list initialisation To allow XFS to combine the XFS and linux inodes into a single structure, we need to drive inode lookup from the XFS inode cache, not the generic inode cache. This means that we need initialise a struct inode from a context outside alloc_inode() as it is no longer used by XFS. After inode allocation and initialisation, we need to add the inode to the superblock list, the in-use list, hash it and do some accounting. This all needs to be done with the inode_lock held and there are already several places in fs/inode.c that do this list manipulation. Factor out the common code, add a locking wrapper and export the function so ti can be called from XFS. Signed-off-by: Dave Chinner From owner-xfs@oss.sgi.com Tue Oct 14 19:00:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F207O2005200 for ; Tue, 14 Oct 2008 19:00:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 2A63630406F; Tue, 14 Oct 2008 19:01:43 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12070; Wed, 15 Oct 2008 13:01:42 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 9F8F658FA1E9; Wed, 15 Oct 2008 13:01:42 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Combine the XFS and Linux inodes Message-Id: <20081015020142.9F8F658FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 13:01:42 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Combine the XFS and Linux inodes To avoid issues with different lifecycles of XFS and Linux inodes, embedd the linux inode inside the XFS inode. This means that the linux inode has the same lifecycle as the XFS inode, even when it has been released by the OS. XFS inodes don't live much longer than this (a short stint in reclaim at most), so there isn't significant memory usage penalties here. Version 3 o kill xfs_icount() Version 2 o remove unused commented out code from xfs_iget(). o kill useless cast in VFS_I() Signed-off-by: Dave Chinner Date: Wed Oct 15 13:01:18 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32323a fs/xfs/xfs_vnodeops.c - 1.777 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.777&r2=text&tr2=1.776&f=h fs/xfs/xfs_iget.c - 1.250 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.250&r2=text&tr2=1.249&f=h fs/xfs/xfs_inode.c - 1.530 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.530&r2=text&tr2=1.529&f=h fs/xfs/xfs_inode.h - 1.263 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.263&r2=text&tr2=1.262&f=h fs/xfs/linux-2.6/xfs_vnode.c - 1.165 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.c.diff?r1=text&tr1=1.165&r2=text&tr2=1.164&f=h fs/xfs/linux-2.6/xfs_super.c - 1.458 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.458&r2=text&tr2=1.457&f=h fs/xfs/linux-2.6/xfs_iops.c - 1.302 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.302&r2=text&tr2=1.301&f=h - Combine the XFS and Linux inodes From owner-xfs@oss.sgi.com Tue Oct 14 19:03:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F23b8k005737 for ; Tue, 14 Oct 2008 19:03:37 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id BD99B304097; Tue, 14 Oct 2008 19:05:19 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12135; Wed, 15 Oct 2008 13:05:18 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 15D7058FA1EB; Wed, 15 Oct 2008 13:05:18 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Prevent use-after-free caused by synchronous inode reclaim Message-Id: <20081015020518.15D7058FA1EB@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 13:05:18 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Prevent use-after-free caused by synchronous inode reclaim With the combined linux and XFS inode, we need to ensure that the combined structure is not freed before the generic code is finished with the inode. As it turns out, there is a case where the XFS inode is freed before the linux inode - when xfs_reclaim() is called from ->clear_inode() on a clean inode, the xfs inode is freed during that call. The generic code references the inode after the ->clear_inode() call, so this is a use after free situation. Fix the problem by moving the xfs_reclaim() call to ->destroy_inode() instead of in ->clear_inode(). This ensures the combined inode structure is not freed until after the generic code has finished with it. Signed-off-by: Dave Chinner Date: Wed Oct 15 13:04:57 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32324a fs/xfs/linux-2.6/xfs_super.c - 1.459 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.459&r2=text&tr2=1.458&f=h - Prevent use-after-free caused by synchronous inode reclaim From owner-xfs@oss.sgi.com Tue Oct 14 19:06:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F26MOY006218 for ; Tue, 14 Oct 2008 19:06:22 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id C15DE8F80A2; Tue, 14 Oct 2008 19:07:58 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12188; Wed, 15 Oct 2008 13:07:57 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 443A558FA1E9; Wed, 15 Oct 2008 13:07:57 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Fix build warning - xfs_fs_alloc_inode() needs a return statement Message-Id: <20081015020757.443A558FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 13:07:57 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Fix build warning - xfs_fs_alloc_inode() needs a return statement Date: Wed Oct 15 13:07:36 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32325a fs/xfs/linux-2.6/xfs_super.c - 1.460 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.460&r2=text&tr2=1.459&f=h - Fix build warning - xfs_fs_alloc_inode() needs a return statement From owner-xfs@oss.sgi.com Tue Oct 14 19:09:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F29EKA006733 for ; Tue, 14 Oct 2008 19:09:14 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 007658F80A2; Tue, 14 Oct 2008 19:10:56 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12259; Wed, 15 Oct 2008 13:10:55 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 6B76358FA1E9; Wed, 15 Oct 2008 13:10:55 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Message-Id: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 13:10:55 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Fix build error - use VFS_I() to access linux inode from xfs inode Date: Wed Oct 15 13:10:35 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-inode Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32326a fs/xfs/dmapi/xfs_dm.c - 1.79 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/dmapi/xfs_dm.c.diff?r1=text&tr1=1.79&r2=text&tr2=1.78&f=h - Fix build error - use VFS_I() to access linux inode from xfs inode From owner-xfs@oss.sgi.com Tue Oct 14 19:19:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2JPb7008271 for ; Tue, 14 Oct 2008 19:19:26 -0700 X-ASG-Debug-ID: 1224037266-2fc2015b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 278A1A8BFDB; Tue, 14 Oct 2008 19:21:07 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Q6LHGHbQMHmNRd7z; Tue, 14 Oct 2008 19:21:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kpw0Y-0002Hy-Mp; Wed, 15 Oct 2008 02:21:06 +0000 Date: Tue, 14 Oct 2008 22:21:06 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Message-ID: <20081015022106.GA22939@infradead.org> References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224037268 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7982 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- FYI I sent this patch out first on 22nd of August, and pinged it on 29th of Semptember.. From owner-xfs@oss.sgi.com Tue Oct 14 19:28:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2SAKL009463 for ; Tue, 14 Oct 2008 19:28:11 -0700 X-ASG-Debug-ID: 1224037791-424502f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 142C04FCFA0; Tue, 14 Oct 2008 19:29:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id CQR1gSQBwTeJx2ld; Tue, 14 Oct 2008 19:29:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kpw8z-0006gg-48; Wed, 15 Oct 2008 02:29:49 +0000 Date: Tue, 14 Oct 2008 22:29:49 -0400 From: Christoph Hellwig To: Peter Leckie , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015022948.GA20966@infradead.org> References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015011857.GS10716@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224037793 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7982 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B > + * in reclaim. Leave it for the reclaim code to flush. > */ > if (igrab(inode)) { > read_unlock(&pag->pag_ici_lock); > xfs_ilock(ip, lock_flags); > } else { > + /* leave it to reclaim */ > read_unlock(&pag->pag_ici_lock); > + continue; > } Might be betters as if (!igrab(inode)) { /* leave it to reclaim */ read_unlock(&pag->pag_ici_lock); continue; } read_unlock(&pag->pag_ici_lock); xfs_ilock(ip, lock_flags); which then also shows that we could stop doing the ilock at all for the DELWRI case, thas is after fixing the last caller doing SYNC_ATTR|SYNC_DELWRI. Well yeah, lots of things still to sort out in this area. From owner-xfs@oss.sgi.com Tue Oct 14 19:29:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2TD9i009633 for ; Tue, 14 Oct 2008 19:29:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 58D478F80A2; Tue, 14 Oct 2008 19:30:55 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12712; Wed, 15 Oct 2008 13:30:53 +1100 Message-ID: <48F563E1.4050909@sgi.com> Date: Wed, 15 Oct 2008 13:30:41 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Lachlan McIlroy , sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> In-Reply-To: <20081015022106.GA22939@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > FYI I sent this patch out first on 22nd of August, and pinged it on 29th > of Semptember.. Thus is why we need something like 'patchworks' hooked into the xfs@oss list - better tracking of patch submissions and their status. Cheers -- Mark From owner-xfs@oss.sgi.com Tue Oct 14 19:36:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2aH5D010740 for ; Tue, 14 Oct 2008 19:36:18 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 37B718F8097; Tue, 14 Oct 2008 19:38:00 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA12825; Wed, 15 Oct 2008 13:37:58 +1100 Message-ID: <48F5654E.3080900@sgi.com> Date: Wed, 15 Oct 2008 13:36:46 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> In-Reply-To: <20081015022106.GA22939@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sorry Christoph. I just don't have time to read all posts. I expect fixes to be in the same patch series that breaks the code - it didn't occur to me to go looking for a fix on OSS. Christoph Hellwig wrote: > FYI I sent this patch out first on 22nd of August, and pinged it on 29th > of Semptember.. > > > From owner-xfs@oss.sgi.com Tue Oct 14 19:38:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2caEB011180 for ; Tue, 14 Oct 2008 19:38:36 -0700 X-ASG-Debug-ID: 1224038415-092f003e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E7304FD207; Tue, 14 Oct 2008 19:40:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ibZVdIRlakaj38jS; Tue, 14 Oct 2008 19:40:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KpwJ5-0000cL-1U; Wed, 15 Oct 2008 02:40:15 +0000 Date: Tue, 14 Oct 2008 22:40:15 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: Christoph Hellwig , sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Message-ID: <20081015024014.GA21790@infradead.org> References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> <48F5654E.3080900@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F5654E.3080900@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224038419 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7982 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 15, 2008 at 01:36:46PM +1000, Lachlan McIlroy wrote: > Sorry Christoph. I just don't have time to read all posts. > > I expect fixes to be in the same patch series that breaks the code - it > didn't occur to me to go looking for a fix on OSS. Well, Daven unfortunately can't be bothered to use the same tree as everyone else. But I made it pretty clear in the patch that it is needed for the series when using a ptools/cvs style tree, and that it's harmless to apply it ASAP even without those bits. From owner-xfs@oss.sgi.com Tue Oct 14 19:45:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2jZSZ012209 for ; Tue, 14 Oct 2008 19:45:35 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 8961F8F8097; Tue, 14 Oct 2008 19:47:17 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA13070; Wed, 15 Oct 2008 13:47:16 +1100 Message-ID: <48F567BA.5040607@sgi.com> Date: Wed, 15 Oct 2008 13:47:06 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Peter Leckie , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> In-Reply-To: <20081015011857.GS10716@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Can you confirm that the xfs_inode has either the I_RECLAIM or > I_RECLAIMABLE flag set on it when the panic occurred? If this > is the case, then the patch below will probably fix it. > Yep XFS_IRECLAIMABLE is set, I'll give the patch a test and get back to you. Thanks, Pete From owner-xfs@oss.sgi.com Tue Oct 14 19:49:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2nTFT012854 for ; Tue, 14 Oct 2008 19:49:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 328268F807A; Tue, 14 Oct 2008 19:51:11 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA13112; Wed, 15 Oct 2008 13:51:08 +1100 Message-ID: <48F56864.7030004@sgi.com> Date: Wed, 15 Oct 2008 13:49:56 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> <48F5654E.3080900@sgi.com> <20081015024014.GA21790@infradead.org> In-Reply-To: <20081015024014.GA21790@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Wed, Oct 15, 2008 at 01:36:46PM +1000, Lachlan McIlroy wrote: >> Sorry Christoph. I just don't have time to read all posts. >> >> I expect fixes to be in the same patch series that breaks the code - it >> didn't occur to me to go looking for a fix on OSS. > > Well, Daven unfortunately can't be bothered to use the same tree as > everyone else. But I made it pretty clear in the patch that it is > needed for the series when using a ptools/cvs style tree, and that it's > harmless to apply it ASAP even without those bits. We really appreciate you using the cvs tree and keeping all the non- mainline stuff up to date and working. If you like I'll credit you for the patch when I push it to OSS. From owner-xfs@oss.sgi.com Tue Oct 14 19:50:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F2oaZ9013204 for ; Tue, 14 Oct 2008 19:50:36 -0700 X-ASG-Debug-ID: 1224039138-08a300770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 30F324FD0A0; Tue, 14 Oct 2008 19:52:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id NAFEIACQBE75q6hT; Tue, 14 Oct 2008 19:52:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KpwUk-0004Pb-HB; Wed, 15 Oct 2008 02:52:18 +0000 Date: Tue, 14 Oct 2008 22:52:18 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: Christoph Hellwig , sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Message-ID: <20081015025218.GB7864@infradead.org> References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> <48F5654E.3080900@sgi.com> <20081015024014.GA21790@infradead.org> <48F56864.7030004@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F56864.7030004@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224039139 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7983 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 15, 2008 at 01:49:56PM +1000, Lachlan McIlroy wrote: > We really appreciate you using the cvs tree and keeping all the non- > mainline stuff up to date and working. If you like I'll credit you for > the patch when I push it to OSS. I don't care much about the credit. It's just annoying that the thing first broke and had to be fixed and wasted your time just because patches get lost all the time. From owner-xfs@oss.sgi.com Tue Oct 14 20:08:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F38Zga015464 for ; Tue, 14 Oct 2008 20:08:36 -0700 X-ASG-Debug-ID: 1224040216-4fd900a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 329B5A8BD6D; Tue, 14 Oct 2008 20:10:16 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id ng3HFhnnXb9xKPtU; Tue, 14 Oct 2008 20:10:16 -0700 (PDT) Received: from Russell-Cattelans-MacBook.local (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m9F3AFva064817; Tue, 14 Oct 2008 22:10:16 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <48F55F17.1020800@thebarn.com> Date: Tue, 14 Oct 2008 22:10:15 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: markgw@sgi.com CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> <48F563E1.4050909@sgi.com> In-Reply-To: <48F563E1.4050909@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8426/Tue Oct 14 19:11:44 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1224040218 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4988 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7984 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Mark Goodwin wrote: > > > Christoph Hellwig wrote: >> FYI I sent this patch out first on 22nd of August, and pinged it on 29th >> of Semptember.. > > Thus is why we need something like 'patchworks' hooked into the xfs@oss > list - better tracking of patch submissions and their status. So what is patchworks? > > Cheers > -- Mark > From owner-xfs@oss.sgi.com Tue Oct 14 20:15:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F3FUO0016469 for ; Tue, 14 Oct 2008 20:15:32 -0700 X-ASG-Debug-ID: 1224040631-4d0701c50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 00351140143A for ; Tue, 14 Oct 2008 20:17:11 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id SCHaPdHbWfadd2hD for ; Tue, 14 Oct 2008 20:17:11 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAIz69Eh5LF1j/2dsb2JhbAC4JxwIh2VoCHs X-IronPort-AV: E=Sophos;i="4.33,413,1220193000"; d="scan'208";a="230199634" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 13:46:54 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpwsQ-0008Fu-1h; Wed, 15 Oct 2008 14:16:46 +1100 Date: Wed, 15 Oct 2008 14:16:46 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Peter Leckie , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015031645.GA25906@disturbed> Mail-Followup-To: Christoph Hellwig , Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015022948.GA20966@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224040633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7983 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B On Tue, Oct 14, 2008 at 10:29:49PM -0400, Christoph Hellwig wrote: > > + * in reclaim. Leave it for the reclaim code to flush. > > */ > > if (igrab(inode)) { > > read_unlock(&pag->pag_ici_lock); > > xfs_ilock(ip, lock_flags); > > } else { > > + /* leave it to reclaim */ > > read_unlock(&pag->pag_ici_lock); > > + continue; > > } > > Might be betters as > > if (!igrab(inode)) { > /* leave it to reclaim */ > read_unlock(&pag->pag_ici_lock); > continue; > } > > read_unlock(&pag->pag_ici_lock); > xfs_ilock(ip, lock_flags); Yes, saner and more consistent with other code to do it that way. > which then also shows that we could stop doing the ilock at all for > the DELWRI case, thas is after fixing the last caller doing > SYNC_ATTR|SYNC_DELWRI. Well yeah, lots of things still to sort out in > this area. Here's an updated patch that takes into account all this. it removes a fair chunk of code now.... Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Version 2: o change igrab logic to be more linear o remove initial reclaimable inode check now that we are using igrab() failure to detect inodes in reclaim o assert that igrab failure occurs only on reclaimable inodes o clean up inode locking - only grab the iolock if we are doing a SYNC_DELWRI call and we have a dirty inode. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_sync.c | 63 +++++++++--------------------------------- 1 files changed, 14 insertions(+), 49 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 08b2acf..d371423 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -63,25 +63,16 @@ xfs_sync_inodes_ag( int error = 0; int last_error = 0; int fflag = XFS_B_ASYNC; - int lock_flags = XFS_ILOCK_SHARED; if (flags & SYNC_DELWRI) fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ - if (flags & SYNC_DELWRI) { - /* - * We need the I/O lock if we're going to call any of - * the flush/inval routines. - */ - lock_flags |= XFS_IOLOCK_SHARED; - } - do { struct inode *inode; - boolean_t inode_refed; xfs_inode_t *ip = NULL; + int lock_flags = XFS_ILOCK_SHARED; /* * use a gang lookup to find the next inode in the tree @@ -109,15 +100,6 @@ xfs_sync_inodes_ag( break; } - /* - * skip inodes in reclaim. Let xfs_syncsub do that for - * us so we don't need to worry. - */ - if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { - read_unlock(&pag->pag_ici_lock); - continue; - } - /* bad inodes are dealt with elsewhere */ inode = VFS_I(ip); if (is_bad_inode(inode)) { @@ -132,42 +114,29 @@ xfs_sync_inodes_ag( } /* - * If we can't get a reference on the VFS_I, the inode must be - * in reclaim. If we can get the inode lock without blocking, - * it is safe to flush the inode because we hold the tree lock - * and xfs_iextract will block right now. Hence if we lock the - * inode while holding the tree lock, xfs_ireclaim() is - * guaranteed to block on the inode lock we now hold and hence - * it is safe to reference the inode until we drop the inode - * locks completely. + * If we can't get a reference on the inode, it must be + * in reclaim. Leave it for the reclaim code to flush. */ - inode_refed = B_FALSE; - if (igrab(inode)) { - read_unlock(&pag->pag_ici_lock); - xfs_ilock(ip, lock_flags); - inode_refed = B_TRUE; - } else { - if (!xfs_ilock_nowait(ip, lock_flags)) { - /* leave it to reclaim */ - read_unlock(&pag->pag_ici_lock); - continue; - } + if (!igrab(inode)) { + ASSERT(xfs_iflags_test(ip, + (XFS_IRECLAIM|XFS_IRECLAIMABLE))); read_unlock(&pag->pag_ici_lock); + continue; } + read_unlock(&pag->pag_ici_lock); /* * If we have to flush data or wait for I/O completion - * we need to drop the ilock that we currently hold. - * If we need to drop the lock, insert a marker if we - * have not already done so. + * we need to hold the iolock. */ if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { - xfs_iunlock(ip, XFS_ILOCK_SHARED); + xfs_ilock(ip, XFS_IOLOCK_SHARED); + lock_flags |= XFS_IOLOCK_SHARED; error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); if (flags & SYNC_IOWAIT) vn_iowait(ip); - xfs_ilock(ip, XFS_ILOCK_SHARED); } + xfs_ilock(ip, XFS_ILOCK_SHARED); if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { if (flags & SYNC_WAIT) { @@ -184,12 +153,8 @@ xfs_sync_inodes_ag( } } - if (lock_flags) - xfs_iunlock(ip, lock_flags); - - if (inode_refed) { - IRELE(ip); - } + xfs_iunlock(ip, lock_flags); + IRELE(ip); if (error) last_error = error; From owner-xfs@oss.sgi.com Tue Oct 14 20:22:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F3MnTg022190 for ; Tue, 14 Oct 2008 20:22:51 -0700 X-ASG-Debug-ID: 1224041071-4f7b00d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 57634A8BEC8; Tue, 14 Oct 2008 20:24:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id POL71XuagHNRrhMG; Tue, 14 Oct 2008 20:24:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kpwzv-0001wz-M5; Wed, 15 Oct 2008 03:24:31 +0000 Date: Tue, 14 Oct 2008 23:24:31 -0400 From: Christoph Hellwig To: Christoph Hellwig , Peter Leckie , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015032431.GA7426@infradead.org> References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015031645.GA25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224041072 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.77 X-Barracuda-Spam-Status: No, SCORE=1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RATWARE_EFROM X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7984 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 3.79 RATWARE_EFROM Bulk email fingerprint (envfrom) found On Wed, Oct 15, 2008 at 02:16:46PM +1100, Dave Chinner wrote: > + xfs_iunlock(ip, lock_flags); > + IRELE(ip); Aka xfs_iput(ip, lock_flags); From owner-xfs@oss.sgi.com Tue Oct 14 20:49:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F3ng2g025456 for ; Tue, 14 Oct 2008 20:49:43 -0700 X-ASG-Debug-ID: 1224042683-4fd201160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5841FA8F66A for ; Tue, 14 Oct 2008 20:51:24 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id IHqF4W2Jr1Mq4qyD for ; Tue, 14 Oct 2008 20:51:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAFUF9Uh5LF1j/2dsb2JhbAC4IogBgWs X-IronPort-AV: E=Sophos;i="4.33,413,1220193000"; d="scan'208";a="230222744" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 14:21:22 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KpxPt-0002U6-69; Wed, 15 Oct 2008 14:51:21 +1100 Date: Wed, 15 Oct 2008 14:51:16 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Peter Leckie , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015035116.GB25906@disturbed> Mail-Followup-To: Christoph Hellwig , Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015032431.GA7426@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224042685 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 14, 2008 at 11:24:31PM -0400, Christoph Hellwig wrote: > On Wed, Oct 15, 2008 at 02:16:46PM +1100, Dave Chinner wrote: > > + xfs_iunlock(ip, lock_flags); > > + IRELE(ip); > > Aka xfs_iput(ip, lock_flags); Update below. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Version 3: o converted unlock/rele to an xfs_iput() call. Version 2: o change igrab logic to be more linear o remove initial reclaimable inode check now that we are using igrab() failure to find reclaimable inodes o assert that igrab failure occurs only on reclaimable inodes o clean up inode locking - only grab the iolock if we are doing a SYNC_DELWRI call and we have a dirty inode. --- fs/xfs/linux-2.6/xfs_sync.c | 63 +++++++++---------------------------------- 1 files changed, 13 insertions(+), 50 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 08b2acf..8a4bb3c 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -63,25 +63,16 @@ xfs_sync_inodes_ag( int error = 0; int last_error = 0; int fflag = XFS_B_ASYNC; - int lock_flags = XFS_ILOCK_SHARED; if (flags & SYNC_DELWRI) fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ - if (flags & SYNC_DELWRI) { - /* - * We need the I/O lock if we're going to call any of - * the flush/inval routines. - */ - lock_flags |= XFS_IOLOCK_SHARED; - } - do { struct inode *inode; - boolean_t inode_refed; xfs_inode_t *ip = NULL; + int lock_flags = XFS_ILOCK_SHARED; /* * use a gang lookup to find the next inode in the tree @@ -109,15 +100,6 @@ xfs_sync_inodes_ag( break; } - /* - * skip inodes in reclaim. Let xfs_syncsub do that for - * us so we don't need to worry. - */ - if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { - read_unlock(&pag->pag_ici_lock); - continue; - } - /* bad inodes are dealt with elsewhere */ inode = VFS_I(ip); if (is_bad_inode(inode)) { @@ -132,42 +114,29 @@ xfs_sync_inodes_ag( } /* - * If we can't get a reference on the VFS_I, the inode must be - * in reclaim. If we can get the inode lock without blocking, - * it is safe to flush the inode because we hold the tree lock - * and xfs_iextract will block right now. Hence if we lock the - * inode while holding the tree lock, xfs_ireclaim() is - * guaranteed to block on the inode lock we now hold and hence - * it is safe to reference the inode until we drop the inode - * locks completely. + * If we can't get a reference on the inode, it must be + * in reclaim. Leave it for the reclaim code to flush. */ - inode_refed = B_FALSE; - if (igrab(inode)) { - read_unlock(&pag->pag_ici_lock); - xfs_ilock(ip, lock_flags); - inode_refed = B_TRUE; - } else { - if (!xfs_ilock_nowait(ip, lock_flags)) { - /* leave it to reclaim */ - read_unlock(&pag->pag_ici_lock); - continue; - } + if (!igrab(inode)) { + ASSERT(xfs_iflags_test(ip, + (XFS_IRECLAIM|XFS_IRECLAIMABLE))); read_unlock(&pag->pag_ici_lock); + continue; } + read_unlock(&pag->pag_ici_lock); /* * If we have to flush data or wait for I/O completion - * we need to drop the ilock that we currently hold. - * If we need to drop the lock, insert a marker if we - * have not already done so. + * we need to hold the iolock. */ if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { - xfs_iunlock(ip, XFS_ILOCK_SHARED); + xfs_ilock(ip, XFS_IOLOCK_SHARED); + lock_flags |= XFS_IOLOCK_SHARED; error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); if (flags & SYNC_IOWAIT) vn_iowait(ip); - xfs_ilock(ip, XFS_ILOCK_SHARED); } + xfs_ilock(ip, XFS_ILOCK_SHARED); if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { if (flags & SYNC_WAIT) { @@ -183,13 +152,7 @@ xfs_sync_inodes_ag( xfs_ifunlock(ip); } } - - if (lock_flags) - xfs_iunlock(ip, lock_flags); - - if (inode_refed) { - IRELE(ip); - } + xfs_iput(ip, lock_flags); if (error) last_error = error; From owner-xfs@oss.sgi.com Tue Oct 14 21:48:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F4mcvO032290 for ; Tue, 14 Oct 2008 21:48:38 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id A43C0908A0; Tue, 14 Oct 2008 21:50:17 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA15079; Wed, 15 Oct 2008 15:50:14 +1100 Message-ID: <48F5848B.1020409@sgi.com> Date: Wed, 15 Oct 2008 15:50:03 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Russell Cattelan CC: xfs@oss.sgi.com Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <20081015022106.GA22939@infradead.org> <48F563E1.4050909@sgi.com> <48F55F17.1020800@thebarn.com> In-Reply-To: <48F55F17.1020800@thebarn.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Russell Cattelan wrote: > Mark Goodwin wrote: >> >> >> Christoph Hellwig wrote: >>> FYI I sent this patch out first on 22nd of August, and pinged it on 29th >>> of Semptember.. >> >> Thus is why we need something like 'patchworks' hooked into the xfs@oss >> list - better tracking of patch submissions and their status. > So what is patchworks? It's a patch submission tracking system for project mailing lists such as xfs@oss. See http://ozlabs.org/~jk/projects/patchwork -- Mark From owner-xfs@oss.sgi.com Tue Oct 14 21:49:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F4nISj032495 for ; Tue, 14 Oct 2008 21:49:18 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 63D3D90896; Tue, 14 Oct 2008 21:51:00 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA15100; Wed, 15 Oct 2008 15:50:58 +1100 Message-ID: <48F584B8.8060907@sgi.com> Date: Wed, 15 Oct 2008 15:50:48 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner , Peter Leckie , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> In-Reply-To: <20081015035116.GB25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Update below. > > Cheers, > > Dave. > The original patch appeared to fix the issue, however the latest one Oops as follows: 177 553s ...BUG: unable to handle kernel NULL pointer dereference at 00000000000000e8 IP: [] is_bad_inode+0x2/0x11 PGD 7b0fe067 PUD 4c414067 PMD 0 Oops: 0000 [1] SMP Entering kdb (current=0xffff88007f15e190, pid 6915) on processor 1 Oops: due to oops @ 0xffffffff802a406e r15 = 0x0000000000000040 r14 = 0xffff88007e9ae608 r13 = 0x0000000000000000 r12 = 0x000000000000000a bp = 0xffff8800375a8d68 bx = 0x0000000000000000 r11 = 0x0000000000000001 r10 = 0x0000000000000085 r9 = 0xffff880057cd3dc0 r8 = 0xffff88007b0cddf0 ax = 0x0000000000000000 cx = 0x000000000000001b dx = 0x0000000000000084 si = 0xffff880057d0c248 di = 0x0000000000000000 orig_ax = 0xffffffffffffffff ip = 0xffffffff802a406e cs = 0x0000000000000010 flags = 0x0000000000010246 sp = 0xffff88007b0cde10 ss = 0x0000000000000018 ®s = 0xffff88007b0cdd78 [1]kdb> bt Stack traceback for pid 6915 0xffff88007f15e190 6915 6735 1 1 R 0xffff88007f15e4f8 *bulkstat_unlink sp ip Function (args) 0xffff88007b0cddf8 0xffffffff802a406e is_bad_inode+0x2 (0x0) 0xffff88007b0cde20 0xffffffffa01f3615 [xfs]xfs_sync_inodes_ag+0xe6 (0xffff88007e9ae608, invalid, invalid) 0xffff88007b0cde80 0xffffffffa01f3864 [xfs]xfs_sync_inodes+0x63 (0xffff88007e9ae608, invalid) 0xffff88007b0cdec0 0xffffffffa01f392a [xfs]xfs_quiesce_data+0x13 (0xffff88007e9ae608) 0xffff88007b0cdee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b (0xffff88007b878730) 0xffff88007b0cdf40 0xffffffff80292fd2 sync_filesystems+0xae (invalid) 0xffff88007b0cdf60 0xffffffff802af48b do_sync+0x2f (0x1) 0xffff88007b0cdf70 0xffffffff802af4c4 sys_sync+0xe bb_special_case: Invalid bb_reg_state.memory, missing trailing entries bb_special_case: on transfer to int_with_check Assuming system_call_fastpath is 'pass through' with 6 register parameters kdb_bb: 0xffffffff8020be0b [kernel]system_call_fastpath failed at 0xffffffff8020be98 Using old style backtrace, unreliable with no arguments sp ip Function (args) 0xffff88007b0cddf8 0xffffffff802a406e is_bad_inode+0x2 0xffff88007b0cde20 0xffffffffa01f3615 [xfs]xfs_sync_inodes_ag+0xe6 0xffff88007b0cde80 0xffffffffa01f3864 [xfs]xfs_sync_inodes+0x63 0xffff88007b0cdec0 0xffffffffa01f392a [xfs]xfs_quiesce_data+0x13 0xffff88007b0cdec8 0xffffffff802452b9 autoremove_wake_function 0xffff88007b0cdee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b 0xffff88007b0cdf00 0xffffffff8043b871 __down_read+0x12 0xffff88007b0cdf10 0xffffffffa024d395 [ext3]ext3_sync_fs+0x46 0xffff88007b0cdf40 0xffffffff80292fd2 sync_filesystems+0xae 0xffff88007b0cdf60 0xffffffff802af48b do_sync+0x2f 0xffff88007b0cdf70 0xffffffff802af4c4 sys_sync+0xe [1]kdb> id %ip 0xffffffff802a406e is_bad_inode+0x2: cmpq $0xffffffff8045ce20,0xe8(%rdi) 0xffffffff802a4079 is_bad_inode+0xd: sete %al 0xffffffff802a407c is_bad_inode+0x10: retq 0xffffffff802a407d make_bad_inode: push %rbx 0xffffffff802a407e make_bad_inode+0x1: mov %rdi,%rbx 0xffffffff802a4081 make_bad_inode+0x4: callq 0xffffffff802a25d5 remove_inode_hash 0xffffffff802a4086 make_bad_inode+0x9: mov 0xf8(%rbx),%rdi 0xffffffff802a408d make_bad_inode+0x10: movw $0x8000,0xb2(%rbx) 0xffffffff802a4096 make_bad_inode+0x19: callq 0xffffffff80237d6b current_fs_time 0xffffffff802a409b make_bad_inode+0x1e: movq $0xffffffff8045ce20,0xe8(%rbx) 0xffffffff802a40a6 make_bad_inode+0x29: mov %rax,0x90(%rbx) 0xffffffff802a40ad make_bad_inode+0x30: mov %rdx,0x98(%rbx) 0xffffffff802a40b4 make_bad_inode+0x37: mov %rax,0x80(%rbx) 0xffffffff802a40bb make_bad_inode+0x3e: mov %rdx,0x88(%rbx) 0xffffffff802a40c2 make_bad_inode+0x45: mov %rax,0x70(%rbx) 0xffffffff802a40c6 make_bad_inode+0x49: mov %rdx,0x78(%rbx) Thanks, Pete From owner-xfs@oss.sgi.com Tue Oct 14 22:08:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F58LaF002224 for ; Tue, 14 Oct 2008 22:08:21 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id CDC77304089; Tue, 14 Oct 2008 22:09:57 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15395; Wed, 15 Oct 2008 16:09:55 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id D0AFD58FA1E9; Wed, 15 Oct 2008 16:09:55 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - move inode reclaim functions to xfs_sync.c Message-Id: <20081015050955.D0AFD58FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:09:55 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) move inode reclaim functions to xfs_sync.c Background inode reclaim is run by the xfssyncd. Move the reclaim worker functions to be close to the sync code as the are very similar in structure and are both run from the same background thread. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:09:34 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32329a fs/xfs/xfs_vnodeops.c - 1.778 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.778&r2=text&tr2=1.777&f=h fs/xfs/xfs_inode.h - 1.264 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.264&r2=text&tr2=1.263&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.9 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.8&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.18 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.17&f=h - move inode reclaim functions to xfs_sync.c From owner-xfs@oss.sgi.com Tue Oct 14 22:10:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5AOsA002687 for ; Tue, 14 Oct 2008 22:10:24 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id E25928F809D; Tue, 14 Oct 2008 22:12:00 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15444; Wed, 15 Oct 2008 16:11:59 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 902A958FA1E9; Wed, 15 Oct 2008 16:11:59 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - rename inode reclaim functions Message-Id: <20081015051159.902A958FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:11:59 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) rename inode reclaim functions The function names xfs_finish_reclaim and xfs_finish_reclaim_all are not very descriptive of what they are reclaiming. Rename to xfs_reclaim_inode[s] to match the xfs_sync_inodes() function. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:11:42 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32330a fs/xfs/xfs_vnodeops.c - 1.779 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.779&r2=text&tr2=1.778&f=h fs/xfs/xfs_mount.c - 1.450 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.450&r2=text&tr2=1.449&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.10 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.9&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h - rename inode reclaim functions From owner-xfs@oss.sgi.com Tue Oct 14 22:11:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5BXqS003221 for ; Tue, 14 Oct 2008 22:11:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 0F6F0304089; Tue, 14 Oct 2008 22:13:15 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15505; Wed, 15 Oct 2008 16:13:14 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 9C93E58FA1E9; Wed, 15 Oct 2008 16:13:14 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - mark inodes for reclaim via a tag in the inode radix tree Message-Id: <20081015051314.9C93E58FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:13:14 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) mark inodes for reclaim via a tag in the inode radix tree Prepare for removing the deleted inode list by marking inodes for reclaim in the inode radix trees so that we can use the radix trees to find reclaimable inodes. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:12:53 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32331a fs/xfs/xfs_ag.h - 1.64 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_ag.h.diff?r1=text&tr1=1.64&r2=text&tr2=1.63&f=h fs/xfs/xfs_vnodeops.c - 1.780 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.780&r2=text&tr2=1.779&f=h fs/xfs/xfs_iget.c - 1.251 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.251&r2=text&tr2=1.250&f=h fs/xfs/linux-2.6/xfs_sync.h - 1.11 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.h.diff?r1=text&tr1=1.11&r2=text&tr2=1.10&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h - mark inodes for reclaim via a tag in the inode radix tree From owner-xfs@oss.sgi.com Tue Oct 14 22:12:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5Cbrd003542 for ; Tue, 14 Oct 2008 22:12:37 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 0B9CB8F808F; Tue, 14 Oct 2008 22:14:19 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15545; Wed, 15 Oct 2008 16:14:18 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B196858FA1EB; Wed, 15 Oct 2008 16:14:18 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - use the inode radix tree for reclaiming inodes Message-Id: <20081015051418.B196858FA1EB@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:14:18 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) use the inode radix tree for reclaiming inodes Use the reclaim tag to walk the radix tree and find the inodes under reclaim. This was the only user of the deleted inode list. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:14:00 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32333a fs/xfs/linux-2.6/xfs_sync.c - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h - use the inode radix tree for reclaiming inodes From owner-xfs@oss.sgi.com Tue Oct 14 22:14:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5E7hx003949 for ; Tue, 14 Oct 2008 22:14:08 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 8A074304069; Tue, 14 Oct 2008 22:15:49 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15591; Wed, 15 Oct 2008 16:15:47 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id CBDFC58FA1E9; Wed, 15 Oct 2008 16:15:47 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - kill deleted inodes list Message-Id: <20081015051547.CBDFC58FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:15:47 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) kill deleted inodes list Now that the deleted inodes list is unused, kill it. This also removes the i_reclaim list head from the xfs_inode, shrinking it by two pointers. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:15:14 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32334a fs/xfs/xfs_vnodeops.c - 1.781 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.781&r2=text&tr2=1.780&f=h fs/xfs/xfs_iget.c - 1.252 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.252&r2=text&tr2=1.251&f=h fs/xfs/xfs_mount.h - 1.281 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.281&r2=text&tr2=1.280&f=h fs/xfs/xfs_mount.c - 1.451 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.c.diff?r1=text&tr1=1.451&r2=text&tr2=1.450&f=h fs/xfs/xfs_inode.c - 1.531 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.531&r2=text&tr2=1.530&f=h fs/xfs/xfs_inode.h - 1.265 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.265&r2=text&tr2=1.264&f=h fs/xfs/linux-2.6/xfs_super.c - 1.461 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.461&r2=text&tr2=1.460&f=h fs/xfs/linux-2.6/xfs_sync.c - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h - kill deleted inodes list From owner-xfs@oss.sgi.com Tue Oct 14 22:15:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5F6PZ004312 for ; Tue, 14 Oct 2008 22:15:06 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id BF821304093; Tue, 14 Oct 2008 22:16:48 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15657; Wed, 15 Oct 2008 16:16:47 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id CB89858FA1E9; Wed, 15 Oct 2008 16:16:46 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - Prevent looping in xfs_sync_inodes_ag Message-Id: <20081015051646.CB89858FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:16:46 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Prevent looping in xfs_sync_inodes_ag If the last block of the AG has inodes in it and the AG is an exactly power-of-2 size then the last inode in the AG points to the last block in the AG. If we try to find the next inode in the AG by adding one to the inode number, we increment the inode number past the size of the AG. The result is that the macro XFS_INO_TO_AGINO() will strip the AG portion of the inode number and return an inode number of zero. That is, instead of terminating the lookup loop because we hit the inode number went outside the valid range for the AG, the search index returns to zero and we start traversing the radix tree from the start again. This results in an endless loop in xfs_sync_inodes_ag(). Fix it be detecting if the new search index decreases as a result of incrementing the current inode number. That indicate an overflow and hence that we have finished processing the AG so we can terminate the loop. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:16:29 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32335a fs/xfs/linux-2.6/xfs_sync.c - 1.23 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.22&f=h - Prevent looping in xfs_sync_inodes_ag From owner-xfs@oss.sgi.com Tue Oct 14 22:16:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5GXuo004699 for ; Tue, 14 Oct 2008 22:16:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 3527230404F; Tue, 14 Oct 2008 22:18:16 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15820; Wed, 15 Oct 2008 16:18:14 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id DE6C858FA1E9; Wed, 15 Oct 2008 16:18:14 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - Remove xfs_finish_reclaim_all() since it no longer exists. Message-Id: <20081015051814.DE6C858FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:18:14 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Remove xfs_finish_reclaim_all() since it no longer exists. Date: Wed Oct 15 16:17:55 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32337a fs/xfs/linux-2.6/xfs_ksyms.c - 1.92 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.92&r2=text&tr2=1.91&f=h - Remove xfs_finish_reclaim_all() since it no longer exists. From owner-xfs@oss.sgi.com Tue Oct 14 22:22:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5MquB005729 for ; Tue, 14 Oct 2008 22:22:52 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id A576A30407B; Tue, 14 Oct 2008 22:24:34 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA15908; Wed, 15 Oct 2008 16:24:33 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 4DE1B58FA1E9; Wed, 15 Oct 2008 16:24:33 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988142 - Remove use of m_ilock from mount structure as it no longer exists. Message-Id: <20081015052433.4DE1B58FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:24:33 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Remove use of m_ilock from mount structure as it no longer exists. Date: Wed Oct 15 16:24:15 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32338a fs/xfs/xfsidbg.c - 1.371 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.371&r2=text&tr2=1.370&f=h - Remove use of m_ilock from mount structure as it no longer exists. From owner-xfs@oss.sgi.com Tue Oct 14 22:34:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5YiKP007229 for ; Tue, 14 Oct 2008 22:34:45 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id C31B7304059; Tue, 14 Oct 2008 22:36:26 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA16150; Wed, 15 Oct 2008 16:36:25 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 737BC58FA1EB; Wed, 15 Oct 2008 16:36:25 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 988236 - xfstests/189.out remount test update Message-Id: <20081015053625.737BC58FA1EB@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:36:25 +1100 (EST) From: tes@sgi.com (Tim Shimmin) Update 189.out for the touch test. Date: Wed Oct 15 16:35:31 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/xfs-cmds Inspected by: tes@sgi.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/xfs-cmds/master-melb Modid: master-melb:xfs-cmds:32339a xfstests/189.out - 1.2 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-cmds/xfstests/189.out.diff?r1=text&tr1=1.2&r2=text&tr2=1.1&f=h - Update 189.out for the touch test. From owner-xfs@oss.sgi.com Tue Oct 14 22:45:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5jNV0008669 for ; Tue, 14 Oct 2008 22:45:24 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id CABB08F808B; Tue, 14 Oct 2008 22:47:05 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA16343; Wed, 15 Oct 2008 16:47:04 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 3D60158FA1E9; Wed, 15 Oct 2008 16:47:04 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988144 - Account for allocated blocks when expanding directories Message-Id: <20081015054704.3D60158FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:47:04 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Account for allocated blocks when expanding directories When we create a directory, we reserve a number of blocks for the maximum possible expansion of of the directory due to various btree splits, freespace allocation, etc. Unfortunately, each allocation is not reflected in the total number of blocks still available to the transaction, so the maximal reservation is used over and over again. This leads to problems where an allocation group has only enough blocks for *some* of the allocations required for the directory modification. After the first N allocations, the remaining blocks in the allocation group drops below the total reservation, and subsequent allocations fail because the allocator will not allow the allocation to proceed if the AG does not have the enough blocks available for the entire allocation total. This results in an ENOSPC occurring after an allocation has already occurred. This results in aborting the directory operation (leaving the directory in an inconsistent state) and cancelling a dirty transaction, which results in a filesystem shutdown. Avoid the problem by reflecting the number of blocks allocated in any directory expansion in the total number of blocks available to the modification in progress. This prevents a directory modification from being aborted part way through with an ENOSPC. Signed-off-by: Dave Chinner Date: Wed Oct 15 16:46:37 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-reclaim Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32340a fs/xfs/xfs_da_btree.c - 1.184 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_da_btree.c.diff?r1=text&tr1=1.184&r2=text&tr2=1.183&f=h fs/xfs/xfs_dir2.c - 1.70 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dir2.c.diff?r1=text&tr1=1.70&r2=text&tr2=1.69&f=h - Account for allocated blocks when expanding directories From owner-xfs@oss.sgi.com Tue Oct 14 22:49:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F5nmSk009405 for ; Tue, 14 Oct 2008 22:49:48 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 74D0D9088C; Tue, 14 Oct 2008 22:51:25 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA16454; Wed, 15 Oct 2008 16:51:24 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 1774158FA1E9; Wed, 15 Oct 2008 16:51:24 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 988236 - fix remount rw with unrecognized options Message-Id: <20081015055124.1774158FA1E9@chook.melbourne.sgi.com> Date: Wed, 15 Oct 2008 16:51:24 +1100 (EST) From: tes@sgi.com (Tim Shimmin) fix remount rw with unrecognized options When we skip unrecognized options in xfs_fs_remount we should just break out of the switch and not return because otherwise we may skip clearing the xfs-internal read-only flag. This will only show up on some operations like touch because most read-only checks are done by the VFS which thinks this filesystem is r/w. Eventually we should replace the XFS read-only flag with a helper that always checks the VFS flag to make sure they can never get out of sync. Bug reported and fix verified by Marcel Beister on #xfs. Bug fix verified by updated xfstests/189. Signed-off-by: Christoph Hellwig Date: Wed Oct 15 16:50:37 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/2.6.x-xfs-quilt Inspected by: hch@lst.de,sandeen@sandeen.net The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32341a fs/xfs/linux-2.6/xfs_super.c - 1.462 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.462&r2=text&tr2=1.461&f=h - fix remount rw with unrecognized options From owner-xfs@oss.sgi.com Tue Oct 14 23:18:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F6I4ko013306 for ; Tue, 14 Oct 2008 23:18:04 -0700 X-ASG-Debug-ID: 1224051585-15ab02350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1AB5F4FD7CB for ; Tue, 14 Oct 2008 23:19:45 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 08y0BkOhHnkleYA0 for ; Tue, 14 Oct 2008 23:19:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAG8o9Uh5LF1j/2dsb2JhbAC4KogFgWs X-IronPort-AV: E=Sophos;i="4.33,414,1220193000"; d="scan'208";a="230344493" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 15 Oct 2008 16:49:23 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kpzj3-00074r-AS; Wed, 15 Oct 2008 17:19:17 +1100 Date: Wed, 15 Oct 2008 17:19:17 +1100 From: Dave Chinner To: Peter Leckie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081015061917.GC25906@disturbed> Mail-Followup-To: Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F584B8.8060907@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224051587 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.7991 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 15, 2008 at 03:50:48PM +1000, Peter Leckie wrote: > Dave Chinner wrote: >> Update below. >> >> Cheers, >> >> Dave. >> > The original patch appeared to fix the issue, however the latest one > Oops as follows: Well, I think the problem dhould be obvious - it's the same as the first report - deferencing the linux inode without first having a refernce on it. FWIW, if you apply the "combine linux/xfs inode" patch series, this failure will go away. Updated patch below. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Version 4: o don't reference liinux inode untiil after igrab() succeeds Version 3: o converted unlock/rele to an xfs_iput() call. Version 2: o change igrab logic to be more linear o remove initial reclaimable inode check now that we are using igrab() failure to find reclaimable inodes o assert that igrab failure occurs only on reclaimable inodes o clean up inode locking - only grab the iolock if we are doing a SYNC_DELWRI call and we have a dirty inode. --- fs/xfs/linux-2.6/xfs_sync.c | 75 ++++++++++-------------------------------- 1 files changed, 18 insertions(+), 57 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 08b2acf..39ed7f3 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -63,25 +63,16 @@ xfs_sync_inodes_ag( int error = 0; int last_error = 0; int fflag = XFS_B_ASYNC; - int lock_flags = XFS_ILOCK_SHARED; if (flags & SYNC_DELWRI) fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ - if (flags & SYNC_DELWRI) { - /* - * We need the I/O lock if we're going to call any of - * the flush/inval routines. - */ - lock_flags |= XFS_IOLOCK_SHARED; - } - do { struct inode *inode; - boolean_t inode_refed; xfs_inode_t *ip = NULL; + int lock_flags = XFS_ILOCK_SHARED; /* * use a gang lookup to find the next inode in the tree @@ -109,22 +100,6 @@ xfs_sync_inodes_ag( break; } - /* - * skip inodes in reclaim. Let xfs_syncsub do that for - * us so we don't need to worry. - */ - if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { - read_unlock(&pag->pag_ici_lock); - continue; - } - - /* bad inodes are dealt with elsewhere */ - inode = VFS_I(ip); - if (is_bad_inode(inode)) { - read_unlock(&pag->pag_ici_lock); - continue; - } - /* nothing to sync during shutdown */ if (XFS_FORCED_SHUTDOWN(mp)) { read_unlock(&pag->pag_ici_lock); @@ -132,42 +107,34 @@ xfs_sync_inodes_ag( } /* - * If we can't get a reference on the VFS_I, the inode must be - * in reclaim. If we can get the inode lock without blocking, - * it is safe to flush the inode because we hold the tree lock - * and xfs_iextract will block right now. Hence if we lock the - * inode while holding the tree lock, xfs_ireclaim() is - * guaranteed to block on the inode lock we now hold and hence - * it is safe to reference the inode until we drop the inode - * locks completely. + * If we can't get a reference on the inode, it must be + * in reclaim. Leave it for the reclaim code to flush. */ - inode_refed = B_FALSE; - if (igrab(inode)) { - read_unlock(&pag->pag_ici_lock); - xfs_ilock(ip, lock_flags); - inode_refed = B_TRUE; - } else { - if (!xfs_ilock_nowait(ip, lock_flags)) { - /* leave it to reclaim */ - read_unlock(&pag->pag_ici_lock); - continue; - } + inode = VFS_I(ip); + if (!igrab(inode)) { read_unlock(&pag->pag_ici_lock); + continue; + } + read_unlock(&pag->pag_ici_lock); + + /* bad inodes are dealt with elsewhere */ + if (is_bad_inode(inode)) { + IRELE(ip); + continue; } /* * If we have to flush data or wait for I/O completion - * we need to drop the ilock that we currently hold. - * If we need to drop the lock, insert a marker if we - * have not already done so. + * we need to hold the iolock. */ if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { - xfs_iunlock(ip, XFS_ILOCK_SHARED); + xfs_ilock(ip, XFS_IOLOCK_SHARED); + lock_flags |= XFS_IOLOCK_SHARED; error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); if (flags & SYNC_IOWAIT) vn_iowait(ip); - xfs_ilock(ip, XFS_ILOCK_SHARED); } + xfs_ilock(ip, XFS_ILOCK_SHARED); if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { if (flags & SYNC_WAIT) { @@ -183,13 +150,7 @@ xfs_sync_inodes_ag( xfs_ifunlock(ip); } } - - if (lock_flags) - xfs_iunlock(ip, lock_flags); - - if (inode_refed) { - IRELE(ip); - } + xfs_iput(ip, lock_flags); if (error) last_error = error; From owner-xfs@oss.sgi.com Tue Oct 14 23:50:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F6o5QV016989 for ; Tue, 14 Oct 2008 23:50:06 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 98FDA9088C; Tue, 14 Oct 2008 23:51:44 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18002; Wed, 15 Oct 2008 17:51:42 +1100 Message-ID: <48F5A104.5060506@sgi.com> Date: Wed, 15 Oct 2008 17:51:32 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> In-Reply-To: <20081015061917.GC25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Wed, Oct 15, 2008 at 03:50:48PM +1000, Peter Leckie wrote: > >> Dave Chinner wrote: >> >>> Update below. >>> >>> Cheers, >>> >>> Dave. >>> >>> >> The original patch appeared to fix the issue, however the latest one >> Oops as follows: >> > > Well, I think the problem dhould be obvious Gee thanks Dave. > - it's the same as > the first report - deferencing the linux inode without first having > a refernce on it. > Yes it resolves the issue. Pete From owner-xfs@oss.sgi.com Wed Oct 15 00:01:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9F71fip020557 for ; Wed, 15 Oct 2008 00:01:41 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 52816304095; Wed, 15 Oct 2008 00:03:18 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA18427; Wed, 15 Oct 2008 18:03:13 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 89A8A58FA1E9; Wed, 15 Oct 2008 18:03:13 +1100 (EST) Date: Wed, 15 Oct 2008 18:03:13 +1100 To: options@melbourne.sgi.com, unrecognized@melbourne.sgi.com, with@melbourne.sgi.com, rw@melbourne.sgi.com, remount@melbourne.sgi.com, fix@melbourne.sgi.com, XFS@melbourne.sgi.com Subject: [PATCH] User-Agent: nail 11.25 7/29/05 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20081015070313.89A8A58FA1E9@chook.melbourne.sgi.com> From: tes@sgi.com (Tim Shimmin) Hi Linus, Please include the following patch for 2.6.27.1 stable release as suggested by Christoph Hellwig and Eric Sandeen. It fixes a regression in the recent remount recoding where remounting say from ro to rw allows the xfs flags to be out of sync with the vfs flags, resulting in failures for some programs such as touch (which end up calling xfs_setattr). The fix is a very minor and clear. Thanks, Tim. Date: Sun, 12 Oct 2008 14:30:44 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com Subject: [PATCH] fix remount rw with unrecognized options When we skip unrecognized options in xfs_fs_remount we should just break out of the switch and not return because otherwise we may skip clearing the xfs-internal read-only flag. This will only show up on some operations like touch because most read-only checks are done by the VFS which thinks this filesystem is r/w. Eventually we should replace the XFS read-only flag with a helper that always checks the VFS flag to make sure they can never get out of sync. Bug reported and fix verified by Marcel Beister on #xfs. Bug fix verified by updated xfstests/189. Signed-off-by: Christoph Hellwig Acked-by: Eric Sandeen Signed-off-by: Timothy Shimmin Index: mainline/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 @@ -1323,7 +1323,7 @@ xfs_fs_remount( "XFS: mount option \"%s\" not supported for remount\n", p); return -EINVAL; #else - return 0; + break; #endif } } From owner-xfs@oss.sgi.com Wed Oct 15 03:47:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9FAl1Ke011611 for ; Wed, 15 Oct 2008 03:47:01 -0700 X-ASG-Debug-ID: 1224067723-6a72022c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A99A64FE4CB for ; Wed, 15 Oct 2008 03:48:43 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id wnoHjJuHnkOhMGvD for ; Wed, 15 Oct 2008 03:48:43 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9FAmfIF008905 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 15 Oct 2008 12:48:41 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9FAmfwj008903 for xfs@oss.sgi.com; Wed, 15 Oct 2008 12:48:41 +0200 Date: Wed, 15 Oct 2008 12:48:40 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] remove exports of inline functions Subject: Re: [PATCH] remove exports of inline functions Message-ID: <20081015104840.GA8853@lst.de> References: <20081006181626.GA15388@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081006181626.GA15388@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224067724 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8004 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 06, 2008 at 08:16:26PM +0200, Christoph Hellwig wrote: > Recent gcc starts to complain about exports of functions marked static > inline, so let's get rid of those. note that the complain is in the form of a kernel doesn't link, so any chance we could get this patch in? > > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:08:33.000000000 +0000 > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:09:58.000000000 +0000 > @@ -153,8 +153,6 @@ > EXPORT_SYMBOL(kmem_zalloc); > EXPORT_SYMBOL(kmem_zone_alloc); > EXPORT_SYMBOL(kmem_zalloc_greedy); > -EXPORT_SYMBOL(kmem_zone_free); > -EXPORT_SYMBOL(kmem_zone_init); > EXPORT_SYMBOL(kmem_zone_zalloc); > EXPORT_SYMBOL(xfs_address_space_operations); > EXPORT_SYMBOL(xfs_dir_file_operations); > @@ -217,8 +215,6 @@ > EXPORT_SYMBOL(xfs_finish_reclaim_all); > EXPORT_SYMBOL(xfs_freesb); > EXPORT_SYMBOL(xfs_fs_cmn_err); > -EXPORT_SYMBOL(xfs_highbit32); > -EXPORT_SYMBOL(xfs_highbit64); > EXPORT_SYMBOL(xfs_idestroy); > EXPORT_SYMBOL(xfs_iextract); > EXPORT_SYMBOL(xfs_iext_add); > @@ -227,10 +223,7 @@ > EXPORT_SYMBOL(xfs_iext_idx_to_irec); > EXPORT_SYMBOL(xfs_iext_insert); > EXPORT_SYMBOL(xfs_iext_remove); > -EXPORT_SYMBOL(xfs_iflock); > -EXPORT_SYMBOL(xfs_iflock_nowait); > EXPORT_SYMBOL(xfs_iflush); > -EXPORT_SYMBOL(xfs_ifunlock); > EXPORT_SYMBOL(xfs_iget); > EXPORT_SYMBOL(xfs_ilock); > EXPORT_SYMBOL(xfs_ilock_map_shared); ---end quoted text--- From owner-xfs@oss.sgi.com Wed Oct 15 05:41:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9FCfnYO023340 for ; Wed, 15 Oct 2008 05:41:50 -0700 X-ASG-Debug-ID: 1224074611-5e8900960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D8D71405BE9 for ; Wed, 15 Oct 2008 05:43:32 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id cOI3WNIHeDP3ZC3A for ; Wed, 15 Oct 2008 05:43:32 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 93B8EAC358C; Wed, 15 Oct 2008 07:43:31 -0500 (CDT) Message-ID: <48F5E573.2040901@sandeen.net> Date: Wed, 15 Oct 2008 07:43:31 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Tim Shimmin CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Subject: Re: [PATCH] References: <20081015070313.89A8A58FA1E9@chook.melbourne.sgi.com> In-Reply-To: <20081015070313.89A8A58FA1E9@chook.melbourne.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224074612 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8007 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > Date: Wed, 15 Oct 2008 18:03:13 +1100 > To: options@melbourne.sgi.com, unrecognized@melbourne.sgi.com, > with@melbourne.sgi.com, rw@melbourne.sgi.com, > remount@melbourne.sgi.com, fix@melbourne.sgi.com, > XFS@melbourne.sgi.com I don't think that made it to the right place ... :) (stable@vger.kernel.org) -Eric Tim Shimmin wrote: > Hi Linus, > > Please include the following patch for 2.6.27.1 stable release as > suggested by Christoph Hellwig and Eric Sandeen. > It fixes a regression in the recent remount recoding > where remounting say from ro to rw allows the xfs flags to > be out of sync with the vfs flags, resulting > in failures for some programs such as touch (which end up calling xfs_setattr). > The fix is a very minor and clear. > > Thanks, > Tim. > > Date: Sun, 12 Oct 2008 14:30:44 +0200 > From: Christoph Hellwig > To: xfs@oss.sgi.com > Subject: [PATCH] fix remount rw with unrecognized options > > When we skip unrecognized options in xfs_fs_remount we should just break > out of the switch and not return because otherwise we may skip clearing > the xfs-internal read-only flag. This will only show up on some > operations like touch because most read-only checks are done by the VFS > which thinks this filesystem is r/w. Eventually we should replace the > XFS read-only flag with a helper that always checks the VFS flag to make > sure they can never get out of sync. > > Bug reported and fix verified by Marcel Beister on #xfs. > Bug fix verified by updated xfstests/189. > > Signed-off-by: Christoph Hellwig > Acked-by: Eric Sandeen > Signed-off-by: Timothy Shimmin > > Index: mainline/fs/xfs/linux-2.6/xfs_super.c > =================================================================== > --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 > +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 > @@ -1323,7 +1323,7 @@ xfs_fs_remount( > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; > #else > - return 0; > + break; > #endif > } > } > > From owner-xfs@oss.sgi.com Wed Oct 15 07:24:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.6 required=5.0 tests=AWL,BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9FEO99E030601 for ; Wed, 15 Oct 2008 07:24:10 -0700 X-ASG-Debug-ID: 1224080751-53bd01a40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from out004.topica-silver-y.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 6208C1B5B9E3 for ; Wed, 15 Oct 2008 07:25:52 -0700 (PDT) Received: from out004.topica-silver-y.com (out183.topica-silver-y.com [66.227.62.183]) by cuda.sgi.com with SMTP id u7uGIhI5OWwBgBQs for ; Wed, 15 Oct 2008 07:25:52 -0700 (PDT) X-ASG-Whitelist: Client Mime-Version: 1.0 To: xfs@oss.sgi.com From: Doris Adler X-ASG-Orig-Subj: IICRC WRT (Water Damage Restoration) Class November 24-26, 2008 Subject: IICRC WRT (Water Damage Restoration) Class November 24-26, 2008 Date: Wed, 15 Oct 2008 06:19:45 -0700 Message-ID: <1488368169-1463747838-1224076968@restoration.b.topica.com> Errors-To: Reply-To: X-Barracuda-Connect: out183.topica-silver-y.com[66.227.62.183] X-Barracuda-Start-Time: 1224080752 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 2742 Distinguish yourself from your competitors. ==================================================================== NAETI is bringing the IICRC WRT class to our Ocean NJ location on November 24-26. Class size is limited-Register Now! Naeti is excited to sponsor the IICRC WRT (Water Damage Restoration Technician) taught by internationally recognized instructor, Tony Macaluso. This course is designed to teach remediation personnel about water damage, its effects, as well as techniques for drying structures. It will give both residential and commercial contractors and maintenance people the background necessary to understand the appropriate procedures to deal with water losses, psychrometry (the science of drying), microbiology, and water damage restoration. IICRC Certification assures that you meet the standards required by most insurance companies to perform this remediation work. COURSE DETAILS: http://restoration.c.topica.com/maammInabLdtdaD1bJyeaeQAd3/ DATE: November 24-26, 2008 (Monday-Wednesday) TIME: 8:30AM - 4:30PM LOCATION: National Asbestos & Environmental Training Institute (NAETI) 3321 Doris Avenue, Bldg. B Ocean, NJ 07712 Phone: (732) 531-5571/Fax: (732) 531-5956 trainaeti@aol.com/www.naeti.com REGISTRATION FEE (Payable to NAETI): Corporate purchase orders, checks, Visa, Mastercard, Discover and America Express are accepted. Registration is $349 now, $389 after November 7th. Continental breakfast included Advance registration and payment required. Classroom space is limited. Classes are filled on a "first-come, first-served" basis. Don't Miss This Opportunity, Call Today! CLICK HERE TO REGISTER: http://restoration.c.topica.com/maammInabLdtcaD1bJyeaeQAd3/ CLICK HERE FOR LOCAL HOTEL LISTING: http://restoration.c.topica.com/maammInabLdtiaD1bJyeaeQAd3/ Cancellation policy: A $50 per person charge is applied to all changes and cancellations not initiated by NAETI. Reschedules will be accepted on an indiviual basis. NAETI reserves the right to cancel class up to 5 business days prior to first day of class. Visit our website at www.naeti.com for a complete listing of our course offerings. http://restoration.c.topica.com/maammInabLdtgaD1bJyeaeQAd3/ ==================================================================== Unsubscribe: http://topica.com/f/unsub.html/aaad2_n_9cgr9hd9ippupj0e9ertbq7363cflnmchf590r Update Your Profile: http://topica.com/f/?a2jfyI.aD1bJy.eGZzQG9z Confirm Your Subscription: http://topica.com/f/?a2jfyI.aD1bJy.eGZzQG9z.c Forward to Friend: http://www.topica.com/f2f/?f=aaad2_n_9cgr9hd9ippupj0e9ertbq7363cflnmchf590r&r=xfs%40oss.sgi.com Delivered by Topica: http://www.topica.com/?p=T3FOOTER [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 15 08:33:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_00,FORGED_YAHOO_RCVD, J_CHICKENPOX_45,WHOIS_MYPRIVREG autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9FFXwgV008158 for ; Wed, 15 Oct 2008 08:33:58 -0700 X-ASG-Debug-ID: 1224084940-37d600d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from kuber.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 001C7F96756 for ; Wed, 15 Oct 2008 08:35:40 -0700 (PDT) Received: from kuber.nabble.com (kuber.nabble.com [216.139.236.158]) by cuda.sgi.com with ESMTP id XukhhxDHdTfnbKSE for ; Wed, 15 Oct 2008 08:35:40 -0700 (PDT) Received: from isper.nabble.com ([192.168.236.156]) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1Kq8PU-000852-2w for xfs@oss.sgi.com; Wed, 15 Oct 2008 08:35:40 -0700 Message-ID: <19996090.post@talk.nabble.com> Date: Wed, 15 Oct 2008 08:35:40 -0700 (PDT) From: ibulescu To: xfs@oss.sgi.com X-ASG-Orig-Subj: How can I recover data? Subject: How can I recover data? MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: tibi_1980@yahoo.com X-Barracuda-Connect: kuber.nabble.com[216.139.236.158] X-Barracuda-Start-Time: 1224084941 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.61 X-Barracuda-Spam-Status: No, SCORE=-0.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FORGED_YAHOO_RCVD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8015 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.41 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers Hello, how can I recover the data? Here is my story: I have openfiler installed with LVM and a single xfs partition over 7 sata hdd's. Yesterday I discovered that I can't write any files to the xfs partition, even if there was 1,2Tb free space. I've googled alot and modified the label of all partitions to GPT (that seemed to be the problem with xfs, or so I've imagined and I've used parted - mklabel). After that I've rebooted and all data was gone. The parted program changed the partitions UUID's. I've manualy set original partitions UUID from lvm backup's and restored the volume group. The partition from the volume group was there but XFS can't mount the filesystem. After running xfs_repair this is the result: - all the data was contained in a single folder named "All" which was deleted by the repair ----Begin copy---- bad magic number 0x0 on inode 183, resetting magic number bad version number 0x0 on inode 183, resetting version number bad magic number 0x0 on inode 184, resetting magic number bad version number 0x0 on inode 184, resetting version number bad magic number 0x0 on inode 185, resetting magic number bad version number 0x0 on inode 185, resetting version number imap claims in-use inode 186 is free, correcting imap imap claims in-use inode 187 is free, correcting imap imap claims in-use inode 188 is free, correcting imap imap claims in-use inode 189 is free, correcting imap imap claims in-use inode 190 is free, correcting imap bad attribute leaf magic # 0 for dir ino 191 problem with attribute contents in inode 191 clearing inode 191 attributes correcting nblocks for inode 191, was 1 - counted 0 imap claims in-use inode 191 is free, correcting imap - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 - agno = 8 - agno = 9 - agno = 10 - agno = 11 - agno = 12 - agno = 13 - agno = 14 - agno = 15 - agno = 16 - agno = 17 - agno = 18 - agno = 19 - agno = 20 - agno = 21 - agno = 22 - agno = 23 - agno = 24 - agno = 25 - agno = 26 - agno = 27 - agno = 28 - agno = 29 - agno = 30 - agno = 31 - agno = 32 - agno = 33 - agno = 34 - agno = 35 - agno = 36 - agno = 37 - agno = 38 - agno = 39 - agno = 40 - agno = 41 - agno = 42 - agno = 43 - agno = 44 - agno = 45 - agno = 46 - agno = 47 - agno = 48 - agno = 49 - agno = 50 - agno = 51 - agno = 52 - agno = 53 - agno = 54 - agno = 55 - agno = 56 - agno = 57 - agno = 58 - agno = 59 - agno = 60 - agno = 61 - agno = 62 - agno = 63 - agno = 64 - agno = 65 - agno = 66 - agno = 67 - agno = 68 - agno = 69 - agno = 70 - agno = 71 - agno = 72 - agno = 73 - agno = 74 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... root inode lost - clear lost+found (if it exists) ... - check for inodes claiming duplicate blocks... - agno = 0 entry "All" in shortform directory 186 references free inode 136 junking entry "All" in directory inode 186 entry "All.info.xml" in shortform directory 186 references free inode 137 junking entry "All.info.xml" in directory inode 186 bad attribute format 1 in inode 191, resetting value entry "rhi-rp11.iso" in shortform directory 191 references free inode 134 junking entry "rhi-rp11.iso" in directory inode 191 entry "rhi.nfo" in shortform directory 191 references free inode 135 junking entry "rhi.nfo" in directory inode 191 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 - agno = 8 - agno = 9 - agno = 10 - agno = 11 - agno = 12 - agno = 13 - agno = 14 - agno = 15 - agno = 16 - agno = 17 - agno = 18 - agno = 19 - agno = 20 - agno = 21 - agno = 22 - agno = 23 - agno = 24 - agno = 25 - agno = 26 - agno = 27 - agno = 28 - agno = 29 - agno = 30 - agno = 31 - agno = 32 - agno = 33 - agno = 34 - agno = 35 - agno = 36 - agno = 37 - agno = 38 - agno = 39 - agno = 40 - agno = 41 - agno = 42 - agno = 43 - agno = 44 - agno = 45 - agno = 46 - agno = 47 - agno = 48 - agno = 49 - agno = 50 - agno = 51 - agno = 52 - agno = 53 - agno = 54 - agno = 55 - agno = 56 - agno = 57 - agno = 58 - agno = 59 - agno = 60 - agno = 61 - agno = 62 - agno = 63 - agno = 64 - agno = 65 - agno = 66 - agno = 67 - agno = 68 - agno = 69 - agno = 70 - agno = 71 - agno = 72 - agno = 73 - agno = 74 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... reinitializing root directory reinitializing realtime bitmap inode reinitializing realtime summary inode - resetting contents of realtime bitmap and summary inodes - ensuring existence of lost+found directory - traversing filesystem starting at / ... - traversal finished ... - traversing all unattached subtrees ... - traversals finished ... - moving disconnected inodes to lost+found ... disconnected dir inode 186, moving to lost+found disconnected inode 187, moving to lost+found disconnected inode 188, moving to lost+found disconnected inode 189, moving to lost+found disconnected inode 190, moving to lost+found disconnected dir inode 191, moving to lost+found Phase 7 - verify and correct link counts... resetting inode 128 nlinks from 2 to 3 resetting inode 186 nlinks from 3 to 2 Warning: quota inodes were cleared. Quotas disabled. Note - stripe unit (0) and width (0) fields have been reset. Please set with mount -o sunit=,swidth= done [root@nas01 /]# ----End copy---- -- View this message in context: http://www.nabble.com/How-can-I-recover-data--tp19996090p19996090.html Sent from the Xfs - General mailing list archive at Nabble.com. From owner-xfs@oss.sgi.com Wed Oct 15 10:01:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_50,HTML_MESSAGE, J_CHICKENPOX_48 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9FH1lAH017555 for ; Wed, 15 Oct 2008 10:01:48 -0700 X-ASG-Debug-ID: 1224090203-1b0000760000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from gw4.outgw.tn (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6EADB1B5C59E for ; Wed, 15 Oct 2008 10:03:23 -0700 (PDT) Received: from gw4.outgw.tn (gw4.outgw.tn [193.95.97.184]) by cuda.sgi.com with ESMTP id d4epY1K5Hj19MBwM for ; Wed, 15 Oct 2008 10:03:23 -0700 (PDT) Received: from smtp.rnu.tn (smtp.rnu.tn [193.95.32.173]) by tounes-18.ati.tn (Postfix) with ESMTP id B4EDF1088100 for ; Wed, 15 Oct 2008 19:03:21 +0200 (CEST) Received: from localhost (rnu.tn [127.0.0.1]) by smtp.rnu.tn (Postfix) with ESMTP id E1E75CB366 for ; Wed, 15 Oct 2008 18:33:13 +0200 (CEST) X-Virus-Scanned: amavisd-new at rnu.tn Received: from smtp.rnu.tn ([127.0.0.1]) by localhost (smtp.rnu.tn [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QNFydd6Li3pz for ; Wed, 15 Oct 2008 18:33:13 +0200 (CEST) Received: from isecs-06bd13acc (unknown [41.229.111.252]) by smtp.rnu.tn (Postfix) with ESMTP id 82283CB36C for ; Wed, 15 Oct 2008 18:33:13 +0200 (CEST) From: "MedSalim BOUHLEL" X-ASG-Orig-Subj: Extended Deadline Submission (SETIT'O9) Subject: Extended Deadline Submission (SETIT'O9) To: linux-xfs@oss.sgi.com MIME-Version: 1.0 Sender: MedSalim BOUHLEL Date: Wed, 15 Oct 2008 19:03:22 +0200 Message-ID: <20081015.397360,794008518518519@enis.rnu.tn> X-Barracuda-Connect: gw4.outgw.tn[193.95.97.184] X-Barracuda-Start-Time: 1224090207 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5031 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8018 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 1939 Dear Colleagues Apologies for any cross-postings At the request of a number of potential contributors, we have decided to extend the deadline for receipt of papers to be presented to The 5th International Conference: Sciences of Electronics, Technologies of Information and Telecommunications SETIT 2009. This deadline is extended to November 1st, 2008. This conference will be held in Tunisia, 22-26 March 2009. It is supported by IEEE . Papers are solicited in the following areas: Information Processing Signal Processing Image and Video Multimedia Telecommunications and Networks Electronic Your propositions are welcome (they can be made either in English or in French). The paper submission is on-line at: http://www.setit.rnu.tn/?pg=submission We are waiting for seeing you in SETIT 2009. NB: In order to receive information about activities and events of this conference (4 to 6 times per year), please provide your contact information to our mailing list http://www.setit.rnu.tn/?pg=nletter&mail=linux-xfs@oss.sgi.com All contact information you provide will be used strictly for SETIT 09 related events only and will not be disclosed in any other way You can unsubscribe yourself from our mailing list at any time by sending an email to unsubscribe.setit@gmail.com with subject Unsubscribe ================================================================== This email is sent out to all those on the SETIT 2009 database. If you want to be removed from this database, please send an email to unsubscribe.setit@gmail.com ================================================================== Mohamed Salim BOUHLEL General Co-Chair, SETIT 2009 Director of Sfax High Institute of Electronics and Communication Head of Research Unit:Sciences & Technologies of Image and Telecommunications ( Sfax University ) GSM +216 20 200005 Skype Name : UR-SETIT [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 15 17:15:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G0FUHn009727 for ; Wed, 15 Oct 2008 17:15:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 6A6629089B; Wed, 15 Oct 2008 17:17:09 -0700 (PDT) Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA18715; Thu, 16 Oct 2008 11:17:06 +1100 Date: Thu, 16 Oct 2008 11:20:40 +1100 To: ibulescu , xfs@oss.sgi.com Subject: Re: How can I recover data? From: "Barry Naujok" Organization: SGI Content-Type: text/plain; format=flowed; delsp=yes; charset=utf-8 MIME-Version: 1.0 References: <19996090.post@talk.nabble.com> Content-Transfer-Encoding: 7bit Message-ID: In-Reply-To: <19996090.post@talk.nabble.com> User-Agent: Opera Mail/9.52 (Win32) On Thu, 16 Oct 2008 02:35:40 +1100, ibulescu wrote: > Hello, > how can I recover the data? > > Here is my story: > > I have openfiler installed with LVM and a single xfs partition over 7 > sata > hdd's. Yesterday I discovered that I can't write any files to the xfs > partition, even if there was 1,2Tb free space. I've googled alot and > modified the label of all partitions to GPT (that seemed to be the > problem > with xfs, or so I've imagined and I've used parted - mklabel). After that > I've rebooted and all data was gone. The parted program changed the > partitions UUID's. I've manualy set original partitions UUID from lvm > backup's and restored the volume group. The partition from the volume > group > was there but XFS can't mount the filesystem. After running xfs_repair > this > is the result: > - all the data was contained in a single folder named "All" which was > deleted by the repair All was inode 186: > entry "All" in shortform directory 186 references free inode 136 > junking entry "All" in directory inode 186 which is now in lost+found: > disconnected dir inode 186, moving to lost+found So, you should find the contents of the All directory in /lost+found/186/ > ----Begin copy---- > bad magic number 0x0 on inode 183, resetting magic number > bad version number 0x0 on inode 183, resetting version number > bad magic number 0x0 on inode 184, resetting magic number > bad version number 0x0 on inode 184, resetting version number > bad magic number 0x0 on inode 185, resetting magic number > bad version number 0x0 on inode 185, resetting version number > imap claims in-use inode 186 is free, correcting imap > imap claims in-use inode 187 is free, correcting imap > imap claims in-use inode 188 is free, correcting imap > imap claims in-use inode 189 is free, correcting imap > imap claims in-use inode 190 is free, correcting imap > bad attribute leaf magic # 0 for dir ino 191 > problem with attribute contents in inode 191 > clearing inode 191 attributes > correcting nblocks for inode 191, was 1 - counted 0 > imap claims in-use inode 191 is free, correcting imap > - agno = 1 > - agno = 2 > - agno = 3 > - agno = 4 > - agno = 5 > - agno = 6 > - agno = 7 > - agno = 8 > - agno = 9 > - agno = 10 > - agno = 11 > - agno = 12 > - agno = 13 > - agno = 14 > - agno = 15 > - agno = 16 > - agno = 17 > - agno = 18 > - agno = 19 > - agno = 20 > - agno = 21 > - agno = 22 > - agno = 23 > - agno = 24 > - agno = 25 > - agno = 26 > - agno = 27 > - agno = 28 > - agno = 29 > - agno = 30 > - agno = 31 > - agno = 32 > - agno = 33 > - agno = 34 > - agno = 35 > - agno = 36 > - agno = 37 > - agno = 38 > - agno = 39 > - agno = 40 > - agno = 41 > - agno = 42 > - agno = 43 > - agno = 44 > - agno = 45 > - agno = 46 > - agno = 47 > - agno = 48 > - agno = 49 > - agno = 50 > - agno = 51 > - agno = 52 > - agno = 53 > - agno = 54 > - agno = 55 > - agno = 56 > - agno = 57 > - agno = 58 > - agno = 59 > - agno = 60 > - agno = 61 > - agno = 62 > - agno = 63 > - agno = 64 > - agno = 65 > - agno = 66 > - agno = 67 > - agno = 68 > - agno = 69 > - agno = 70 > - agno = 71 > - agno = 72 > - agno = 73 > - agno = 74 > - process newly discovered inodes... > Phase 4 - check for duplicate blocks... > - setting up duplicate extent list... > root inode lost > - clear lost+found (if it exists) ... > - check for inodes claiming duplicate blocks... > - agno = 0 > entry "All" in shortform directory 186 references free inode 136 > junking entry "All" in directory inode 186 > entry "All.info.xml" in shortform directory 186 references free inode 137 > junking entry "All.info.xml" in directory inode 186 > bad attribute format 1 in inode 191, resetting value > entry "rhi-rp11.iso" in shortform directory 191 references free inode 134 > junking entry "rhi-rp11.iso" in directory inode 191 > entry "rhi.nfo" in shortform directory 191 references free inode 135 > junking entry "rhi.nfo" in directory inode 191 > - agno = 1 > - agno = 2 > - agno = 3 > - agno = 4 > - agno = 5 > - agno = 6 > - agno = 7 > - agno = 8 > - agno = 9 > - agno = 10 > - agno = 11 > - agno = 12 > - agno = 13 > - agno = 14 > - agno = 15 > - agno = 16 > - agno = 17 > - agno = 18 > - agno = 19 > - agno = 20 > - agno = 21 > - agno = 22 > - agno = 23 > - agno = 24 > - agno = 25 > - agno = 26 > - agno = 27 > - agno = 28 > - agno = 29 > - agno = 30 > - agno = 31 > - agno = 32 > - agno = 33 > - agno = 34 > - agno = 35 > - agno = 36 > - agno = 37 > - agno = 38 > - agno = 39 > - agno = 40 > - agno = 41 > - agno = 42 > - agno = 43 > - agno = 44 > - agno = 45 > - agno = 46 > - agno = 47 > - agno = 48 > - agno = 49 > - agno = 50 > - agno = 51 > - agno = 52 > - agno = 53 > - agno = 54 > - agno = 55 > - agno = 56 > - agno = 57 > - agno = 58 > - agno = 59 > - agno = 60 > - agno = 61 > - agno = 62 > - agno = 63 > - agno = 64 > - agno = 65 > - agno = 66 > - agno = 67 > - agno = 68 > - agno = 69 > - agno = 70 > - agno = 71 > - agno = 72 > - agno = 73 > - agno = 74 > Phase 5 - rebuild AG headers and trees... > - reset superblock... > Phase 6 - check inode connectivity... > reinitializing root directory > reinitializing realtime bitmap inode > reinitializing realtime summary inode > - resetting contents of realtime bitmap and summary inodes > - ensuring existence of lost+found directory > - traversing filesystem starting at / ... > - traversal finished ... > - traversing all unattached subtrees ... > - traversals finished ... > - moving disconnected inodes to lost+found ... > disconnected dir inode 186, moving to lost+found > disconnected inode 187, moving to lost+found > disconnected inode 188, moving to lost+found > disconnected inode 189, moving to lost+found > disconnected inode 190, moving to lost+found > disconnected dir inode 191, moving to lost+found > Phase 7 - verify and correct link counts... > resetting inode 128 nlinks from 2 to 3 > resetting inode 186 nlinks from 3 to 2 > Warning: quota inodes were cleared. Quotas disabled. > Note - stripe unit (0) and width (0) fields have been reset. > Please set with mount -o sunit=,swidth= > done > [root@nas01 /]# > ----End copy---- From owner-xfs@oss.sgi.com Wed Oct 15 17:17:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G0HNwi010041 for ; Wed, 15 Oct 2008 17:17:23 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 0B3779089B; Wed, 15 Oct 2008 17:19:05 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA18821; Thu, 16 Oct 2008 11:19:03 +1100 Message-ID: <48F68877.50507@sgi.com> Date: Thu, 16 Oct 2008 11:19:03 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH] remove exports of inline functions References: <20081006181626.GA15388@lst.de> <20081015104840.GA8853@lst.de> In-Reply-To: <20081015104840.GA8853@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Mon, Oct 06, 2008 at 08:16:26PM +0200, Christoph Hellwig wrote: >> Recent gcc starts to complain about exports of functions marked static >> inline, so let's get rid of those. > > note that the complain is in the form of a kernel doesn't link, so any > chance we could get this patch in? Yes, picking it up now. >> >> Signed-off-by: Christoph Hellwig >> >> Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c >> =================================================================== >> --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:08:33.000000000 +0000 >> +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-07 01:09:58.000000000 +0000 >> @@ -153,8 +153,6 @@ >> EXPORT_SYMBOL(kmem_zalloc); >> EXPORT_SYMBOL(kmem_zone_alloc); >> EXPORT_SYMBOL(kmem_zalloc_greedy); >> -EXPORT_SYMBOL(kmem_zone_free); >> -EXPORT_SYMBOL(kmem_zone_init); >> EXPORT_SYMBOL(kmem_zone_zalloc); >> EXPORT_SYMBOL(xfs_address_space_operations); >> EXPORT_SYMBOL(xfs_dir_file_operations); >> @@ -217,8 +215,6 @@ >> EXPORT_SYMBOL(xfs_finish_reclaim_all); >> EXPORT_SYMBOL(xfs_freesb); >> EXPORT_SYMBOL(xfs_fs_cmn_err); >> -EXPORT_SYMBOL(xfs_highbit32); >> -EXPORT_SYMBOL(xfs_highbit64); >> EXPORT_SYMBOL(xfs_idestroy); >> EXPORT_SYMBOL(xfs_iextract); >> EXPORT_SYMBOL(xfs_iext_add); >> @@ -227,10 +223,7 @@ >> EXPORT_SYMBOL(xfs_iext_idx_to_irec); >> EXPORT_SYMBOL(xfs_iext_insert); >> EXPORT_SYMBOL(xfs_iext_remove); >> -EXPORT_SYMBOL(xfs_iflock); >> -EXPORT_SYMBOL(xfs_iflock_nowait); >> EXPORT_SYMBOL(xfs_iflush); >> -EXPORT_SYMBOL(xfs_ifunlock); >> EXPORT_SYMBOL(xfs_iget); >> EXPORT_SYMBOL(xfs_ilock); >> EXPORT_SYMBOL(xfs_ilock_map_shared); > ---end quoted text--- > From owner-xfs@oss.sgi.com Wed Oct 15 17:27:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G0Rnmc011382 for ; Wed, 15 Oct 2008 17:27:50 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id E2C44908A2; Wed, 15 Oct 2008 17:29:30 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA19088; Thu, 16 Oct 2008 11:29:27 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id D912558FA22B; Thu, 16 Oct 2008 11:29:26 +1100 (EST) Date: Thu, 16 Oct 2008 11:29:26 +1100 To: stable@kernel.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com Subject: [PATCH] XFS fix remount rw with unrecognized options User-Agent: nail 11.25 7/29/05 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> From: tes@sgi.com (Tim Shimmin) Resending as I mangled sending the mail from home last time. Sorry. Please include the following patch for 2.6.27.1 stable release as suggested by Christoph Hellwig and Eric Sandeen. It fixes a regression in the recent remount recoding where remounting say from ro to rw allows the xfs flags to be out of sync with the vfs flags, resulting in failures for some programs such as touch (which end up calling xfs_setattr). The fix is a very minor and clear. Thanks, Tim. Date: Sun, 12 Oct 2008 14:30:44 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com Subject: [PATCH] fix remount rw with unrecognized options When we skip unrecognized options in xfs_fs_remount we should just break out of the switch and not return because otherwise we may skip clearing the xfs-internal read-only flag. This will only show up on some operations like touch because most read-only checks are done by the VFS which thinks this filesystem is r/w. Eventually we should replace the XFS read-only flag with a helper that always checks the VFS flag to make sure they can never get out of sync. Bug reported and fix verified by Marcel Beister on #xfs. Bug fix verified by updated xfstests/189. Signed-off-by: Christoph Hellwig Acked-by: Eric Sandeen Signed-off-by: Timothy Shimmin Index: mainline/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 @@ -1323,7 +1323,7 @@ xfs_fs_remount( "XFS: mount option \"%s\" not supported for remount\n", p); return -EINVAL; #else - return 0; + break; #endif } } From owner-xfs@oss.sgi.com Wed Oct 15 18:05:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_45,J_CHICKENPOX_46,J_CHICKENPOX_47, J_CHICKENPOX_48 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G15t3F015355 for ; Wed, 15 Oct 2008 18:05:55 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 590468F80BA for ; Wed, 15 Oct 2008 18:07:32 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA20314 for ; Thu, 16 Oct 2008 12:07:30 +1100 Message-ID: <48F6A19D.9080900@sgi.com> Date: Thu, 16 Oct 2008 12:06:21 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs-oss Subject: another problem with latest code drops Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit fsstress started reporting these errors fsstress: check_cwd failure fsstress: check_cwd failure fsstress: check_cwd failure fsstress: check_cwd failure fsstress: check_cwd failure ... The filesystem is mounted on /mnt/data but the mount point is now toast. wipeout:/mnt # mount ... /dev/mapper/dm0 on /mnt/data type xfs (rw,logdev=/dev/ram0,nobarrier) wipeout:/mnt # ls -alF /bin/ls: data: Input/output error total 4 drwxr-xr-x 6 root root 57 Aug 8 03:09 ./ drwxr-xr-x 21 root root 4096 Oct 15 11:56 ../ ?--------- 0 root root 0 Dec 31 1969 data drwxr-xr-x 2 root root 6 Jul 16 08:21 home/ Root inode is 128? wipeout:/mnt # xfs_db -f /dev/mapper/dm0 xfs_db> inode 128 xfs_db> print core.magic = 0x494e core.mode = 040755 core.version = 2 core.format = 2 (extents) core.nlinkv2 = 11 core.onlink = 0 core.projid = 0 core.uid = 0 core.gid = 0 core.flushiter = 3 core.atime.sec = Wed Oct 15 12:02:22 2008 core.atime.nsec = 254053000 core.mtime.sec = Wed Oct 15 13:00:56 2008 core.mtime.nsec = 340001031 core.ctime.sec = Wed Oct 15 13:00:56 2008 core.ctime.nsec = 340001031 core.size = 4096 core.nblocks = 1 core.extsize = 0 core.nextents = 1 core.naextents = 0 core.forkoff = 0 core.aformat = 2 (extents) core.dmevmask = 0 core.dmstate = 0 core.newrtbm = 0 core.prealloc = 0 core.realtime = 0 core.immutable = 0 core.append = 0 core.sync = 0 core.noatime = 0 core.nodump = 0 core.rtinherit = 0 core.projinherit = 0 core.nosymlinks = 0 core.extsz = 0 core.extszinherit = 0 core.nodefrag = 0 core.filestream = 0 core.gen = 0 next_unlinked = null u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,18,1,0] Looks okay, must be corrupt in memory only. I can't cd into the filesystem but luckily I still had a shell open in the filesystem. wipeout:/mnt/data/temp # ls -alF /bin/ls: reading directory .: Input/output error total 0 wipeout:/mnt/data/temp # ls -alF file_1 /bin/ls: file_1: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_1 wipeout:/mnt/data/temp # ls -alF file_2 /bin/ls: file_2: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_2 wipeout:/mnt/data/temp # ls -alF file_3 /bin/ls: file_3: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_3 wipeout:/mnt/data/temp # ls -alF file_4 /bin/ls: file_4: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_4 wipeout:/mnt/data/temp # ls -alF file_5 /bin/ls: file_5: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_5 ... /bin/ls: file_710: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_710 wipeout:/mnt/data/temp # ls -alF file_711 /bin/ls: file_711: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_711 wipeout:/mnt/data/temp # ls -alF file_712 /bin/ls: file_712: Input/output error ?--------- 0 root root 0 1969-12-31 18:00 file_712 Lots of files toasted here too. Here's a hint as to what's gone wrong. Oct 16 09:54:54 wipeout kernel: [79179.449760] Filesystem "dm-0": XFS internal error xfs_trans_cancel at line 1164 of file fs/xfs/xfs_trans.c. Caller 0xffffffff8118 d422 Oct 16 09:54:54 wipeout kernel: [79179.449773] Pid: 6679, comm: fsstress Not tainted 2.6.27-rc8 #192 Oct 16 09:54:54 wipeout kernel: [79179.449775] Oct 16 09:54:54 wipeout kernel: [79179.449775] Call Trace: Oct 16 09:54:54 wipeout kernel: [79179.449784] [] xfs_error_report+0x3c/0x3e Oct 16 09:54:54 wipeout kernel: [79179.449789] [] ? xfs_rename+0x703/0x745 Oct 16 09:54:54 wipeout kernel: [79179.449795] [] xfs_trans_cancel+0x5f/0xfc Oct 16 09:54:54 wipeout kernel: [79179.449799] [] xfs_rename+0x703/0x745 Oct 16 09:54:54 wipeout kernel: [79179.449805] [] xfs_vn_rename+0x5d/0x61 Oct 16 09:54:54 wipeout kernel: [79179.449810] [] vfs_rename+0x2b2/0x42e Oct 16 09:54:54 wipeout kernel: [79179.449815] [] sys_renameat+0x16d/0x1e3 Oct 16 09:54:54 wipeout kernel: [79179.449821] [] ? sys_newstat+0x31/0x3c Oct 16 09:54:54 wipeout kernel: [79179.449826] [] sys_rename+0x16/0x18 Oct 16 09:54:54 wipeout kernel: [79179.449831] [] system_call_fastpath+0x16/0x1b Oct 16 09:54:54 wipeout kernel: [79179.449835] Oct 16 09:54:54 wipeout kernel: [79179.449840] xfs_force_shutdown(dm-0,0x8) called from line 1165 of file fs/xfs/xfs_trans.c. Return address = 0xffffffff8118e9e4 Oct 16 09:54:54 wipeout kernel: [79179.449851] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.449862] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.449867] Filesystem "dm-0": Corruption of in-memory data detected. Shutting down filesystem: dm-0 Oct 16 09:54:54 wipeout kernel: [79179.449873] Pid: 6679, comm: fsstress Not tainted 2.6.27-rc8 #192 Oct 16 09:54:54 wipeout kernel: [79179.449878] Oct 16 09:54:54 wipeout kernel: [79179.449878] Call Trace: Oct 16 09:54:54 wipeout kernel: [79179.449883] [] xfs_do_force_shutdown+0xac/0x138 Oct 16 09:54:54 wipeout kernel: [79179.449887] [] ? xfs_trans_cancel+0x78/0xfc Oct 16 09:54:54 wipeout kernel: [79179.449892] [] xfs_trans_cancel+0x78/0xfc Oct 16 09:54:54 wipeout kernel: [79179.449896] [] xfs_rename+0x703/0x745 Oct 16 09:54:54 wipeout kernel: [79179.449901] [] xfs_vn_rename+0x5d/0x61 Oct 16 09:54:54 wipeout kernel: [79179.449906] [] vfs_rename+0x2b2/0x42e Oct 16 09:54:54 wipeout kernel: [79179.449911] [] sys_renameat+0x16d/0x1e3 Oct 16 09:54:54 wipeout kernel: [79179.449916] [] ? sys_newstat+0x31/0x3c Oct 16 09:54:54 wipeout kernel: [79179.449920] [] sys_rename+0x16/0x18 Oct 16 09:54:54 wipeout kernel: [79179.449964] [] system_call_fastpath+0x16/0x1b Oct 16 09:54:54 wipeout kernel: [79179.449966] Oct 16 09:54:54 wipeout kernel: [79179.449966] Please umount the filesystem, and rectify the problem(s) Oct 16 09:54:54 wipeout kernel: [79179.450069] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.450119] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.450125] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.450268] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. Oct 16 09:54:54 wipeout kernel: [79179.450273] xfs_imap_to_bp: xfs_trans_read_buf()returned an error 5 on dm-0. Returning error. But doesn't explain why the mode of all the files is zeroed out and with the root inode busted I can't unmount. From owner-xfs@oss.sgi.com Wed Oct 15 18:41:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G1feEa019412 for ; Wed, 15 Oct 2008 18:41:40 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 35A338F80BD; Wed, 15 Oct 2008 18:43:22 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA21301; Thu, 16 Oct 2008 12:43:20 +1100 Message-ID: <48F6AA3E.8030902@sgi.com> Date: Thu, 16 Oct 2008 12:43:10 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <48F5A104.5060506@sgi.com> In-Reply-To: <48F5A104.5060506@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit >> - it's the same as >> the first report - deferencing the linux inode without first having >> a refernce on it. >> > > Yes it resolves the issue. I spoke to soon, Ooops as follows: <1>BUG: unable to handle kernel NULL pointer dereference at 0000000000000208 <1>IP: [] igrab+0x10/0x30 <4>PGD 6ac33067 PUD 7dda2067 PMD 0 <0>Oops: 0000 [1] SMP [0]kdb> bt Stack traceback for pid 5195 0xffff8800378e4c50 5195 5094 1 0 R 0xffff8800378e4fb8 *bulkstat_unlink sp ip Function (args) 0xffff88007d5abde8 0xffffffff802a37de igrab+0x10 (0x0) 0xffff88007d5abe20 0xffffffffa01f3623 [xfs]xfs_sync_inodes_ag+0xf4 (0xffff88003756e288, invalid, invalid) 0xffff88007d5abe80 0xffffffffa01f3853 [xfs]xfs_sync_inodes+0x63 (0xffff88003756e288, invalid) 0xffff88007d5abec0 0xffffffffa01f3919 [xfs]xfs_quiesce_data+0x13 (0xffff88003756e288) 0xffff88007d5abee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b (0xffff88007f1c09c8) 0xffff88007d5abf40 0xffffffff80292fd2 sync_filesystems+0xae (invalid) 0xffff88007d5abf60 0xffffffff802af48b do_sync+0x2f (0x1) 0xffff88007d5abf70 0xffffffff802af4c4 sys_sync+0xe bb_special_case: Invalid bb_reg_state.memory, missing trailing entries bb_special_case: on transfer to int_with_check Assuming system_call_fastpath is 'pass through' with 6 register parameters kdb_bb: 0xffffffff8020be0b [kernel]system_call_fastpath failed at 0xffffffff8020be98 Using old style backtrace, unreliable with no arguments sp ip Function (args) 0xffff88007d5abde8 0xffffffff802a37de igrab+0x10 0xffff88007d5abe10 0xffffffff802a37de igrab+0x10 0xffff88007d5abe20 0xffffffffa01f3623 [xfs]xfs_sync_inodes_ag+0xf4 0xffff88007d5abe80 0xffffffffa01f3853 [xfs]xfs_sync_inodes+0x63 0xffff88007d5abec0 0xffffffffa01f3919 [xfs]xfs_quiesce_data+0x13 0xffff88007d5abec8 0xffffffff802452b9 autoremove_wake_function 0xffff88007d5abee0 0xffffffffa01f1800 [xfs]xfs_fs_sync_super+0x2b 0xffff88007d5abf00 0xffffffff8043b871 __down_read+0x12 0xffff88007d5abf10 0xffffffffa024d395 [ext3]ext3_sync_fs+0x46 0xffff88007d5abf40 0xffffffff80292fd2 sync_filesystems+0xae 0xffff88007d5abf60 0xffffffff802af48b do_sync+0x2f 0xffff88007d5abf70 0xffffffff802af4c4 sys_sync+0xe Adding the following resolved the issue however you may wish to solve it in another manner. @@ -102,7 +102,7 @@ xfs_sync_inodes_ag( * in reclaim. Leave it for the reclaim code to flush. */ inode = VFS_I(ip); - if (!igrab(inode)) { + if (!inode || !igrab(inode)) { read_unlock(&pag->pag_ici_lock); continue; } Thanks, Pete From owner-xfs@oss.sgi.com Wed Oct 15 19:06:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=AWL,BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G263Ib022089 for ; Wed, 15 Oct 2008 19:06:03 -0700 X-ASG-Debug-ID: 1224122865-78ef02f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from out004.topica-silver-y.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id EFB69503522 for ; Wed, 15 Oct 2008 19:07:45 -0700 (PDT) Received: from out004.topica-silver-y.com (out181.topica-silver-y.com [66.227.62.181]) by cuda.sgi.com with SMTP id 2vcmOUJ4hWqIRVhB for ; Wed, 15 Oct 2008 19:07:45 -0700 (PDT) X-ASG-Whitelist: Client MIME-Version: 1.0 To: xfs@oss.sgi.com From: restoration@app.topica.com X-ASG-Orig-Subj: Update Your Profile Subject: Update Your Profile Date: Wed, 15 Oct 2008 19:07:42 -0700 Message-ID: <1451161636-1463747838-1224122862@b.topica.com> Errors-To: X-Barracuda-Connect: out181.topica-silver-y.com[66.227.62.181] X-Barracuda-Start-Time: 1224122866 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 550 Update Your Profile We have received a request to update your profile information for the list "RESTORATION & REMEDIATION." We have sent you this email in order protect your privacy and to ensure that it is you who want to see and update this information. To update your profile, please click on the link below. http://topica.com/f/?a2jfyI.aD1bJy.eGZzQG9z.874895691.201961289 If you did not make this request, you may safely ignore this email. If you have questions, please contact: tepsupport@topica.com. [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 15 20:46:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G3koWB005606 for ; Wed, 15 Oct 2008 20:46:50 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 51262304081; Wed, 15 Oct 2008 20:48:27 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA24748; Thu, 16 Oct 2008 14:48:25 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 5B3841F08F3; Thu, 16 Oct 2008 14:48:25 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.mangrove@engr.sgi.com Subject: PARTIAL TAKE 987246 - remove exports of inline functions Message-Id: <20081016034825.5B3841F08F3@chapter11.melbourne.sgi.com> Date: Thu, 16 Oct 2008 14:48:25 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Recent gcc starts to complain about exports of functions marked static inline, so let's get rid of those. Signed-off-by: Christoph Hellwig Date: Thu Oct 16 14:47:55 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32345a fs/xfs/linux-2.6/xfs_ksyms.c - 1.93 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.93&r2=text&tr2=1.92&f=h - remove exports of inline functions From owner-xfs@oss.sgi.com Wed Oct 15 21:31:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4VDYE011095 for ; Wed, 15 Oct 2008 21:31:14 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 46FC08F8055; Wed, 15 Oct 2008 21:32:50 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26102; Thu, 16 Oct 2008 15:32:48 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7B76758FA22B; Thu, 16 Oct 2008 15:32:48 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Allocate the struct xfs_ail Message-Id: <20081016043248.7B76758FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:32:48 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Allocate the struct xfs_ail Rather than embedding the struct xfs_ail in the struct xfs_mount, allocate it during AIL initialisation. Add a back pointer to the struct xfs_ail so that we can pass around the xfs_ail and still be able to access the xfs_mount if need be. This is th first step involved in isolating the AIL implementation from the surrounding filesystem code. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:32:15 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32346a fs/xfs/xfs_trans_priv.h - 1.31 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.31&r2=text&tr2=1.30&f=h fs/xfs/xfs_trans_ail.c - 1.88 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.88&r2=text&tr2=1.87&f=h fs/xfs/xfs_mount.h - 1.282 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.282&r2=text&tr2=1.281&f=h fs/xfs/linux-2.6/xfs_super.c - 1.463 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.463&r2=text&tr2=1.462&f=h - Allocate the struct xfs_ail From owner-xfs@oss.sgi.com Wed Oct 15 21:32:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4WQUc011355 for ; Wed, 15 Oct 2008 21:32:26 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 12905908A4; Wed, 15 Oct 2008 21:34:02 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26140; Thu, 16 Oct 2008 15:34:01 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B135458FA22B; Thu, 16 Oct 2008 15:34:01 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Use a cursor for AIL traversal. Message-Id: <20081016043401.B135458FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:34:01 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Use a cursor for AIL traversal. To replace the current generation number ensuring sanity of the AIL traversal, replace it with an external cursor that is linked to the AIL. Basically, we store the next item in the cursor whenever we want to drop the AIL lock to do something to the current item. When we regain the lock. the current item may already be free, so we can't reference it, but the next item in the traversal is already held in the cursor. When we move or delete an object, we search all the active cursors and if there is an item match we clear the cursor(s) that point to the object. This forces the traversal to restart transparently. We don't invalidate the cursor on insert because the cursor still points to a valid item. If the intem is inserted between the current item and the cursor it does not matter; the traversal is considered to be past the insertion point so it will be picked up in the next traversal. Hence traversal restarts pretty much disappear altogether with this method of traversal, which should substantially reduce the overhead of pushing on a busy AIL. Version 2 o add restart logic o comment cursor interface o minor cleanups Signed-off-by: Dave Chinner Date: Thu Oct 16 15:33:42 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32347a fs/xfs/xfs_log.c - 1.369 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.369&r2=text&tr2=1.368&f=h fs/xfs/xfs_trans_priv.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h fs/xfs/xfs_trans_ail.c - 1.89 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.89&r2=text&tr2=1.88&f=h fs/xfs/xfs_log_recover.c - 1.350 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.350&r2=text&tr2=1.349&f=h - Use a cursor for AIL traversal. From owner-xfs@oss.sgi.com Wed Oct 15 21:33:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4XcJZ011765 for ; Wed, 15 Oct 2008 21:33:39 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 8655630409E; Wed, 15 Oct 2008 21:35:15 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26193; Thu, 16 Oct 2008 15:35:14 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 2B08658FA22B; Thu, 16 Oct 2008 15:35:14 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - move the AIl traversal over to a consistent interface Message-Id: <20081016043514.2B08658FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:35:14 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) move the AIl traversal over to a consistent interface With the new cursor interface, it makes sense to make all the traversing code use the cursor interface and make the old one go away. This means more of the AIL interfacing is done by passing struct xfs_ail pointers around the place instead of struct xfs_mount pointers. We can replace the use of xfs_trans_first_ail() in xfs_log_need_covered() as it is only checking if the AIL is empty. We can do that with a call to xfs_trans_ail_tail() instead, where a zero LSN returned indicates and empty AIL... Signed-off-by: Dave Chinner Date: Thu Oct 16 15:34:55 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32348a fs/xfs/xfs_log.c - 1.370 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.370&r2=text&tr2=1.369&f=h fs/xfs/xfs_trans_priv.h - 1.33 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.33&r2=text&tr2=1.32&f=h fs/xfs/xfs_trans_ail.c - 1.90 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.90&r2=text&tr2=1.89&f=h fs/xfs/xfs_log_recover.c - 1.351 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.351&r2=text&tr2=1.350&f=h fs/xfs/xfs_trans.h - 1.153 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.h.diff?r1=text&tr1=1.153&r2=text&tr2=1.152&f=h - move the AIl traversal over to a consistent interface From owner-xfs@oss.sgi.com Wed Oct 15 21:34:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4Ydwp012108 for ; Wed, 15 Oct 2008 21:34:40 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id DD713908AC; Wed, 15 Oct 2008 21:36:22 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26250; Thu, 16 Oct 2008 15:36:21 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 7A1A658FA22B; Thu, 16 Oct 2008 15:36:21 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Allow 64 bit machines to avoid the AIL lock during flushes Message-Id: <20081016043621.7A1A658FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:36:21 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Allow 64 bit machines to avoid the AIL lock during flushes When copying lsn's from the log item to the inode or dquot flush lsn, we currently grab the AIL lock. We do this because the LSN is a 64 bit quantity and it needs to be read atomically. The lock is used to guarantee atomicity for 32 bit platforms. Make the LSN copying a small function, and make the function used conditional on BITS_PER_LONG so that 64 bit machines don't need to take the AIL lock in these places. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:36:04 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32349a fs/xfs/xfs_trans_priv.h - 1.34 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.34&r2=text&tr2=1.33&f=h fs/xfs/xfs_inode.c - 1.532 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.532&r2=text&tr2=1.531&f=h fs/xfs/quota/xfs_dquot.c - 1.41 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.41&r2=text&tr2=1.40&f=h - Allow 64 bit machines to avoid the AIL lock during flushes From owner-xfs@oss.sgi.com Wed Oct 15 21:36:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4a33u012487 for ; Wed, 15 Oct 2008 21:36:03 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id EF6E6304062; Wed, 15 Oct 2008 21:37:45 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26347; Thu, 16 Oct 2008 15:37:44 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 9737258FA22B; Thu, 16 Oct 2008 15:37:44 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Move the AIL lock into the struct xfs_ail Message-Id: <20081016043744.9737258FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:37:44 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Move the AIL lock into the struct xfs_ail Bring the ail lock inside the struct xfs_ail. This means the AIL can be entirely manipulated via the struct xfs_ail rather than needing both the struct xfs_mount and the struct xfs_ail. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:37:23 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32350a fs/xfs/xfs_log.c - 1.371 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.371&r2=text&tr2=1.370&f=h fs/xfs/xfs_extfree_item.c - 1.70 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_extfree_item.c.diff?r1=text&tr1=1.70&r2=text&tr2=1.69&f=h fs/xfs/xfs_buf_item.c - 1.170 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_buf_item.c.diff?r1=text&tr1=1.170&r2=text&tr2=1.169&f=h fs/xfs/xfs_trans_priv.h - 1.35 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.35&r2=text&tr2=1.34&f=h fs/xfs/xfs_trans_ail.c - 1.91 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.91&r2=text&tr2=1.90&f=h fs/xfs/xfs_inode_item.c - 1.140 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode_item.c.diff?r1=text&tr1=1.140&r2=text&tr2=1.139&f=h fs/xfs/xfs_log_recover.c - 1.352 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.352&r2=text&tr2=1.351&f=h fs/xfs/xfs_mount.h - 1.283 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.283&r2=text&tr2=1.282&f=h fs/xfs/xfs_inode.c - 1.533 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.533&r2=text&tr2=1.532&f=h fs/xfs/xfs_trans.c - 1.189 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.c.diff?r1=text&tr1=1.189&r2=text&tr2=1.188&f=h fs/xfs/quota/xfs_dquot_item.c - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot_item.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/xfs/quota/xfs_dquot.c - 1.42 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.42&r2=text&tr2=1.41&f=h - Move the AIL lock into the struct xfs_ail From owner-xfs@oss.sgi.com Wed Oct 15 21:37:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4bD9r012812 for ; Wed, 15 Oct 2008 21:37:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 6A3FC908A4; Wed, 15 Oct 2008 21:38:56 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26425; Thu, 16 Oct 2008 15:38:55 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 1C7F958FA22B; Thu, 16 Oct 2008 15:38:55 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Given the log a pointer to the AIL Message-Id: <20081016043855.1C7F958FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:38:55 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Given the log a pointer to the AIL When we need to go from the log to the AIL, we have to go via the xfs_mount. Add a xfs_ail pointer to the log so we can go directly to the AIL associated with the log. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:38:35 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32351a fs/xfs/xfs_log.c - 1.372 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.372&r2=text&tr2=1.371&f=h fs/xfs/xfs_log_priv.h - 1.135 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_priv.h.diff?r1=text&tr1=1.135&r2=text&tr2=1.134&f=h fs/xfs/xfs_log_recover.c - 1.353 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.353&r2=text&tr2=1.352&f=h - Given the log a pointer to the AIL From owner-xfs@oss.sgi.com Wed Oct 15 21:38:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4cW2c013156 for ; Wed, 15 Oct 2008 21:38:34 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 392E730408E; Wed, 15 Oct 2008 21:40:15 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26495; Thu, 16 Oct 2008 15:40:13 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id DD50958FA22B; Thu, 16 Oct 2008 15:40:13 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Add ail pointer into log items Message-Id: <20081016044013.DD50958FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:40:13 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Add ail pointer into log items Add an xfs_ail pointer to log items so that the log items can reference the AIL directly during callbacks without needed a struct xfs_mount. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:39:48 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32352a fs/xfs/xfs_extfree_item.c - 1.71 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_extfree_item.c.diff?r1=text&tr1=1.71&r2=text&tr2=1.70&f=h fs/xfs/xfs_buf_item.c - 1.171 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_buf_item.c.diff?r1=text&tr1=1.171&r2=text&tr2=1.170&f=h fs/xfs/xfs_inode_item.c - 1.141 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode_item.c.diff?r1=text&tr1=1.141&r2=text&tr2=1.140&f=h fs/xfs/xfs_trans_item.c - 1.49 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_item.c.diff?r1=text&tr1=1.49&r2=text&tr2=1.48&f=h fs/xfs/xfs_trans.c - 1.190 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.c.diff?r1=text&tr1=1.190&r2=text&tr2=1.189&f=h fs/xfs/xfs_trans.h - 1.154 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.h.diff?r1=text&tr1=1.154&r2=text&tr2=1.153&f=h - Add ail pointer into log items From owner-xfs@oss.sgi.com Wed Oct 15 21:39:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4dk8c013545 for ; Wed, 15 Oct 2008 21:39:46 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 41BD2908A2; Wed, 15 Oct 2008 21:41:29 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26544; Thu, 16 Oct 2008 15:41:27 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id E6EE158FA22B; Thu, 16 Oct 2008 15:41:27 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - Finish removing the mount pointer from the AIL API Message-Id: <20081016044127.E6EE158FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:41:27 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Finish removing the mount pointer from the AIL API Change all the remaining AIL API functions that are passed struct xfs_mount pointers to pass pointers directly to the struct xfs_ail being used. With this conversion, all external access to the AIL is via the struct xfs_ail. Hence the operation and referencing of the AIL is almost entirely independent of the xfs_mount that is using it - it is now much more tightly tied to the log and the items it is tracking in the log than it is tied to the xfs_mount. Signed-off-by: Dave Chinner Date: Thu Oct 16 15:41:08 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32353a fs/xfs/xfs_log.c - 1.373 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.373&r2=text&tr2=1.372&f=h fs/xfs/xfs_extfree_item.c - 1.72 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_extfree_item.c.diff?r1=text&tr1=1.72&r2=text&tr2=1.71&f=h fs/xfs/xfs_buf_item.c - 1.172 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_buf_item.c.diff?r1=text&tr1=1.172&r2=text&tr2=1.171&f=h fs/xfs/xfs_trans_priv.h - 1.36 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_priv.h.diff?r1=text&tr1=1.36&r2=text&tr2=1.35&f=h fs/xfs/xfs_trans_ail.c - 1.92 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.92&r2=text&tr2=1.91&f=h fs/xfs/xfs_inode_item.c - 1.142 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode_item.c.diff?r1=text&tr1=1.142&r2=text&tr2=1.141&f=h fs/xfs/xfs_log_recover.c - 1.354 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.354&r2=text&tr2=1.353&f=h fs/xfs/xfs_iget.c - 1.253 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.253&r2=text&tr2=1.252&f=h fs/xfs/xfs_inode.c - 1.534 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.534&r2=text&tr2=1.533&f=h fs/xfs/xfs_trans.c - 1.191 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.c.diff?r1=text&tr1=1.191&r2=text&tr2=1.190&f=h fs/xfs/xfs_trans.h - 1.155 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans.h.diff?r1=text&tr1=1.155&r2=text&tr2=1.154&f=h fs/xfs/xfs_trans_buf.c - 1.132 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_buf.c.diff?r1=text&tr1=1.132&r2=text&tr2=1.131&f=h fs/xfs/quota/xfs_dquot_item.c - 1.27 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot_item.c.diff?r1=text&tr1=1.27&r2=text&tr2=1.26&f=h fs/xfs/quota/xfs_dquot.c - 1.43 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_dquot.c.diff?r1=text&tr1=1.43&r2=text&tr2=1.42&f=h - Finish removing the mount pointer from the AIL API From owner-xfs@oss.sgi.com Wed Oct 15 21:47:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4lN23014521 for ; Wed, 15 Oct 2008 21:47:23 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 2ABC78F80B9; Wed, 15 Oct 2008 21:49:05 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26821; Thu, 16 Oct 2008 15:49:04 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B544258FA22B; Thu, 16 Oct 2008 15:49:04 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - xfs_trans_delete_ail() is now xfs_trans_ail_delete() Message-Id: <20081016044904.B544258FA22B@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:49:04 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) xfs_trans_delete_ail() is now xfs_trans_ail_delete() Date: Thu Oct 16 15:48:46 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32354a fs/xfs/linux-2.6/xfs_ksyms.c - 1.94 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.94&r2=text&tr2=1.93&f=h - xfs_trans_delete_ail() is now xfs_trans_ail_delete() From owner-xfs@oss.sgi.com Wed Oct 15 21:49:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G4nhZ5014993 for ; Wed, 15 Oct 2008 21:49:43 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 4949E8F80AF; Wed, 15 Oct 2008 21:51:26 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA26901; Thu, 16 Oct 2008 15:51:25 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id E5AFE58FA235; Thu, 16 Oct 2008 15:51:24 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988143 - AIL cleanup and bug fixes Message-Id: <20081016045124.E5AFE58FA235@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 15:51:24 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) AIL cleanup and bug fixes Date: Thu Oct 16 15:51:03 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32355a fs/xfs/xfsidbg.c - 1.372 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.372&r2=text&tr2=1.371&f=h - AIL cleanup and bug fixes From owner-xfs@oss.sgi.com Wed Oct 15 22:05:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_00,FORGED_YAHOO_RCVD, J_CHICKENPOX_45,WHOIS_MYPRIVREG autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G55UmQ016894 for ; Wed, 15 Oct 2008 22:05:32 -0700 X-ASG-Debug-ID: 1224133631-3fb501220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from kuber.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A681141164A for ; Wed, 15 Oct 2008 22:07:12 -0700 (PDT) Received: from kuber.nabble.com (kuber.nabble.com [216.139.236.158]) by cuda.sgi.com with ESMTP id mNO4YN572zBX6okE for ; Wed, 15 Oct 2008 22:07:12 -0700 (PDT) Received: from [192.168.236.156] (helo=isper.nabble.com) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1KqL4p-0007DZ-JW for xfs@oss.sgi.com; Wed, 15 Oct 2008 22:07:11 -0700 Message-ID: <20007191.post@talk.nabble.com> Date: Wed, 15 Oct 2008 22:06:23 -0700 (PDT) From: ibulescu To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How can I recover data? Subject: Re: How can I recover data? In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: tibi_1980@yahoo.com References: <19996090.post@talk.nabble.com> X-Barracuda-Connect: kuber.nabble.com[216.139.236.158] X-Barracuda-Start-Time: 1224133633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.61 X-Barracuda-Spam-Status: No, SCORE=-0.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FORGED_YAHOO_RCVD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8056 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.41 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers There is a 186 directory in lost+found but it's empty and there are only 6Mb of space occupied on the volume. In total there are 2 empty folders, 186 and 191 and 4 zero size files, 187 to 190. I have recovered almost all of my data using reiserfs in the same scenario but I can't find a solution using xfs. Barry Naujok-3 wrote: > > On Thu, 16 Oct 2008 02:35:40 +1100, ibulescu wrote: > >> Hello, >> how can I recover the data? >> >> Here is my story: >> >> I have openfiler installed with LVM and a single xfs partition over 7 >> sata >> hdd's. Yesterday I discovered that I can't write any files to the xfs >> partition, even if there was 1,2Tb free space. I've googled alot and >> modified the label of all partitions to GPT (that seemed to be the >> problem >> with xfs, or so I've imagined and I've used parted - mklabel). After that >> I've rebooted and all data was gone. The parted program changed the >> partitions UUID's. I've manualy set original partitions UUID from lvm >> backup's and restored the volume group. The partition from the volume >> group >> was there but XFS can't mount the filesystem. After running xfs_repair >> this >> is the result: >> - all the data was contained in a single folder named "All" which was >> deleted by the repair > > All was inode 186: > >> entry "All" in shortform directory 186 references free inode 136 >> junking entry "All" in directory inode 186 > > which is now in lost+found: > >> disconnected dir inode 186, moving to lost+found > > So, you should find the contents of the All directory in > /lost+found/186/ > > >> ----Begin copy---- >> bad magic number 0x0 on inode 183, resetting magic number >> bad version number 0x0 on inode 183, resetting version number >> bad magic number 0x0 on inode 184, resetting magic number >> bad version number 0x0 on inode 184, resetting version number >> bad magic number 0x0 on inode 185, resetting magic number >> bad version number 0x0 on inode 185, resetting version number >> imap claims in-use inode 186 is free, correcting imap >> imap claims in-use inode 187 is free, correcting imap >> imap claims in-use inode 188 is free, correcting imap >> imap claims in-use inode 189 is free, correcting imap >> imap claims in-use inode 190 is free, correcting imap >> bad attribute leaf magic # 0 for dir ino 191 >> problem with attribute contents in inode 191 >> clearing inode 191 attributes >> correcting nblocks for inode 191, was 1 - counted 0 >> imap claims in-use inode 191 is free, correcting imap >> - agno = 1 >> - agno = 2 >> - agno = 3 >> - agno = 4 >> - agno = 5 >> - agno = 6 >> - agno = 7 >> - agno = 8 >> - agno = 9 >> - agno = 10 >> - agno = 11 >> - agno = 12 >> - agno = 13 >> - agno = 14 >> - agno = 15 >> - agno = 16 >> - agno = 17 >> - agno = 18 >> - agno = 19 >> - agno = 20 >> - agno = 21 >> - agno = 22 >> - agno = 23 >> - agno = 24 >> - agno = 25 >> - agno = 26 >> - agno = 27 >> - agno = 28 >> - agno = 29 >> - agno = 30 >> - agno = 31 >> - agno = 32 >> - agno = 33 >> - agno = 34 >> - agno = 35 >> - agno = 36 >> - agno = 37 >> - agno = 38 >> - agno = 39 >> - agno = 40 >> - agno = 41 >> - agno = 42 >> - agno = 43 >> - agno = 44 >> - agno = 45 >> - agno = 46 >> - agno = 47 >> - agno = 48 >> - agno = 49 >> - agno = 50 >> - agno = 51 >> - agno = 52 >> - agno = 53 >> - agno = 54 >> - agno = 55 >> - agno = 56 >> - agno = 57 >> - agno = 58 >> - agno = 59 >> - agno = 60 >> - agno = 61 >> - agno = 62 >> - agno = 63 >> - agno = 64 >> - agno = 65 >> - agno = 66 >> - agno = 67 >> - agno = 68 >> - agno = 69 >> - agno = 70 >> - agno = 71 >> - agno = 72 >> - agno = 73 >> - agno = 74 >> - process newly discovered inodes... >> Phase 4 - check for duplicate blocks... >> - setting up duplicate extent list... >> root inode lost >> - clear lost+found (if it exists) ... >> - check for inodes claiming duplicate blocks... >> - agno = 0 >> entry "All" in shortform directory 186 references free inode 136 >> junking entry "All" in directory inode 186 >> entry "All.info.xml" in shortform directory 186 references free inode 137 >> junking entry "All.info.xml" in directory inode 186 >> bad attribute format 1 in inode 191, resetting value >> entry "rhi-rp11.iso" in shortform directory 191 references free inode 134 >> junking entry "rhi-rp11.iso" in directory inode 191 >> entry "rhi.nfo" in shortform directory 191 references free inode 135 >> junking entry "rhi.nfo" in directory inode 191 >> - agno = 1 >> - agno = 2 >> - agno = 3 >> - agno = 4 >> - agno = 5 >> - agno = 6 >> - agno = 7 >> - agno = 8 >> - agno = 9 >> - agno = 10 >> - agno = 11 >> - agno = 12 >> - agno = 13 >> - agno = 14 >> - agno = 15 >> - agno = 16 >> - agno = 17 >> - agno = 18 >> - agno = 19 >> - agno = 20 >> - agno = 21 >> - agno = 22 >> - agno = 23 >> - agno = 24 >> - agno = 25 >> - agno = 26 >> - agno = 27 >> - agno = 28 >> - agno = 29 >> - agno = 30 >> - agno = 31 >> - agno = 32 >> - agno = 33 >> - agno = 34 >> - agno = 35 >> - agno = 36 >> - agno = 37 >> - agno = 38 >> - agno = 39 >> - agno = 40 >> - agno = 41 >> - agno = 42 >> - agno = 43 >> - agno = 44 >> - agno = 45 >> - agno = 46 >> - agno = 47 >> - agno = 48 >> - agno = 49 >> - agno = 50 >> - agno = 51 >> - agno = 52 >> - agno = 53 >> - agno = 54 >> - agno = 55 >> - agno = 56 >> - agno = 57 >> - agno = 58 >> - agno = 59 >> - agno = 60 >> - agno = 61 >> - agno = 62 >> - agno = 63 >> - agno = 64 >> - agno = 65 >> - agno = 66 >> - agno = 67 >> - agno = 68 >> - agno = 69 >> - agno = 70 >> - agno = 71 >> - agno = 72 >> - agno = 73 >> - agno = 74 >> Phase 5 - rebuild AG headers and trees... >> - reset superblock... >> Phase 6 - check inode connectivity... >> reinitializing root directory >> reinitializing realtime bitmap inode >> reinitializing realtime summary inode >> - resetting contents of realtime bitmap and summary inodes >> - ensuring existence of lost+found directory >> - traversing filesystem starting at / ... >> - traversal finished ... >> - traversing all unattached subtrees ... >> - traversals finished ... >> - moving disconnected inodes to lost+found ... >> disconnected dir inode 186, moving to lost+found >> disconnected inode 187, moving to lost+found >> disconnected inode 188, moving to lost+found >> disconnected inode 189, moving to lost+found >> disconnected inode 190, moving to lost+found >> disconnected dir inode 191, moving to lost+found >> Phase 7 - verify and correct link counts... >> resetting inode 128 nlinks from 2 to 3 >> resetting inode 186 nlinks from 3 to 2 >> Warning: quota inodes were cleared. Quotas disabled. >> Note - stripe unit (0) and width (0) fields have been reset. >> Please set with mount -o sunit=,swidth= >> done >> [root@nas01 /]# >> ----End copy---- > > > > > -- View this message in context: http://www.nabble.com/How-can-I-recover-data--tp19996090p20007191.html Sent from the Xfs - General mailing list archive at Nabble.com. From owner-xfs@oss.sgi.com Wed Oct 15 22:23:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G5Mxjg019070 for ; Wed, 15 Oct 2008 22:22:59 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 717FC304080; Wed, 15 Oct 2008 22:24:39 -0700 (PDT) Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA27853; Thu, 16 Oct 2008 16:24:36 +1100 Date: Thu, 16 Oct 2008 16:25:05 +1100 To: ibulescu , xfs@oss.sgi.com Subject: Re: How can I recover data? From: "Barry Naujok" Organization: SGI Content-Type: text/plain; format=flowed; delsp=yes; charset=utf-8 MIME-Version: 1.0 References: <19996090.post@talk.nabble.com> <20007191.post@talk.nabble.com> Content-Transfer-Encoding: 7bit Message-ID: In-Reply-To: <20007191.post@talk.nabble.com> User-Agent: Opera Mail/9.52 (Win32) On Thu, 16 Oct 2008 16:06:23 +1100, ibulescu wrote: > There is a 186 directory in lost+found but it's empty and there are only > 6Mb > of space occupied on the volume. In total there are 2 empty folders, 186 > and > 191 and 4 zero size files, 187 to 190. > > I have recovered almost all of my data using reiserfs in the same > scenario > but I can't find a solution using xfs. Ah, misread the trace: >> - agno = 0 >> entry "All" in shortform directory 186 references free inode 136 >> junking entry "All" in directory inode 186 Inode 136 is the "All" directory - for some reason, it's marked as deleted. Since you don't really have much to lose, you can try the following: # xfs_db -x xfs_db> inode 136 xfs_db> print If it appears to be inode data (and not all zeros): xfs_db> write mode 040755 xfs_db> quit # xfs_repair -n and see what it reports. The "write mode 040755" command mark the inodes as a directory and not deleted. You may try that with the following items too: >> entry "All.info.xml" in shortform directory 186 references free inode >> 137 >> junking entry "All.info.xml" in directory inode 186 >> bad attribute format 1 in inode 191, resetting value >> entry "rhi-rp11.iso" in shortform directory 191 references free inode >> 134 >> junking entry "rhi-rp11.iso" in directory inode 191 >> entry "rhi.nfo" in shortform directory 191 references free inode 135 >> junking entry "rhi.nfo" in directory inode 191 >> - agno = 1 > Barry Naujok-3 wrote: >> >> On Thu, 16 Oct 2008 02:35:40 +1100, ibulescu >> wrote: >> >>> Hello, >>> how can I recover the data? >>> >>> Here is my story: >>> >>> I have openfiler installed with LVM and a single xfs partition over 7 >>> sata >>> hdd's. Yesterday I discovered that I can't write any files to the xfs >>> partition, even if there was 1,2Tb free space. I've googled alot and >>> modified the label of all partitions to GPT (that seemed to be the >>> problem >>> with xfs, or so I've imagined and I've used parted - mklabel). After >>> that >>> I've rebooted and all data was gone. The parted program changed the >>> partitions UUID's. I've manualy set original partitions UUID from lvm >>> backup's and restored the volume group. The partition from the volume >>> group >>> was there but XFS can't mount the filesystem. After running xfs_repair >>> this >>> is the result: >>> - all the data was contained in a single folder named "All" which was >>> deleted by the repair >> >> All was inode 186: >> >>> entry "All" in shortform directory 186 references free inode 136 >>> junking entry "All" in directory inode 186 >> >> which is now in lost+found: >> >>> disconnected dir inode 186, moving to lost+found >> >> So, you should find the contents of the All directory in >> /lost+found/186/ >> >> >>> ----Begin copy---- >>> bad magic number 0x0 on inode 183, resetting magic number >>> bad version number 0x0 on inode 183, resetting version number >>> bad magic number 0x0 on inode 184, resetting magic number >>> bad version number 0x0 on inode 184, resetting version number >>> bad magic number 0x0 on inode 185, resetting magic number >>> bad version number 0x0 on inode 185, resetting version number >>> imap claims in-use inode 186 is free, correcting imap >>> imap claims in-use inode 187 is free, correcting imap >>> imap claims in-use inode 188 is free, correcting imap >>> imap claims in-use inode 189 is free, correcting imap >>> imap claims in-use inode 190 is free, correcting imap >>> bad attribute leaf magic # 0 for dir ino 191 >>> problem with attribute contents in inode 191 >>> clearing inode 191 attributes >>> correcting nblocks for inode 191, was 1 - counted 0 >>> imap claims in-use inode 191 is free, correcting imap >>> - agno = 1 >>> - agno = 2 >>> - agno = 3 >>> - agno = 4 >>> - agno = 5 >>> - agno = 6 >>> - agno = 7 >>> - agno = 8 >>> - agno = 9 >>> - agno = 10 >>> - agno = 11 >>> - agno = 12 >>> - agno = 13 >>> - agno = 14 >>> - agno = 15 >>> - agno = 16 >>> - agno = 17 >>> - agno = 18 >>> - agno = 19 >>> - agno = 20 >>> - agno = 21 >>> - agno = 22 >>> - agno = 23 >>> - agno = 24 >>> - agno = 25 >>> - agno = 26 >>> - agno = 27 >>> - agno = 28 >>> - agno = 29 >>> - agno = 30 >>> - agno = 31 >>> - agno = 32 >>> - agno = 33 >>> - agno = 34 >>> - agno = 35 >>> - agno = 36 >>> - agno = 37 >>> - agno = 38 >>> - agno = 39 >>> - agno = 40 >>> - agno = 41 >>> - agno = 42 >>> - agno = 43 >>> - agno = 44 >>> - agno = 45 >>> - agno = 46 >>> - agno = 47 >>> - agno = 48 >>> - agno = 49 >>> - agno = 50 >>> - agno = 51 >>> - agno = 52 >>> - agno = 53 >>> - agno = 54 >>> - agno = 55 >>> - agno = 56 >>> - agno = 57 >>> - agno = 58 >>> - agno = 59 >>> - agno = 60 >>> - agno = 61 >>> - agno = 62 >>> - agno = 63 >>> - agno = 64 >>> - agno = 65 >>> - agno = 66 >>> - agno = 67 >>> - agno = 68 >>> - agno = 69 >>> - agno = 70 >>> - agno = 71 >>> - agno = 72 >>> - agno = 73 >>> - agno = 74 >>> - process newly discovered inodes... >>> Phase 4 - check for duplicate blocks... >>> - setting up duplicate extent list... >>> root inode lost >>> - clear lost+found (if it exists) ... >>> - check for inodes claiming duplicate blocks... >>> - agno = 0 >>> entry "All" in shortform directory 186 references free inode 136 >>> junking entry "All" in directory inode 186 >>> entry "All.info.xml" in shortform directory 186 references free inode >>> 137 >>> junking entry "All.info.xml" in directory inode 186 >>> bad attribute format 1 in inode 191, resetting value >>> entry "rhi-rp11.iso" in shortform directory 191 references free inode >>> 134 >>> junking entry "rhi-rp11.iso" in directory inode 191 >>> entry "rhi.nfo" in shortform directory 191 references free inode 135 >>> junking entry "rhi.nfo" in directory inode 191 >>> - agno = 1 >>> - agno = 2 >>> - agno = 3 >>> - agno = 4 >>> - agno = 5 >>> - agno = 6 >>> - agno = 7 >>> - agno = 8 >>> - agno = 9 >>> - agno = 10 >>> - agno = 11 >>> - agno = 12 >>> - agno = 13 >>> - agno = 14 >>> - agno = 15 >>> - agno = 16 >>> - agno = 17 >>> - agno = 18 >>> - agno = 19 >>> - agno = 20 >>> - agno = 21 >>> - agno = 22 >>> - agno = 23 >>> - agno = 24 >>> - agno = 25 >>> - agno = 26 >>> - agno = 27 >>> - agno = 28 >>> - agno = 29 >>> - agno = 30 >>> - agno = 31 >>> - agno = 32 >>> - agno = 33 >>> - agno = 34 >>> - agno = 35 >>> - agno = 36 >>> - agno = 37 >>> - agno = 38 >>> - agno = 39 >>> - agno = 40 >>> - agno = 41 >>> - agno = 42 >>> - agno = 43 >>> - agno = 44 >>> - agno = 45 >>> - agno = 46 >>> - agno = 47 >>> - agno = 48 >>> - agno = 49 >>> - agno = 50 >>> - agno = 51 >>> - agno = 52 >>> - agno = 53 >>> - agno = 54 >>> - agno = 55 >>> - agno = 56 >>> - agno = 57 >>> - agno = 58 >>> - agno = 59 >>> - agno = 60 >>> - agno = 61 >>> - agno = 62 >>> - agno = 63 >>> - agno = 64 >>> - agno = 65 >>> - agno = 66 >>> - agno = 67 >>> - agno = 68 >>> - agno = 69 >>> - agno = 70 >>> - agno = 71 >>> - agno = 72 >>> - agno = 73 >>> - agno = 74 >>> Phase 5 - rebuild AG headers and trees... >>> - reset superblock... >>> Phase 6 - check inode connectivity... >>> reinitializing root directory >>> reinitializing realtime bitmap inode >>> reinitializing realtime summary inode >>> - resetting contents of realtime bitmap and summary inodes >>> - ensuring existence of lost+found directory >>> - traversing filesystem starting at / ... >>> - traversal finished ... >>> - traversing all unattached subtrees ... >>> - traversals finished ... >>> - moving disconnected inodes to lost+found ... >>> disconnected dir inode 186, moving to lost+found >>> disconnected inode 187, moving to lost+found >>> disconnected inode 188, moving to lost+found >>> disconnected inode 189, moving to lost+found >>> disconnected inode 190, moving to lost+found >>> disconnected dir inode 191, moving to lost+found >>> Phase 7 - verify and correct link counts... >>> resetting inode 128 nlinks from 2 to 3 >>> resetting inode 186 nlinks from 3 to 2 >>> Warning: quota inodes were cleared. Quotas disabled. >>> Note - stripe unit (0) and width (0) fields have been reset. >>> Please set with mount -o sunit=,swidth= >>> done >>> [root@nas01 /]# >>> ----End copy---- >> >> >> >> >> > From owner-xfs@oss.sgi.com Wed Oct 15 22:53:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G5rpuu022370 for ; Wed, 15 Oct 2008 22:53:51 -0700 X-ASG-Debug-ID: 1224136533-074c03c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3B21F503E01 for ; Wed, 15 Oct 2008 22:55:34 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 6iK8hovC2IFGRtcD for ; Wed, 15 Oct 2008 22:55:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOdy9kh5LF1j/2dsb2JhbADBWIFs X-IronPort-AV: E=Sophos;i="4.33,422,1220193000"; d="scan'208";a="231465554" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 16 Oct 2008 16:25:31 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqLpa-0003qA-92; Thu, 16 Oct 2008 16:55:30 +1100 Date: Thu, 16 Oct 2008 16:55:30 +1100 From: Dave Chinner To: Peter Leckie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081016055530.GE25906@disturbed> Mail-Followup-To: Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <48F5A104.5060506@sgi.com> <48F6AA3E.8030902@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6AA3E.8030902@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224136535 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2713 1.0000 -0.4752 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.48 X-Barracuda-Spam-Status: No, SCORE=-0.48 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8059 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 12:43:10PM +1000, Peter Leckie wrote: > >>> - it's the same as >>> the first report - deferencing the linux inode without first having >>> a refernce on it. >>> >> >> Yes it resolves the issue. > > I spoke to soon, Ooops as follows: .... > Adding the following resolved the issue however you may wish to solve it > in another manner. > > @@ -102,7 +102,7 @@ xfs_sync_inodes_ag( > * in reclaim. Leave it for the reclaim code to flush. > */ > inode = VFS_I(ip); > - if (!igrab(inode)) { > + if (!inode || !igrab(inode)) { > read_unlock(&pag->pag_ici_lock); > continue; > } Yes, or you could simply apply the "combine linux/XFS inode" patch series and then VFS_I(ip) will never, ever return NULL. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 15 23:01:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G617BQ023862 for ; Wed, 15 Oct 2008 23:01:07 -0700 X-ASG-Debug-ID: 1224136969-065d03800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1E72A9A3CB for ; Wed, 15 Oct 2008 23:02:49 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id UG7933ll4Rz4fAvA for ; Wed, 15 Oct 2008 23:02:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAOdy9kh5LF1j/2dsb2JhbADBWIFs X-IronPort-AV: E=Sophos;i="4.33,422,1220193000"; d="scan'208";a="231481761" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 16 Oct 2008 16:32:48 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqLwd-0003zL-55; Thu, 16 Oct 2008 17:02:47 +1100 Date: Thu, 16 Oct 2008 17:02:47 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081016060247.GF25906@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6A19D.9080900@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224136970 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8058 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: > fsstress started reporting these errors > > fsstress: check_cwd failure > fsstress: check_cwd failure > fsstress: check_cwd failure > fsstress: check_cwd failure > fsstress: check_cwd failure > ... > > The filesystem is mounted on /mnt/data but the mount point is now toast. > > wipeout:/mnt # mount > ... > /dev/mapper/dm0 on /mnt/data type xfs (rw,logdev=/dev/ram0,nobarrier) > > > wipeout:/mnt # ls -alF > /bin/ls: data: Input/output error > total 4 > drwxr-xr-x 6 root root 57 Aug 8 03:09 ./ > drwxr-xr-x 21 root root 4096 Oct 15 11:56 ../ > ?--------- 0 root root 0 Dec 31 1969 data > drwxr-xr-x 2 root root 6 Jul 16 08:21 home/ I bet the filesystem has been shut down.... [snip] > Oct 16 09:54:54 wipeout kernel: [79179.449760] Filesystem "dm-0": XFS internal error xfs_trans_cancel at line 1164 of file fs/xfs/xfs_trans.c. Caller 0xffffffff8118 > d422 > Oct 16 09:54:54 wipeout kernel: [79179.449773] Pid: 6679, comm: fsstress Not tainted 2.6.27-rc8 #192 > Oct 16 09:54:54 wipeout kernel: [79179.449775] Oct 16 09:54:54 wipeout > kernel: [79179.449775] Call Trace: > Oct 16 09:54:54 wipeout kernel: [79179.449784] [] xfs_error_report+0x3c/0x3e > Oct 16 09:54:54 wipeout kernel: [79179.449789] [] ? xfs_rename+0x703/0x745 > Oct 16 09:54:54 wipeout kernel: [79179.449795] [] xfs_trans_cancel+0x5f/0xfc > Oct 16 09:54:54 wipeout kernel: [79179.449799] [] xfs_rename+0x703/0x745 > Oct 16 09:54:54 wipeout kernel: [79179.449805] [] xfs_vn_rename+0x5d/0x61 > Oct 16 09:54:54 wipeout kernel: [79179.449810] [] vfs_rename+0x2b2/0x42e > Oct 16 09:54:54 wipeout kernel: [79179.449815] [] sys_renameat+0x16d/0x1e3 > Oct 16 09:54:54 wipeout kernel: [79179.449821] [] ? sys_newstat+0x31/0x3c > Oct 16 09:54:54 wipeout kernel: [79179.449826] [] sys_rename+0x16/0x18 > Oct 16 09:54:54 wipeout kernel: [79179.449831] [] system_call_fastpath+0x16/0x1b > Oct 16 09:54:54 wipeout kernel: [79179.449835] Oct 16 09:54:54 wipeout Ah, yes. A shutdown in a directory transaction. Have you applied the fix to the directory block allocation transaction accounting that was one of the last patches I posted? If so, then there's some other problem in that code that we'll need a reproducable test case to be able to find.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 15 23:11:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G6BxP3025813 for ; Wed, 15 Oct 2008 23:11:59 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 880F38F8099; Wed, 15 Oct 2008 23:13:36 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA29259; Thu, 16 Oct 2008 17:13:34 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id B1A4358FA22E; Thu, 16 Oct 2008 17:13:34 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 988145 - XFS: Check for valid transaction headers in recovery Message-Id: <20081016061334.B1A4358FA22E@chook.melbourne.sgi.com> Date: Thu, 16 Oct 2008 17:13:34 +1100 (EST) From: tes@sgi.com (Tim Shimmin) Check for valid transaction headers in recovery When we are about to add a new item to a transaction in recovery, we need to check that it is valid first. Currently we just assert that header magic number matches, but in production systems that is not present and we add a corrupted transaction to the list to be processed. This results in a kernel oops later when processing the corrupted transaction. Instead, if we detect a corrupted transaction, abort recovery and leave the user to clean up the mess that has occurred. Signed-off-by: Dave Chinner Date: Thu Oct 16 17:11:12 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/2.6.x-xfs-quilt Inspected by: david@fromorbit.com,sandeen@sandeen.net The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32356a fs/xfs/xfs_log_recover.c - 1.355 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.355&r2=text&tr2=1.354&f=h - check for valid trans headers in recovery From owner-xfs@oss.sgi.com Wed Oct 15 23:38:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G6c9Uk029441 for ; Wed, 15 Oct 2008 23:38:11 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 41F0D30409E; Wed, 15 Oct 2008 23:39:49 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA00169; Thu, 16 Oct 2008 17:39:47 +1100 Message-ID: <48F6EF7F.4070008@sgi.com> Date: Thu, 16 Oct 2008 17:38:39 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> In-Reply-To: <20081016060247.GF25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: >> fsstress started reporting these errors >> >> fsstress: check_cwd failure >> fsstress: check_cwd failure >> fsstress: check_cwd failure >> fsstress: check_cwd failure >> fsstress: check_cwd failure >> ... >> >> The filesystem is mounted on /mnt/data but the mount point is now toast. >> >> wipeout:/mnt # mount >> ... >> /dev/mapper/dm0 on /mnt/data type xfs (rw,logdev=/dev/ram0,nobarrier) >> >> >> wipeout:/mnt # ls -alF >> /bin/ls: data: Input/output error >> total 4 >> drwxr-xr-x 6 root root 57 Aug 8 03:09 ./ >> drwxr-xr-x 21 root root 4096 Oct 15 11:56 ../ >> ?--------- 0 root root 0 Dec 31 1969 data >> drwxr-xr-x 2 root root 6 Jul 16 08:21 home/ > > I bet the filesystem has been shut down.... > > [snip] > >> Oct 16 09:54:54 wipeout kernel: [79179.449760] Filesystem "dm-0": XFS internal error xfs_trans_cancel at line 1164 of file fs/xfs/xfs_trans.c. Caller 0xffffffff8118 >> d422 >> Oct 16 09:54:54 wipeout kernel: [79179.449773] Pid: 6679, comm: fsstress Not tainted 2.6.27-rc8 #192 >> Oct 16 09:54:54 wipeout kernel: [79179.449775] Oct 16 09:54:54 wipeout >> kernel: [79179.449775] Call Trace: >> Oct 16 09:54:54 wipeout kernel: [79179.449784] [] xfs_error_report+0x3c/0x3e >> Oct 16 09:54:54 wipeout kernel: [79179.449789] [] ? xfs_rename+0x703/0x745 >> Oct 16 09:54:54 wipeout kernel: [79179.449795] [] xfs_trans_cancel+0x5f/0xfc >> Oct 16 09:54:54 wipeout kernel: [79179.449799] [] xfs_rename+0x703/0x745 >> Oct 16 09:54:54 wipeout kernel: [79179.449805] [] xfs_vn_rename+0x5d/0x61 >> Oct 16 09:54:54 wipeout kernel: [79179.449810] [] vfs_rename+0x2b2/0x42e >> Oct 16 09:54:54 wipeout kernel: [79179.449815] [] sys_renameat+0x16d/0x1e3 >> Oct 16 09:54:54 wipeout kernel: [79179.449821] [] ? sys_newstat+0x31/0x3c >> Oct 16 09:54:54 wipeout kernel: [79179.449826] [] sys_rename+0x16/0x18 >> Oct 16 09:54:54 wipeout kernel: [79179.449831] [] system_call_fastpath+0x16/0x1b >> Oct 16 09:54:54 wipeout kernel: [79179.449835] Oct 16 09:54:54 wipeout > > Ah, yes. A shutdown in a directory transaction. Have you applied the > fix to the directory block allocation transaction accounting that was one > of the last patches I posted? Yes, I checked that in yesterday and ran with it overnight. > > If so, then there's some other problem in that code that we'll > need a reproducable test case to be able to find.... I was running 8 copies of this command: fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i I tried it again but this time the system ran out of memory and locked up hard. I couldn't see why though - maybe a memory leak. From owner-xfs@oss.sgi.com Thu Oct 16 00:18:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G7Iflb010659 for ; Thu, 16 Oct 2008 00:18:42 -0700 X-ASG-Debug-ID: 1224141622-109900510000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F7705042CD for ; Thu, 16 Oct 2008 00:20:23 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id TUE0tbEDmJACdjHl for ; Thu, 16 Oct 2008 00:20:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAP6H9kh5LF1j/2dsb2JhbADBXIFs X-IronPort-AV: E=Sophos;i="4.33,422,1220193000"; d="scan'208";a="231641293" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 16 Oct 2008 17:50:21 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqN9g-0006UW-12; Thu, 16 Oct 2008 18:20:20 +1100 Date: Thu, 16 Oct 2008 18:20:19 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081016072019.GH25906@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6EF7F.4070008@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224141624 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8065 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 05:38:39PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: >>> fsstress started reporting these errors >>> >>> fsstress: check_cwd failure >>> fsstress: check_cwd failure >>> fsstress: check_cwd failure >>> fsstress: check_cwd failure >>> fsstress: check_cwd failure >>> ... .... >> Ah, yes. A shutdown in a directory transaction. Have you applied the >> fix to the directory block allocation transaction accounting that was one >> of the last patches I posted? > Yes, I checked that in yesterday and ran with it overnight. OK. >> If so, then there's some other problem in that code that we'll >> need a reproducable test case to be able to find.... > > I was running 8 copies of this command: > fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i > > I tried it again but this time the system ran out of memory > and locked up hard. I couldn't see why though - maybe a memory > leak. I just ran up the same load in a UML session. I'd say it's this slab: 2482 2481 99% 0.23K 146 17 584K xfs_btree_cur which is showing a leak. It is slowly growing on my system and dropping the caches doesn't reduce it's size. At least it's a place to start looking - somewhere in the new btree code we seem to be leaking a btree cursor.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 00:34:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G7YX44020425 for ; Thu, 16 Oct 2008 00:34:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id C11B08F80C0; Thu, 16 Oct 2008 00:36:13 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA01745; Thu, 16 Oct 2008 18:36:12 +1100 Message-ID: <48F6FCB7.6050905@sgi.com> Date: Thu, 16 Oct 2008 18:35:03 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> In-Reply-To: <20081016072019.GH25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Thu, Oct 16, 2008 at 05:38:39PM +1000, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: >>>> fsstress started reporting these errors >>>> >>>> fsstress: check_cwd failure >>>> fsstress: check_cwd failure >>>> fsstress: check_cwd failure >>>> fsstress: check_cwd failure >>>> fsstress: check_cwd failure >>>> ... > .... >>> Ah, yes. A shutdown in a directory transaction. Have you applied the >>> fix to the directory block allocation transaction accounting that was one >>> of the last patches I posted? >> Yes, I checked that in yesterday and ran with it overnight. > > OK. > >>> If so, then there's some other problem in that code that we'll >>> need a reproducable test case to be able to find.... >> I was running 8 copies of this command: >> fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i >> >> I tried it again but this time the system ran out of memory >> and locked up hard. I couldn't see why though - maybe a memory >> leak. > > I just ran up the same load in a UML session. I'd say it's this > slab: > > 2482 2481 99% 0.23K 146 17 584K xfs_btree_cur > > which is showing a leak. It is slowly growing on my system > and dropping the caches doesn't reduce it's size. At least it's > a place to start looking - somewhere in the new btree code we > seem to be leaking a btree cursor.... > I'm not seeing a leak in that slab - actually that slab doesn't even show up. I am seeing a lot of memory used here though: 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security From owner-xfs@oss.sgi.com Thu Oct 16 01:58:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G8wnjo004443 for ; Thu, 16 Oct 2008 01:58:51 -0700 X-ASG-Debug-ID: 1224147631-135b00e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C76611411DF1; Thu, 16 Oct 2008 02:00:31 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id AiFj80oGnJb6o85v; Thu, 16 Oct 2008 02:00:31 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KqOic-0001Gg-Hq; Thu, 16 Oct 2008 09:00:30 +0000 Date: Thu, 16 Oct 2008 05:00:30 -0400 From: Christoph Hellwig To: Peter Leckie Cc: Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081016090030.GA31558@infradead.org> References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <48F5A104.5060506@sgi.com> <48F6AA3E.8030902@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6AA3E.8030902@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224147632 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8070 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 12:43:10PM +1000, Peter Leckie wrote: > Adding the following resolved the issue however you may wish to solve it > in another manner. > > @@ -102,7 +102,7 @@ xfs_sync_inodes_ag( > * in reclaim. Leave it for the reclaim code to flush. > */ > inode = VFS_I(ip); > - if (!igrab(inode)) { > + if (!inode || !igrab(inode)) { > read_unlock(&pag->pag_ici_lock); > continue; > } > This would be the correct fix for the current code, but can you please put in the Inode/XFS Inode unification patches? At least I have only QAed the whole patchkit, and from the issues here it seems like Dave did the same. And with that it would also be very good if there was any chance Dave and me (and all others) could actually access the current tree. The ptools -> CVS export has been broken for mor than two days, and there is no uptodate git tree eiter, so us external developers are completely tapping in the dark vs the current tree. From owner-xfs@oss.sgi.com Thu Oct 16 02:06:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9G96MGO005963 for ; Thu, 16 Oct 2008 02:06:22 -0700 X-ASG-Debug-ID: 1224148085-173303800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 16FD5504848; Thu, 16 Oct 2008 02:08:05 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id KY8g5otgQ5zipHhN; Thu, 16 Oct 2008 02:08:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KqOpx-0005WB-9x; Thu, 16 Oct 2008 09:08:05 +0000 Date: Thu, 16 Oct 2008 05:08:05 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081016090805.GA32101@infradead.org> References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6FCB7.6050905@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224148086 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8070 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 06:35:03PM +1000, Lachlan McIlroy wrote: > I'm not seeing a leak in that slab - actually that slab doesn't even > show up. I am seeing a lot of memory used here though: Are you using slab or slub? The latter merges caches of equal size, so it's totally useless for the kind of debug stats Dave looked at. From owner-xfs@oss.sgi.com Thu Oct 16 03:29:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_50,J_CHICKENPOX_33, J_CHICKENPOX_52,UPPERCASE_50_75 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GATbtP016380 for ; Thu, 16 Oct 2008 03:29:39 -0700 X-ASG-Debug-ID: 1224153075-45d302f10000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ciao.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 861BA504B50 for ; Thu, 16 Oct 2008 03:31:15 -0700 (PDT) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by cuda.sgi.com with ESMTP id 2sfX27FqzACt9kwn for ; Thu, 16 Oct 2008 03:31:15 -0700 (PDT) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1KqQ8P-0005Gi-LL for linux-xfs@oss.sgi.com; Thu, 16 Oct 2008 10:31:13 +0000 Received: from host147-85-static.82-213-b.business.telecomitalia.it ([213.82.85.147]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Oct 2008 10:31:13 +0000 Received: from alessandro.bono by host147-85-static.82-213-b.business.telecomitalia.it with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 16 Oct 2008 10:31:13 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Alessandro Bono X-ASG-Orig-Subj: kernel BUG at fs/buffer.c:471! with kernel 2.6.26.6 Subject: kernel BUG at fs/buffer.c:471! with kernel 2.6.26.6 Date: Thu, 16 Oct 2008 10:31:04 +0000 (UTC) Lines: 3703 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: host147-85-static.82-213-b.business.telecomitalia.it User-Agent: Pan/0.132 (Waxed in Black) Sender: news X-Barracuda-Connect: main.gmane.org[80.91.229.2] X-Barracuda-Start-Time: 1224153077 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.03 X-Barracuda-Spam-Status: No, SCORE=-1.03 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, UPPERCASE_50_75 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8075 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.49 UPPERCASE_50_75 message body is 50-75% uppercase 0.50 BSF_RULE7568M Custom Rule 7568M Hi today I hit this bug on my laptop rsyncing from server to external usb hard disk via wifi. I had to power off laptop and after restart I lose lot configuration file on my laptop hd (xfs over lvm over dm_crypt over sata), Distribution is an ubuntu hardy amd64 Tell me if you need other info Thanks Oct 16 09:47:08 champagne kernel: ------------[ cut here ]------------ Oct 16 09:47:08 champagne kernel: kernel BUG at fs/buffer.c:471! Oct 16 09:47:08 champagne kernel: invalid opcode: 0000 [1] SMP Oct 16 09:47:08 champagne kernel: CPU 0 Oct 16 09:47:08 champagne kernel: Modules linked in: usb_storage libusual af_packet hidp hid binfmt_misc rfcomm l2cap ipt_MASQUERADE iptable_nat ipt_REJECT bridge llc kvm_intel kvm acpi_cpufreq cpufreq_userspace cpufreq_stats cpufreq_powersave cpufreq_ondemand freq_table cpufreq_conservative sbs sbshc ipt_LOG xt_limit ipt_addrtype xt_state xt_tcpudp xt_conntrack ip6table_filter ip6_tables ipv6 nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_conntrack_ftp nf_conntrack iptable_filter ip_tables x_tables ext3 jbd mbcache coretemp hwmon sbp2 loop arc4 ecb iwl4965 iwlcore joydev snd_hda_intel rfkill mac80211 pcmcia snd_pcm_oss parport_pc tpm_infineon snd_mixer_oss led_class tpm iTCO_wdt ricoh_mmc snd_pcsp tpm_bios parport yenta_socket psmouse serio_raw iTCO_vendor_support rsrc_nonstatic hci_usb pcmcia_core mmc_core snd_pcm snd_page_alloc cfg80211 snd_seq_dummy snd_seq_oss snd_hwdep bluetooth snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer snd_seq_de vice fglrx(P) snd soundcore container v Oct 16 09:47:08 champagne kernel: deo output e1000e wmi ac battery button intel_agp evdev dm_multipath xfs sd_mod sg sr_mod cdrom ahci ata_piix ohci1394 ieee1394 libata scsi_mod dock uhci_hcd ehci_hcd usbcore dm_crypt dm_mirror dm_log dm_snapshot dm_mod thermal processor fan thermal_sys fuse Oct 16 09:47:08 champagne kernel: Pid: 2966, comm: xfsdatad/0 Tainted: P 2.6.26.6 #3 Oct 16 09:47:08 champagne kernel: RIP: 0010:[end_buffer_async_write+0x76/0x10b] [end_buffer_async_write+0x76/0x10b] end_buffer_async_write+0x76/0x10b Oct 16 09:47:08 champagne kernel: RSP: 0000:ffff810138d87e40 EFLAGS: 00010246 Oct 16 09:47:08 champagne kernel: RAX: ffff8100355e7930 RBX: ffff8100355e7930 RCX: 0000000000000034 Oct 16 09:47:08 champagne kernel: RDX: 000000000000000c RSI: 0000000000000001 RDI: ffff8100355e7930 Oct 16 09:47:08 champagne kernel: RBP: ffff81004c481360 R08: 0000000000000000 R09: ffff810138d87d50 Oct 16 09:47:08 champagne kernel: R10: ffffe20000c54880 R11: 0000000000000008 R12: ffff81013a237308 Oct 16 09:47:08 champagne kernel: R13: ffffe20000c548c4 R14: ffff81013bc6df10 R15: 0000000000000000 Oct 16 09:47:08 champagne kernel: FS: 0000000000000000(0000) GS:ffffffff8050c000(0000) knlGS:0000000000000000 Oct 16 09:47:08 champagne kernel: CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b Oct 16 09:47:08 champagne kernel: CR2: 00007fca23ba1000 CR3: 00000000af882000 CR4: 00000000000026e0 Oct 16 09:47:08 champagne kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 Oct 16 09:47:08 champagne kernel: DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Oct 16 09:47:08 champagne kernel: Process xfsdatad/0 (pid: 2966, threadinfo ffff810138d86000, task ffff810139984150) Oct 16 09:47:08 champagne kernel: Stack: 0000000000000282 0000000000000004 ffff8100354ed500 ffff81013a237308 Oct 16 09:47:08 champagne kernel: ffffffff80551d20 ffff8100355e79a0 ffff81004c481360 ffff81013a237308 Oct 16 09:47:08 champagne kernel: ffffffff80551d20 ffffffffa016f169 ffffffffa016f227 ffff81013a237300 Oct 16 09:47:08 champagne kernel: Call Trace: Oct 16 09:47:08 champagne kernel: [xfs:xfs_destroy_ioend+0x23/0x70] ? :xfs:xfs_destroy_ioend+0x23/0x70 Oct 16 09:47:08 champagne kernel: [xfs:xfs_end_bio_delalloc+0x0/0x19] ? :xfs:xfs_end_bio_delalloc+0x0/0x19 Oct 16 09:47:08 champagne kernel: [xfs:xfs_end_bio_delalloc+0x0/0x19] ? :xfs:xfs_end_bio_delalloc+0x0/0x19 Oct 16 09:47:08 champagne kernel: [run_workqueue+0x80/0x112] ? run_workqueue+0x80/0x112 Oct 16 09:47:08 champagne kernel: [worker_thread+0xd9/0xe8] ? worker_thread+0xd9/0xe8 Oct 16 09:47:08 champagne kernel: [] ? autoremove_wake_function+0x0/0x2e Oct 16 09:47:08 champagne kernel: [worker_thread+0x0/0xe8] ? worker_thread+0x0/0xe8 Oct 16 09:47:08 champagne kernel: [kthread+0x47/0x73] ? kthread+0x47/0x73 Oct 16 09:47:08 champagne kernel: [schedule_tail+0x28/0x5d] ? schedule_tail+0x28/0x5d Oct 16 09:47:08 champagne kernel: [child_rip+0xa/0x12] ? child_rip+0xa/0x12 Oct 16 09:47:08 champagne kernel: [kthread+0x0/0x73] ? kthread+0x0/0x73 Oct 16 09:47:08 champagne kernel: [child_rip+0x0/0x12] ? child_rip+0x0/0x12 Oct 16 09:47:08 champagne kernel: Oct 16 09:47:08 champagne kernel: Oct 16 09:47:08 champagne kernel: Code: 89 c6 31 c0 e8 97 ff f7 ff 49 8b 45 18 f0 0f ba 68 60 15 f0 0f ba 2b 0b f0 0f ba 33 00 f0 41 0f ba 6d 00 01 41 f6 45 01 08 75 04 <0f> 0b eb fe 49 8b 6d 10 9c 58 66 0f 1f 44 00 00 49 89 c4 fa 0f Oct 16 09:47:08 champagne kernel: RIP [end_buffer_async_write+0x76/0x10b] end_buffer_async_write+0x76/0x10b Oct 16 09:47:08 champagne kernel: RSP Oct 16 09:47:08 champagne kernel: ---[ end trace f820e50ed8555a49 ]--- Initializing cgroup subsys cpuset Linux version 2.6.26.6 (root@champagne) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #3 SMP Thu Oct 9 14:38:56 CEST 2008 Command line: root=/dev/mapper/vol00-root ro quiet splash BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 00000000bffb0000 (usable) BIOS-e820: 00000000bffb0000 - 00000000bffc5400 (reserved) BIOS-e820: 00000000bffc5400 - 00000000bffe7fb8 (ACPI NVS) BIOS-e820: 00000000bffe7fb8 - 00000000c0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved) BIOS-e820: 00000000fed20000 - 00000000fed9a000 (reserved) BIOS-e820: 00000000feda0000 - 00000000fedc0000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000ffb00000 - 00000000ffc00000 (reserved) BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 000000013c000000 (usable) Entering add_active_range(0, 0, 159) 0 entries of 256 used Entering add_active_range(0, 256, 786352) 1 entries of 256 used Entering add_active_range(0, 1048576, 1294336) 2 entries of 256 used max_pfn_mapped = 1294336 x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 init_memory_mapping DMI 2.4 present. ACPI: RSDP 000F7AF0, 0024 (r2 HP ) ACPI: XSDT BFFC81CC, 0084 (r1 HPQOEM SLIC-MPC 1 HP 1) ACPI: FACP BFFC8084, 00F4 (r4 HP 30C5 3 HP 1) ACPI: DSDT BFFC8544, 12E41 (r1 HP 8510x 10000 MSFT 3000001) ACPI: FACS BFFE7D80, 0040 ACPI: SLIC BFFC8250, 0176 (r1 HPQOEM SLIC-MPC 1 HP 1) ACPI: HPET BFFC83C8, 0038 (r1 HP 30C5 1 HP 1) ACPI: APIC BFFC8400, 0068 (r1 HP 30C5 1 HP 1) ACPI: MCFG BFFC8468, 003C (r1 HP 30C5 1 HP 1) ACPI: TCPA BFFC84A4, 0032 (r2 HP 30C5 1 HP 1) ACPI: ASF! BFFC84D8, 0069 (r16 HP CHIMAYU 1 HP 0) ACPI: SSDT BFFDB385, 0328 (r1 HP HPQSAT 1 MSFT 3000001) ACPI: SSDT BFFDB6AD, 017C (r1 HP HPQMRM 1 MSFT 3000001) ACPI: SSDT BFFDC231, 025F (r1 HP Cpu0Tst 3000 INTL 20060317) ACPI: SSDT BFFDC490, 00A6 (r1 HP Cpu1Tst 3000 INTL 20060317) ACPI: SSDT BFFDC536, 04D7 (r1 HP CpuPm 3000 INTL 20060317) ACPI: DMI detected: Hewlett-Packard Entering add_active_range(0, 0, 159) 0 entries of 256 used Entering add_active_range(0, 256, 786352) 1 entries of 256 used Entering add_active_range(0, 1048576, 1294336) 2 entries of 256 used early res: 0 [0-fff] BIOS data page early res: 1 [6000-7fff] TRAMPOLINE early res: 2 [200000-5ed287] TEXT DATA BSS early res: 3 [37abf000-37fef675] RAMDISK early res: 4 [9fc00-fffff] BIOS reserved early res: 5 [8000-dfff] PGTABLE [ffffe20000000000-ffffe20002dfffff] PMD -> [ffff810001200000-ffff810003ffffff] on node 0 [ffffe20002e00000-ffffe20004ffffff] PMD -> [ffff81000c000000-ffff81000e1fffff] on node 0 Zone PFN ranges: DMA 0 -> 4096 DMA32 4096 -> 1048576 Normal 1048576 -> 1294336 Movable zone start PFN for each node early_node_map[3] active PFN ranges 0: 0 -> 159 0: 256 -> 786352 0: 1048576 -> 1294336 On node 0 totalpages: 1032015 DMA zone: 64 pages used for memmap DMA zone: 1110 pages reserved DMA zone: 2825 pages, LIFO batch:0 DMA32 zone: 16320 pages used for memmap DMA32 zone: 765936 pages, LIFO batch:31 Normal zone: 3840 pages used for memmap Normal zone: 241920 pages, LIFO batch:31 Movable zone: 0 pages used for memmap ACPI: PM-Timer IO Port: 0x1008 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1]) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 1, version 0, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ9 used by override. Setting APIC routing to flat ACPI: HPET id: 0x8086a201 base: 0xfed00000 Using ACPI (MADT) for SMP configuration information PM: Registered nosave memory: 000000000009f000 - 00000000000a0000 PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000 PM: Registered nosave memory: 00000000000e0000 - 0000000000100000 PM: Registered nosave memory: 00000000bffb0000 - 00000000bffc5000 PM: Registered nosave memory: 00000000bffc5000 - 00000000bffc6000 PM: Registered nosave memory: 00000000bffc6000 - 00000000bffe7000 PM: Registered nosave memory: 00000000bffe7000 - 00000000bffe8000 PM: Registered nosave memory: 00000000bffe8000 - 00000000c0000000 PM: Registered nosave memory: 00000000c0000000 - 00000000fec00000 PM: Registered nosave memory: 00000000fec00000 - 00000000fec01000 PM: Registered nosave memory: 00000000fec01000 - 00000000fed20000 PM: Registered nosave memory: 00000000fed20000 - 00000000fed9a000 PM: Registered nosave memory: 00000000fed9a000 - 00000000feda0000 PM: Registered nosave memory: 00000000feda0000 - 00000000fedc0000 PM: Registered nosave memory: 00000000fedc0000 - 00000000fee00000 PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000 PM: Registered nosave memory: 00000000fee01000 - 00000000ffb00000 PM: Registered nosave memory: 00000000ffb00000 - 00000000ffc00000 PM: Registered nosave memory: 00000000ffc00000 - 00000000fff00000 PM: Registered nosave memory: 00000000fff00000 - 0000000100000000 Allocating PCI resources starting at c4000000 (gap: c0000000:3ec00000) SMP: Allowing 2 CPUs, 0 hotplug CPUs PERCPU: Allocating 37872 bytes of per cpu data NR_CPUS: 8, nr_cpu_ids: 2 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1010681 Kernel command line: root=/dev/mapper/vol00-root ro quiet splash Initializing CPU#0 PID hash table entries: 4096 (order: 12, 32768 bytes) Extended CMOS year: 2000 TSC calibrated against PM_TIMER time.c: Detected 2393.984 MHz processor. Console: colour VGA+ 80x25 console [tty0] enabled Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes) Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes) Checking aperture... PCI-DMA: Using software bounce buffering for IO (SWIOTLB) Placing software IO TLB between 0x4000000 - 0x8000000 Memory: 3963732k/5177344k available (1941k kernel code, 163692k reserved, 1175k data, 268k init) CPA: page pool initialized 1 of 1 pages preallocated SLUB: Genslabs=12, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1 hpet clockevent registered Calibrating delay using timer specific routine.. 4792.80 BogoMIPS (lpj=9585601) Mount-cache hash table entries: 256 Initializing cgroup subsys ns Initializing cgroup subsys cpuacct Initializing cgroup subsys memory Initializing cgroup subsys devices CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 4096K CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 CPU0: Thermal monitoring handled by SMI using mwait in idle threads. ACPI: Core revision 20080321 CPU0: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz stepping 0b Using local APIC timer interrupts. APIC timer calibration result 12468674 Detected 12.468 MHz APIC timer. Booting processor 1/1 ip 6000 Initializing CPU#1 Calibrating delay using timer specific routine.. 4787.96 BogoMIPS (lpj=9575929) CPU: L1 I cache: 32K, L1 D cache: 32K CPU: L2 cache: 4096K CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 CPU1: Thermal monitoring enabled (TM2) x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106 CPU1: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz stepping 0b checking TSC synchronization [CPU#0 -> CPU#1]: passed. Brought up 2 CPUs Total of 2 processors activated (9580.76 BogoMIPS). net_namespace: 1176 bytes Booting paravirtualized kernel on bare hardware NET: Registered protocol family 16 ACPI: bus type pci registered PCI: MCFG configuration 0: base f8000000 segment 0 buses 0 - 63 PCI: Not using MMCONFIG. PCI: Using configuration type 1 for base access ACPI: EC: Look up EC in DSDT ACPI: EC: non-query interrupt received, switching to interrupt mode ACPI: Interpreter enabled ACPI: (supports S0 S3 S4 S5) ACPI: Using IOAPIC for interrupt routing PCI: MCFG configuration 0: base f8000000 segment 0 buses 0 - 63 PCI: MCFG area at f8000000 reserved in ACPI motherboard resources PCI: Using MMCONFIG at f8000000 - fbffffff ACPI: EC: GPE = 0x16, I/O: command/status = 0x66, data = 0x62 ACPI: EC: driver started in interrupt mode ACPI: PCI Root Bridge [C003] (0000:00) pci 0000:00:1f.0: quirk: region 1000-107f claimed by ICH6 ACPI/GPIO/TCO pci 0000:00:1f.0: quirk: region 1100-113f claimed by ICH6 GPIO PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.C003._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C003.C096._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C003.C0B0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C003.C11D._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C003.C131._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C003.C134._PRT] ACPI: PCI Interrupt Link [C12D] (IRQs *10 11) ACPI: PCI Interrupt Link [C12E] (IRQs *10 11) ACPI: PCI Interrupt Link [C12F] (IRQs 10 *11) ACPI: PCI Interrupt Link [C130] (IRQs 10 11) *5 ACPI: PCI Interrupt Link [C140] (IRQs *10 11) ACPI: PCI Interrupt Link [C141] (IRQs 10 11) *5 ACPI: PCI Interrupt Link [C142] (IRQs 10 *11) ACPI Exception (pci_link-0184): AE_NOT_FOUND, Evaluating _PRS [20080321] ACPI: Power Resource [C238] (on) ACPI: Power Resource [C254] (on) ACPI: Power Resource [C17C] (off) ACPI: Power Resource [C362] (off) ACPI: Power Resource [C365] (off) ACPI: Power Resource [C366] (off) ACPI: Power Resource [C367] (off) ACPI: Power Resource [C368] (off) ACPI: Power Resource [C369] (off) ACPI: Power Resource [C382] (off) ACPI: Power Resource [C383] (off) ACPI: Power Resource [C384] (off) ACPI: Power Resource [C385] (off) ACPI: Power Resource [C386] (off) Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI init ACPI: bus type pnp registered pnp: PnP ACPI: found 15 devices ACPI: ACPI bus type pnp unregistered PCI: Using ACPI for IRQ routing PCI-GART: No AMD northbridge found. hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 hpet0: 3 64-bit timers, 14318180 Hz system 00:00: iomem range 0x0-0x9ffff could not be reserved system 00:00: iomem range 0xe0000-0xfffff could not be reserved system 00:00: iomem range 0x100000-0xbfffffff could not be reserved system 00:0b: ioport range 0x500-0x55f has been reserved system 00:0b: ioport range 0x800-0x80f has been reserved system 00:0b: iomem range 0xffb00000-0xffbfffff could not be reserved system 00:0b: iomem range 0xfff00000-0xffffffff could not be reserved system 00:0d: ioport range 0x4d0-0x4d1 has been reserved system 00:0d: ioport range 0x1000-0x107f has been reserved system 00:0d: ioport range 0x1100-0x113f has been reserved system 00:0d: ioport range 0x1200-0x121f has been reserved system 00:0d: iomem range 0xf8000000-0xfbffffff has been reserved system 00:0d: iomem range 0xfec00000-0xfec000ff could not be reserved system 00:0d: iomem range 0xfed20000-0xfed3ffff could not be reserved system 00:0d: iomem range 0xfed45000-0xfed8ffff could not be reserved system 00:0d: iomem range 0xfed90000-0xfed99fff could not be reserved system 00:0e: iomem range 0xcf200-0xcffff has been reserved system 00:0e: iomem range 0xfeda0000-0xfedbffff could not be reserved system 00:0e: iomem range 0xfee00000-0xfee00fff could not be reserved PCI: region 0000:02:06.0/9 too large: 0x0000000000000000-0x0000000003ffffff PCI: region 0000:02:06.1/9 too large: 0x0000000000000000-0x0000000003ffffff PCI: Bridge: 0000:00:01.0 IO window: 4000-4fff MEM window: 0xe4400000-0xe44fffff PREFETCH window: 0x00000000d0000000-0x00000000dfffffff PCI: Bridge: 0000:00:1c.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:1c.1 IO window: disabled. MEM window: 0xe4000000-0xe40fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:1c.4 IO window: 2000-3fff MEM window: 0xe0000000-0xe3ffffff PREFETCH window: disabled. PCI: Bus 3, cardbus bridge: 0000:02:06.0 IO window: 0x00006000-0x000060ff IO window: 0x00006400-0x000064ff MEM window: 0xc4000000-0xc7ffffff PCI: Bus 4, cardbus bridge: 0000:02:06.1 IO window: 0x00006800-0x000068ff IO window: 0x00006c00-0x00006cff MEM window: 0xc8000000-0xcbffffff PCI: Bridge: 0000:00:1e.0 IO window: 6000-6fff MEM window: 0xe4100000-0xe43fffff PREFETCH window: disabled. ACPI: PCI Interrupt 0000:00:01.0[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:01.0 to 64 ACPI: PCI Interrupt 0000:00:1c.0[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:1c.0 to 64 ACPI: PCI Interrupt 0000:00:1c.1[B] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1c.1 to 64 ACPI: PCI Interrupt 0000:00:1c.4[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:1c.4 to 64 PCI: Setting latency timer of device 0000:00:1e.0 to 64 ACPI: PCI Interrupt 0000:02:06.0[A] -> GSI 16 (level, low) -> IRQ 16 ACPI: PCI Interrupt 0000:02:06.1[B] -> GSI 17 (level, low) -> IRQ 17 NET: Registered protocol family 2 IP route cache hash table entries: 131072 (order: 8, 1048576 bytes) TCP established hash table entries: 262144 (order: 10, 4194304 bytes) TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) TCP: Hash tables configured (established 262144 bind 65536) TCP reno registered NET: Registered protocol family 1 checking if image is initramfs...<7>Switched to high resolution mode on CPU 1 Switched to high resolution mode on CPU 0 it is Freeing initrd memory: 5313k freed audit: initializing netlink socket (disabled) type=2000 audit(1224148316.869:1): initialized Total HugeTLB memory allocated, 0 msgmni has been set to 7753 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler cfq registered (default) pci 0000:01:00.0: Boot video device PCI: Setting latency timer of device 0000:00:01.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:01.0:pcie00] Allocate Port Service[0000:00:01.0:pcie03] PCI: Setting latency timer of device 0000:00:1c.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:1c.0:pcie00] Allocate Port Service[0000:00:1c.0:pcie03] PCI: Setting latency timer of device 0000:00:1c.1 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:1c.1:pcie00] Allocate Port Service[0000:00:1c.1:pcie02] Allocate Port Service[0000:00:1c.1:pcie03] PCI: Setting latency timer of device 0000:00:1c.4 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:1c.4:pcie00] Allocate Port Service[0000:00:1c.4:pcie02] Allocate Port Service[0000:00:1c.4:pcie03] hpet_resources: 0xfed00000 is busy Linux agpgart interface v0.103 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled ACPI: PCI Interrupt 0000:00:03.3[B] -> GSI 17 (level, low) -> IRQ 17 0000:00:03.3: ttyS0 at I/O 0x5030 (irq = 17) is a 16550A brd: module loaded PNP: PS/2 Controller [PNP0303:C251,PNP0f13:C252] at 0x60,0x64 irq 1,12 i8042.c: Detected active multiplexing controller, rev 1.1. serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX0 port at 0x60,0x64 irq 12 serio: i8042 AUX1 port at 0x60,0x64 irq 12 serio: i8042 AUX2 port at 0x60,0x64 irq 12 serio: i8042 AUX3 port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice cpuidle: using governor ladder cpuidle: using governor menu TCP cubic registered Freeing unused kernel memory: 268k freed input: AT Translated Set 2 keyboard as /class/input/input0 fuse init (API version 7.9) ACPI: Transitioning device [C36A] to D3 ACPI: PNP0C0B:00 is registered as cooling_device0 ACPI: Fan [C36A] (off) ACPI: Transitioning device [C36B] to D3 ACPI: PNP0C0B:01 is registered as cooling_device1 ACPI: Fan [C36B] (off) ACPI: Transitioning device [C36C] to D3 ACPI: PNP0C0B:02 is registered as cooling_device2 ACPI: Fan [C36C] (off) ACPI: Transitioning device [C36D] to D3 ACPI: PNP0C0B:03 is registered as cooling_device3 ACPI: Fan [C36D] (off) ACPI: Transitioning device [C36E] to D3 ACPI: PNP0C0B:04 is registered as cooling_device4 ACPI: Fan [C36E] (off) ACPI: Transitioning device [C36F] to D3 ACPI: PNP0C0B:05 is registered as cooling_device5 ACPI: Fan [C36F] (off) ACPI: Transitioning device [C387] to D3 ACPI: PNP0C0B:06 is registered as cooling_device6 ACPI: Fan [C387] (off) ACPI: Transitioning device [C388] to D3 ACPI: PNP0C0B:07 is registered as cooling_device7 ACPI: Fan [C388] (off) ACPI: Transitioning device [C389] to D3 ACPI: PNP0C0B:08 is registered as cooling_device8 ACPI: Fan [C389] (off) ACPI: Transitioning device [C38A] to D3 ACPI: PNP0C0B:09 is registered as cooling_device9 ACPI: Fan [C38A] (off) ACPI: Transitioning device [C38B] to D3 ACPI: PNP0C0B:0a is registered as cooling_device10 ACPI: Fan [C38B] (off) ACPI: SSDT BFFDB8F1, 02C1 (r1 HP Cpu0Ist 3000 INTL 20060317) ACPI: SSDT BFFDBC37, 05FA (r1 HP Cpu0Cst 3001 INTL 20060317) Monitor-Mwait will be used to enter C-1 state Monitor-Mwait will be used to enter C-2 state Monitor-Mwait will be used to enter C-3 state ACPI: CPU0 (power states: C1[C1] C2[C2] C3[C3]) ACPI: ACPI0007:00 is registered as cooling_device11 ACPI: Processor [CPU0] (supports 8 throttling states) ACPI: SSDT BFFDB829, 00C8 (r1 HP Cpu1Ist 3000 INTL 20060317) ACPI: SSDT BFFDBBB2, 0085 (r1 HP Cpu1Cst 3000 INTL 20060317) ACPI: CPU1 (power states: C1[C1] C2[C2] C3[C3]) ACPI: ACPI0007:01 is registered as cooling_device12 ACPI: Processor [CPU1] (supports 8 throttling states) Marking TSC unstable due to TSC halts in idle ACPI: LNXTHERM:01 is registered as thermal_zone0 ACPI: Thermal Zone [TZ2] (35 C) ACPI: LNXTHERM:02 is registered as thermal_zone1 ACPI: Thermal Zone [TZ3] (30 C) ACPI: LNXTHERM:03 is registered as thermal_zone2 ACPI: Thermal Zone [TZ4] (30 C) ACPI: LNXTHERM:04 is registered as thermal_zone3 ACPI: Thermal Zone [TZ5] (69 C) ACPI: LNXTHERM:05 is registered as thermal_zone4 ACPI: Thermal Zone [TZ0] (45 C) ACPI: LNXTHERM:06 is registered as thermal_zone5 ACPI: Thermal Zone [TZ1] (42 C) device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb USB Universal Host Controller Interface driver v3.0 ACPI: PCI Interrupt 0000:00:1a.0[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:1a.0 to 64 uhci_hcd 0000:00:1a.0: UHCI Host Controller uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 1 uhci_hcd 0000:00:1a.0: irq 16, io base 0x00005060 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected No dock devices found. SCSI subsystem initialized libata version 3.00 loaded. ACPI: PCI Interrupt 0000:00:1a.1[B] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1a.1 to 64 uhci_hcd 0000:00:1a.1: UHCI Host Controller uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1a.1: irq 17, io base 0x00005080 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 20 (level, low) -> IRQ 20 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.0: irq 20, io base 0x000050a0 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 22 (level, low) -> IRQ 22 PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:1d.1: irq 22, io base 0x000050c0 usb usb4: configuration #1 chosen from 1 choice hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected usb 1-1: new full speed USB device using uhci_hcd and address 2 ACPI: PCI Interrupt 0000:00:1a.7[C] -> GSI 18 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:1a.7 to 64 ehci_hcd 0000:00:1a.7: EHCI Host Controller ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 5 ehci_hcd 0000:00:1a.7: debug port 1 PCI: cache line size of 32 is not supported by device 0000:00:1a.7 ehci_hcd 0000:00:1a.7: irq 18, io mem 0xe4541000 ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb5: configuration #1 chosen from 1 choice hub 5-0:1.0: USB hub found hub 5-0:1.0: 4 ports detected Clocksource tsc unstable (delta = -404833269 ns) ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci_hcd 0000:00:1d.2: UHCI Host Controller uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 6 uhci_hcd 0000:00:1d.2: irq 18, io base 0x000050e0 usb usb6: configuration #1 chosen from 1 choice hub 6-0:1.0: USB hub found hub 6-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.7[A] -> GSI 20 (level, low) -> IRQ 20 PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 7 ehci_hcd 0000:00:1d.7: debug port 1 PCI: cache line size of 32 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: irq 20, io mem 0xe4548000 ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb7: configuration #1 chosen from 1 choice hub 7-0:1.0: USB hub found hub 7-0:1.0: 6 ports detected ata_piix 0000:00:1f.1: version 2.12 ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:1f.1 to 64 scsi0 : ata_piix scsi1 : ata_piix ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x5100 irq 14 ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x5108 irq 15 usb 1-1: device not accepting address 2, error -71 hub 1-0:1.0: unable to enumerate USB device on port 1 ata1.00: ATAPI: MATSHITADVD-RAM UJ-860H, 1.02, max MWDMA2 ata1.00: configured for MWDMA2 ata2: port disabled. ignoring. scsi 0:0:0:0: CD-ROM MATSHITA DVD-RAM UJ-860H 1.02 PQ: 0 ANSI: 5 ACPI: PCI Interrupt 0000:02:06.2[C] -> GSI 18 (level, low) -> IRQ 18 ahci 0000:00:1f.2: version 3.0 ACPI: PCI Interrupt 0000:00:1f.2[D] -> GSI 21 (level, low) -> IRQ 21 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[18] MMIO=[e4102000-e41027ff] Max Packet=[2048] IR/IT contexts=[4/4] Driver 'sr' needs updating - please use bus_type methods sr0: scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 0:0:0:0: Attached scsi CD-ROM sr0 sr 0:0:0:0: Attached scsi generic sg0 type 5 usb 1-1: new full speed USB device using uhci_hcd and address 4 usb 1-1: configuration #1 chosen from 1 choice ahci 0000:00:1f.2: AHCI 0001.0100 32 slots 3 ports 3 Gbps 0x1 impl SATA mode ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part PCI: Setting latency timer of device 0000:00:1f.2 to 64 scsi2 : ahci scsi3 : ahci scsi4 : ahci ata3: SATA max UDMA/133 abar m2048@0xe4549000 port 0xe4549100 irq 507 ata4: DUMMY ata5: DUMMY usb 3-2: new full speed USB device using uhci_hcd and address 2 ieee1394: Host added: ID:BUS[0-00:1023] GUID[00023f9929ed5e0e] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata3.00: ACPI cmd f5/00:00:00:00:00:a0 filtered out ata3.00: ACPI cmd b1/c1:00:00:00:00:a0 filtered out ata3.00: ACPI cmd c6/00:10:00:00:00:a0 succeeded ata3.00: ACPI cmd ef/10:03:00:00:00:a0 filtered out ata3.00: ATA-8: Hitachi HTS722012K9SA00, DCCOC60A, max UDMA/100 ata3.00: 234441648 sectors, multi 16: LBA48 usb 3-2: configuration #1 chosen from 1 choice ata3.00: ACPI cmd f5/00:00:00:00:00:a0 filtered out ata3.00: ACPI cmd b1/c1:00:00:00:00:a0 filtered out ata3.00: ACPI cmd c6/00:10:00:00:00:a0 succeeded ata3.00: ACPI cmd ef/10:03:00:00:00:a0 filtered out ata3.00: configured for UDMA/100 ata3.00: configured for UDMA/100 ata3: EH complete scsi 2:0:0:0: Direct-Access ATA Hitachi HTS72201 DCCO PQ: 0 ANSI: 5 scsi 2:0:0:0: Attached scsi generic sg1 type 0 Driver 'sd' needs updating - please use bus_type methods sd 2:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB) sd 2:0:0:0: [sda] Write Protect is off sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 2:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB) sd 2:0:0:0: [sda] Write Protect is off sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sd 2:0:0:0: [sda] Attached SCSI disk PM: Starting manual resume from disk PM: Resume from partition 254:1 PM: Checking hibernation image. PM: Resume from disk failed. SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled Filesystem "dm-2": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-2 Ending clean XFS mount for filesystem: dm-2 ata3.00: configured for UDMA/100 ata3: EH complete sd 2:0:0:0: [sda] 234441648 512-byte hardware sectors (120034 MB) sd 2:0:0:0: [sda] Write Protect is off sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 2:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA device-mapper: multipath: version 1.0.5 loaded input: Power Button (FF) as /class/input/input1 ACPI: Power Button (FF) [PWRF] input: Sleep Button (CM) as /class/input/input2 ACPI: Sleep Button (CM) [C274] input: Lid Switch as /class/input/input3 ACPI: Lid Switch [C26E] ACPI: Battery Slot [C1F4] (battery present) ACPI: AC Adapter [C1F2] (off-line) ACPI: Battery Slot [C1F3] (battery absent) ACPI: WMI: Mapper loaded ACPI: device:03 is registered as cooling_device13 input: Video Bus as /class/input/input4 ACPI: Video Device [C14B] (multi-head: yes rom: no post: no) fglrx: module license 'Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY' taints kernel. [fglrx] Maximum main memory to use for locked dma buffers: 3715 MBytes. [fglrx] vendor: 1002 device: 9581 count: 1 [fglrx] ioport: bar 1, base 0x4000, size: 0x100 ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:01:00.0 to 64 [fglrx] Pat entry 2 is already configured [fglrx] PAT is enabled successfully! [fglrx] module loaded - fglrx 8.54.3 [Oct 3 2008] with 1 minors iTCO_vendor_support: vendor-support=0 Yenta: CardBus bridge found at 0000:02:06.0 [103c:30c5] PCI: Bus 3, cardbus bridge: 0000:02:06.0 IO window: 0x00006000-0x000060ff IO window: 0x00006400-0x000064ff PREFETCH window: 0xcc000000-0xcc3fffff MEM window: 0xc4000000-0xc7ffffff ricoh-mmc: Ricoh MMC Controller disabling driver ricoh-mmc: Copyright(c) Philip Langdale Yenta: ISA IRQ mask 0x0cb8, PCI irq 16 Socket status: 30000006 pcmcia: parent PCI bridge I/O window: 0x6000 - 0x6fff pcmcia: parent PCI bridge Memory window: 0xe4100000 - 0xe43fffff Yenta: CardBus bridge found at 0000:02:06.1 [103c:30c5] PCI: Bus 4, cardbus bridge: 0000:02:06.1 IO window: 0x00006800-0x000068ff IO window: 0x00006c00-0x00006cff PREFETCH window: 0xcc400000-0xcc7fffff MEM window: 0xc8000000-0xcbffffff iTCO_wdt: Intel TCO WatchDog Timer Driver v1.03 (30-Apr-2008) e1000e: Intel(R) PRO/1000 Network Driver - 0.3.3.3-k2 e1000e: Copyright (c) 1999-2008 Intel Corporation. ACPI: PCI Interrupt 0000:00:19.0[A] -> GSI 22 (level, low) -> IRQ 22 PCI: Setting latency timer of device 0000:00:19.0 to 64 Yenta: ISA IRQ mask 0x0000, PCI irq 17 Socket status: 30000810 Yenta: Raising subordinate bus# of parent bus (#02) from #04 to #07 pcmcia: parent PCI bridge I/O window: 0x6000 - 0x6fff pcmcia: parent PCI bridge Memory window: 0xe4100000 - 0xe43fffff ricoh-mmc: Ricoh MMC controller found at 0000:02:06.4 [1180:0843] (rev 10) ricoh-mmc: Controller is now disabled. tpm_inf_pnp 00:03: Found C239 with ID IFX0102 tpm_inf_pnp 00:03: TPM found: config base 0x560, data base 0x570, chip version 0x000b, vendor id 0x15d1 (Infineon), product id 0x000b (SLB 9635 TT 1.2) Bluetooth: Core ver 2.11 NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized eth0: (PCI Express:2.5GB/s:Width x1) 00:1a:4b:7a:9d:98 eth0: Intel(R) PRO/1000 Network Connection eth0: MAC: 4, PHY: 6, PBA No: ffffff-0ff Bluetooth: HCI USB driver ver 2.9 usbcore: registered new interface driver hci_usb iwl4965: Intel(R) Wireless WiFi Link 4965AGN driver for Linux, 1.2.26ks iwl4965: Copyright(c) 2003-2008 Intel Corporation ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:10:00.0 to 64 iwl4965: Detected Intel Wireless WiFi Link 4965AGN iwl4965: Tunable channels: 13 802.11bg, 19 802.11a channels phy0: Selected rate control algorithm 'iwl-4965-rs' Synaptics Touchpad, model: 1, fw: 6.2, id: 0x2580b1, caps: 0xa44793/0x300000 serio: Synaptics pass-through port at isa0060/serio4/input0 input: SynPS/2 Synaptics TouchPad as /class/input/input5 input: PC Speaker as /class/input/input6 Error: Driver 'pcspkr' is already registered, aborting... parport_pc 00:02: reported by Plug and Play ACPI parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,ECP,DMA] iTCO_wdt: Found a ICH8M-E TCO device (Version=2, TCOBASE=0x1060) iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0) ACPI: PCI interrupt for device 0000:10:00.0 disabled input: 4965AGN as /class/input/input7 pccard: PCMCIA card inserted into slot 1 ACPI: PCI Interrupt 0000:00:1b.0[A] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1b.0 to 64 cs: memory probe 0xe4100000-0xe43fffff: excluding 0xe4100000-0xe412ffff pcmcia: registering new device pcmcia1.0 ACPI: PCI Interrupt 0000:01:00.1[B] -> GSI 17 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:01:00.1 to 64 loop: module loaded Adding 8388600k swap on /dev/mapper/vol00-swap. Priority:-1 extents:1 across:8388600k Filesystem "dm-2": Disabling barriers, not supported by the underlying device kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. ip_tables: (C) 2000-2006 Netfilter Core Team nf_conntrack version 0.5.0 (16384 buckets, 65536 max) NET: Registered protocol family 10 lo: Disabled Privacy Extensions ip6_tables: (C) 2000-2006 Netfilter Core Team input: PS/2 Generic Mouse as /class/input/input8 warning: `avahi-daemon' uses 32-bit capabilities (legacy support in use) [fglrx] Reserved FB block: Shared offset:0, size:1000000 [fglrx] Reserved FB block: Unshared offset:ff73000, size:88000 [fglrx] Reserved FB block: Unshared offset:fffc000, size:4000 Bridge firewalling registered vnet0: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature. vnet0: starting userspace STP failed, starting kernel STP vnet1: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature. vnet1: starting userspace STP failed, starting kernel STP ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 17 PM: Writing back config space on device 0000:10:00.0 at offset 1 (was 100002, writing 100006) firmware: requesting iwlwifi-4965-1.ucode Bluetooth: L2CAP ver 2.9 Bluetooth: L2CAP socket layer initialized Registered led device: iwl-phy0:radio Registered led device: iwl-phy0:assoc Registered led device: iwl-phy0:RX Registered led device: iwl-phy0:TX ADDRCONF(NETDEV_UP): wlan0: link is not ready Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM ver 1.8 ADDRCONF(NETDEV_UP): eth0: link is not ready vnet0: no IPv6 routers present vnet1: no IPv6 routers present Monitor-Mwait will be used to enter C-2 state Filesystem "dm-2": Disabling barriers, not supported by the underlying device Bluetooth: HIDP (Human Interface Emulation) ver 1.2 input: Bluetooth Laser Travel Mouse as /class/input/input9 NET: Registered protocol family 17 wlan0: Initial auth_alg=0 wlan0: authenticate with AP 00:14:c1:1c:89:00 wlan0: RX authentication from 00:14:c1:1c:89:00 (alg=0 transaction=2 status=0) wlan0: authenticated wlan0: associate with AP 00:14:c1:1c:89:00 wlan0: RX AssocResp from 00:14:c1:1c:89:00 (capab=0x431 status=0 aid=4) wlan0: associated wlan0: switched to short barker preamble (BSSID=00:14:c1:1c:89:00) ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready wlan0: no IPv6 routers present wlan0: deauthenticate(reason=3) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: deauthenticated wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: RX deauthentication from 00:14:c1:1c:89:00 (reason=6) wlan0: authenticate with AP 00:14:c1:1c:89:00 wlan0: RX authentication from 00:14:c1:1c:89:00 (alg=0 transaction=2 status=0) wlan0: authenticated wlan0: associate with AP 00:14:c1:1c:89:00 wlan0: RX AssocResp from 00:14:c1:1c:89:00 (capab=0x431 status=0 aid=4) wlan0: associated wlan0: disassociate(reason=3) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: RX disassociation from 00:14:c1:1c:89:00 (reason=7) wlan0: associate with AP 00:14:c1:1c:89:00 wlan0: disassociation frame received from unknown AP (SA=00:14:c1:1c:89:00 BSSID=00:14:c1:1c:89:00) - ignored wlan0: Initial auth_alg=0 wlan0: authenticate with AP 00:13:c3:44:94:b0 wlan0: Initial auth_alg=0 wlan0: authenticate with AP 00:13:c3:44:94:b0 wlan0: RX authentication from 00:13:c3:44:94:b0 (alg=0 transaction=2 status=0) wlan0: authenticated wlan0: associate with AP 00:13:c3:44:94:b0 wlan0: RX AssocResp from 00:13:c3:44:94:b0 (capab=0x431 status=0 aid=220) wlan0: associated wlan0: switched to short barker preamble (BSSID=00:13:c3:44:94:b0) ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready process `skype' is using obsolete setsockopt SO_BSDCOMPAT wlan0: no IPv6 routers present CE: hpet increasing min_delta_ns to 15000 nsec CE: hpet increasing min_delta_ns to 22500 nsec wlan0: CTS protection enabled (BSSID=00:13:c3:44:94:b0) wlan0: CTS protection disabled (BSSID=00:13:c3:44:94:b0) wlan0: CTS protection enabled (BSSID=00:13:c3:44:94:b0) wlan0: CTS protection disabled (BSSID=00:13:c3:44:94:b0) wlan0: CTS protection enabled (BSSID=00:13:c3:44:94:b0) wlan0: CTS protection disabled (BSSID=00:13:c3:44:94:b0) Filesystem "dm-2": Disabling barriers, not supported by the underlying device Filesystem "dm-2": Disabling barriers, not supported by the underlying device # # Automatically generated make config: don't edit # Linux kernel version: 2.6.26.6 # Thu Oct 9 14:34:11 2008 # CONFIG_64BIT=y # CONFIG_X86_32 is not set CONFIG_X86_64=y CONFIG_X86=y CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" # CONFIG_GENERIC_LOCKBREAK is not set CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_FAST_CMPXCHG_LOCAL=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y # CONFIG_GENERIC_GPIO is not set CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set # CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ZONE_DMA32=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_AOUT=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_X86_SMP=y CONFIG_X86_64_SMP=y CONFIG_X86_HT=y CONFIG_X86_BIOS_REBOOT=y CONFIG_X86_TRAMPOLINE=y # CONFIG_KTIME_SCALAR is not set CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_TREE=y CONFIG_IKCONFIG=m CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_NS=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_GROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_RT_GROUP_SCHED=y CONFIG_USER_SCHED=y # CONFIG_CGROUP_SCHED is not set CONFIG_CGROUP_CPUACCT=y CONFIG_RESOURCE_COUNTERS=y CONFIG_MM_OWNER=y CONFIG_CGROUP_MEM_RES_CTLR=y CONFIG_SYSFS_DEPRECATED=y CONFIG_SYSFS_DEPRECATED_V2=y CONFIG_PROC_PID_CPUSET=y CONFIG_RELAY=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y # CONFIG_EMBEDDED is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_SYSCTL_SYSCALL_CHECK=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y # CONFIG_COMPAT_BRK is not set CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y # CONFIG_SLAB is not set CONFIG_SLUB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set # CONFIG_MARKERS is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y # CONFIG_HAVE_DMA_ATTRS is not set CONFIG_PROC_PAGE_MONITOR=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_BLK_DEV_BSG=y CONFIG_BLOCK_COMPAT=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=m CONFIG_IOSCHED_DEADLINE=m CONFIG_IOSCHED_CFQ=y # CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y CONFIG_CLASSIC_RCU=y # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_VSMP is not set CONFIG_PARAVIRT_GUEST=y CONFIG_KVM_CLOCK=y CONFIG_KVM_GUEST=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_CLOCK=y CONFIG_MEMTEST_BOOTPARAM=y CONFIG_MEMTEST_BOOTPARAM_VALUE=0 # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set # CONFIG_MPSC is not set CONFIG_MCORE2=y # CONFIG_GENERIC_CPU is not set CONFIG_X86_CPU=y CONFIG_X86_L1_CACHE_BYTES=64 CONFIG_X86_INTERNODE_CACHE_BYTES=64 CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_P6_NOP=y CONFIG_X86_TSC=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_HPET_TIMER=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y # CONFIG_X86_MCE_AMD is not set # CONFIG_I8K is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y # CONFIG_FLATMEM_MANUAL is not set # CONFIG_DISCONTIGMEM_MANUAL is not set CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_HAVE_MEMORY_PRESENT=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y # # Memory hotplug is currently incompatible with Software Suspend # CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_RESOURCES_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MTRR=y CONFIG_X86_PAT=y # CONFIG_EFI is not set # CONFIG_SECCOMP is not set # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x200000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_HOTPLUG_CPU=y # CONFIG_COMPAT_VDSO is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_PM=y CONFIG_PM_DEBUG=y # CONFIG_PM_VERBOSE is not set CONFIG_CAN_PM_TRACE=y # CONFIG_PM_TRACE_RTC is not set CONFIG_PM_SLEEP_SMP=y CONFIG_PM_SLEEP=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROCFS_POWER=y CONFIG_ACPI_SYSFS_POWER=y CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=m CONFIG_ACPI_BAY=m CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=m CONFIG_ACPI_WMI=m # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_TOSHIBA is not set # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=m # CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=m # CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set # CONFIG_X86_SPEEDSTEP_LIB is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_DMAR is not set CONFIG_PCIEPORTBUS=y CONFIG_HOTPLUG_PCI_PCIE=m CONFIG_PCIEAER=y CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y CONFIG_PCI_LEGACY=y # CONFIG_PCI_DEBUG is not set CONFIG_HT_IRQ=y CONFIG_ISA_DMA_API=y CONFIG_K8_NB=y CONFIG_PCCARD=m # CONFIG_PCMCIA_DEBUG is not set CONFIG_PCMCIA=m CONFIG_PCMCIA_LOAD_CIS=y CONFIG_PCMCIA_IOCTL=y CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=m CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y CONFIG_PD6729=m CONFIG_I82092=m CONFIG_PCCARD_NONSTATIC=m CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_FAKE=m CONFIG_HOTPLUG_PCI_ACPI=m # CONFIG_HOTPLUG_PCI_ACPI_IBM is not set # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_BINFMT_MISC=m CONFIG_IA32_EMULATION=y CONFIG_IA32_AOUT=m CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=m CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_ASK_IP_FIB_HASH=y # CONFIG_IP_FIB_TRIE is not set CONFIG_IP_FIB_HASH=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=m CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IP_VS=m # CONFIG_IP_VS_DEBUG is not set CONFIG_IP_VS_TAB_BITS=12 # # IPVS transport protocol load balancing support # CONFIG_IP_VS_PROTO_TCP=y CONFIG_IP_VS_PROTO_UDP=y CONFIG_IP_VS_PROTO_ESP=y CONFIG_IP_VS_PROTO_AH=y # # IPVS scheduler # CONFIG_IP_VS_RR=m CONFIG_IP_VS_WRR=m CONFIG_IP_VS_LC=m CONFIG_IP_VS_WLC=m CONFIG_IP_VS_LBLC=m CONFIG_IP_VS_LBLCR=m CONFIG_IP_VS_DH=m CONFIG_IP_VS_SH=m CONFIG_IP_VS_SED=m CONFIG_IP_VS_NQ=m # # IPVS application helper # CONFIG_IP_VS_FTP=m CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m # CONFIG_IPV6_MIP6 is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set CONFIG_NETWORK_SECMARK=y CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_PPTP=m # CONFIG_NF_CONNTRACK_SANE is not set CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_SECMARK=m CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m # # IP: Netfilter Configuration # CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PROTO_UDPLITE=m CONFIG_NF_NAT_PROTO_SCTP=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_RAW=m # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_ULOG=m CONFIG_BRIDGE_EBT_NFLOG=m # CONFIG_IP_DCCP is not set CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_HMAC_NONE is not set # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m CONFIG_ATM_MPOA=m CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set CONFIG_WAN_ROUTER=m CONFIG_NET_SCHED=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m # CONFIG_CLS_U32_PERF is not set CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m CONFIG_NET_CLS_RSVP6=m CONFIG_NET_CLS_FLOW=m CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=m CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_NAT=m CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_CLS_IND=y CONFIG_NET_SCH_FIFO=y # # Network testing # CONFIG_NET_PKTGEN=m # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m # # Bluetooth device drivers # CONFIG_BT_HCIUSB=m CONFIG_BT_HCIUSB_SCO=y CONFIG_BT_HCIBTSDIO=m CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_LL=y CONFIG_BT_HCIBCM203X=m CONFIG_BT_HCIBPA10X=m CONFIG_BT_HCIBFUSB=m CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m CONFIG_BT_HCIBTUART=m CONFIG_BT_HCIVHCI=m # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y # # Wireless # CONFIG_CFG80211=m CONFIG_NL80211=y CONFIG_WIRELESS_EXT=y CONFIG_MAC80211=m # # Rate control algorithm selection # CONFIG_MAC80211_RC_DEFAULT_PID=y # CONFIG_MAC80211_RC_DEFAULT_NONE is not set # # Selecting 'y' for an algorithm will # # # build the algorithm into mac80211. # CONFIG_MAC80211_RC_DEFAULT="pid" CONFIG_MAC80211_RC_PID=y CONFIG_MAC80211_MESH=y CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set # CONFIG_MAC80211_DEBUG is not set # CONFIG_IEEE80211 is not set CONFIG_RFKILL=m CONFIG_RFKILL_INPUT=m CONFIG_RFKILL_LEDS=y # CONFIG_NET_9P is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=m # CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO is not set CONFIG_PARPORT_PC_PCMCIA=m # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG is not set # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 # CONFIG_BLK_DEV_XIP is not set CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set CONFIG_ATA_OVER_ETH=m CONFIG_VIRTIO_BLK=m CONFIG_MISC_DEVICES=y # CONFIG_IBM_ASM is not set # CONFIG_PHANTOM is not set CONFIG_EEPROM_93CX6=m # CONFIG_SGI_IOC4 is not set CONFIG_TIFM_CORE=m CONFIG_TIFM_7XX1=m # CONFIG_ACER_WMI is not set # CONFIG_ASUS_LAPTOP is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_MSI_LAPTOP is not set # CONFIG_SONY_LAPTOP is not set # CONFIG_THINKPAD_ACPI is not set # CONFIG_INTEL_MENLOW is not set # CONFIG_EEEPC_LAPTOP is not set CONFIG_ENCLOSURE_SERVICES=m CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y CONFIG_SCSI_TGT=m # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=m # CONFIG_BLK_DEV_SR_VENDOR is not set CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m # CONFIG_SCSI_ENCLOSURE is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set CONFIG_SCSI_ISCSI_ATTRS=m # CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_ARCMSR is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_PPA is not set # CONFIG_SCSI_IMM is not set # CONFIG_SCSI_MVSAS is not set # CONFIG_SCSI_STEX is not set # CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_QLA_ISCSI is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_DEBUG is not set CONFIG_SCSI_SRP=m CONFIG_SCSI_LOWLEVEL_PCMCIA=y # CONFIG_PCMCIA_FDOMAIN is not set # CONFIG_PCMCIA_QLOGIC is not set # CONFIG_PCMCIA_SYM53C500 is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_ACPI=y # CONFIG_SATA_PMP is not set CONFIG_SATA_AHCI=m # CONFIG_SATA_SIL24 is not set CONFIG_ATA_SFF=y # CONFIG_SATA_SVW is not set CONFIG_ATA_PIIX=m # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_PROMISE is not set # CONFIG_SATA_SX4 is not set # CONFIG_SATA_SIL is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ACPI is not set # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT821X is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_OLDPIIX is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NINJA32 is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_NS87415 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PCMCIA is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # CONFIG_PATA_SCH is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_RAID5_RESHAPE=y CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m # CONFIG_DM_MULTIPATH_EMC is not set # CONFIG_DM_MULTIPATH_RDAC is not set # CONFIG_DM_MULTIPATH_HP is not set # CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # # # Enable only one of the two stacks, unless you know what you are doing # # CONFIG_FIREWIRE is not set CONFIG_IEEE1394=m CONFIG_IEEE1394_OHCI1394=m CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_SBP2=m # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y CONFIG_IEEE1394_ETH1394=m CONFIG_IEEE1394_RAWIO=m CONFIG_IEEE1394_VIDEO1394=m CONFIG_IEEE1394_DV1394=m # CONFIG_IEEE1394_VERBOSEDEBUG is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_NETDEVICES_MULTIQUEUE=y CONFIG_IFB=m CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_MACVLAN=m CONFIG_EQUALIZER=m CONFIG_TUN=m CONFIG_VETH=m # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set # CONFIG_NET_ETHERNET is not set CONFIG_MII=m CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set CONFIG_E1000E=m CONFIG_E1000E_ENABLED=y # CONFIG_IP1000 is not set # CONFIG_IGB is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # # Wireless LAN # # CONFIG_WLAN_PRE80211 is not set CONFIG_WLAN_80211=y # CONFIG_PCMCIA_RAYCS is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_LIBERTAS is not set # CONFIG_AIRO is not set # CONFIG_HERMES is not set # CONFIG_ATMEL is not set # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set # CONFIG_PRISM54 is not set # CONFIG_USB_ZD1201 is not set # CONFIG_USB_NET_RNDIS_WLAN is not set # CONFIG_RTL8180 is not set # CONFIG_RTL8187 is not set # CONFIG_ADM8211 is not set # CONFIG_P54_COMMON is not set # CONFIG_ATH5K is not set CONFIG_IWLWIFI=m CONFIG_IWLCORE=m CONFIG_IWLWIFI_LEDS=y CONFIG_IWLWIFI_RFKILL=y CONFIG_IWL4965=m CONFIG_IWL4965_HT=y CONFIG_IWL4965_LEDS=y CONFIG_IWL4965_SPECTRUM_MEASUREMENT=y CONFIG_IWL4965_SENSITIVITY=y # CONFIG_IWLWIFI_DEBUG is not set # CONFIG_IWL3945 is not set # CONFIG_HOSTAP is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set # CONFIG_ZD1211RW is not set # CONFIG_RT2X00 is not set # # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m CONFIG_USB_NET_PLUSB=m CONFIG_USB_NET_MCS7830=m CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y # CONFIG_USB_NET_ZAURUS is not set CONFIG_NET_PCMCIA=y # CONFIG_PCMCIA_3C589 is not set # CONFIG_PCMCIA_3C574 is not set # CONFIG_PCMCIA_FMVJ18X is not set # CONFIG_PCMCIA_PCNET is not set # CONFIG_PCMCIA_NMCLAN is not set # CONFIG_PCMCIA_SMC91C92 is not set # CONFIG_PCMCIA_XIRC2PS is not set # CONFIG_PCMCIA_AXNET is not set CONFIG_WAN=y # CONFIG_LANMEDIA is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m CONFIG_HDLC_RAW_ETH=m CONFIG_HDLC_CISCO=m CONFIG_HDLC_FR=m CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300 is not set # CONFIG_PC300TOO is not set # CONFIG_FARSYNC is not set # CONFIG_DSCC4 is not set CONFIG_DLCI=m CONFIG_DLCI_MAX=8 CONFIG_WAN_ROUTER_DRIVERS=m # CONFIG_CYCLADES_SYNC is not set # CONFIG_SBNI is not set CONFIG_ATM_DRIVERS=y CONFIG_ATM_DUMMY=m CONFIG_ATM_TCP=m # CONFIG_ATM_LANAI is not set # CONFIG_ATM_ENI is not set # CONFIG_ATM_FIRESTREAM is not set # CONFIG_ATM_ZATM is not set # CONFIG_ATM_IDT77252 is not set # CONFIG_ATM_AMBASSADOR is not set # CONFIG_ATM_HORIZON is not set # CONFIG_ATM_FORE200E_MAYBE is not set # CONFIG_ATM_HE is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PLIP=m CONFIG_PPP=m CONFIG_PPP_MULTILINK=y CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_PPPOE=m CONFIG_PPPOATM=m CONFIG_PPPOL2TP=m # CONFIG_SLIP is not set CONFIG_SLHC=m CONFIG_NET_FC=y CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y # CONFIG_NETPOLL_TRAP is not set CONFIG_NET_POLL_CONTROLLER=y CONFIG_VIRTIO_NET=m # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=m CONFIG_INPUT_EVBUG=m # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_LKKBD=m CONFIG_KEYBOARD_XTKBD=m CONFIG_KEYBOARD_NEWTON=m CONFIG_KEYBOARD_STOWAWAY=m CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_APPLETOUCH=m CONFIG_MOUSE_VSXXXAA=m # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TABLET=y CONFIG_TABLET_USB_ACECAD=m CONFIG_TABLET_USB_AIPTEK=m CONFIG_TABLET_USB_GTCO=m CONFIG_TABLET_USB_KBTAB=m CONFIG_TABLET_USB_WACOM=m CONFIG_INPUT_TOUCHSCREEN=y CONFIG_TOUCHSCREEN_FUJITSU=m CONFIG_TOUCHSCREEN_GUNZE=m CONFIG_TOUCHSCREEN_ELO=m CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_TOUCHRIGHT=m CONFIG_TOUCHSCREEN_TOUCHWIN=m CONFIG_TOUCHSCREEN_UCB1400=m # CONFIG_TOUCHSCREEN_WM97XX is not set CONFIG_TOUCHSCREEN_USB_COMPOSITE=m CONFIG_TOUCHSCREEN_USB_EGALAX=y CONFIG_TOUCHSCREEN_USB_PANJIT=y CONFIG_TOUCHSCREEN_USB_3M=y CONFIG_TOUCHSCREEN_USB_ITM=y CONFIG_TOUCHSCREEN_USB_ETURBO=y CONFIG_TOUCHSCREEN_USB_GUNZE=y CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y CONFIG_TOUCHSCREEN_USB_IRTOUCH=y CONFIG_TOUCHSCREEN_USB_IDEALTEK=y CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y CONFIG_TOUCHSCREEN_USB_GOTOP=y CONFIG_INPUT_MISC=y CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_APANEL is not set CONFIG_INPUT_ATLAS_BTNS=m CONFIG_INPUT_ATI_REMOTE=m CONFIG_INPUT_ATI_REMOTE2=m CONFIG_INPUT_KEYSPAN_REMOTE=m CONFIG_INPUT_POWERMATE=m CONFIG_INPUT_YEALINK=m CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set CONFIG_SERIO_PCIPS2=m CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_DEVKMEM=y CONFIG_SERIAL_NONSTANDARD=y # CONFIG_COMPUTONE is not set # CONFIG_ROCKETPORT is not set # CONFIG_CYCLADES is not set # CONFIG_DIGIEPCA is not set # CONFIG_MOXA_INTELLIO is not set # CONFIG_MOXA_SMARTIO is not set # CONFIG_ISI is not set # CONFIG_SYNCLINK is not set # CONFIG_SYNCLINKMP is not set # CONFIG_SYNCLINK_GT is not set CONFIG_N_HDLC=m # CONFIG_RISCOM8 is not set # CONFIG_SPECIALIX is not set # CONFIG_SX is not set # CONFIG_RIO is not set # CONFIG_STALDRV is not set CONFIG_NOZOMI=m # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_CS=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_INTEL=m # CONFIG_HW_RANDOM_AMD is not set CONFIG_HW_RANDOM_VIRTIO=m CONFIG_NVRAM=m # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # # PCMCIA character devices # CONFIG_SYNCLINK_CS=m CONFIG_CARDMAN_4000=m CONFIG_CARDMAN_4040=m CONFIG_IPWIRELESS=m # CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set CONFIG_RAW_DRIVER=m CONFIG_MAX_RAW_DEVS=256 CONFIG_HPET=y CONFIG_HPET_MMAP=y CONFIG_HANGCHECK_TIMER=m CONFIG_TCG_TPM=m CONFIG_TCG_TIS=m CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m CONFIG_TCG_INFINEON=m # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=m # # I2C Hardware Bus support # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_I801=m # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_TAOS_EVM is not set CONFIG_I2C_STUB=m # CONFIG_I2C_TINY_USB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_PLATFORM is not set # # Miscellaneous I2C Chip support # CONFIG_DS1682=m CONFIG_SENSORS_EEPROM=m CONFIG_SENSORS_PCF8574=m CONFIG_PCF8575=m CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_MAX6875=m CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set # CONFIG_SPI is not set CONFIG_W1=m CONFIG_W1_CON=y # # 1-wire Bus Masters # CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2433=m # CONFIG_W1_SLAVE_DS2433_CRC is not set CONFIG_W1_SLAVE_DS2760=m CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set CONFIG_PDA_POWER=m # CONFIG_BATTERY_DS2760 is not set CONFIG_HWMON=m # CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ABITUGURU3 is not set # CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1029 is not set # CONFIG_SENSORS_ADM1031 is not set # CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7473 is not set # CONFIG_SENSORS_K8TEMP is not set # CONFIG_SENSORS_ASB100 is not set # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set # CONFIG_SENSORS_FSCHER is not set # CONFIG_SENSORS_FSCPOS is not set # CONFIG_SENSORS_FSCHMD is not set # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set CONFIG_SENSORS_CORETEMP=m # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM75 is not set # CONFIG_SENSORS_LM77 is not set # CONFIG_SENSORS_LM78 is not set # CONFIG_SENSORS_LM80 is not set # CONFIG_SENSORS_LM83 is not set # CONFIG_SENSORS_LM85 is not set # CONFIG_SENSORS_LM87 is not set # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_LM93 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_ADS7828 is not set # CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83793 is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83L786NG is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_SENSORS_APPLESMC is not set # CONFIG_HWMON_DEBUG_CHIP is not set CONFIG_THERMAL=m # CONFIG_THERMAL_HWMON is not set CONFIG_WATCHDOG=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # CONFIG_SOFT_WATCHDOG=m # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set # CONFIG_ALIM1535_WDT is not set # CONFIG_ALIM7101_WDT is not set # CONFIG_SC520_WDT is not set # CONFIG_EUROTECH_WDT is not set # CONFIG_IB700_WDT is not set # CONFIG_IBMASR is not set # CONFIG_WAFER_WDT is not set # CONFIG_I6300ESB_WDT is not set CONFIG_ITCO_WDT=m CONFIG_ITCO_VENDOR_SUPPORT=y # CONFIG_IT8712F_WDT is not set # CONFIG_HP_WATCHDOG is not set # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set # CONFIG_60XX_WDT is not set # CONFIG_SBC8360_WDT is not set # CONFIG_CPU5_WDT is not set # CONFIG_SMSC37B787_WDT is not set # CONFIG_W83627HF_WDT is not set # CONFIG_W83697HF_WDT is not set # CONFIG_W83877F_WDT is not set # CONFIG_W83977F_WDT is not set # CONFIG_MACHZ_WDT is not set # CONFIG_SBC_EPX_C3_WATCHDOG is not set # # PCI-based Watchdog Cards # # CONFIG_PCIPCWATCHDOG is not set # CONFIG_WDTPCI is not set # # USB-based Watchdog Cards # # CONFIG_USBPCWATCHDOG is not set # # Sonics Silicon Backplane # CONFIG_SSB_POSSIBLE=y # CONFIG_SSB is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # CONFIG_HTC_PASIC3 is not set # # Multimedia devices # # # Multimedia core support # CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m # CONFIG_VIDEO_ALLOW_V4L1 is not set # CONFIG_VIDEO_V4L1_COMPAT is not set CONFIG_DVB_CORE=m CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # CONFIG_MEDIA_ATTACH=y CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMIZE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2060=m CONFIG_MEDIA_TUNER_MT2266=m CONFIG_MEDIA_TUNER_QT1010=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_VMALLOC=m CONFIG_VIDEOBUF_DVB=m CONFIG_VIDEO_IR_I2C=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_MSP3400=m CONFIG_VIDEO_CS53L32A=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_SAA711X=m CONFIG_VIDEO_TVP5150=m CONFIG_VIDEO_CX25840=m CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_VIVI=m # CONFIG_VIDEO_BT848 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CX88 is not set # CONFIG_VIDEO_CX23885 is not set # CONFIG_VIDEO_AU0828 is not set # CONFIG_VIDEO_CX18 is not set # CONFIG_VIDEO_CAFE_CCIC is not set CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS=m CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_VIDEO_PVRUSB2=m CONFIG_VIDEO_PVRUSB2_SYSFS=y CONFIG_VIDEO_PVRUSB2_DVB=y CONFIG_VIDEO_PVRUSB2_DEBUGIFC=y CONFIG_VIDEO_EM28XX=m CONFIG_VIDEO_EM28XX_ALSA=m CONFIG_VIDEO_EM28XX_DVB=m CONFIG_VIDEO_USBVISION=m CONFIG_USB_ET61X251=m CONFIG_USB_SN9C102=m CONFIG_USB_ZC0301=m CONFIG_USB_ZR364XX=m # CONFIG_USB_STKWEBCAM is not set # CONFIG_SOC_CAMERA is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_GEMTEK_PCI is not set # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_RADIO_MAESTRO is not set CONFIG_USB_DSBR=m # CONFIG_USB_SI470X is not set CONFIG_DVB_CAPTURE_DRIVERS=y # # Supported SAA7146 based PCI Adapters # # CONFIG_TTPCI_EEPROM is not set # CONFIG_DVB_AV7110 is not set # CONFIG_DVB_BUDGET_CORE is not set # # Supported USB Adapters # CONFIG_DVB_USB=m # CONFIG_DVB_USB_DEBUG is not set CONFIG_DVB_USB_A800=m CONFIG_DVB_USB_DIBUSB_MB=m CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y CONFIG_DVB_USB_DIBUSB_MC=m CONFIG_DVB_USB_DIB0700=m CONFIG_DVB_USB_UMT_010=m CONFIG_DVB_USB_CXUSB=m CONFIG_DVB_USB_M920X=m CONFIG_DVB_USB_GL861=m CONFIG_DVB_USB_AU6610=m CONFIG_DVB_USB_DIGITV=m CONFIG_DVB_USB_VP7045=m CONFIG_DVB_USB_VP702X=m CONFIG_DVB_USB_GP8PSK=m CONFIG_DVB_USB_NOVA_T_USB2=m CONFIG_DVB_USB_TTUSB2=m CONFIG_DVB_USB_DTT200U=m CONFIG_DVB_USB_OPERA1=m CONFIG_DVB_USB_AF9005=m CONFIG_DVB_USB_AF9005_REMOTE=m CONFIG_DVB_TTUSB_BUDGET=m CONFIG_DVB_TTUSB_DEC=m CONFIG_DVB_CINERGYT2=m CONFIG_DVB_CINERGYT2_TUNING=y CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=50 # # Supported FlexCopII (B2C2) Adapters # CONFIG_DVB_B2C2_FLEXCOP=m # CONFIG_DVB_B2C2_FLEXCOP_PCI is not set CONFIG_DVB_B2C2_FLEXCOP_USB=m # CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set # # Supported BT878 Adapters # # # Supported Pluto2 Adapters # CONFIG_DVB_PLUTO2=m # # Supported DVB Frontends # # # Customise DVB Frontends # # CONFIG_DVB_FE_CUSTOMISE is not set # # DVB-S (satellite) frontends # CONFIG_DVB_CX24110=m CONFIG_DVB_CX24123=m CONFIG_DVB_MT312=m CONFIG_DVB_S5H1420=m CONFIG_DVB_STV0299=m CONFIG_DVB_TDA8083=m CONFIG_DVB_TDA10086=m CONFIG_DVB_VES1X93=m CONFIG_DVB_TUNER_ITD1000=m CONFIG_DVB_TDA826X=m CONFIG_DVB_TUA6100=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_SP8870=m CONFIG_DVB_SP887X=m CONFIG_DVB_CX22700=m CONFIG_DVB_CX22702=m CONFIG_DVB_L64781=m CONFIG_DVB_TDA1004X=m CONFIG_DVB_NXT6000=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB3000MB=m CONFIG_DVB_DIB3000MC=m CONFIG_DVB_DIB7000M=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m # # DVB-C (cable) frontends # CONFIG_DVB_VES1820=m CONFIG_DVB_TDA10021=m CONFIG_DVB_TDA10023=m CONFIG_DVB_STV0297=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=m CONFIG_DVB_OR51211=m CONFIG_DVB_OR51132=m CONFIG_DVB_BCM3510=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_S5H1409=m CONFIG_DVB_AU8522=m CONFIG_DVB_S5H1411=m # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=m CONFIG_DVB_TUNER_DIB0070=m # # SEC control devices for DVB-S # CONFIG_DVB_LNBP21=m CONFIG_DVB_ISL6405=m CONFIG_DVB_ISL6421=m CONFIG_DAB=y CONFIG_USB_DABUSB=m # # Graphics support # CONFIG_AGP=y CONFIG_AGP_AMD64=y CONFIG_AGP_INTEL=m CONFIG_AGP_SIS=m CONFIG_AGP_VIA=m CONFIG_DRM=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_I810 is not set # CONFIG_DRM_I830 is not set # CONFIG_DRM_I915 is not set # CONFIG_DRM_MGA is not set # CONFIG_DRM_SIS is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y CONFIG_FB_DDC=m CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set CONFIG_FB_SYS_FILLRECT=m CONFIG_FB_SYS_COPYAREA=m CONFIG_FB_SYS_IMAGEBLIT=m # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=m # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set CONFIG_FB_BACKLIGHT=y CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set CONFIG_FB_VGA16=m CONFIG_FB_UVESA=m CONFIG_FB_VESA=y CONFIG_FB_EFI=y # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=m CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_BACKLIGHT=y # CONFIG_FB_RADEON_DEBUG is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_GEODE is not set CONFIG_FB_VIRTUAL=m CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_CORGI=m CONFIG_BACKLIGHT_PROGEAR=m # # Display device support # CONFIG_DISPLAY_SUPPORT=m # # Display hardware drivers # # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_VIDEO_SELECT=y CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=m # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_LOGO is not set # # Sound # CONFIG_SOUND=m # # Advanced Linux Sound Architecture # CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y # # Generic devices # CONFIG_SND_PCSP=m CONFIG_SND_MPU401_UART=m CONFIG_SND_DUMMY=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m # # PCI devices # # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_OXYGEN is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_CODEC_REALTEK=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_ATIHDMI=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_HIFIER is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set # CONFIG_SND_INTEL8X0 is not set # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VIRTUOSO is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # # USB devices # CONFIG_SND_USB_AUDIO=m # CONFIG_SND_USB_USX2Y is not set # CONFIG_SND_USB_CAIAQ is not set # # PCMCIA devices # # CONFIG_SND_VXPOCKET is not set # CONFIG_SND_PDAUDIOCF is not set # # System on Chip audio support # # CONFIG_SND_SOC is not set # # ALSA SoC audio for Freescale SOCs # # # SoC Audio for the Texas Instruments OMAP # # # Open Sound System # # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=m # CONFIG_HID_DEBUG is not set CONFIG_HIDRAW=y # # USB Input Devices # CONFIG_USB_HID=m CONFIG_USB_HIDINPUT_POWERBOOK=y # CONFIG_HID_FF is not set CONFIG_USB_HIDDEV=y # # USB HID Boot Protocol drivers # CONFIG_USB_KBD=m CONFIG_USB_MOUSE=m CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=m # CONFIG_USB_DEBUG is not set # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y CONFIG_USB_EHCI_TT_NEWSCHED=y # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set CONFIG_USB_OHCI_HCD=m # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m CONFIG_USB_U132_HCD=m CONFIG_USB_SL811_HCD=m CONFIG_USB_SL811_CS=m # CONFIG_USB_R8A66597_HCD is not set # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m CONFIG_USB_WDM=m # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # # may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set CONFIG_USB_STORAGE_DATAFAB=y CONFIG_USB_STORAGE_FREECOM=y CONFIG_USB_STORAGE_ISD200=y CONFIG_USB_STORAGE_DPCM=y CONFIG_USB_STORAGE_USBAT=y CONFIG_USB_STORAGE_SDDR09=y CONFIG_USB_STORAGE_SDDR55=y CONFIG_USB_STORAGE_JUMPSHOT=y CONFIG_USB_STORAGE_ALAUDA=y CONFIG_USB_STORAGE_ONETOUCH=y CONFIG_USB_STORAGE_KARMA=y # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m CONFIG_USB_MON=y # # USB port drivers # CONFIG_USB_USS720=m CONFIG_USB_SERIAL=m CONFIG_USB_EZUSB=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_AIRPRIME=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_CH341=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP2101=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m # CONFIG_USB_SERIAL_IR is not set CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_IUU=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m # CONFIG_USB_SERIAL_KEYSPAN is not set CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_MOTOROLA=m CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_SPCP8X5=m CONFIG_USB_SERIAL_HP4X=m CONFIG_USB_SERIAL_SAFE=m # CONFIG_USB_SERIAL_SAFE_PADDED is not set CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_DEBUG=m # # USB Miscellaneous drivers # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m CONFIG_USB_ADUTUX=m CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_BERRY_CHARGE=m CONFIG_USB_LED=m CONFIG_USB_CYPRESS_CY7C63=m CONFIG_USB_CYTHERM=m CONFIG_USB_PHIDGET=m CONFIG_USB_PHIDGETKIT=m CONFIG_USB_PHIDGETMOTORCONTROL=m CONFIG_USB_PHIDGETSERVO=m CONFIG_USB_IDMOUSE=m CONFIG_USB_FTDI_ELAN=m CONFIG_USB_APPLEDISPLAY=m CONFIG_USB_SISUSBVGA=m # CONFIG_USB_SISUSBVGA_CON is not set CONFIG_USB_LD=m CONFIG_USB_TRANCEVIBRATOR=m CONFIG_USB_IOWARRIOR=m # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # CONFIG_USB_GADGET is not set CONFIG_MMC=m CONFIG_MMC_DEBUG=y # CONFIG_MMC_UNSAFE_RESUME is not set # # MMC/SD Card Drivers # CONFIG_MMC_BLOCK=m CONFIG_MMC_BLOCK_BOUNCE=y CONFIG_SDIO_UART=m # CONFIG_MMC_TEST is not set # # MMC/SD Host Controller Drivers # CONFIG_MMC_SDHCI=m CONFIG_MMC_RICOH_MMC=m # CONFIG_MMC_WBSD is not set # CONFIG_MMC_TIFM_SD is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=m # # LED drivers # # CONFIG_LEDS_CLEVO_MAIL is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=m CONFIG_RTC_CLASS=m # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y CONFIG_RTC_DRV_TEST=m # # I2C RTC drivers # CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m CONFIG_RTC_DRV_M41T80_WDT=y CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m # # SPI RTC drivers # # # Platform RTC drivers # # CONFIG_RTC_DRV_CMOS is not set CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # CONFIG_DMADEVICES=y # # DMA Devices # CONFIG_INTEL_IOATDMA=m CONFIG_DMA_ENGINE=y # # DMA Clients # CONFIG_NET_DMA=y CONFIG_DCA=m CONFIG_AUXDISPLAY=y CONFIG_KS0108=m CONFIG_KS0108_PORT=0x378 CONFIG_KS0108_DELAY=2 CONFIG_CFAG12864B=m CONFIG_CFAG12864B_RATE=20 CONFIG_UIO=m # CONFIG_UIO_CIF is not set # CONFIG_UIO_SMX is not set # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y CONFIG_ISCSI_IBFT_FIND=y CONFIG_ISCSI_IBFT=m # # File systems # CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=m CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y CONFIG_JFS_FS=m CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m # CONFIG_XFS_QUOTA is not set CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y # CONFIG_XFS_DEBUG is not set CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_NOLOCK=m CONFIG_GFS2_FS_LOCKING_DLM=m CONFIG_OCFS2_FS=m CONFIG_OCFS2_FS_O2CB=m CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m CONFIG_OCFS2_DEBUG_MASKLOG=y # CONFIG_OCFS2_DEBUG_FS is not set CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_AUTOFS_FS=m CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_GENERIC_ACL=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set CONFIG_ECRYPT_FS=m # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set CONFIG_MINIX_FS=m # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set CONFIG_ROMFS_FS=m # CONFIG_SYSV_FS is not set CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BIND34=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_RPCSEC_GSS_SPKM3=m CONFIG_SMB_FS=m # CONFIG_SMB_NLS_DEFAULT is not set CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_EXPERIMENTAL=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_DFS_UPCALL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y CONFIG_LDM_PARTITION=y # CONFIG_LDM_DEBUG is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set CONFIG_SUN_PARTITION=y # CONFIG_KARMA_PARTITION is not set CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=m CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=m CONFIG_DLM=m # CONFIG_DLM_DEBUG is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set # CONFIG_ENABLE_WARN_DEPRECATED is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_WRITECOUNT is not set # CONFIG_DEBUG_LIST is not set # CONFIG_DEBUG_SG is not set # CONFIG_FRAME_POINTER is not set # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set # CONFIG_NONPROMISC_DEVMEM is not set CONFIG_EARLY_PRINTK=y # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_X86_PTDUMP is not set # CONFIG_DEBUG_RODATA is not set # CONFIG_DIRECT_GBPAGES is not set # CONFIG_DEBUG_NX_TEST is not set CONFIG_X86_MPPARSE=y # CONFIG_IOMMU_DEBUG is not set CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_DEBUG_BOOT_PARAMS is not set # CONFIG_CPA_DEBUG is not set # # Security options # CONFIG_KEYS=y # CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY is not set # CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_AEAD=m CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_HASH=m CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_SEQIV=m # # Block modes # CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CTR=m CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m # # Hash modes # CONFIG_CRYPTO_HMAC=m CONFIG_CRYPTO_XCBC=m # # Digest # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m # # Ciphers # CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_X86_64=y CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_X86_64=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_LZO=m CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_HIFN_795X is not set CONFIG_HAVE_KVM=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m # CONFIG_KVM_AMD is not set CONFIG_VIRTIO=m CONFIG_VIRTIO_RING=m CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_BALLOON=m # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=m CONFIG_LZO_DECOMPRESS=m CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y -- Cordiali saluti Alessandro Bono From owner-xfs@oss.sgi.com Thu Oct 16 06:32:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=AWL,BAYES_00,FORGED_YAHOO_RCVD, J_CHICKENPOX_44,J_CHICKENPOX_45,WHOIS_MYPRIVREG autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GDWPgs006940 for ; Thu, 16 Oct 2008 06:32:25 -0700 X-ASG-Debug-ID: 1224164047-4b72009c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from kuber.nabble.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 02F25A9CACC for ; Thu, 16 Oct 2008 06:34:07 -0700 (PDT) Received: from kuber.nabble.com (kuber.nabble.com [216.139.236.158]) by cuda.sgi.com with ESMTP id SKvEiFcsqfVql4lH for ; Thu, 16 Oct 2008 06:34:07 -0700 (PDT) Received: from [192.168.236.156] (helo=isper.nabble.com) by kuber.nabble.com with esmtp (Exim 4.63) (envelope-from ) id 1KqSzP-0005Tg-11 for xfs@oss.sgi.com; Thu, 16 Oct 2008 06:34:07 -0700 Message-ID: <20013835.post@talk.nabble.com> Date: Thu, 16 Oct 2008 06:33:17 -0700 (PDT) From: ibulescu To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How can I recover data? Subject: Re: How can I recover data? In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Nabble-From: tibi_1980@yahoo.com References: <19996090.post@talk.nabble.com> <20007191.post@talk.nabble.com> X-Barracuda-Connect: kuber.nabble.com[216.139.236.158] X-Barracuda-Start-Time: 1224164048 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.61 X-Barracuda-Spam-Status: No, SCORE=-0.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=FORGED_YAHOO_RCVD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8081 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.41 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers Tried that too... but no luck. The only thing I've modified was "write core.mode 040755" and after some time of "printing inodes" I've runned xfs_repair in modify mode but nothing good happened. Almost all inodes have "next_unlinked" set to null and the time in 1 Jan 1970. The All folder has the time in 2008 but even after xfs_repair moved the folder in lost+found it's still empty and named 186. The conclusion is: all data lost? If so what is the best way to reformat the volume to not have the same problems again? The "no space left on the device" and "lose all data" problems? I have an UPS on that server, so the bad shutdown corruption will not happen. I know all the files and folders are still there because no write opperations occured but I don't have a way to read them because the filesystem can't find the "connections"... Barry Naujok-3 wrote: > > On Thu, 16 Oct 2008 16:06:23 +1100, ibulescu wrote: > >> There is a 186 directory in lost+found but it's empty and there are only >> 6Mb >> of space occupied on the volume. In total there are 2 empty folders, 186 >> and >> 191 and 4 zero size files, 187 to 190. >> >> I have recovered almost all of my data using reiserfs in the same >> scenario >> but I can't find a solution using xfs. > > > Ah, misread the trace: > >>> - agno = 0 >>> entry "All" in shortform directory 186 references free inode 136 >>> junking entry "All" in directory inode 186 > > Inode 136 is the "All" directory - for some reason, it's marked as > deleted. > > Since you don't really have much to lose, you can try the following: > > # xfs_db -x > xfs_db> inode 136 > xfs_db> print > > If it appears to be inode data (and not all zeros): > > xfs_db> write mode 040755 > xfs_db> quit > > # xfs_repair -n > > and see what it reports. > > The "write mode 040755" command mark the inodes as a directory and not > deleted. > > You may try that with the following items too: > >>> entry "All.info.xml" in shortform directory 186 references free inode >>> 137 >>> junking entry "All.info.xml" in directory inode 186 >>> bad attribute format 1 in inode 191, resetting value >>> entry "rhi-rp11.iso" in shortform directory 191 references free inode >>> 134 >>> junking entry "rhi-rp11.iso" in directory inode 191 >>> entry "rhi.nfo" in shortform directory 191 references free inode 135 >>> junking entry "rhi.nfo" in directory inode 191 >>> - agno = 1 > >> Barry Naujok-3 wrote: >>> >>> On Thu, 16 Oct 2008 02:35:40 +1100, ibulescu >>> wrote: >>> >>>> Hello, >>>> how can I recover the data? >>>> >>>> Here is my story: >>>> >>>> I have openfiler installed with LVM and a single xfs partition over 7 >>>> sata >>>> hdd's. Yesterday I discovered that I can't write any files to the xfs >>>> partition, even if there was 1,2Tb free space. I've googled alot and >>>> modified the label of all partitions to GPT (that seemed to be the >>>> problem >>>> with xfs, or so I've imagined and I've used parted - mklabel). After >>>> that >>>> I've rebooted and all data was gone. The parted program changed the >>>> partitions UUID's. I've manualy set original partitions UUID from lvm >>>> backup's and restored the volume group. The partition from the volume >>>> group >>>> was there but XFS can't mount the filesystem. After running xfs_repair >>>> this >>>> is the result: >>>> - all the data was contained in a single folder named "All" which was >>>> deleted by the repair >>> >>> All was inode 186: >>> >>>> entry "All" in shortform directory 186 references free inode 136 >>>> junking entry "All" in directory inode 186 >>> >>> which is now in lost+found: >>> >>>> disconnected dir inode 186, moving to lost+found >>> >>> So, you should find the contents of the All directory in >>> /lost+found/186/ >>> >>> >>>> ----Begin copy---- >>>> bad magic number 0x0 on inode 183, resetting magic number >>>> bad version number 0x0 on inode 183, resetting version number >>>> bad magic number 0x0 on inode 184, resetting magic number >>>> bad version number 0x0 on inode 184, resetting version number >>>> bad magic number 0x0 on inode 185, resetting magic number >>>> bad version number 0x0 on inode 185, resetting version number >>>> imap claims in-use inode 186 is free, correcting imap >>>> imap claims in-use inode 187 is free, correcting imap >>>> imap claims in-use inode 188 is free, correcting imap >>>> imap claims in-use inode 189 is free, correcting imap >>>> imap claims in-use inode 190 is free, correcting imap >>>> bad attribute leaf magic # 0 for dir ino 191 >>>> problem with attribute contents in inode 191 >>>> clearing inode 191 attributes >>>> correcting nblocks for inode 191, was 1 - counted 0 >>>> imap claims in-use inode 191 is free, correcting imap >>>> - agno = 1 >>>> - agno = 2 >>>> - agno = 3 >>>> - agno = 4 >>>> - agno = 5 >>>> - agno = 6 >>>> - agno = 7 >>>> - agno = 8 >>>> - agno = 9 >>>> - agno = 10 >>>> - agno = 11 >>>> - agno = 12 >>>> - agno = 13 >>>> - agno = 14 >>>> - agno = 15 >>>> - agno = 16 >>>> - agno = 17 >>>> - agno = 18 >>>> - agno = 19 >>>> - agno = 20 >>>> - agno = 21 >>>> - agno = 22 >>>> - agno = 23 >>>> - agno = 24 >>>> - agno = 25 >>>> - agno = 26 >>>> - agno = 27 >>>> - agno = 28 >>>> - agno = 29 >>>> - agno = 30 >>>> - agno = 31 >>>> - agno = 32 >>>> - agno = 33 >>>> - agno = 34 >>>> - agno = 35 >>>> - agno = 36 >>>> - agno = 37 >>>> - agno = 38 >>>> - agno = 39 >>>> - agno = 40 >>>> - agno = 41 >>>> - agno = 42 >>>> - agno = 43 >>>> - agno = 44 >>>> - agno = 45 >>>> - agno = 46 >>>> - agno = 47 >>>> - agno = 48 >>>> - agno = 49 >>>> - agno = 50 >>>> - agno = 51 >>>> - agno = 52 >>>> - agno = 53 >>>> - agno = 54 >>>> - agno = 55 >>>> - agno = 56 >>>> - agno = 57 >>>> - agno = 58 >>>> - agno = 59 >>>> - agno = 60 >>>> - agno = 61 >>>> - agno = 62 >>>> - agno = 63 >>>> - agno = 64 >>>> - agno = 65 >>>> - agno = 66 >>>> - agno = 67 >>>> - agno = 68 >>>> - agno = 69 >>>> - agno = 70 >>>> - agno = 71 >>>> - agno = 72 >>>> - agno = 73 >>>> - agno = 74 >>>> - process newly discovered inodes... >>>> Phase 4 - check for duplicate blocks... >>>> - setting up duplicate extent list... >>>> root inode lost >>>> - clear lost+found (if it exists) ... >>>> - check for inodes claiming duplicate blocks... >>>> - agno = 0 >>>> entry "All" in shortform directory 186 references free inode 136 >>>> junking entry "All" in directory inode 186 >>>> entry "All.info.xml" in shortform directory 186 references free inode >>>> 137 >>>> junking entry "All.info.xml" in directory inode 186 >>>> bad attribute format 1 in inode 191, resetting value >>>> entry "rhi-rp11.iso" in shortform directory 191 references free inode >>>> 134 >>>> junking entry "rhi-rp11.iso" in directory inode 191 >>>> entry "rhi.nfo" in shortform directory 191 references free inode 135 >>>> junking entry "rhi.nfo" in directory inode 191 >>>> - agno = 1 >>>> - agno = 2 >>>> - agno = 3 >>>> - agno = 4 >>>> - agno = 5 >>>> - agno = 6 >>>> - agno = 7 >>>> - agno = 8 >>>> - agno = 9 >>>> - agno = 10 >>>> - agno = 11 >>>> - agno = 12 >>>> - agno = 13 >>>> - agno = 14 >>>> - agno = 15 >>>> - agno = 16 >>>> - agno = 17 >>>> - agno = 18 >>>> - agno = 19 >>>> - agno = 20 >>>> - agno = 21 >>>> - agno = 22 >>>> - agno = 23 >>>> - agno = 24 >>>> - agno = 25 >>>> - agno = 26 >>>> - agno = 27 >>>> - agno = 28 >>>> - agno = 29 >>>> - agno = 30 >>>> - agno = 31 >>>> - agno = 32 >>>> - agno = 33 >>>> - agno = 34 >>>> - agno = 35 >>>> - agno = 36 >>>> - agno = 37 >>>> - agno = 38 >>>> - agno = 39 >>>> - agno = 40 >>>> - agno = 41 >>>> - agno = 42 >>>> - agno = 43 >>>> - agno = 44 >>>> - agno = 45 >>>> - agno = 46 >>>> - agno = 47 >>>> - agno = 48 >>>> - agno = 49 >>>> - agno = 50 >>>> - agno = 51 >>>> - agno = 52 >>>> - agno = 53 >>>> - agno = 54 >>>> - agno = 55 >>>> - agno = 56 >>>> - agno = 57 >>>> - agno = 58 >>>> - agno = 59 >>>> - agno = 60 >>>> - agno = 61 >>>> - agno = 62 >>>> - agno = 63 >>>> - agno = 64 >>>> - agno = 65 >>>> - agno = 66 >>>> - agno = 67 >>>> - agno = 68 >>>> - agno = 69 >>>> - agno = 70 >>>> - agno = 71 >>>> - agno = 72 >>>> - agno = 73 >>>> - agno = 74 >>>> Phase 5 - rebuild AG headers and trees... >>>> - reset superblock... >>>> Phase 6 - check inode connectivity... >>>> reinitializing root directory >>>> reinitializing realtime bitmap inode >>>> reinitializing realtime summary inode >>>> - resetting contents of realtime bitmap and summary inodes >>>> - ensuring existence of lost+found directory >>>> - traversing filesystem starting at / ... >>>> - traversal finished ... >>>> - traversing all unattached subtrees ... >>>> - traversals finished ... >>>> - moving disconnected inodes to lost+found ... >>>> disconnected dir inode 186, moving to lost+found >>>> disconnected inode 187, moving to lost+found >>>> disconnected inode 188, moving to lost+found >>>> disconnected inode 189, moving to lost+found >>>> disconnected inode 190, moving to lost+found >>>> disconnected dir inode 191, moving to lost+found >>>> Phase 7 - verify and correct link counts... >>>> resetting inode 128 nlinks from 2 to 3 >>>> resetting inode 186 nlinks from 3 to 2 >>>> Warning: quota inodes were cleared. Quotas disabled. >>>> Note - stripe unit (0) and width (0) fields have been reset. >>>> Please set with mount -o sunit=,swidth= >>>> done >>>> [root@nas01 /]# >>>> ----End copy---- >>> >>> >>> >>> >>> >> > > > > > -- View this message in context: http://www.nabble.com/How-can-I-recover-data--tp19996090p20013835.html Sent from the Xfs - General mailing list archive at Nabble.com. From owner-xfs@oss.sgi.com Thu Oct 16 06:39:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GDdY0w007582 for ; Thu, 16 Oct 2008 06:39:37 -0700 X-ASG-Debug-ID: 1224164477-113c03cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from z.billxu.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1EA26505910 for ; Thu, 16 Oct 2008 06:41:17 -0700 (PDT) Received: from z.billxu.com (smtp.zeuux.org [210.51.160.52]) by cuda.sgi.com with ESMTP id JNpFBBFxhXnb9zZp for ; Thu, 16 Oct 2008 06:41:17 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by z.billxu.com (Postfix) with ESMTP id 3B0CC735C20; Thu, 16 Oct 2008 21:41:12 +0800 (CST) Received: from localhost (unknown [221.11.22.42]) by z.billxu.com (Postfix) with ESMTP id E11CC735C1E; Thu, 16 Oct 2008 21:41:06 +0800 (CST) Date: Thu, 16 Oct 2008 21:41:12 +0800 From: Jianjun Kong To: Tim Shimmin Cc: stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016134112.GA8773@ubuntu> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> User-Agent: Mutt/1.5.15+20070412 (2007-04-11) X-Barracuda-Connect: smtp.zeuux.org[210.51.160.52] X-Barracuda-Start-Time: 1224164478 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8082 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote: >Resending as I mangled sending the mail from home last time. Sorry. > >Please include the following patch for 2.6.27.1 stable release as >suggested by Christoph Hellwig and Eric Sandeen. >It fixes a regression in the recent remount recoding >where remounting say from ro to rw allows the xfs flags to >be out of sync with the vfs flags, resulting >in failures for some programs such as touch (which end up calling xfs_setattr). >The fix is a very minor and clear. > >Thanks, >Tim. > >Date: Sun, 12 Oct 2008 14:30:44 +0200 >From: Christoph Hellwig >To: xfs@oss.sgi.com >Subject: [PATCH] fix remount rw with unrecognized options > >When we skip unrecognized options in xfs_fs_remount we should just break >out of the switch and not return because otherwise we may skip clearing >the xfs-internal read-only flag. This will only show up on some >operations like touch because most read-only checks are done by the VFS >which thinks this filesystem is r/w. Eventually we should replace the >XFS read-only flag with a helper that always checks the VFS flag to make >sure they can never get out of sync. > >Bug reported and fix verified by Marcel Beister on #xfs. >Bug fix verified by updated xfstests/189. > >Signed-off-by: Christoph Hellwig >Acked-by: Eric Sandeen >Signed-off-by: Timothy Shimmin > >Index: mainline/fs/xfs/linux-2.6/xfs_super.c >=================================================================== >--- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 >+++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 >@@ -1323,7 +1323,7 @@ xfs_fs_remount( > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; > #else >- return 0; >+ break; > #endif > } > } And the code above "return 0" can not be executed, so delete them. __________________________________________ #if 0 printk(KERN_INFO "XFS: mount option \"%s\" not supported for remount\n", p); return -EINVAL; #else return 0; ----------------------------------------- Signed-off-by: Jianjun Kong --- fs/xfs/linux-2.6/xfs_super.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index e390136..bd5ec81 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1318,12 +1318,7 @@ xfs_fs_remount( * every remount request, and silently ignore all * options that we can't actually change. */ -#if 0 - printk(KERN_INFO - "XFS: mount option \"%s\" not supported for remount\n", p); - return -EINVAL; -#else - break; + break 0; #endif } } -- 1.5.2.5 From owner-xfs@oss.sgi.com Thu Oct 16 06:54:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GDsFj5008815 for ; Thu, 16 Oct 2008 06:54:16 -0700 X-ASG-Debug-ID: 1224165357-04b200070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from moutng.kundenserver.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1B8FF1412239 for ; Thu, 16 Oct 2008 06:55:58 -0700 (PDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.188]) by cuda.sgi.com with ESMTP id PA5SAasLnIhKEiTt for ; Thu, 16 Oct 2008 06:55:58 -0700 (PDT) Received: from [172.25.16.129] (mailout.bct-technology.com [85.115.16.62]) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis) id 0MKwh2-1KqTKP3ZvC-0006Ti; Thu, 16 Oct 2008 15:55:53 +0200 Message-ID: <48F747E5.3090007@gmx.net> Date: Thu, 16 Oct 2008 15:55:49 +0200 From: Klaus Strebel User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Jianjun Kong CC: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [PATCH] XFS fix remount rw with unrecognized options References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016134112.GA8773@ubuntu> In-Reply-To: <20081016134112.GA8773@ubuntu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Provags-ID: V01U2FsdGVkX19zNG5jVRMewHeaU/LDM73nzSFjabpz4ia66Tz IlVfdlgh1qQEe51bsaBiYJIaRrKjyEPuz6s1wj6goeu4yiv7Qe XyLThp5ZFHSaGLX4xVPXQ== X-Barracuda-Connect: moutng.kundenserver.de[212.227.126.188] X-Barracuda-Start-Time: 1224165359 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8084 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Jianjun Kong schrieb: > On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote: >> Resending as I mangled sending the mail from home last time. Sorry. >> >> Please include the following patch for 2.6.27.1 stable release as >> suggested by Christoph Hellwig and Eric Sandeen. >> It fixes a regression in the recent remount recoding >> where remounting say from ro to rw allows the xfs flags to >> be out of sync with the vfs flags, resulting >> in failures for some programs such as touch (which end up calling xfs_setattr). >> The fix is a very minor and clear. >> >> Thanks, >> Tim. >> >> Date: Sun, 12 Oct 2008 14:30:44 +0200 >> From: Christoph Hellwig >> To: xfs@oss.sgi.com >> Subject: [PATCH] fix remount rw with unrecognized options >> >> When we skip unrecognized options in xfs_fs_remount we should just break >> out of the switch and not return because otherwise we may skip clearing >> the xfs-internal read-only flag. This will only show up on some >> operations like touch because most read-only checks are done by the VFS >> which thinks this filesystem is r/w. Eventually we should replace the >> XFS read-only flag with a helper that always checks the VFS flag to make >> sure they can never get out of sync. >> >> Bug reported and fix verified by Marcel Beister on #xfs. >> Bug fix verified by updated xfstests/189. >> >> Signed-off-by: Christoph Hellwig >> Acked-by: Eric Sandeen >> Signed-off-by: Timothy Shimmin >> >> Index: mainline/fs/xfs/linux-2.6/xfs_super.c >> =================================================================== >> --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 >> +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 >> @@ -1323,7 +1323,7 @@ xfs_fs_remount( >> "XFS: mount option \"%s\" not supported for remount\n", p); >> return -EINVAL; >> #else >> - return 0; >> + break; >> #endif >> } >> } > > > And the code above "return 0" can not be executed, so delete them. > __________________________________________ > #if 0 > printk(KERN_INFO > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; > #else > return 0; > ----------------------------------------- > > > Signed-off-by: Jianjun Kong > --- > fs/xfs/linux-2.6/xfs_super.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c > index e390136..bd5ec81 100644 > --- a/fs/xfs/linux-2.6/xfs_super.c > +++ b/fs/xfs/linux-2.6/xfs_super.c > @@ -1318,12 +1318,7 @@ xfs_fs_remount( > * every remount request, and silently ignore all > * options that we can't actually change. > */ > -#if 0 > - printk(KERN_INFO > - "XFS: mount option \"%s\" not supported for remount\n", p); > - return -EINVAL; > -#else > - break; > + break 0; > #endif > } > } I see my compilers error message '"#endif" without corresponding "#if"' and i think he'll also dislike the 'break 0;' ... 'missing ";" before "0" in line xxx' ;-). -- Mit freundlichen Grüssen / best regards Klaus Strebel, Dipl.-Inform. (FH), mailto:klaus.strebel@gmx.net /"\ \ / ASCII RIBBON CAMPAIGN X AGAINST HTML MAIL / \ From owner-xfs@oss.sgi.com Thu Oct 16 06:58:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GDw7TW009251 for ; Thu, 16 Oct 2008 06:58:07 -0700 X-ASG-Debug-ID: 1224165589-2f1e03bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nf-out-0910.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CDB2350584A for ; Thu, 16 Oct 2008 06:59:49 -0700 (PDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.189]) by cuda.sgi.com with ESMTP id 2OLJFziODfU3UZHR for ; Thu, 16 Oct 2008 06:59:49 -0700 (PDT) Received: by nf-out-0910.google.com with SMTP id h3so2588nfh.42 for ; Thu, 16 Oct 2008 06:59:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=xCPd92PuFibKUgYANscrkBaOs/A1rNrw18iWBU5JeNo=; b=vbVS04OnXSfnUcu8oRrMSUCM/eMvzq7zP0c/nD7dCmW7MOqdQuZHlxTTMX9Bo6996y REpgEvSpcIJFVbRokZjoeX0cIRK0YAduZwnn43rF7LtwuxfCqNklIEjULAkHligJZH1M wd2J8jndfZVZ0WkdtT6NeLZdacbVUThRhAMOw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=MZcruhpiFtgOjTSorWV2C4Fg1hvaZ/ZOxNfPzmxGIRwvFi6NNsBZu4RwaDq5DSaSs4 ZOHKcKq0NrGddeTOPXaBlwsKwnY94CKz6HH7hmDLDBjseG+0XYn+Ut9b3piex4XLxH2e iUSAFsZxZLTykbcfhYzl9uqa1WlGC43kFH0u4= Received: by 10.210.51.18 with SMTP id y18mr2935011eby.103.1224165588786; Thu, 16 Oct 2008 06:59:48 -0700 (PDT) Received: from hack.voiplan.pt ([83.240.229.38]) by mx.google.com with ESMTPS id i6sm3688570gve.2.2008.10.16.06.59.44 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 16 Oct 2008 06:59:46 -0700 (PDT) Date: Thu, 16 Oct 2008 14:59:26 +0100 From: =?utf-8?Q?Am=C3=A9rico?= Wang To: Jianjun Kong Cc: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016135926.GC13374@hack.voiplan.pt> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016134112.GA8773@ubuntu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016134112.GA8773@ubuntu> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: nf-out-0910.google.com[64.233.182.189] X-Barracuda-Start-Time: 1224165590 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8084 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 09:41:12PM +0800, Jianjun Kong wrote: >On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote: >>Resending as I mangled sending the mail from home last time. Sorry. >> >>Please include the following patch for 2.6.27.1 stable release as >>suggested by Christoph Hellwig and Eric Sandeen. >>It fixes a regression in the recent remount recoding >>where remounting say from ro to rw allows the xfs flags to >>be out of sync with the vfs flags, resulting >>in failures for some programs such as touch (which end up calling xfs_setattr). >>The fix is a very minor and clear. >> >>Thanks, >>Tim. >> >>Date: Sun, 12 Oct 2008 14:30:44 +0200 >>From: Christoph Hellwig >>To: xfs@oss.sgi.com >>Subject: [PATCH] fix remount rw with unrecognized options >> >>When we skip unrecognized options in xfs_fs_remount we should just break >>out of the switch and not return because otherwise we may skip clearing >>the xfs-internal read-only flag. This will only show up on some >>operations like touch because most read-only checks are done by the VFS >>which thinks this filesystem is r/w. Eventually we should replace the >>XFS read-only flag with a helper that always checks the VFS flag to make >>sure they can never get out of sync. >> >>Bug reported and fix verified by Marcel Beister on #xfs. >>Bug fix verified by updated xfstests/189. >> >>Signed-off-by: Christoph Hellwig >>Acked-by: Eric Sandeen >>Signed-off-by: Timothy Shimmin >> >>Index: mainline/fs/xfs/linux-2.6/xfs_super.c >>=================================================================== >>--- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 >>+++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 >>@@ -1323,7 +1323,7 @@ xfs_fs_remount( >> "XFS: mount option \"%s\" not supported for remount\n", p); >> return -EINVAL; >> #else >>- return 0; >>+ break; >> #endif >> } >> } > > >And the code above "return 0" can not be executed, so delete them. return 0; is in the removed part... so it's already removed. >__________________________________________ >#if 0 > printk(KERN_INFO > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; >#else > return 0; >----------------------------------------- > > >Signed-off-by: Jianjun Kong >--- > fs/xfs/linux-2.6/xfs_super.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > >diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c >index e390136..bd5ec81 100644 >--- a/fs/xfs/linux-2.6/xfs_super.c >+++ b/fs/xfs/linux-2.6/xfs_super.c >@@ -1318,12 +1318,7 @@ xfs_fs_remount( > * every remount request, and silently ignore all > * options that we can't actually change. > */ >-#if 0 >- printk(KERN_INFO >- "XFS: mount option \"%s\" not supported for remount\n", p); >- return -EINVAL; >-#else >- break; >+ break 0; break 0; doesn't make any sense in C... -- "Sometimes the only way to stay sane is to go a little crazy." From owner-xfs@oss.sgi.com Thu Oct 16 07:06:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GE68gO009894 for ; Thu, 16 Oct 2008 07:06:08 -0700 X-ASG-Debug-ID: 1224166069-2b7803890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from z.billxu.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B51BA9CB84 for ; Thu, 16 Oct 2008 07:07:50 -0700 (PDT) Received: from z.billxu.com (smtp.zeuux.org [210.51.160.52]) by cuda.sgi.com with ESMTP id kVXBYx72hStGFM7G for ; Thu, 16 Oct 2008 07:07:50 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by z.billxu.com (Postfix) with ESMTP id 61FF0735C20; Thu, 16 Oct 2008 22:07:45 +0800 (CST) Received: from localhost (unknown [221.11.22.42]) by z.billxu.com (Postfix) with ESMTP id D07A6735C1C; Thu, 16 Oct 2008 22:07:37 +0800 (CST) Date: Thu, 16 Oct 2008 22:07:44 +0800 From: Jianjun Kong To: Klaus Strebel Cc: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016140744.GA10412@ubuntu> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016134112.GA8773@ubuntu> <48F747E5.3090007@gmx.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F747E5.3090007@gmx.net> User-Agent: Mutt/1.5.15+20070412 (2007-04-11) X-Barracuda-Connect: smtp.zeuux.org[210.51.160.52] X-Barracuda-Start-Time: 1224166070 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8085 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 03:55:49PM +0200, Klaus Strebel wrote: >Jianjun Kong schrieb: >> On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote: >>> Resending as I mangled sending the mail from home last time. Sorry. >>> >>> Please include the following patch for 2.6.27.1 stable release as >>> suggested by Christoph Hellwig and Eric Sandeen. >>> It fixes a regression in the recent remount recoding >>> where remounting say from ro to rw allows the xfs flags to >>> be out of sync with the vfs flags, resulting >>> in failures for some programs such as touch (which end up calling xfs_setattr). >>> The fix is a very minor and clear. >>> >>> Thanks, >>> Tim. >>> >>> Date: Sun, 12 Oct 2008 14:30:44 +0200 >>> From: Christoph Hellwig >>> To: xfs@oss.sgi.com >>> Subject: [PATCH] fix remount rw with unrecognized options >>> >>> When we skip unrecognized options in xfs_fs_remount we should just break >>> out of the switch and not return because otherwise we may skip clearing >>> the xfs-internal read-only flag. This will only show up on some >>> operations like touch because most read-only checks are done by the VFS >>> which thinks this filesystem is r/w. Eventually we should replace the >>> XFS read-only flag with a helper that always checks the VFS flag to make >>> sure they can never get out of sync. >>> >>> Bug reported and fix verified by Marcel Beister on #xfs. >>> Bug fix verified by updated xfstests/189. >>> >>> Signed-off-by: Christoph Hellwig >>> Acked-by: Eric Sandeen >>> Signed-off-by: Timothy Shimmin >>> >>> Index: mainline/fs/xfs/linux-2.6/xfs_super.c >>> =================================================================== >>> --- mainline.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:26.542652847 +1100 >>> +++ mainline/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 17:59:45.376217172 +1100 >>> @@ -1323,7 +1323,7 @@ xfs_fs_remount( >>> "XFS: mount option \"%s\" not supported for remount\n", p); >>> return -EINVAL; >>> #else >>> - return 0; >>> + break; >>> #endif <....> >> Signed-off-by: Jianjun Kong >> --- >> fs/xfs/linux-2.6/xfs_super.c | 7 +------ >> 1 files changed, 1 insertions(+), 6 deletions(-) >> >> diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c >> index e390136..bd5ec81 100644 >> --- a/fs/xfs/linux-2.6/xfs_super.c >> +++ b/fs/xfs/linux-2.6/xfs_super.c >> @@ -1318,12 +1318,7 @@ xfs_fs_remount( >> * every remount request, and silently ignore all >> * options that we can't actually change. >> */ >> -#if 0 >> - printk(KERN_INFO >> - "XFS: mount option \"%s\" not supported for remount\n", p); >> - return -EINVAL; >> -#else >> - break; >> + break 0; >> #endif >> } >> } >I see my compilers error message '"#endif" without corresponding "#if"' >and i think he'll also dislike the 'break 0;' ... 'missing ";" before >"0" in line xxx' ;-). Sorry. another one :) Signed-off-by: Jianjun Kong --- fs/xfs/linux-2.6/xfs_super.c | 8 +------- 1 files changed, 1 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index e390136..c019f78 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1318,13 +1318,7 @@ xfs_fs_remount( * every remount request, and silently ignore all * options that we can't actually change. */ -#if 0 - printk(KERN_INFO - "XFS: mount option \"%s\" not supported for remount\n", p); - return -EINVAL; -#else - break; -#endif + break ; } } -- 1.5.2.5 -- Jianjun Kong | Happy Hacking HomePage: http://kongove.cn Gtalk: kongjianjun@gmail.com From owner-xfs@oss.sgi.com Thu Oct 16 10:39:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GHdTAK031027 for ; Thu, 16 Oct 2008 10:39:30 -0700 X-ASG-Debug-ID: 1224178871-4c37013d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from coco.kroah.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4F33010A8F35 for ; Thu, 16 Oct 2008 10:41:11 -0700 (PDT) Received: from coco.kroah.org (kroah.org [198.145.64.141]) by cuda.sgi.com with ESMTP id f0t1fwPqJK1EHIoL for ; Thu, 16 Oct 2008 10:41:11 -0700 (PDT) Received: from localhost (mail.kroah.net [66.93.40.174]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by coco.kroah.org (Postfix) with ESMTPSA id 5A9A448F73; Thu, 16 Oct 2008 10:41:11 -0700 (PDT) Date: Thu, 16 Oct 2008 10:35:29 -0700 From: Greg KH To: Tim Shimmin Cc: stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016173529.GA13038@kroah.com> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> User-Agent: Mutt/1.5.16 (2007-06-09) X-Barracuda-Connect: kroah.org[198.145.64.141] X-Barracuda-Start-Time: 1224178873 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 11:29:26AM +1100, Tim Shimmin wrote: > Resending as I mangled sending the mail from home last time. Sorry. > > Please include the following patch for 2.6.27.1 stable release as > suggested by Christoph Hellwig and Eric Sandeen. > It fixes a regression in the recent remount recoding > where remounting say from ro to rw allows the xfs flags to > be out of sync with the vfs flags, resulting > in failures for some programs such as touch (which end up calling xfs_setattr). > The fix is a very minor and clear. Is this patch already in Linus's tree? If so, do you have a git commit id? thanks, greg k-h From owner-xfs@oss.sgi.com Thu Oct 16 10:53:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_45 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GHrFcM032260 for ; Thu, 16 Oct 2008 10:53:15 -0700 X-ASG-Debug-ID: 1224179697-5b5903e20000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lichtvoll.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 414791418993 for ; Thu, 16 Oct 2008 10:54:57 -0700 (PDT) Received: from mail.lichtvoll.de (mondschein.lichtvoll.de [194.150.191.11]) by cuda.sgi.com with ESMTP id ELD9g8mDvULPe0cU for ; Thu, 16 Oct 2008 10:54:57 -0700 (PDT) Received: from shambhala.lichtvoll.local (DSL01.212.114.229.215.ip-pool.NEFkom.net [212.114.229.215]) by mail.lichtvoll.de (Postfix) with ESMTP id 1177642DFC for ; Thu, 16 Oct 2008 19:54:54 +0200 (CEST) From: Martin Steigerwald To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: How can I recover data? Subject: Re: How can I recover data? Date: Thu, 16 Oct 2008 19:54:51 +0200 User-Agent: KMail/1.9.9 References: <19996090.post@talk.nabble.com> <20013835.post@talk.nabble.com> (sfid-20081016_171232_462611_BD799205) In-Reply-To: <20013835.post@talk.nabble.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810161954.52216.Martin@lichtvoll.de> X-Barracuda-Connect: mondschein.lichtvoll.de[194.150.191.11] X-Barracuda-Start-Time: 1224179698 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Am Donnerstag 16 Oktober 2008 schrieb ibulescu: > Tried that too... but no luck. > > The only thing I've modified was > "write core.mode 040755" and after some time of "printing inodes" I've > runned xfs_repair in modify mode but nothing good happened. Almost all > inodes have "next_unlinked" set to null and the time in 1 Jan 1970. The > All folder has the time in 2008 but even after xfs_repair moved the > folder in lost+found it's still empty and named 186. > > The conclusion is: all data lost? If so what is the best way to > reformat the volume to not have the same problems again? The "no space > left on the device" and "lose all data" problems? > I have an UPS on that server, so the bad shutdown corruption will not > happen. > > I know all the files and folders are still there because no write > opperations occured but I don't have a way to read them because the > filesystem can't find the "connections"... If you have no backup and the data is important enough for you, you can try to use photorec from the testdisk package, foremost or magicrescue. photorec seems to have the most formats supported out of the box, foremost and magicrescue can be extended via recipes. Don't expect to be able to recover file and directory names tough. With photorec I was able to recover photos from a smartmedia card that showed as empty in Linux while the camera showed the photos on it. -- Martin 'Helios' Steigerwald - http://www.Lichtvoll.de GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7 From owner-xfs@oss.sgi.com Thu Oct 16 11:09:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,TRACKER_ID autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GI92Tv001296 for ; Thu, 16 Oct 2008 11:09:03 -0700 X-ASG-Debug-ID: 1224180645-028402db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E6D5D1418C67; Thu, 16 Oct 2008 11:10:45 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 2YQmMibyvIUOeKdr; Thu, 16 Oct 2008 11:10:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KqXJ6-0005lP-O2; Thu, 16 Oct 2008 18:10:44 +0000 Date: Thu, 16 Oct 2008 14:10:44 -0400 From: Christoph Hellwig To: Greg KH Cc: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016181044.GA16092@infradead.org> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016173529.GA13038@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016173529.GA13038@kroah.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224180645 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.67 X-Barracuda-Spam-Status: No, SCORE=0.67 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=TRACKER_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.70 TRACKER_ID BODY: Incorporates a tracking ID number On Thu, Oct 16, 2008 at 10:35:29AM -0700, Greg KH wrote: > Is this patch already in Linus's tree? If so, do you have a git commit 6c5e51dae2c37127e00be392f40842e08077e96a From owner-xfs@oss.sgi.com Thu Oct 16 14:23:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GLNWg1022405 for ; Thu, 16 Oct 2008 14:23:33 -0700 X-ASG-Debug-ID: 1224192312-67a702310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sorrow.cyrius.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 443D410954B0 for ; Thu, 16 Oct 2008 14:25:12 -0700 (PDT) Received: from sorrow.cyrius.com (sorrow.cyrius.com [65.19.161.204]) by cuda.sgi.com with ESMTP id adywenRwGDsPoClW for ; Thu, 16 Oct 2008 14:25:12 -0700 (PDT) Received: by sorrow.cyrius.com (Postfix, from userid 10) id 7FDDCD857; Thu, 16 Oct 2008 21:25:11 +0000 (UTC) Received: by deprecation.cyrius.com (Postfix, from userid 1000) id 26A74150666; Thu, 16 Oct 2008 23:25:01 +0200 (CEST) Date: Thu, 16 Oct 2008 23:25:01 +0200 From: Martin Michlmayr To: Eric Sandeen Cc: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081016212500.GA27228@deprecation.cyrius.com> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48E4213E.9090508@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: sorrow.cyrius.com[65.19.161.204] X-Barracuda-Start-Time: 1224192314 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8106 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Eric, I tried to reproduce this problem on my ARM machine and it's really easy to trigger. See the transcript below. I tried with 2.6.26.6 (without the ARM old ABI fix) and 2.6.27 (with the fix), and with xfsprogs 2.9.8-1. Note that I'm actually using the ARM EABI, and not the old ABI. I'm not sure what Tobias used. xfs.ko compiled with -g can be found at http://www.cyrius.com/tmp/xfs.ko.bz2 (3.1 MB) Here's the transcript. It's really easy to trigger. Just copy some files to the XFS partition (works) and then run 'ls' (oops): debian:~# modprobe xfs debian:~# mkfs.xfs -f /dev/sda6 meta-data=/dev/sda6 isize=256 agcount=4, agsize=17778431 blks = sectsz=512 attr=2 data = bsize=4096 blocks=71113722, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=32768, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 debian:~# dmesg | tail -n 2 [42949548.970000] SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled [42949548.980000] SGI XFS Quota Management subsystem debian:~# mount /dev/sda6 /mnt debian:~# dmesg | tail -n 2 [42949596.470000] XFS mounting filesystem sda6 [42949596.610000] Ending clean XFS mount for filesystem: sda6 debian:~# cp /usr/bin/* /mnt/ debian:~# dmesg | tail -n 2 [42949596.470000] XFS mounting filesystem sda6 [42949596.610000] Ending clean XFS mount for filesystem: sda6 debian:~# ls /mnt ls: reading directory /mnt: Structure needs cleaning debian:~# dmesg | tail -n 16 [42949596.610000] Ending clean XFS mount for filesystem: sda6 [42949619.790000] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 04 3d 1b fa XFSB.........=.. [42949619.800000] Filesystem "sda6": XFS internal error xfs_da_do_buf(2) at line 2107 of file fs/xfs/xfs_da_btree.c. Caller 0xbf148b44 [42949619.820000] [] (dump_stack+0x0/0x14) from [] (xfs_error_report+0x4c/0x5c [xfs]) [42949619.820000] [] (xfs_error_report+0x0/0x5c [xfs]) from [] (xfs_corruption_error+0x5c/0x68 [xfs]) [42949619.830000] r4:c7914400 [42949619.840000] [] (xfs_corruption_error+0x0/0x68 [xfs]) from [] (xfs_da_do_buf+0x554/0x654 [xfs]) [42949619.850000] r6:bf148b44 r5:00000000 r4:c7073418 [42949619.850000] [] (xfs_da_do_buf+0x0/0x654 [xfs]) from [] (xfs_da_read_buf+0x34/0x3c [xfs]) [42949619.860000] [] (xfs_da_read_buf+0x0/0x3c [xfs]) from [] (xfs_dir2_leaf_getdents+0x480/0x8b4 [xfs]) [42949619.880000] [] (xfs_dir2_leaf_getdents+0x0/0x8b4 [xfs]) from [] (xfs_readdir+0xcc/0xe0 [xfs]) [42949619.890000] [] (xfs_readdir+0x0/0xe0 [xfs]) from [] (xfs_file_readdir+0x144/0x194 [xfs]) [42949619.900000] [] (xfs_file_readdir+0x0/0x194 [xfs]) from [] (vfs_readdir+0x84/0xb8) [42949619.910000] [] (vfs_readdir+0x0/0xb8) from [] (sys_getdents64+0x6c/0xc0) [42949619.920000] [] (sys_getdents64+0x0/0xc0) from [] (ret_fast_syscall+0x0/0x3c) [42949619.930000] r7:000000d9 r6:0002a01c r5:0002a030 r4:00000000 debian:~# -- Martin Michlmayr http://www.cyrius.com/ From owner-xfs@oss.sgi.com Thu Oct 16 15:13:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMDNua027399 for ; Thu, 16 Oct 2008 15:13:24 -0700 X-ASG-Debug-ID: 1224195304-539e00800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 42DC1508FF4 for ; Thu, 16 Oct 2008 15:15:04 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id wayDOiW5ErqRp47s for ; Thu, 16 Oct 2008 15:15:04 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9GMDusi000664; Thu, 16 Oct 2008 18:13:56 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9GMDtmL032131; Thu, 16 Oct 2008 18:13:55 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9GMDpml008978; Thu, 16 Oct 2008 18:13:51 -0400 Message-ID: <48F7BC9F.4080909@sandeen.net> Date: Thu, 16 Oct 2008 17:13:51 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Martin Michlmayr CC: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> In-Reply-To: <20081016212500.GA27228@deprecation.cyrius.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224195306 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8107 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Martin Michlmayr wrote: > Hi Eric, > > I tried to reproduce this problem on my ARM machine and it's really > easy to trigger. See the transcript below. > > I tried with 2.6.26.6 (without the ARM old ABI fix) and 2.6.27 (with > the fix), and with xfsprogs 2.9.8-1. > > Note that I'm actually using the ARM EABI, and not the old ABI. > I'm not sure what Tobias used. > > xfs.ko compiled with -g can be found at http://www.cyrius.com/tmp/xfs.ko.bz2 > (3.1 MB) Thanks; a quick look at the disk structure sizes & offsets shows no differences (as I'd hope/expect for ARM EABI). > Here's the transcript. It's really easy to trigger. Just copy some > files to the XFS partition (works) and then run 'ls' (oops): So is this a regression? did it used to work? If so, when? :) (just for the record; it didn't oops, it shut down the filesystem and gave you a backtrace to the error...) It's trying to get a buffer for a directory leaf block from disk, and it's finding that the magic number is bad. What's a little odd is that the buffer it dumped out looks like the beginning of a perfectly valid superblock for your filesystem (magic, block size, and block count all match). If you printk the "bno" variable right around line 2106 in xfs_da_btree.c, can you see what you get? creating an xfs_metadump of the filesystem for examination on a non-arm box might also be interesting. Thanks, -Eric > debian:~# modprobe xfs > debian:~# mkfs.xfs -f /dev/sda6 > meta-data=/dev/sda6 isize=256 agcount=4, agsize=17778431 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=71113722, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 > log =internal log bsize=4096 blocks=32768, version=2 > = sectsz=512 sunit=0 blks, lazy-count=0 > realtime =none extsz=4096 blocks=0, rtextents=0 > debian:~# dmesg | tail -n 2 > [42949548.970000] SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled > [42949548.980000] SGI XFS Quota Management subsystem > debian:~# mount /dev/sda6 /mnt > debian:~# dmesg | tail -n 2 > [42949596.470000] XFS mounting filesystem sda6 > [42949596.610000] Ending clean XFS mount for filesystem: sda6 > debian:~# cp /usr/bin/* /mnt/ > debian:~# dmesg | tail -n 2 > [42949596.470000] XFS mounting filesystem sda6 > [42949596.610000] Ending clean XFS mount for filesystem: sda6 > debian:~# ls /mnt > ls: reading directory /mnt: Structure needs cleaning > debian:~# dmesg | tail -n 16 > [42949596.610000] Ending clean XFS mount for filesystem: sda6 > [42949619.790000] 00000000: 58 46 53 42 00 00 10 00 00 00 00 00 04 3d 1b fa XFSB.........=.. > [42949619.800000] Filesystem "sda6": XFS internal error xfs_da_do_buf(2) at line 2107 of file fs/xfs/xfs_da_btree.c. Caller 0xbf148b44 > [42949619.820000] [] (dump_stack+0x0/0x14) from [] (xfs_error_report+0x4c/0x5c [xfs]) > [42949619.820000] [] (xfs_error_report+0x0/0x5c [xfs]) from [] (xfs_corruption_error+0x5c/0x68 [xfs]) > [42949619.830000] r4:c7914400 > [42949619.840000] [] (xfs_corruption_error+0x0/0x68 [xfs]) from [] (xfs_da_do_buf+0x554/0x654 [xfs]) > [42949619.850000] r6:bf148b44 r5:00000000 r4:c7073418 > [42949619.850000] [] (xfs_da_do_buf+0x0/0x654 [xfs]) from [] (xfs_da_read_buf+0x34/0x3c [xfs]) > [42949619.860000] [] (xfs_da_read_buf+0x0/0x3c [xfs]) from [] (xfs_dir2_leaf_getdents+0x480/0x8b4 [xfs]) > [42949619.880000] [] (xfs_dir2_leaf_getdents+0x0/0x8b4 [xfs]) from [] (xfs_readdir+0xcc/0xe0 [xfs]) > [42949619.890000] [] (xfs_readdir+0x0/0xe0 [xfs]) from [] (xfs_file_readdir+0x144/0x194 [xfs]) > [42949619.900000] [] (xfs_file_readdir+0x0/0x194 [xfs]) from [] (vfs_readdir+0x84/0xb8) > [42949619.910000] [] (vfs_readdir+0x0/0xb8) from [] (sys_getdents64+0x6c/0xc0) > [42949619.920000] [] (sys_getdents64+0x0/0xc0) from [] (ret_fast_syscall+0x0/0x3c) > [42949619.930000] r7:000000d9 r6:0002a01c r5:0002a030 r4:00000000 > debian:~# > From owner-xfs@oss.sgi.com Thu Oct 16 15:27:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMRPjQ029390 for ; Thu, 16 Oct 2008 15:27:26 -0700 X-ASG-Debug-ID: 1224196148-6c4000df0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F5A7AAFDAE for ; Thu, 16 Oct 2008 15:29:08 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 0sGrklCl3iCyqEGd for ; Thu, 16 Oct 2008 15:29:08 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEADta90h5LF1j/2dsb2JhbADEJ4Ns X-IronPort-AV: E=Sophos;i="4.33,426,1220193000"; d="scan'208";a="232253586" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 08:59:06 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqbL6-0000g3-Ng; Fri, 17 Oct 2008 09:29:04 +1100 Date: Fri, 17 Oct 2008 09:29:04 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081016222904.GA31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F6FCB7.6050905@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224196149 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8108 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 06:35:03PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Thu, Oct 16, 2008 at 05:38:39PM +1000, Lachlan McIlroy wrote: >>> Dave Chinner wrote: >>>> On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: >>>>> fsstress started reporting these errors >>>>> >>>>> fsstress: check_cwd failure >>>>> fsstress: check_cwd failure >>>>> fsstress: check_cwd failure >>>>> fsstress: check_cwd failure >>>>> fsstress: check_cwd failure >>>>> ... >> .... >>>> Ah, yes. A shutdown in a directory transaction. Have you applied the >>>> fix to the directory block allocation transaction accounting that was one >>>> of the last patches I posted? >>> Yes, I checked that in yesterday and ran with it overnight. >> >> OK. >> >>>> If so, then there's some other problem in that code that we'll >>>> need a reproducable test case to be able to find.... >>> I was running 8 copies of this command: >>> fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i >>> >>> I tried it again but this time the system ran out of memory >>> and locked up hard. I couldn't see why though - maybe a memory >>> leak. >> >> I just ran up the same load in a UML session. I'd say it's this >> slab: >> >> 2482 2481 99% 0.23K 146 17 584K xfs_btree_cur >> >> which is showing a leak. It is slowly growing on my system >> and dropping the caches doesn't reduce it's size. At least it's >> a place to start looking - somewhere in the new btree code we >> seem to be leaking a btree cursor.... > > I'm not seeing a leak in that slab - actually that slab doesn't even > show up. Overnight the xfs_btree_cur slab made it up to about 7000 in use entries, so there is definitely a leak there, though it is a slow one. > I am seeing a lot of memory used here though: > > 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security Ah - I don't run selinux. Sounds like a bug that needs reporting to lkml... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 15:34:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMYxSY030198 for ; Thu, 16 Oct 2008 15:34:59 -0700 X-ASG-Debug-ID: 1224196599-53b800d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1AAFD5091E8 for ; Thu, 16 Oct 2008 15:36:40 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id EEfdegWFWnVpc56C for ; Thu, 16 Oct 2008 15:36:40 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJJe90h5LF1j/2dsb2JhbADEJINs X-IronPort-AV: E=Sophos;i="4.33,426,1220193000"; d="scan'208";a="232258871" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 09:06:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqbSP-0000rG-9m; Fri, 17 Oct 2008 09:36:37 +1100 Date: Fri, 17 Oct 2008 09:36:37 +1100 From: Dave Chinner To: Jianjun Kong Cc: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016223637.GB31761@disturbed> Mail-Followup-To: Jianjun Kong , Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016134112.GA8773@ubuntu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016134112.GA8773@ubuntu> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224196603 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8109 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 09:41:12PM +0800, Jianjun Kong wrote: > > And the code above "return 0" can not be executed, so delete them. > __________________________________________ > #if 0 > printk(KERN_INFO > "XFS: mount option \"%s\" not supported for remount\n", p); > return -EINVAL; > #else > return 0; > ----------------------------------------- That ifdef was added to stub out the behaviour we *actually want* remount to have when it encounters an invalid remount option. The reason for leaving it is in the next release we should have all the other problems we discovered by doing this fixed, so that code will be re-enabled. Hence the temporary #if 0 around it. So at this point, don't remove it. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 15:42:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMgVJ3030868 for ; Thu, 16 Oct 2008 15:42:31 -0700 X-ASG-Debug-ID: 1224197054-53b2010b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from coco.kroah.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 63523509244 for ; Thu, 16 Oct 2008 15:44:15 -0700 (PDT) Received: from coco.kroah.org (kroah.org [198.145.64.141]) by cuda.sgi.com with ESMTP id IHkulAAuCEz3zu92 for ; Thu, 16 Oct 2008 15:44:15 -0700 (PDT) Received: from localhost (mail.kroah.net [66.93.40.174]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by coco.kroah.org (Postfix) with ESMTPSA id 87EB448D76; Thu, 16 Oct 2008 15:44:14 -0700 (PDT) Date: Thu, 16 Oct 2008 15:39:06 -0700 From: Greg KH To: Christoph Hellwig Cc: Tim Shimmin , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Subject: Re: [stable] [PATCH] XFS fix remount rw with unrecognized options Message-ID: <20081016223906.GA18144@kroah.com> References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016173529.GA13038@kroah.com> <20081016181044.GA16092@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016181044.GA16092@infradead.org> User-Agent: Mutt/1.5.16 (2007-06-09) X-Barracuda-Connect: kroah.org[198.145.64.141] X-Barracuda-Start-Time: 1224197055 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8109 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 02:10:44PM -0400, Christoph Hellwig wrote: > On Thu, Oct 16, 2008 at 10:35:29AM -0700, Greg KH wrote: > > Is this patch already in Linus's tree? If so, do you have a git commit > > 6c5e51dae2c37127e00be392f40842e08077e96a Thanks, now queued up. greg k-h From owner-xfs@oss.sgi.com Thu Oct 16 15:46:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMkaa9031543 for ; Thu, 16 Oct 2008 15:46:36 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id BF3C38F80DB; Thu, 16 Oct 2008 15:48:12 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA28943; Fri, 17 Oct 2008 09:48:07 +1100 Message-ID: <48F7C4A7.5090708@sgi.com> Date: Fri, 17 Oct 2008 09:48:07 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Jianjun Kong , Dave Chinner , stable@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH] XFS fix remount rw with unrecognized options References: <20081016002926.D912558FA22B@chook.melbourne.sgi.com> <20081016134112.GA8773@ubuntu> <20081016223637.GB31761@disturbed> In-Reply-To: <20081016223637.GB31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Thu, Oct 16, 2008 at 09:41:12PM +0800, Jianjun Kong wrote: >> And the code above "return 0" can not be executed, so delete them. >> __________________________________________ >> #if 0 >> printk(KERN_INFO >> "XFS: mount option \"%s\" not supported for remount\n", p); >> return -EINVAL; >> #else >> return 0; >> ----------------------------------------- > > That ifdef was added to stub out the behaviour we *actually want* > remount to have when it encounters an invalid remount option. > The reason for leaving it is in the next release we should have all > the other problems we discovered by doing this fixed, so that > code will be re-enabled. Hence the temporary #if 0 around it. > > So at this point, don't remove it. > > Cheers, > > Dave. Exactly. I don't want it removed. Extra code for comparing existing mount state with new mount state needs to be done and this code can be reactivated when we sort this stuff out later. This patch should be just the fix for the current regression. Thanks, --Tim From owner-xfs@oss.sgi.com Thu Oct 16 15:54:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9GMsVi1032390 for ; Thu, 16 Oct 2008 15:54:34 -0700 X-ASG-Debug-ID: 1224197773-53b001350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55AB15090AC for ; Thu, 16 Oct 2008 15:56:14 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 9qcctk6emprpH8N7 for ; Thu, 16 Oct 2008 15:56:14 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEALth90h5LF1j/2dsb2JhbADER4Ns X-IronPort-AV: E=Sophos;i="4.33,427,1220193000"; d="scan'208";a="232273138" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 09:26:12 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqblL-0001IS-Ag; Fri, 17 Oct 2008 09:56:11 +1100 Date: Fri, 17 Oct 2008 09:56:11 +1100 From: Dave Chinner To: Sean Purdy Cc: Linux Kernel Mailing List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: BUG: XFS internal error xfs_trans_cancel in 2.6.27 Subject: Re: BUG: XFS internal error xfs_trans_cancel in 2.6.27 Message-ID: <20081016225611.GC31761@disturbed> Mail-Followup-To: Sean Purdy , Linux Kernel Mailing List , xfs@oss.sgi.com References: <20081009113610.F13062@moloch.hellmouth.net> <20081009230227.GL9597@disturbed> <20081016151752.F30919@moloch.hellmouth.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20081016151752.F30919@moloch.hellmouth.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224197775 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8111 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 03:17:52PM +0100, Sean Purdy wrote: > On Fri, 10 Oct 2008, Dave Chinner said: > > On Thu, Oct 09, 2008 at 11:36:10AM +0100, Sean Purdy wrote: > > > Hi, > > > > > > Further to the discussion (and patching) of an xfs_trans_cancel > > > issue in June, in kernel < 2.6.26 > > > > > > A similar issue came up on one disk of a 4 x 750GiB machine > > > with a 2.6.24 kernel. So I installed 2.6.27-6 and gave it another try. > > > But I'm still seeing the same problem. Remounting the drive each time > > > is fine, and xfs_check shows no errors. > > > > 2.6.27-6? You mean 2.6.27-rc6? > > I meant rc9 as it happens, but never mind. > > > Anyway, you need to try this patch: > > > > http://oss.sgi.com/archives/xfs/2008-10/msg00105.html > > > > which I posted a few days ago that fixes the latest reproducable > > case of this shutdown that I know of. > > This patch worked fine, thanks very much! Great. It's good to know that mutliple people Ű„ve been hitting this specific problem. > Can we get it into > some stable version of 2.6.27? Maybe I can put in a bug request > for the next Ubuntu kernel. We haven't pushed it upstream for .28-rc1 yet as it is still being QA'd. Once it is pushed we can consider it for .27-stable. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 17:01:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H01HIk012659 for ; Thu, 16 Oct 2008 17:01:17 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id ACA1B3040B2; Thu, 16 Oct 2008 17:02:56 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA01559; Fri, 17 Oct 2008 11:02:53 +1100 Message-ID: <48F7E3FA.3020400@sgi.com> Date: Fri, 17 Oct 2008 11:01:46 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Peter Leckie , Dave Chinner , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <48F5A104.5060506@sgi.com> <48F6AA3E.8030902@sgi.com> <20081016090030.GA31558@infradead.org> In-Reply-To: <20081016090030.GA31558@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Thu, Oct 16, 2008 at 12:43:10PM +1000, Peter Leckie wrote: >> Adding the following resolved the issue however you may wish to solve it >> in another manner. >> >> @@ -102,7 +102,7 @@ xfs_sync_inodes_ag( >> * in reclaim. Leave it for the reclaim code to flush. >> */ >> inode = VFS_I(ip); >> - if (!igrab(inode)) { >> + if (!inode || !igrab(inode)) { >> read_unlock(&pag->pag_ici_lock); >> continue; >> } >> > > This would be the correct fix for the current code, but can you please > put in the Inode/XFS Inode unification patches? At least I have only > QAed the whole patchkit, and from the issues here it seems like Dave did > the same. That patchset is already in. > > And with that it would also be very good if there was any chance Dave > and me (and all others) could actually access the current tree. The > ptools -> CVS export has been broken for mor than two days, and there > is no uptodate git tree eiter, so us external developers are completely > tapping in the dark vs the current tree. We had no idea the CVS tree was not updating. I'll get the OSS trees updated today. From owner-xfs@oss.sgi.com Thu Oct 16 17:09:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H09PYF013499 for ; Thu, 16 Oct 2008 17:09:26 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 36FD38F8064; Thu, 16 Oct 2008 17:11:04 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA01748; Fri, 17 Oct 2008 11:11:01 +1100 Message-ID: <48F7D814.2080705@sgi.com> Date: Fri, 17 Oct 2008 11:11:00 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Miklos Szeredi , xfs-oss Subject: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> In-Reply-To: <20081016180947.GA26285@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Thu, Oct 16, 2008 at 07:50:10PM +0200, Miklos Szeredi wrote: >> should be >> >> return -XFS_ERROR(-PTR_ERR(dentry)); > > No need for XFS_ERROR at all here, it's only used for error injection in > low-level code. Updated version that propagates the error below: > > (Al, if you rebase vfs.git this should probably be folded into the patch > that switches over to d_obtain_alias) > > > Signed-off-by: Christoph Hellwig > [...stuff deleted] > Index: vfs-2.6/fs/xfs/linux-2.6/xfs_ioctl.c > =================================================================== > --- vfs-2.6.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-15 21:26:33.000000000 +0200 > +++ vfs-2.6/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-16 20:06:20.000000000 +0200 > @@ -312,9 +312,9 @@ xfs_open_by_handle( > } > > dentry = d_obtain_alias(inode); > - if (dentry == NULL) { > + if (IS_ERR(dentry)) { > put_unused_fd(new_fd); > - return -XFS_ERROR(ENOMEM); > + return PTR_ERR(dentry); > } > > /* Ensure umount returns EBUSY on umounts while this file is open. */ > -- Fair enough. But XFS_ERROR is used throughout the function. I've found the whole idea of when and when not to use XFS_ERROR annoying :) I've never used it (other than calling it to stay consistent with the code). Looking at the code, it is used to BUG and print a msg on particular error codes set in xfs_etrap[] - and it does this in xfs_error_trap(). Can one not decide to do this at any error point? I can't see where we hook in to set up xfs_etrap. > #ifdef DEBUG > #define XFS_ERROR_NTRAP 10 > extern int xfs_etrap[XFS_ERROR_NTRAP]; > extern int xfs_error_trap(int); > #define XFS_ERROR(e) xfs_error_trap(e) > #else > #define XFS_ERROR(e) (e) > #endif Cheers, Tim. From owner-xfs@oss.sgi.com Thu Oct 16 17:13:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H0DC09014214 for ; Thu, 16 Oct 2008 17:13:12 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id C01863040B8; Thu, 16 Oct 2008 17:14:55 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA01856; Fri, 17 Oct 2008 11:14:53 +1100 Message-ID: <48F7E6CB.1010502@sgi.com> Date: Fri, 17 Oct 2008 11:13:47 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss Subject: Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016090805.GA32101@infradead.org> In-Reply-To: <20081016090805.GA32101@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Thu, Oct 16, 2008 at 06:35:03PM +1000, Lachlan McIlroy wrote: >> I'm not seeing a leak in that slab - actually that slab doesn't even >> show up. I am seeing a lot of memory used here though: > > Are you using slab or slub? The latter merges caches of equal size, so > it's totally useless for the kind of debug stats Dave looked at. > It's slub. From owner-xfs@oss.sgi.com Thu Oct 16 17:17:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H0HAXI014727 for ; Thu, 16 Oct 2008 17:17:10 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id EA5DE8F80F4; Thu, 16 Oct 2008 17:18:53 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA02102; Fri, 17 Oct 2008 11:18:52 +1100 Message-ID: <48F7E7BA.4070209@sgi.com> Date: Fri, 17 Oct 2008 11:17:46 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> In-Reply-To: <20081016222904.GA31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Thu, Oct 16, 2008 at 06:35:03PM +1000, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Thu, Oct 16, 2008 at 05:38:39PM +1000, Lachlan McIlroy wrote: >>>> Dave Chinner wrote: >>>>> On Thu, Oct 16, 2008 at 12:06:21PM +1000, Lachlan McIlroy wrote: >>>>>> fsstress started reporting these errors >>>>>> >>>>>> fsstress: check_cwd failure >>>>>> fsstress: check_cwd failure >>>>>> fsstress: check_cwd failure >>>>>> fsstress: check_cwd failure >>>>>> fsstress: check_cwd failure >>>>>> ... >>> .... >>>>> Ah, yes. A shutdown in a directory transaction. Have you applied the >>>>> fix to the directory block allocation transaction accounting that was one >>>>> of the last patches I posted? >>>> Yes, I checked that in yesterday and ran with it overnight. >>> OK. >>> >>>>> If so, then there's some other problem in that code that we'll >>>>> need a reproducable test case to be able to find.... >>>> I was running 8 copies of this command: >>>> fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i >>>> >>>> I tried it again but this time the system ran out of memory >>>> and locked up hard. I couldn't see why though - maybe a memory >>>> leak. >>> I just ran up the same load in a UML session. I'd say it's this >>> slab: >>> >>> 2482 2481 99% 0.23K 146 17 584K xfs_btree_cur >>> >>> which is showing a leak. It is slowly growing on my system >>> and dropping the caches doesn't reduce it's size. At least it's >>> a place to start looking - somewhere in the new btree code we >>> seem to be leaking a btree cursor.... >> I'm not seeing a leak in that slab - actually that slab doesn't even >> show up. > > Overnight the xfs_btree_cur slab made it up to about 7000 in use > entries, so there is definitely a leak there, though it is a slow > one. > >> I am seeing a lot of memory used here though: >> >> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security > > Ah - I don't run selinux. Sounds like a bug that needs reporting > to lkml... I'm sure this is caused by your changes that introduced inode_init_always(). It re-initialises an existing inode without destroying it first so it calls security_inode_alloc() without calling security_inode_free(). From owner-xfs@oss.sgi.com Thu Oct 16 18:20:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H1KVCA022228 for ; Thu, 16 Oct 2008 18:20:32 -0700 X-ASG-Debug-ID: 1224206531-684602f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CD7B14201EA for ; Thu, 16 Oct 2008 18:22:12 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id SUt2nWx6LEjZhnJP for ; Thu, 16 Oct 2008 18:22:12 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAPeE90h5LF1j/2dsb2JhbAC8TwiHDoJpCHs X-IronPort-AV: E=Sophos;i="4.33,427,1220193000"; d="scan'208";a="232387158" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 11:52:04 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kqe29-0004iv-CO; Fri, 17 Oct 2008 12:21:41 +1100 Date: Fri, 17 Oct 2008 12:21:41 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081017012141.GJ25906@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F7E7BA.4070209@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224206535 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8119 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >>> I am seeing a lot of memory used here though: >>> >>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security >> >> Ah - I don't run selinux. Sounds like a bug that needs reporting >> to lkml... > > I'm sure this is caused by your changes that introduced inode_init_always(). > It re-initialises an existing inode without destroying it first so it calls > security_inode_alloc() without calling security_inode_free(). I can't think of how. The layers above XFS are symmetric: alloc_inode() inode_init_always() security_inode_alloc() ..... security_inode_free() ->destroy_inode() So the filesystems should never, ever need to know about the security context attached to the inode. The changes that introduced inode_init_always() do not change this symmetry - we do: xfs_inode_alloc() inode_init_always() security_inode_alloc() ..... security_inode_free() ->destroy_inode() And we should have this symmetry everywhere. Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call xfs_idestroy() could leak contexts. We should really call xfs_iput() because we have an initialised linux inode at this point and so we need to go through destroy_inode(). I'll have a bit more of a look, but this doesn't seem to account for the huge number of leaked contexts you reported.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 18:51:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H1pN8j027733 for ; Thu, 16 Oct 2008 18:51:23 -0700 X-ASG-Debug-ID: 1224208385-5d3b03450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1AA35509CB3 for ; Thu, 16 Oct 2008 18:53:06 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id l9yXnA9L3MAnnnPt for ; Thu, 16 Oct 2008 18:53:06 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAD6M90h5LF1j/2dsb2JhbADDdINs X-IronPort-AV: E=Sophos;i="4.33,428,1220193000"; d="scan'208";a="232411684" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 12:23:02 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqeWT-0005rO-Lj; Fri, 17 Oct 2008 12:53:01 +1100 Date: Fri, 17 Oct 2008 12:53:01 +1100 From: Dave Chinner To: Timothy Shimmin Cc: Christoph Hellwig , Miklos Szeredi , xfs-oss X-ASG-Orig-Subj: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Message-ID: <20081017015301.GK25906@disturbed> Mail-Followup-To: Timothy Shimmin , Christoph Hellwig , Miklos Szeredi , xfs-oss References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F7D814.2080705@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224208387 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 11:11:00AM +1100, Timothy Shimmin wrote: > Fair enough. > But XFS_ERROR is used throughout the function. > I've found the whole idea of when and when not to use XFS_ERROR annoying :) > > I've never used it (other than calling it to stay consistent with the code). > Looking at the code, it is used to BUG and print a msg on particular error codes set in xfs_etrap[] - > and it does this in xfs_error_trap(). > Can one not decide to do this at any error point? > I can't see where we hook in to set up xfs_etrap. You break into the debugger, modify the xfs_etrap array to contain the set of errors you want to catch, then continue onwards. I've used this several times in the past couple of months to locate the source of strange ENOSPC errors... The conceptual idea is that every point where an error is first detected gets wrapped with XFS_ERROR() so you don't need to sprinkle printk's all through the code to find where the error is coming from. ISTR the Irix kernel debugger had a command to set the values in the etrap array - if it did it never got ported to kdb.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 19:03:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H23IDo029830 for ; Thu, 16 Oct 2008 19:03:19 -0700 X-ASG-Debug-ID: 1224209100-39a501060000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C8FAC14205B4 for ; Thu, 16 Oct 2008 19:05:00 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id cEs1gQB5Qr0CKLkG for ; Thu, 16 Oct 2008 19:05:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAG+P90h5LF1j/2dsb2JhbAC8VgiHEYJpCHs X-IronPort-AV: E=Sophos;i="4.33,428,1220193000"; d="scan'208";a="232421492" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 12:34:57 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kqehe-0000z8-LR; Fri, 17 Oct 2008 13:04:34 +1100 Date: Fri, 17 Oct 2008 13:04:34 +1100 From: Dave Chinner To: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: [PATCH] Re: another problem with latest code drops Subject: [PATCH] Re: another problem with latest code drops Message-ID: <20081017020434.GD31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081017012141.GJ25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224209101 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: > On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: > > Dave Chinner wrote: > >>> I am seeing a lot of memory used here though: > >>> > >>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security > >> > >> Ah - I don't run selinux. Sounds like a bug that needs reporting > >> to lkml... > > > > I'm sure this is caused by your changes that introduced inode_init_always(). > > It re-initialises an existing inode without destroying it first so it calls > > security_inode_alloc() without calling security_inode_free(). > > I can't think of how. The layers above XFS are symmetric: ..... > And we should have this symmetry everywhere. > > > > Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call > xfs_idestroy() could leak contexts. We should really call xfs_iput() > because we have an initialised linux inode at this point and so > we need to go through destroy_inode(). I'll have a bit more of > a look, but this doesn't seem to account for the huge number of > leaked contexts you reported.... Patch below that replaces xfs_idestroy() with IRELE() to destroy the inode via the normal iput() path. It also fixes a second issue that I found by inspection related to security contexts as a result of hooking up ->destroy_inode. It's running QA now. FWIW, I'm not sure if this patch will apply cleanly - I'm still running of my stack of patches and not what has been checked into ptools. Any idea of when all the patches in ptools will be pushed out to the git tree? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 19:05:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H25dnI030271 for ; Thu, 16 Oct 2008 19:05:41 -0700 X-ASG-Debug-ID: 1224209241-5d3803e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2489A504B93 for ; Thu, 16 Oct 2008 19:07:22 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id UojzhpZC0vzLzqzG for ; Thu, 16 Oct 2008 19:07:22 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAG+P90h5LF1j/2dsb2JhbAC8VgiHEYJpCHs X-IronPort-AV: E=Sophos;i="4.33,428,1220193000"; d="scan'208";a="232423717" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 12:37:20 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqekI-0001Xg-Mf; Fri, 17 Oct 2008 13:07:18 +1100 Date: Fri, 17 Oct 2008 13:07:18 +1100 From: Dave Chinner To: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Re: another problem with latest code drops Subject: Re: [PATCH] Re: another problem with latest code drops Message-ID: <20081017020718.GE31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081017020434.GD31761@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224209243 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 01:04:34PM +1100, Dave Chinner wrote: > On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: > > On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: > > > Dave Chinner wrote: > > >>> I am seeing a lot of memory used here though: > > >>> > > >>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security > > >> > > >> Ah - I don't run selinux. Sounds like a bug that needs reporting > > >> to lkml... > > > > > > I'm sure this is caused by your changes that introduced inode_init_always(). > > > It re-initialises an existing inode without destroying it first so it calls > > > security_inode_alloc() without calling security_inode_free(). > > > > I can't think of how. The layers above XFS are symmetric: > ..... > > And we should have this symmetry everywhere. > > > > > > > > Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call > > xfs_idestroy() could leak contexts. We should really call xfs_iput() > > because we have an initialised linux inode at this point and so > > we need to go through destroy_inode(). I'll have a bit more of > > a look, but this doesn't seem to account for the huge number of > > leaked contexts you reported.... > > Patch below that replaces xfs_idestroy() with IRELE() to destroy > the inode via the normal iput() path. It also fixes a second issue > that I found by inspection related to security contexts as a result > of hooking up ->destroy_inode. > > It's running QA now. > > FWIW, I'm not sure if this patch will apply cleanly - I'm still > running of my stack of patches and not what has been checked into > ptools. Any idea of when all the patches in ptools will be pushed > out to the git tree? And now with the patch. -- Dave Chinner david@fromorbit.com XFS: Ensure that we destroy the linux inode after initialisation Now that XFS initialises the struct inode prior to completing all checks and insertion into caches, we need to destroy that state if we fail to instantiate the inode completely. Hence we cannot just call xfs_idestroy() to clean up state when such an occurrence happens - we need to go through the normal reclaim path by dropping the reference count on the linux inode we now hold. This will prevent leaking security contexts on failed lookups. Also, now that we have a ->destroy_inode() method, failing to allocate a security context for the inode will result in the xfs_inode being freed via the ->destroy_inode() path internally to inode_init_always(). Rearrange xfs_inode_alloc() to initialise the xfs_inode prior to attempting to initialise the VFS inode so that the reclaim path will work and remove the freeing of the inode in xfs_inode_alloc() if VFS inode initialisation fails. Signed-off-by: Dave Chinner --- fs/xfs/xfs_iget.c | 9 ++++++++- fs/xfs/xfs_inode.c | 19 +++++++++++-------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index b34b732..29afe4e 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -197,7 +197,14 @@ out_unlock: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); out_destroy: - xfs_idestroy(ip); + /* + * we've already initialised the linux inode, so we have a valid + * reference count of 1 and so we cannot destroy the inode with + * xfs_idestroy. Kill it by dropping the reference count to push + * it through the normal reclaim path so that state on the linux + * inode is also destroyed. + */ + IRELE(ip); return error; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 17dbf24..7a2aaae 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -812,14 +812,6 @@ xfs_inode_alloc( ASSERT(!spin_is_locked(&ip->i_flags_lock)); ASSERT(completion_done(&ip->i_flush)); - /* - * initialise the VFS inode here to get failures - * out of the way early. - */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { - kmem_zone_free(xfs_inode_zone, ip); - return NULL; - } /* initialise the xfs inode */ ip->i_ino = ino; @@ -859,6 +851,17 @@ xfs_inode_alloc( ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); #endif + /* + * Now initialise the VFS inode. We do this after the xfs_inode + * initialisation as internal failures will result in ->destroy_inode + * being called and that will pass down through the reclaim path and + * free the XFS inode. This path requires the XFS inode to already be + * initialised. Hence if this call fails, the xfs_inode has already + * been freed and we should not reference it at all in the error + * handling. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) + return NULL; return ip; } From owner-xfs@oss.sgi.com Thu Oct 16 19:14:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H2EK3e031349 for ; Thu, 16 Oct 2008 19:14:20 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 61DBB908D0; Thu, 16 Oct 2008 19:16:00 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA05409; Fri, 17 Oct 2008 13:15:58 +1100 Message-ID: <48F8032C.4020009@sgi.com> Date: Fri, 17 Oct 2008 13:14:52 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: [PATCH] Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> In-Reply-To: <20081017020434.GD31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: >> On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: >>> Dave Chinner wrote: >>>>> I am seeing a lot of memory used here though: >>>>> >>>>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security >>>> Ah - I don't run selinux. Sounds like a bug that needs reporting >>>> to lkml... >>> I'm sure this is caused by your changes that introduced inode_init_always(). >>> It re-initialises an existing inode without destroying it first so it calls >>> security_inode_alloc() without calling security_inode_free(). >> I can't think of how. The layers above XFS are symmetric: > ..... >> And we should have this symmetry everywhere. >> >> >> >> Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call >> xfs_idestroy() could leak contexts. We should really call xfs_iput() >> because we have an initialised linux inode at this point and so >> we need to go through destroy_inode(). I'll have a bit more of >> a look, but this doesn't seem to account for the huge number of >> leaked contexts you reported.... > > Patch below that replaces xfs_idestroy() with IRELE() to destroy > the inode via the normal iput() path. It also fixes a second issue > that I found by inspection related to security contexts as a result > of hooking up ->destroy_inode. > > It's running QA now. > > FWIW, I'm not sure if this patch will apply cleanly - I'm still > running of my stack of patches and not what has been checked into > ptools. Any idea of when all the patches in ptools will be pushed > out to the git tree? Should be on OSS later today. From owner-xfs@oss.sgi.com Thu Oct 16 20:03:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H33Hmt001686 for ; Thu, 16 Oct 2008 20:03:18 -0700 X-ASG-Debug-ID: 1224212700-58df00930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 23DA9503827 for ; Thu, 16 Oct 2008 20:05:00 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 1AkRyIOUZhGhRfYt for ; Thu, 16 Oct 2008 20:05:00 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 3B38EAC358C; Thu, 16 Oct 2008 22:04:59 -0500 (CDT) Message-ID: <48F800DA.1030002@sandeen.net> Date: Thu, 16 Oct 2008 22:04:58 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Timothy Shimmin , Christoph Hellwig , Miklos Szeredi , xfs-oss X-ASG-Orig-Subj: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> <20081017015301.GK25906@disturbed> In-Reply-To: <20081017015301.GK25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224212701 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8125 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > On Fri, Oct 17, 2008 at 11:11:00AM +1100, Timothy Shimmin wrote: >> Fair enough. >> But XFS_ERROR is used throughout the function. >> I've found the whole idea of when and when not to use XFS_ERROR annoying :) >> >> I've never used it (other than calling it to stay consistent with the code). >> Looking at the code, it is used to BUG and print a msg on particular error codes set in xfs_etrap[] - >> and it does this in xfs_error_trap(). >> Can one not decide to do this at any error point? >> I can't see where we hook in to set up xfs_etrap. > > You break into the debugger, modify the xfs_etrap array to contain > the set of errors you want to catch, then continue onwards. bleah :) Could these just be turned into tracepoints eventually? Or maybe for now allow modifying the array via proc or something... would be easier to ask a user to do that if you don't have direct access to their kdb console ;) It is a handy thing to have, though. -Eric From owner-xfs@oss.sgi.com Thu Oct 16 22:46:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H5kB0n020442 for ; Thu, 16 Oct 2008 22:46:12 -0700 X-ASG-Debug-ID: 1224222473-2db001a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 361FC50A6EB for ; Thu, 16 Oct 2008 22:47:54 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id fvO9GqUgJ1DfwZ6B for ; Thu, 16 Oct 2008 22:47:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgYDAOTA90h5LF1jiGdsb2JhbACTZwEBARUirxiDbA X-IronPort-AV: E=Sophos;i="4.33,429,1220193000"; d="scan'208";a="232658435" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 17 Oct 2008 16:17:45 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KqiBb-0007tK-9H for xfs@oss.sgi.com; Fri, 17 Oct 2008 16:47:43 +1100 Date: Fri, 17 Oct 2008 16:47:43 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: git tree updates.... Subject: git tree updates.... Message-ID: <20081017054742.GH31761@disturbed> Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224222475 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0045 1.0000 -1.9914 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.99 X-Barracuda-Spam-Status: No, SCORE=-1.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Lachlan, I just noticed you've been updating the git tree. You might want to change the order that certain patches have been committed - the changes to the fs/inode.c needed to be committed before the changes to fs/xfs/xfs_inode.c that use them. They've been committed the wrong way around and about 20 commits apart, so there's significant region in the commit history where the kernel will fail to build. Given the distance between the commits, there's a fair chance that a git bisect could land in this range of compiliation failures. Any chance of redoing these commits before you push to Linus so that they are ordered correctly in the git tree? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 16 23:59:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H6xtmM028663 for ; Thu, 16 Oct 2008 23:59:56 -0700 X-ASG-Debug-ID: 1224226899-274103a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sorrow.cyrius.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8D27150AD25 for ; Fri, 17 Oct 2008 00:01:39 -0700 (PDT) Received: from sorrow.cyrius.com (sorrow.cyrius.com [65.19.161.204]) by cuda.sgi.com with ESMTP id S0YCgWeucCN79vO9 for ; Fri, 17 Oct 2008 00:01:39 -0700 (PDT) Received: by sorrow.cyrius.com (Postfix, from userid 10) id 1EA3BD857; Fri, 17 Oct 2008 07:01:35 +0000 (UTC) Received: by deprecation.cyrius.com (Postfix, from userid 1000) id AB948150B83; Fri, 17 Oct 2008 09:01:09 +0200 (CEST) Date: Fri, 17 Oct 2008 09:01:09 +0200 From: Martin Michlmayr To: Eric Sandeen Cc: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081017070109.GA30726@deprecation.cyrius.com> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F7BC9F.4080909@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: sorrow.cyrius.com[65.19.161.204] X-Barracuda-Start-Time: 1224226899 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8134 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- * Eric Sandeen [2008-10-16 17:13]: > So is this a regression? did it used to work? If so, when? :) The original report was with 2.6.18 but that was with the old ABI: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423562 I just installed a 2.6.22 kernel with EABI and I can also trigger the bug. So it's not a (recent) regression. > What's a little odd is that the buffer it dumped out looks like the > beginning of a perfectly valid superblock for your filesystem > (magic, block size, and block count all match). If you printk the > "bno" variable right around line 2106 in xfs_da_btree.c, can you see > what you get? bno is 0. > creating an xfs_metadump of the filesystem for examination on a > non-arm box might also be interesting. http://www.cyrius.com/tmp/dump5 (11 MB) -- Martin Michlmayr http://www.cyrius.com/ From owner-xfs@oss.sgi.com Fri Oct 17 02:41:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9H9fQGS023261 for ; Fri, 17 Oct 2008 02:41:27 -0700 X-ASG-Debug-ID: 1224236588-1ee800d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ping.pong.ch (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB23812A6074 for ; Fri, 17 Oct 2008 02:43:09 -0700 (PDT) Received: from ping.pong.ch (ping.pong.ch [212.103.71.101]) by cuda.sgi.com with ESMTP id AHgk6z65PPZantn8 for ; Fri, 17 Oct 2008 02:43:09 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by ping.pong.ch (Postfix) with ESMTP id 065B73011D49; Fri, 17 Oct 2008 11:43:02 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at ping.pong.ch Received: from ping.pong.ch ([127.0.0.1]) by localhost (ping.pong.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HC-f+JQb8hKm; Fri, 17 Oct 2008 11:43:01 +0200 (CEST) Received: from auth sender gaudenz@ping.pong.ch by ping.pong.ch (Postfix) with ESMTP id 0050030426B0; Fri, 17 Oct 2008 11:43:00 +0200 (CEST) Received: by localhost.localdomain (Postfix, from userid 1000) id 3CCBE18002DF; Fri, 17 Oct 2008 11:46:15 +0200 (CEST) Date: Fri, 17 Oct 2008 11:46:15 +0200 From: Gaudenz Steinlin To: Martin Michlmayr Cc: Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081017094615.GT4504@soziologie.ch> Mail-Followup-To: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081017070109.GA30726@deprecation.cyrius.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ping.pong.ch[212.103.71.101] X-Barracuda-Start-Time: 1224236589 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8143 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines On Fri, Oct 17, 2008 at 09:01:09AM +0200, Martin Michlmayr wrote: > * Eric Sandeen [2008-10-16 17:13]: > > So is this a regression? did it used to work? If so, when? :) > > The original report was with 2.6.18 but that was with the old ABI: > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423562 > I just installed a 2.6.22 kernel with EABI and I can also trigger > the bug. So it's not a (recent) regression. As far as I can remember (I only used old ABI arm) this is not a regression. XFS never worked on arm for me. If you need tests on old ABI just tell me. -- Ever tried. Ever failed. No matter. Try again. Fail again. Fail better. ~ Samuel Beckett ~ From owner-xfs@oss.sgi.com Fri Oct 17 03:42:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=BAYES_50,J_CHICKENPOX_93, SUBJ_ALL_CAPS autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HAgMY9030541 for ; Fri, 17 Oct 2008 03:42:23 -0700 X-ASG-Debug-ID: 1224240245-5b1402fc0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.nebula.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F35DC1425556 for ; Fri, 17 Oct 2008 03:44:05 -0700 (PDT) Received: from smtp-out.nebula.fi (smtp-out.nebula.fi [217.30.180.101]) by cuda.sgi.com with ESMTP id nPoWD38AuAfs5gTo for ; Fri, 17 Oct 2008 03:44:05 -0700 (PDT) Received: by smtp-out.nebula.fi (Postfix, from userid 500) id D6FE287E50F; Fri, 17 Oct 2008 13:42:55 +0300 (EEST) Received: from web7.futuron.fi (web7.futuron.fi [217.149.52.7]) by smtp-out.nebula.fi (Postfix) with ESMTP id EE0E187E6F1 for ; Fri, 17 Oct 2008 13:42:30 +0300 (EEST) Received: from pohjanti by web7.futuron.fi with local (Exim 4.69) (envelope-from ) id 1Kqmnw-0000Iy-GH for linux-xfs@oss.sgi.com; Fri, 17 Oct 2008 13:43:36 +0300 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: COMFIRM YOUR EMAIL ACCOUNT IMMEDIATELY!!! Subject: COMFIRM YOUR EMAIL ACCOUNT IMMEDIATELY!!! From: Masanao Yoshida Reply-To: email.helpdesk004@gmail.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Date: Fri, 17 Oct 2008 13:43:36 +0300 X-Barracuda-Connect: smtp-out.nebula.fi[217.30.180.101] X-Barracuda-Start-Time: 1224240245 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5001 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.21 X-Barracuda-Spam-Status: No, SCORE=1.21 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=PLING_PLING X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8144 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.46 PLING_PLING Subject has lots of exclamation marks Dear abo Email Account User, We wrote to you on 29 September 2008 advising that you change the password on your account in order to prevent any unauthorised account access following the network instruction we previously communicated. All Mailhub systems will undergo regularly scheduled maintenance. Access to your e-mail via the Webmail client will be unavailable for some time during this maintenance period. We are currently upgrading our data base and e-mail account center i.e homepage view. We shall be deleting old [abo] email accounts which are no longer active to create more space for new accounts users. we have also investigated a system wide security audit to improve and enhance our current security. In order to continue using our services you are require to update and re-comfirmed your email account details as requested below. To complete your account re-comfirmation,you must reply to this email immediately and enter your account details as requested below. Username : (********) Password : (********) Date of Birth : Future Password : (********)(Option) Failure to do this will immediately render your account deactivated from our database and service will not be interrupted as important messages may as well be lost due to your declining to re-comfirmed to us your account account details. We apologise for the inconvenience that this will cause you during this period, but trusting that we are here to serve you better and providing more technology which revolves around Secured Email. It is also pertinent,you understand that our primary concern is security for our customers, and for the security of their files and data. COMFIRMATION CODE: abo-Net /93-1A388-480 Technical Support Team Regards abo Support/Maintainance Team TSR. From owner-xfs@oss.sgi.com Fri Oct 17 03:54:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.3 required=5.0 tests=BAYES_50,J_CHICKENPOX_23, J_CHICKENPOX_93,SUBJ_ALL_CAPS autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HAsSag032281 for ; Fri, 17 Oct 2008 03:54:28 -0700 X-ASG-Debug-ID: 1224240971-06a8027e0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.nebula.fi (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0D0D950B65A for ; Fri, 17 Oct 2008 03:56:11 -0700 (PDT) Received: from smtp-out.nebula.fi (smtp-out.nebula.fi [217.30.180.101]) by cuda.sgi.com with ESMTP id eanNRvSyR51uPAXo for ; Fri, 17 Oct 2008 03:56:11 -0700 (PDT) Received: by smtp-out.nebula.fi (Postfix, from userid 500) id BD27F87E53C; Fri, 17 Oct 2008 13:55:02 +0300 (EEST) Received: from web7.futuron.fi (web7.futuron.fi [217.149.52.7]) by smtp-out.nebula.fi (Postfix) with ESMTP id 443BD87DEEF for ; Fri, 17 Oct 2008 13:54:53 +0300 (EEST) Received: from pohjanti by web7.futuron.fi with local (Exim 4.69) (envelope-from ) id 1Kqmzv-00007W-6o for linux-xfs@oss.sgi.com; Fri, 17 Oct 2008 13:55:59 +0300 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: COMFIRM YOUR EMAIL ACCOUNT IMMEDIATELY!!! Subject: COMFIRM YOUR EMAIL ACCOUNT IMMEDIATELY!!! From: Masanao Yoshida Reply-To: email.helpdesk004@gmail.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Date: Fri, 17 Oct 2008 13:55:59 +0300 X-Barracuda-Connect: smtp-out.nebula.fi[217.30.180.101] X-Barracuda-Start-Time: 1224240972 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5006 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.21 X-Barracuda-Spam-Status: No, SCORE=1.21 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=PLING_PLING X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8146 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.46 PLING_PLING Subject has lots of exclamation marks Dear xs4all Email Account User, We wrote to you on 29 September 2008 advising that you change the password on your account in order to prevent any unauthorised account access following the network instruction we previously communicated. All Mailhub systems will undergo regularly scheduled maintenance. Access to your e-mail via the Webmail client will be unavailable for some time during this maintenance period. We are currently upgrading our data base and e-mail account center i.e homepage view. We shall be deleting old [xs4all] email accounts which are no longer active to create more space for new accounts users. we have also investigated a system wide security audit to improve and enhance our current security. In order to continue using our services you are require to update and re-comfirmed your email account details as requested below. To complete your account re-comfirmation,you must reply to this email immediately and enter your account details as requested below. Username : (********) Password : (********) Date of Birth : Future Password : (********)(Option) Failure to do this will immediately render your account deactivated from our database and service will not be interrupted as important messages may as well be lost due to your declining to re-comfirmed to us your account account details. We apologise for the inconvenience that this will cause you during this period, but trusting that we are here to serve you better and providing more technology which revolves around Secured Email. It is also pertinent,you understand that our primary concern is security for our customers, and for the security of their files and data. COMFIRMATION CODE: xs4all-Net /93-1A388-480 Technical Support Team Regards xs4all Support/Maintainance Team TSR. From owner-xfs@oss.sgi.com Fri Oct 17 05:41:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HCfPSm016888 for ; Fri, 17 Oct 2008 05:41:27 -0700 X-ASG-Debug-ID: 1224247387-2b2601a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-gx0-f18.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 48C411B600ED for ; Fri, 17 Oct 2008 05:43:07 -0700 (PDT) Received: from mail-gx0-f18.google.com (mail-gx0-f18.google.com [209.85.217.18]) by cuda.sgi.com with ESMTP id K7nTjr0z2DNTP5hz for ; Fri, 17 Oct 2008 05:43:07 -0700 (PDT) Received: by gxk11 with SMTP id 11so927239gxk.20 for ; Fri, 17 Oct 2008 05:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:mime-version:content-type:content-transfer-encoding :content-disposition; bh=LVIUk09OaX37N0Cp8jJMzjvjAKJn5BmnFej+SmjWQDA=; b=pMv36Z+vEaNQJhFq5Fu6UKTgnbKnvCF0qZgzqg7ntVbjz/WFr8RB5t4EFrj2+h5+BT 7fRDMGMK+TeM+VrUB4p82pdL6ioRKwmGLpOQe3MY73PCnqJHJ9K1R+XXrP2ARZvkff+g +b6PTS+m7Ql5OfvRxGopUMctKPGSHRNg0HEMs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type :content-transfer-encoding:content-disposition; b=F1gIcGHlhxK3QWmRxU6XO25CXZcIdXSF9Typo+58VgCCOrbJIXLTMtNyvCHNZFAY80 S6Mb6BDKBOYYvxA9XTwHD4ms+VDmj6BDxaD4zOnb3CvXDpBLQuZ3AJTG1nf4uOFzThZz uBhJA4oaWUIFvY2XwS5NYGmAGHWzDP+tqifP8= Received: by 10.100.106.12 with SMTP id e12mr5161393anc.18.1224247387525; Fri, 17 Oct 2008 05:43:07 -0700 (PDT) Received: by 10.100.139.3 with HTTP; Fri, 17 Oct 2008 05:43:07 -0700 (PDT) Message-ID: Date: Fri, 17 Oct 2008 16:43:07 +0400 From: "Alexander Beregalov" To: xfs@oss.sgi.com X-ASG-Orig-Subj: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Cc: linux-next@vger.kernel.org, LKML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Barracuda-Connect: mail-gx0-f18.google.com[209.85.217.18] X-Barracuda-Start-Time: 1224247389 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8149 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- It is SMP x86_64, rootfs is on XFS [ 4.419571] BUG: sleeping function called from invalid context at kernel/rwsem.c:131 [ 4.419576] in_atomic(): 1, irqs_disabled(): 0, pid: 1396, name: mkdir [ 4.419579] 2 locks held by mkdir/1396: [ 4.419581] #0: (&type->i_mutex_dir_key#2/1){--..}, at: [] lookup_create+0x2b/0x99 [ 4.419594] #1: (&(&ip->i_lock)->mr_lock/1){--..}, at: [] xfs_ilock+0x60/0x7e [ 4.419605] Pid: 1396, comm: mkdir Not tainted 2.6.27-next-20081017 #2 [ 4.419608] Call Trace: [ 4.419614] [] ? __debug_show_held_locks+0x22/0x24 [ 4.419620] [] __might_sleep+0x120/0x122 [ 4.419625] [] down_write_nested+0x2c/0x7b [ 4.419629] [] xfs_ilock+0x60/0x7e [ 4.419633] [] xfs_iget_core+0x3cc/0x4f1 [ 4.419637] [] ? iget_locked+0xf0/0x125 [ 4.419641] [] xfs_iget+0xeb/0x197 [ 4.419646] [] xfs_trans_iget+0xb4/0x126 [ 4.419651] [] xfs_ialloc+0x9e/0x51e [ 4.419655] [] ? get_parent_ip+0x11/0x41 [ 4.419659] [] xfs_dir_ialloc+0x78/0x26a [ 4.419663] [] ? down_write_nested+0x73/0x7b [ 4.419667] [] xfs_mkdir+0x236/0x438 [ 4.419673] [] xfs_vn_mknod+0xe7/0x13b [ 4.419677] [] xfs_vn_mkdir+0x13/0x15 [ 4.419681] [] vfs_mkdir+0x4b/0x8f [ 4.419685] [] sys_mkdirat+0xa7/0x101 [ 4.419691] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 4.419695] [] ? trace_hardirqs_on_caller+0x12c/0x157 [ 4.419700] [] ? do_page_fault+0x394/0x884 [ 4.419704] [] sys_mkdir+0x18/0x1a [ 4.419709] [] system_call_fastpath+0x16/0x1b [ 4.743247] dmesg used greatest stack depth: 2848 bytes left [ 5.930376] bnx2: eth0: using MSI [ 6.056409] BUG: sleeping function called from invalid context at kernel/rwsem.c:131 [ 6.056413] in_atomic(): 1, irqs_disabled(): 0, pid: 1782, name: dhcpcd [ 6.056416] 2 locks held by dhcpcd/1782: [ 6.056418] #0: (&type->i_mutex_dir_key#2){--..}, at: [] do_filp_open+0x178/0x7d5 [ 6.056431] #1: (&(&ip->i_lock)->mr_lock/1){--..}, at: [] xfs_ilock+0x60/0x7e [ 6.056443] Pid: 1782, comm: dhcpcd Not tainted 2.6.27-next-20081017 #2 [ 6.056445] Call Trace: [ 6.056452] [] ? __debug_show_held_locks+0x22/0x24 [ 6.056458] [] __might_sleep+0x120/0x122 [ 6.056464] [] down_write_nested+0x2c/0x7b [ 6.056468] [] xfs_ilock+0x60/0x7e [ 6.056472] [] xfs_iget_core+0x3cc/0x4f1 [ 6.056476] [] ? iget_locked+0xf0/0x125 [ 6.056481] [] xfs_iget+0xeb/0x197 [ 6.056486] [] xfs_trans_iget+0xb4/0x126 [ 6.056491] [] xfs_ialloc+0x9e/0x51e [ 6.056495] [] ? get_parent_ip+0x11/0x41 [ 6.056499] [] xfs_dir_ialloc+0x78/0x26a [ 6.056503] [] ? down_write_nested+0x73/0x7b [ 6.056508] [] xfs_create+0x239/0x438 [ 6.056512] [] ? get_lock_stats+0x2d/0x5c [ 6.056518] [] xfs_vn_mknod+0xce/0x13b [ 6.056522] [] xfs_vn_create+0x10/0x12 [ 6.056526] [] vfs_create+0x5d/0x84 [ 6.056530] [] do_filp_open+0x24e/0x7d5 [ 6.056534] [] ? get_parent_ip+0x11/0x41 [ 6.056539] [] ? sub_preempt_count+0xb0/0xc4 [ 6.056544] [] ? alloc_fd+0x122/0x133 [ 6.056549] [] do_sys_open+0x58/0xdf [ 6.056553] [] sys_open+0x20/0x22 [ 6.056561] [] system_call_fastpath+0x16/0x1b [ 9.098603] bnx2: eth0 NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON [ 17.899872] BUG: sleeping function called from invalid context at kernel/rwsem.c:131 [ 17.899876] in_atomic(): 1, irqs_disabled(): 0, pid: 1791, name: dhcpcd-run-hook [ 17.899879] 2 locks held by dhcpcd-run-hook/1791: [ 17.899881] #0: (&type->i_mutex_dir_key#2){--..}, at: [] do_filp_open+0x178/0x7d5 [ 17.899893] #1: (&(&ip->i_lock)->mr_lock/1){--..}, at: [] xfs_ilock+0x60/0x7e [ 17.899905] Pid: 1791, comm: dhcpcd-run-hook Not tainted 2.6.27-next-20081017 #2 [ 17.899907] Call Trace: [ 17.899914] [] ? __debug_show_held_locks+0x22/0x24 [ 17.899920] [] __might_sleep+0x120/0x122 [ 17.899926] [] down_write_nested+0x2c/0x7b [ 17.899930] [] xfs_ilock+0x60/0x7e [ 17.899934] [] xfs_iget_core+0x3cc/0x4f1 [ 17.899939] [] ? iget_locked+0xf0/0x125 [ 17.899943] [] xfs_iget+0xeb/0x197 [ 17.899953] [] xfs_trans_iget+0xb4/0x126 [ 17.899956] [] xfs_ialloc+0x9e/0x51e [ 17.899959] [] ? get_parent_ip+0x11/0x41 [ 17.899962] [] xfs_dir_ialloc+0x78/0x26a [ 17.899965] [] ? down_write_nested+0x73/0x7b [ 17.899968] [] xfs_create+0x239/0x438 [ 17.899971] [] ? get_lock_stats+0x2d/0x5c [ 17.899975] [] xfs_vn_mknod+0xce/0x13b [ 17.899978] [] xfs_vn_create+0x10/0x12 [ 17.899981] [] vfs_create+0x5d/0x84 [ 17.899984] [] do_filp_open+0x24e/0x7d5 [ 17.899987] [] ? get_parent_ip+0x11/0x41 [ 17.899990] [] ? sub_preempt_count+0xb0/0xc4 [ 17.899993] [] ? alloc_fd+0x122/0x133 [ 17.899997] [] do_sys_open+0x58/0xdf [ 17.900002] [] ? sigprocmask+0x37/0xd7 [ 17.900004] [] sys_open+0x20/0x22 [ 17.900008] [] system_call_fastpath+0x16/0x1b [ 18.190958] Adding 3911788k swap on /dev/sda1. Priority:-1 extents:1 across:3911788k [ 30.773375] CPA self-test: [ 30.780146] 4k 523088 large 0 gb 0 x 262144[ffff880000000000-ffff88003ffff000] miss 0 [ 30.792087] 4k 523088 large 0 gb 0 x 262144[ffff880000000000-ffff88003ffff000] miss 0 [ 30.803460] 4k 523088 large 0 gb 0 x 262144[ffff880000000000-ffff88003ffff000] miss 0 [ 30.803463] ok. [ 3846.588515] BUG: sleeping function called from invalid context at kernel/rwsem.c:131 [ 3846.588519] in_atomic(): 1, irqs_disabled(): 0, pid: 2005, name: screen [ 3846.588523] 2 locks held by screen/2005: [ 3846.588524] #0: (&type->i_mutex_dir_key#2/1){--..}, at: [] lookup_create+0x2b/0x99 [ 3846.588538] #1: (&(&ip->i_lock)->mr_lock/1){--..}, at: [] xfs_ilock+0x60/0x7e [ 3846.588549] Pid: 2005, comm: screen Not tainted 2.6.27-next-20081017 #2 [ 3846.588552] Call Trace: [ 3846.588559] [] ? __debug_show_held_locks+0x22/0x24 [ 3846.588565] [] __might_sleep+0x120/0x122 [ 3846.588570] [] down_write_nested+0x2c/0x7b [ 3846.588574] [] xfs_ilock+0x60/0x7e [ 3846.588578] [] xfs_iget_core+0x3cc/0x4f1 [ 3846.588582] [] ? iget_locked+0xf0/0x125 [ 3846.588586] [] xfs_iget+0xeb/0x197 [ 3846.588591] [] xfs_trans_iget+0xb4/0x126 [ 3846.588596] [] xfs_ialloc+0x9e/0x51e [ 3846.588599] [] ? get_parent_ip+0x11/0x41 [ 3846.588604] [] xfs_dir_ialloc+0x78/0x26a [ 3846.588607] [] ? down_write_nested+0x73/0x7b [ 3846.588612] [] xfs_create+0x239/0x438 [ 3846.588617] [] xfs_vn_mknod+0xce/0x13b [ 3846.588621] [] vfs_mknod+0x75/0x9a [ 3846.588625] [] sys_mknodat+0x186/0x1e5 [ 3846.588632] [] ? trace_hardirqs_on_thunk+0x3a/0x3f [ 3846.588636] [] ? trace_hardirqs_on_caller+0x12c/0x157 [ 3846.588640] [] sys_mknod+0x1a/0x1c [ 3846.588644] [] system_call_fastpath+0x16/0x1b From owner-xfs@oss.sgi.com Fri Oct 17 06:47:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HDlrSG021467 for ; Fri, 17 Oct 2008 06:47:54 -0700 X-ASG-Debug-ID: 1224251375-667b030c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D4B71425E0C for ; Fri, 17 Oct 2008 06:49:35 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id rxJJ4bI9z0gAIIsH for ; Fri, 17 Oct 2008 06:49:35 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 1EB9EAC358C; Fri, 17 Oct 2008 08:49:34 -0500 (CDT) Message-ID: <48F897ED.1060206@sandeen.net> Date: Fri, 17 Oct 2008 08:49:33 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <20081017094615.GT4504@soziologie.ch> In-Reply-To: <20081017094615.GT4504@soziologie.ch> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224251377 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Gaudenz Steinlin wrote: > On Fri, Oct 17, 2008 at 09:01:09AM +0200, Martin Michlmayr wrote: >> * Eric Sandeen [2008-10-16 17:13]: >>> So is this a regression? did it used to work? If so, when? :) >> The original report was with 2.6.18 but that was with the old ABI: >> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423562 >> I just installed a 2.6.22 kernel with EABI and I can also trigger >> the bug. So it's not a (recent) regression. > > As far as I can remember (I only used old ABI arm) this is not a > regression. XFS never worked on arm for me. Ok; I think there are probably a few problems, so trying to keep them straight. I at least had xfs working properly in a qemu arm emulator a few weeks ago... :) > If you need tests on old ABI just tell me. > ok, thanks! -Eric From owner-xfs@oss.sgi.com Fri Oct 17 07:14:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_102 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HEE0ug023634 for ; Fri, 17 Oct 2008 07:14:01 -0700 X-ASG-Debug-ID: 1224252943-78c902bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 648C013A4FD7 for ; Fri, 17 Oct 2008 07:15:44 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 7vSdd6q894hj6oie for ; Fri, 17 Oct 2008 07:15:44 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 9F0EFAC358C; Fri, 17 Oct 2008 09:15:43 -0500 (CDT) Message-ID: <48F89E0F.6030307@sandeen.net> Date: Fri, 17 Oct 2008 09:15:43 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Martin Michlmayr CC: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> In-Reply-To: <20081017070109.GA30726@deprecation.cyrius.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224252944 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Martin Michlmayr wrote: > * Eric Sandeen [2008-10-16 17:13]: >> So is this a regression? did it used to work? If so, when? :) > > The original report was with 2.6.18 but that was with the old ABI: > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423562 > I just installed a 2.6.22 kernel with EABI and I can also trigger > the bug. So it's not a (recent) regression. > >> What's a little odd is that the buffer it dumped out looks like the >> beginning of a perfectly valid superblock for your filesystem >> (magic, block size, and block count all match). If you printk the >> "bno" variable right around line 2106 in xfs_da_btree.c, can you see >> what you get? > > bno is 0. Ok, that's a little odd. (correlates with the "bad" magic that was seen, because block 0 is the superblock, but doesn't make sense because we were trying to read a directory leaf block, in theory) If you unmount & remount, does the ls work then? >> creating an xfs_metadump of the filesystem for examination on a >> non-arm box might also be interesting. > > http://www.cyrius.com/tmp/dump5 > (11 MB) Thanks. xfs_repair on x86 shows no errors; however it won't mount normally (bad log clientid) - but mount -o norecovery,ro and subsequent ls works fine (at first I thought filenames were badly scrambled but then remembered that xfs_metadump does this by default ;)) The remaining problem that I know of on some arm architectures is a vmap cache aliasing problem that usually shows up as log corruption; that may explain the bad clientid thing but not sure why we're reading block 0 above. Do you know what cachepolicy you're booted with? If it's writeallocate, you might try cachepolicy=writeback, otherwise try cachepolicy=uncached (which will be horribly slow) and see if the problem goes away or not; it'd be a clue. -Eric From owner-xfs@oss.sgi.com Fri Oct 17 09:39:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HGdYR4007198 for ; Fri, 17 Oct 2008 09:39:36 -0700 X-ASG-Debug-ID: 1224261677-0de001750000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B524B50DA3E for ; Fri, 17 Oct 2008 09:41:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ws6roL0mf6bRaiKU for ; Fri, 17 Oct 2008 09:41:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KqsO4-0000kj-LS; Fri, 17 Oct 2008 16:41:16 +0000 Date: Fri, 17 Oct 2008 12:41:16 -0400 From: Christoph Hellwig To: Alexander Beregalov Cc: xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081017164116.GA17375@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224261678 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8159 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 04:43:07PM +0400, Alexander Beregalov wrote: > It is SMP x86_64, rootfs is on XFS The message comes from code in XFS, but I really wonder where the atomic context comes from. xfs_iget_core has a few changes in the tree pulled into todays Linux-next, but it's still missing the recent updates redoing this area completely. In some ways it looks like this process has the the atomic context flag left pending somewhere, but that should also trigger warnings on the VFS locks like i_mutex. Very misterious. IS there a specific workload you can reproduce this with? From owner-xfs@oss.sgi.com Fri Oct 17 09:52:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_54 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HGqqYx008016 for ; Fri, 17 Oct 2008 09:52:52 -0700 X-ASG-Debug-ID: 1224262475-225302580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ag-out-0708.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6E56DABD766 for ; Fri, 17 Oct 2008 09:54:35 -0700 (PDT) Received: from ag-out-0708.google.com (ag-out-0708.google.com [72.14.246.250]) by cuda.sgi.com with ESMTP id i9QBbhqs5lB8hQAb for ; Fri, 17 Oct 2008 09:54:35 -0700 (PDT) Received: by ag-out-0708.google.com with SMTP id 31so1024128agc.5 for ; Fri, 17 Oct 2008 09:54:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=/TLh6w3xaGUErGYqC788fSzfN3y7wi0oLcujMORjtfQ=; b=x4rRSVrKt6zpHJfitdzO85E2UyAXdgN4IqdQJUxDQH2dD/K22fuVevpKeduVr/tEa2 BrVSLKJoBP98hz9rBt054BVa+CQC0/Mg7hKo4lTmyHPspnMJArvY4xQvdCn4iwEcEHYv 3pIXsHjD/MLwPOe1Y3wHmxUl5gf+/Ibnw062A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=kQGsT8+Gh34JGRc2dNXKKCjP6BNlnYLWeJRmEwuTf7gHg0az7I3y7orCrUUIFEu9bo CRiowa6/5F2/TeMUFG+2MVLnkTipQAp5l6LETN+LDKJun0ZaYweohcqyxvG8t0p7Fyek gP1SDnzVrRFrxEkCYHYQbOOrzJvvXG4+eHj98= Received: by 10.100.163.8 with SMTP id l8mr5625174ane.7.1224262475231; Fri, 17 Oct 2008 09:54:35 -0700 (PDT) Received: by 10.100.139.3 with HTTP; Fri, 17 Oct 2008 09:54:35 -0700 (PDT) Message-ID: Date: Fri, 17 Oct 2008 20:54:35 +0400 From: "Alexander Beregalov" To: "Christoph Hellwig" X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Cc: xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML In-Reply-To: <20081017164116.GA17375@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017164116.GA17375@infradead.org> X-Barracuda-Connect: ag-out-0708.google.com[72.14.246.250] X-Barracuda-Start-Time: 1224262476 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2008/10/17 Christoph Hellwig : > On Fri, Oct 17, 2008 at 04:43:07PM +0400, Alexander Beregalov wrote: >> It is SMP x86_64, rootfs is on XFS > > The message comes from code in XFS, but I really wonder where the atomic > context comes from. xfs_iget_core has a few changes in the tree pulled > into todays Linux-next, but it's still missing the recent updates > redoing this area completely. In some ways it looks like this process > has the the atomic context flag left pending somewhere, but that should > also trigger warnings on the VFS locks like i_mutex. > > Very misterious. > > IS there a specific workload you can reproduce this with? > Workload is not specific, many i/o commands trigger the message. dmesg|grep comm: [ 4.419605] Pid: 1396, comm: mkdir Not tainted 2.6.27-next-20081017 #2 [ 6.056443] Pid: 1782, comm: dhcpcd Not tainted 2.6.27-next-20081017 #2 [ 17.899905] Pid: 1791, comm: dhcpcd-run-hook Not tainted 2.6.27-next-20081017 #2 [ 3846.588549] Pid: 2005, comm: screen Not tainted 2.6.27-next-20081017 #2 [ 4416.242723] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 [ 4430.618037] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 [ 4431.641578] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 [ 4432.944265] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 [ 4590.330706] Pid: 2026, comm: git-merge Not tainted 2.6.27-next-20081017 #2 [14882.802479] Pid: 2058, comm: git-merge Not tainted 2.6.27-next-20081017 #2 [16955.026436] Pid: 2091, comm: git-merge Not tainted 2.6.27-next-20081017 #2 [18466.645935] Pid: 2119, comm: git-merge Not tainted 2.6.27-next-20081017 #2 [19165.813049] Pid: 2150, comm: git-merge Not tainted 2.6.27-next-20081017 #2 From owner-xfs@oss.sgi.com Fri Oct 17 09:55:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_54 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HGtunY008378 for ; Fri, 17 Oct 2008 09:55:57 -0700 X-ASG-Debug-ID: 1224262658-65d903ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 001B650D975 for ; Fri, 17 Oct 2008 09:57:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id FzVd0m0eEqY8Fvr1 for ; Fri, 17 Oct 2008 09:57:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kqsdu-0007bv-0w; Fri, 17 Oct 2008 16:57:38 +0000 Date: Fri, 17 Oct 2008 12:57:38 -0400 From: Christoph Hellwig To: Alexander Beregalov Cc: Christoph Hellwig , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081017165738.GA20818@infradead.org> References: <20081017164116.GA17375@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224262660 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8160 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 17, 2008 at 08:54:35PM +0400, Alexander Beregalov wrote: > Workload is not specific, many i/o commands trigger the message. > > dmesg|grep comm: > [ 4.419605] Pid: 1396, comm: mkdir Not tainted 2.6.27-next-20081017 #2 > [ 6.056443] Pid: 1782, comm: dhcpcd Not tainted 2.6.27-next-20081017 #2 > [ 17.899905] Pid: 1791, comm: dhcpcd-run-hook Not tainted > 2.6.27-next-20081017 #2 > [ 3846.588549] Pid: 2005, comm: screen Not tainted 2.6.27-next-20081017 #2 > [ 4416.242723] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 > [ 4430.618037] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 > [ 4431.641578] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 > [ 4432.944265] Pid: 2023, comm: git Not tainted 2.6.27-next-20081017 #2 > [ 4590.330706] Pid: 2026, comm: git-merge Not tainted 2.6.27-next-20081017 #2 > [14882.802479] Pid: 2058, comm: git-merge Not tainted 2.6.27-next-20081017 #2 > [16955.026436] Pid: 2091, comm: git-merge Not tainted 2.6.27-next-20081017 #2 > [18466.645935] Pid: 2119, comm: git-merge Not tainted 2.6.27-next-20081017 #2 > [19165.813049] Pid: 2150, comm: git-merge Not tainted 2.6.27-next-20081017 #2 Very strange. Can you retry with tomorrow Linux-next which should have a large XFS update? If it still happens I'll investigate it in more detail. From owner-xfs@oss.sgi.com Fri Oct 17 10:08:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HH8KHb009514 for ; Fri, 17 Oct 2008 10:08:20 -0700 X-ASG-Debug-ID: 1224263402-392101b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0A0BAABD7CA; Fri, 17 Oct 2008 10:10:02 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id f23aKurBqjwYT2Vk; Fri, 17 Oct 2008 10:10:02 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9HHA0IF018792 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Fri, 17 Oct 2008 19:10:01 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9HHA061018789; Fri, 17 Oct 2008 19:10:00 +0200 Date: Fri, 17 Oct 2008 19:10:00 +0200 From: Christoph Hellwig To: Timothy Shimmin Cc: Christoph Hellwig , Miklos Szeredi , xfs-oss X-ASG-Orig-Subj: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Message-ID: <20081017171000.GC18582@lst.de> References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F7D814.2080705@sgi.com> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224263404 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > > Fair enough. > But XFS_ERROR is used throughout the function. Can we leave it the simple way for now? I have to revamp that whole function anyway as it's extremly buggy in many ways, especially when used to open directories (can lead to multiple dentries for a single directory - ouch) and then I'll kill the other uses. From owner-xfs@oss.sgi.com Fri Oct 17 10:11:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HHBLfg010093 for ; Fri, 17 Oct 2008 10:11:23 -0700 X-ASG-Debug-ID: 1224263584-22b302c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ag-out-0708.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1896BABD80C for ; Fri, 17 Oct 2008 10:13:04 -0700 (PDT) Received: from ag-out-0708.google.com (ag-out-0708.google.com [72.14.246.244]) by cuda.sgi.com with ESMTP id 0RHZsfbWG9odtmHx for ; Fri, 17 Oct 2008 10:13:04 -0700 (PDT) Received: by ag-out-0708.google.com with SMTP id 31so1030872agc.5 for ; Fri, 17 Oct 2008 10:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=wj0OKOxQvSlK6oHSc3UlTn9yW2pTdAYaP/63Se9knzQ=; b=KyJBANuc3IRn30ICNcB2iJywP5Qq8rduXhsB8eNzl1qq+0GrFmo2SDlstm3P2Pnoga 6zy+N8mW8Nb7BV1T2dTyuMudB0zwMjoKrrsFShpJ4L0ZVTzYbqGfipF8k+2sIkq+EYrp t+fWjcG04OQMArH3T+Lemn8RTOkpho1TKmqic= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=d+yigGkhwvH63y/q2Uslqyvw3k41Dp31Me5Uhe0Sv+JDTRTNIeDuoL6kkLT90yS6DI Pozg/MaJK1SPP+xNNQhGmsJTh8d7chKU3e8vtQ0i4i53boHuAl8Cpmz97HO/IiMLkjSY IYhauJX7txsnJMbDJt45StSJtQUwwD2Caak6s= Received: by 10.100.171.10 with SMTP id t10mr928843ane.53.1224263584106; Fri, 17 Oct 2008 10:13:04 -0700 (PDT) Received: by 10.100.139.3 with HTTP; Fri, 17 Oct 2008 10:13:04 -0700 (PDT) Message-ID: Date: Fri, 17 Oct 2008 21:13:04 +0400 From: "Alexander Beregalov" To: "Christoph Hellwig" X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Cc: xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML In-Reply-To: <20081017165738.GA20818@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> X-Barracuda-Connect: ag-out-0708.google.com[72.14.246.244] X-Barracuda-Start-Time: 1224263585 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2008/10/17 Christoph Hellwig : > Very strange. Can you retry with tomorrow Linux-next which should have > a large XFS update? If it still happens I'll investigate it in more > detail. I have tried next-20081016 with the same result. I am afraid I wont be able to test it tomorrow, it will likely be possible on Monday. From owner-xfs@oss.sgi.com Fri Oct 17 12:42:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HJgL7D027598 for ; Fri, 17 Oct 2008 12:42:21 -0700 X-ASG-Debug-ID: 1224272644-13d7020c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nlpi087.prodigy.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E2C90142D443 for ; Fri, 17 Oct 2008 12:44:04 -0700 (PDT) Received: from nlpi087.prodigy.net (nlpi087.prodigy.net [207.115.36.103]) by cuda.sgi.com with ESMTP id kpsd7kj7hr6xqNaX for ; Fri, 17 Oct 2008 12:44:04 -0700 (PDT) X-ORBL: [70.142.44.15] Received: from localhost (localhost) by nlpi087.prodigy.net (8.13.8 out.dk.spool/8.13.8) id m9HJi4GW026706; Fri, 17 Oct 2008 14:44:04 -0500 Date: Fri, 17 Oct 2008 14:44:04 -0500 From: Mail Delivery Subsystem Message-Id: <200810171944.m9HJi4GW026706@nlpi087.prodigy.net> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9HJi4GW026706.1224272644/nlpi087.prodigy.net" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: nlpi087.prodigy.net[207.115.36.103] X-Barracuda-Start-Time: 1224272644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4403 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8167 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9HJi4GW026706.1224272644/nlpi087.prodigy.net The original message was received at Fri, 17 Oct 2008 14:44:02 -0500 from adsl-70-142-44-15.dsl.tul2ok.sbcglobal.net [70.142.44.15] ----- The following addresses had permanent fatal errors ----- (reason: 553 5.3.0 ... Addressee unknown, relay=[207.115.36.103]) ----- Transcript of session follows ----- ... while talking to sbcmx3.prodigy.net.: >>> DATA <<< 553 5.3.0 ... Addressee unknown, relay=[207.115.36.103] 550 5.1.1 ... User unknown <<< 503 5.0.0 Need RCPT (recipient) --m9HJi4GW026706.1224272644/nlpi087.prodigy.net Content-Type: message/delivery-status Reporting-MTA: dns; nlpi087.prodigy.net Received-From-MTA: DNS; adsl-70-142-44-15.dsl.tul2ok.sbcglobal.net Arrival-Date: Fri, 17 Oct 2008 14:44:02 -0500 Final-Recipient: RFC822; misheli@sbcglobal.net Action: failed Status: 5.3.0 Remote-MTA: DNS; sbcmx3.prodigy.net Diagnostic-Code: SMTP; 553 5.3.0 ... Addressee unknown, relay=[207.115.36.103] Last-Attempt-Date: Fri, 17 Oct 2008 14:44:04 -0500 --m9HJi4GW026706.1224272644/nlpi087.prodigy.net Content-Type: message/rfc822 X-ORBL: [70.142.44.15] Return-Path: Received: from oss.sgi.com (adsl-70-142-44-15.dsl.tul2ok.sbcglobal.net [70.142.44.15]) by nlpi087.prodigy.net (8.13.8 out.dk.spool/8.13.8) with ESMTP id m9HJi2GW026675 for ; Fri, 17 Oct 2008 14:44:02 -0500 Message-Id: <200810171944.m9HJi2GW026675@nlpi087.prodigy.net> From: linux-xfs@oss.sgi.com To: misheli@sbcglobal.net Subject: RETURNED MAIL: DATA FORMAT ERROR Date: Fri, 17 Oct 2008 14:43:57 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Content-Transfer-Encoding: 7bit The virus W32/Mydoom.o@MM was found in TRANSCRIPT.SCR. The attachment transcript.zip was removed. The virus W32/Mydoom.o@MM!zip was found in transcript.zip. The attachment transcript.zip was removed. The virus W32/Mydoom.o@MM!zip was found in transcript.zip. The attachment transcript.zip was removed. Dear user of sbcglobal.net, Your account has been used to send a large amount of spam messages during the last week. Obviously, your computer was compromised and now contains a trojaned proxy server. Please follow the instruction in order to keep your computer safe. Sincerely yours, sbcglobal.net technical support team. --m9HJi4GW026706.1224272644/nlpi087.prodigy.net-- From owner-xfs@oss.sgi.com Fri Oct 17 13:35:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HKZSG7000591 for ; Fri, 17 Oct 2008 13:35:30 -0700 X-ASG-Debug-ID: 1224275830-3bff03cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BA9950F117 for ; Fri, 17 Oct 2008 13:37:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EDrCSnE9InFbxUtj for ; Fri, 17 Oct 2008 13:37:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kqw4M-0005WT-3k; Fri, 17 Oct 2008 20:37:10 +0000 Date: Fri, 17 Oct 2008 16:37:10 -0400 From: Christoph Hellwig To: Alexander Beregalov Cc: Christoph Hellwig , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081017203710.GA27187@infradead.org> References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224275832 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8170 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I just ran the xfs testsuite over linux-next on qemu (i386), and I can't find anything at all. Really strange. Let's see if this still there with mondays linux-next, and if yes can you just try the xfs patch from the splitout linux-next patches and see if that alone causes it? In fact that might be useful for todays linux-next, too. From owner-xfs@oss.sgi.com Fri Oct 17 13:53:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9HKrLpV002492 for ; Fri, 17 Oct 2008 13:53:22 -0700 X-ASG-Debug-ID: 1224276903-09b6022a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from casper.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B08EF10ABCF2 for ; Fri, 17 Oct 2008 13:55:03 -0700 (PDT) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) by cuda.sgi.com with ESMTP id zbOv6ptIimYiyrYN for ; Fri, 17 Oct 2008 13:55:03 -0700 (PDT) Received: from [192.102.209.1] (helo=localhost.localdomain) by casper.infradead.org with esmtpsa (Exim 4.69 #1 (Red Hat Linux)) id 1KqwLc-0000Qp-St; Fri, 17 Oct 2008 20:55:01 +0000 Date: Fri, 17 Oct 2008 13:55:10 -0700 From: Arjan van de Ven To: Christoph Hellwig Cc: Alexander Beregalov , Christoph Hellwig , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081017135510.7127c4e7@infradead.org> In-Reply-To: <20081017203710.GA27187@infradead.org> References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> Organization: Intel X-Mailer: Claws Mail 3.5.0 (GTK+ 2.12.12; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: casper.infradead.org[85.118.1.10] X-Barracuda-Start-Time: 1224276904 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8170 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, 17 Oct 2008 16:37:10 -0400 Christoph Hellwig wrote: > I just ran the xfs testsuite over linux-next on qemu (i386), and I > can't find anything at all. Really strange. Let's see if this still > there with mondays linux-next, and if yes can you just try the xfs > patch from the splitout linux-next patches and see if that alone > causes it? > > In fact that might be useful for todays linux-next, too. > -- also if you enable lockdep, it tracks where irq's got turned off (with a stacktrace I think) so it would provide some good clues. -- Arjan van de Ven Intel Open Source Technology Centre For development, discussion and tips for power savings, visit http://www.lesswatts.org From owner-xfs@oss.sgi.com Sat Oct 18 01:56:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9I8uWhO022206 for ; Sat, 18 Oct 2008 01:56:33 -0700 X-ASG-Debug-ID: 1224320295-1f7401e90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sorrow.cyrius.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E898A511478 for ; Sat, 18 Oct 2008 01:58:15 -0700 (PDT) Received: from sorrow.cyrius.com (sorrow.cyrius.com [65.19.161.204]) by cuda.sgi.com with ESMTP id EWm381fpNkv1IfLv for ; Sat, 18 Oct 2008 01:58:15 -0700 (PDT) Received: by sorrow.cyrius.com (Postfix, from userid 10) id E913DD857; Sat, 18 Oct 2008 08:58:14 +0000 (UTC) Received: by deprecation.cyrius.com (Postfix, from userid 1000) id 789A3150B7E; Sat, 18 Oct 2008 10:57:56 +0200 (CEST) Date: Sat, 18 Oct 2008 10:57:56 +0200 From: Martin Michlmayr To: Eric Sandeen Cc: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081018085752.GS25834@deprecation.cyrius.com> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48F89E0F.6030307@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: sorrow.cyrius.com[65.19.161.204] X-Barracuda-Start-Time: 1224320295 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8202 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- * Eric Sandeen [2008-10-17 09:15]: > If you unmount & remount, does the ls work then? I cannot even mount it: debian:~# mkfs.xfs -f /dev/sda5 meta-data=/dev/sda5 isize=256 agcount=4, agsize=94380 blks = sectsz=512 attr=2 data = bsize=4096 blocks=377519, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 debian:~# mount /dev/sda5 /mnt [42949596.920000] XFS mounting filesystem sda5 debian:~# cp /usr/bin/* /mnt/ debian:~# umount /mnt debian:~# mount -t xfs /dev/sda5 /mnt [42949612.290000] XFS mounting filesystem sda5 [42949612.460000] Starting XFS recovery on filesystem: sda5 (logdev: internal) [42949612.480000] XFS: xlog_recover_process_data: bad flag [42949612.500000] XFS: log mount/recovery failed: error 5 [42949612.500000] XFS: log mount failed mount: /dev/sda5: can't read superblock debian:~# > Do you know what cachepolicy you're booted with? If it's writeallocate, > you might try cachepolicy=writeback, otherwise try cachepolicy=uncached > (which will be horribly slow) and see if the problem goes away or not; > it'd be a clue. I just tried with cachepolicy=writeback and cachepolicy=uncached but I get the same problem. -- Martin Michlmayr http://www.cyrius.com/ From owner-xfs@oss.sgi.com Sat Oct 18 02:11:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9I9B8CI024019 for ; Sat, 18 Oct 2008 02:11:10 -0700 X-ASG-Debug-ID: 1224321171-3c6f008c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sv13.net-housting.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D49E05114E1 for ; Sat, 18 Oct 2008 02:12:52 -0700 (PDT) Received: from sv13.net-housting.de (sv13.net-housting.de [80.190.144.123]) by cuda.sgi.com with ESMTP id 1vdbIwF631GsPjP1 for ; Sat, 18 Oct 2008 02:12:52 -0700 (PDT) Received: from moria (p4FD1742F.dip.t-dialin.net [79.209.116.47]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by sv13.net-housting.de (Postfix) with ESMTP id 73DF728A8C685; Sat, 18 Oct 2008 11:12:45 +0200 (CEST) Received: from tobi by moria with local (Exim 4.69) (envelope-from ) id 1KrBaN-0002Jb-83; Sat, 18 Oct 2008 15:11:20 +0200 From: Tobias Frost To: Gaudenz Steinlin Cc: Martin Michlmayr , Eric Sandeen , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com In-Reply-To: <20081017094615.GT4504@soziologie.ch> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <20081017094615.GT4504@soziologie.ch> Content-Type: text/plain Content-Transfer-Encoding: 7bit Date: Sat, 18 Oct 2008 15:11:14 +0200 Message-Id: <1224335474.8763.1.camel@moria> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tobi@coldtobi.de X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture X-SA-Exim-Version: 4.2.1 (built Wed, 25 Jun 2008 17:14:11 +0000) X-SA-Exim-Scanned: Yes (on moria) X-Barracuda-Connect: sv13.net-housting.de[80.190.144.123] X-Barracuda-Start-Time: 1224321172 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8202 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I tried xfs both on the old and new ABI. (my first try was Jan 2008, old ABI) ASAIR at kernel version 2.6.18 On Fri, 2008-10-17 at 11:46 +0200, Gaudenz Steinlin wrote: > On Fri, Oct 17, 2008 at 09:01:09AM +0200, Martin Michlmayr wrote: > > * Eric Sandeen [2008-10-16 17:13]: > > > So is this a regression? did it used to work? If so, when? :) > > > > The original report was with 2.6.18 but that was with the old ABI: > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=423562 > > I just installed a 2.6.22 kernel with EABI and I can also trigger > > the bug. So it's not a (recent) regression. > > As far as I can remember (I only used old ABI arm) this is not a > regression. XFS never worked on arm for me. > > If you need tests on old ABI just tell me. > From owner-xfs@oss.sgi.com Sat Oct 18 05:25:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ICPcOl013974 for ; Sat, 18 Oct 2008 05:25:39 -0700 X-ASG-Debug-ID: 1224332841-5b3202190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 136C9AC0F3A for ; Sat, 18 Oct 2008 05:27:22 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id vFpX1GL3cFwJSFOp for ; Sat, 18 Oct 2008 05:27:22 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9ICRKIF025079 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sat, 18 Oct 2008 14:27:20 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9ICRKAN025077 for xfs@oss.sgi.com; Sat, 18 Oct 2008 14:27:20 +0200 Date: Sat, 18 Oct 2008 14:27:20 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] allow 64 bit inode numbers on 32 bit systems Subject: [PATCH] allow 64 bit inode numbers on 32 bit systems Message-ID: <20081018122720.GA24949@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224332843 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8210 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we've stopped using the Linux inode cache when can trivally support the inode64 mount option on 32bit architectures. As far as the kernel and most userspace is concerned this works perfectly, but applications still using really old stat and readdir interfaces will get an EOVERFLOW error when hitting an inode number not fitting into 32 bits (that problem of course also exists when using these applications on a 64bit kernel). Note that because inode64 is simply a mount option we can currently mount a filesystem having > 32 bit inode numbers and cause a variety of problems, all this is solved but this patch which enables XFS_BIG_INUMS, even when inode64 is not used. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- xfs-2.6.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:17:40.000000000 +0200 +++ xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:19:30.000000000 +0200 @@ -21,18 +21,12 @@ #include /* - * Some types are conditional depending on the target system. * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. - * XFS_BIG_INUMS needs the VFS inode number to be 64 bits, as well - * as requiring XFS_BIG_BLKNOS to be set. + * XFS_BIG_INUMS requires XFS_BIG_BLKNOS to be set. */ #if defined(CONFIG_LBD) || (BITS_PER_LONG == 64) # define XFS_BIG_BLKNOS 1 -# if BITS_PER_LONG == 64 -# define XFS_BIG_INUMS 1 -# else -# define XFS_BIG_INUMS 0 -# endif +# define XFS_BIG_INUMS 1 #else # define XFS_BIG_BLKNOS 0 # define XFS_BIG_INUMS 0 From owner-xfs@oss.sgi.com Sat Oct 18 05:33:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_54, J_CHICKENPOX_75 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ICXvac014959 for ; Sat, 18 Oct 2008 05:33:57 -0700 X-ASG-Debug-ID: 1224333338-3a8502d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ACF335120D0 for ; Sat, 18 Oct 2008 05:35:39 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id Se3mxxS36l8klDdE for ; Sat, 18 Oct 2008 05:35:39 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9ICZZIF025356 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sat, 18 Oct 2008 14:35:35 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9ICZZPf025354 for xfs@oss.sgi.com; Sat, 18 Oct 2008 14:35:35 +0200 Date: Sat, 18 Oct 2008 14:35:35 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/4] kill struct xfs_mount_args Subject: Re: [PATCH 2/4] kill struct xfs_mount_args Message-ID: <20081018123535.GA25304@lst.de> References: <20080525190741.GB13372@lst.de> <20080723080505.GA3417@lst.de> <20080828231735.GB19757@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080828231735.GB19757@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224333340 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8211 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Can we please get these patches in? They've been out for almost _five_ month, and due to the nature of messing with the mount arguments they're going to cause conflict for anything dealing with mount options. Not to speak they've been blocking making any progress on the mount/unmount path for these five month. On Fri, Aug 29, 2008 at 01:17:35AM +0200, Christoph Hellwig wrote: > ping^2? > > On Wed, Jul 23, 2008 at 10:05:05AM +0200, Christoph Hellwig wrote: > > ping? > > > > On Sun, May 25, 2008 at 09:07:41PM +0200, Christoph Hellwig wrote: > > > No need to parse the mount option into a structure before applying it > > > to struct xfs_mount. > > > > > > The content of xfs_start_flags gets merged into xfs_parseargs. Calls > > > inbetween don't care and can use mount members instead of the args > > > struct. > > > > > > This patch uncovered that the mount option for shared filesystems wasn't > > > ever exposed on Linux. The code to handle it is #if 0'ed in this patch > > > pending a decision on this feature. I'll send a writeup about it to > > > the list soon. > > > > > > > > > Signed-off-by: Christoph Hellwig > > > > > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-05-25 16:23:57.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-05-25 20:57:16.000000000 +0200 > > > @@ -18,7 +18,6 @@ > > > #include "xfs.h" > > > #include "xfs_bit.h" > > > #include "xfs_log.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_inum.h" > > > #include "xfs_trans.h" > > > #include "xfs_sb.h" > > > @@ -74,32 +73,6 @@ static kmem_zone_t *xfs_vnode_zone; > > > static kmem_zone_t *xfs_ioend_zone; > > > mempool_t *xfs_ioend_pool; > > > > > > -STATIC struct xfs_mount_args * > > > -xfs_args_allocate( > > > - struct super_block *sb, > > > - int silent) > > > -{ > > > - struct xfs_mount_args *args; > > > - > > > - args = kzalloc(sizeof(struct xfs_mount_args), GFP_KERNEL); > > > - if (!args) > > > - return NULL; > > > - > > > - args->logbufs = args->logbufsize = -1; > > > - strncpy(args->fsname, sb->s_id, MAXNAMELEN); > > > - > > > - /* Copy the already-parsed mount(2) flags we're interested in */ > > > - if (sb->s_flags & MS_DIRSYNC) > > > - args->flags |= XFSMNT_DIRSYNC; > > > - if (sb->s_flags & MS_SYNCHRONOUS) > > > - args->flags |= XFSMNT_WSYNC; > > > - if (silent) > > > - args->flags |= XFSMNT_QUIET; > > > - args->flags |= XFSMNT_32BITINODES; > > > - > > > - return args; > > > -} > > > - > > > #define MNTOPT_LOGBUFS "logbufs" /* number of XFS log buffers */ > > > #define MNTOPT_LOGBSIZE "logbsize" /* size of XFS log buffers */ > > > #define MNTOPT_LOGDEV "logdev" /* log device */ > > > @@ -171,26 +144,54 @@ suffix_strtoul(char *s, char **endp, uns > > > return simple_strtoul((const char *)s, endp, base) << shift_left_factor; > > > } > > > > > > +/* > > > + * This function fills in xfs_mount_t fields based on mount args. > > > + * Note: the superblock has _not_ yet been read in. > > > + * > > > + * Note that this function leaks the various device name allocations on > > > + * failure. The caller takes care of them. > > > + */ > > > STATIC int > > > xfs_parseargs( > > > struct xfs_mount *mp, > > > char *options, > > > - struct xfs_mount_args *args, > > > - int update) > > > + char **mtpt) > > > { > > > + struct super_block *sb = mp->m_super; > > > char *this_char, *value, *eov; > > > - int dsunit, dswidth, vol_dsunit, vol_dswidth; > > > - int iosize; > > > + int dsunit = 0; > > > + int dswidth = 0; > > > + int iosize = 0; > > > int dmapi_implies_ikeep = 1; > > > + uchar_t iosizelog = 0; > > > > > > - args->flags |= XFSMNT_BARRIER; > > > - args->flags2 |= XFSMNT2_COMPAT_IOSIZE; > > > + /* > > > + * Copy binary VFS mount flags we are interested in. > > > + */ > > > + if (sb->s_flags & MS_RDONLY) > > > + mp->m_flags |= XFS_MOUNT_RDONLY; > > > + if (sb->s_flags & MS_DIRSYNC) > > > + mp->m_flags |= XFS_MOUNT_DIRSYNC; > > > + if (sb->s_flags & MS_SYNCHRONOUS) > > > + mp->m_flags |= XFS_MOUNT_WSYNC; > > > + > > > + /* > > > + * Set some default flags that could be cleared by the mount option > > > + * parsing. > > > + */ > > > + mp->m_flags |= XFS_MOUNT_BARRIER; > > > + mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; > > > + mp->m_flags |= XFS_MOUNT_SMALL_INUMS; > > > + > > > + /* > > > + * These can be overridden by the mount option parsing. > > > + */ > > > + mp->m_logbufs = -1; > > > + mp->m_logbsize = -1; > > > > > > if (!options) > > > goto done; > > > > > > - iosize = dsunit = dswidth = vol_dsunit = vol_dswidth = 0; > > > - > > > while ((this_char = strsep(&options, ",")) != NULL) { > > > if (!*this_char) > > > continue; > > > @@ -204,7 +205,7 @@ xfs_parseargs( > > > this_char); > > > return EINVAL; > > > } > > > - args->logbufs = simple_strtoul(value, &eov, 10); > > > + mp->m_logbufs = simple_strtoul(value, &eov, 10); > > > } else if (!strcmp(this_char, MNTOPT_LOGBSIZE)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -212,7 +213,7 @@ xfs_parseargs( > > > this_char); > > > return EINVAL; > > > } > > > - args->logbufsize = suffix_strtoul(value, &eov, 10); > > > + mp->m_logbsize = suffix_strtoul(value, &eov, 10); > > > } else if (!strcmp(this_char, MNTOPT_LOGDEV)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -220,7 +221,9 @@ xfs_parseargs( > > > this_char); > > > return EINVAL; > > > } > > > - strncpy(args->logname, value, MAXNAMELEN); > > > + mp->m_logname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); > > > + if (!mp->m_logname) > > > + return ENOMEM; > > > } else if (!strcmp(this_char, MNTOPT_MTPT)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -228,7 +231,9 @@ xfs_parseargs( > > > this_char); > > > return EINVAL; > > > } > > > - strncpy(args->mtpt, value, MAXNAMELEN); > > > + *mtpt = kstrndup(value, MAXNAMELEN, GFP_KERNEL); > > > + if (!*mtpt) > > > + return ENOMEM; > > > } else if (!strcmp(this_char, MNTOPT_RTDEV)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -236,7 +241,9 @@ xfs_parseargs( > > > this_char); > > > return EINVAL; > > > } > > > - strncpy(args->rtname, value, MAXNAMELEN); > > > + mp->m_rtname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); > > > + if (!mp->m_rtname) > > > + return ENOMEM; > > > } else if (!strcmp(this_char, MNTOPT_BIOSIZE)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -245,8 +252,7 @@ xfs_parseargs( > > > return EINVAL; > > > } > > > iosize = simple_strtoul(value, &eov, 10); > > > - args->flags |= XFSMNT_IOSIZE; > > > - args->iosizelog = (uint8_t) iosize; > > > + iosizelog = (uint8_t) iosize; > > > } else if (!strcmp(this_char, MNTOPT_ALLOCSIZE)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -255,8 +261,7 @@ xfs_parseargs( > > > return EINVAL; > > > } > > > iosize = suffix_strtoul(value, &eov, 10); > > > - args->flags |= XFSMNT_IOSIZE; > > > - args->iosizelog = ffs(iosize) - 1; > > > + iosizelog = ffs(iosize) - 1; > > > } else if (!strcmp(this_char, MNTOPT_GRPID) || > > > !strcmp(this_char, MNTOPT_BSDGROUPS)) { > > > mp->m_flags |= XFS_MOUNT_GRPID; > > > @@ -264,23 +269,25 @@ xfs_parseargs( > > > !strcmp(this_char, MNTOPT_SYSVGROUPS)) { > > > mp->m_flags &= ~XFS_MOUNT_GRPID; > > > } else if (!strcmp(this_char, MNTOPT_WSYNC)) { > > > - args->flags |= XFSMNT_WSYNC; > > > + mp->m_flags |= XFS_MOUNT_WSYNC; > > > } else if (!strcmp(this_char, MNTOPT_OSYNCISOSYNC)) { > > > - args->flags |= XFSMNT_OSYNCISOSYNC; > > > + mp->m_flags |= XFS_MOUNT_OSYNCISOSYNC; > > > } else if (!strcmp(this_char, MNTOPT_NORECOVERY)) { > > > - args->flags |= XFSMNT_NORECOVERY; > > > + mp->m_flags |= XFS_MOUNT_NORECOVERY; > > > } else if (!strcmp(this_char, MNTOPT_INO64)) { > > > - args->flags |= XFSMNT_INO64; > > > -#if !XFS_BIG_INUMS > > > +#if XFS_BIG_INUMS > > > + mp->m_flags |= XFS_MOUNT_INO64; > > > + mp->m_inoadd = XFS_INO64_OFFSET; > > > +#else > > > cmn_err(CE_WARN, > > > "XFS: %s option not allowed on this system", > > > this_char); > > > return EINVAL; > > > #endif > > > } else if (!strcmp(this_char, MNTOPT_NOALIGN)) { > > > - args->flags |= XFSMNT_NOALIGN; > > > + mp->m_flags |= XFS_MOUNT_NOALIGN; > > > } else if (!strcmp(this_char, MNTOPT_SWALLOC)) { > > > - args->flags |= XFSMNT_SWALLOC; > > > + mp->m_flags |= XFS_MOUNT_SWALLOC; > > > } else if (!strcmp(this_char, MNTOPT_SUNIT)) { > > > if (!value || !*value) { > > > cmn_err(CE_WARN, > > > @@ -298,7 +305,7 @@ xfs_parseargs( > > > } > > > dswidth = simple_strtoul(value, &eov, 10); > > > } else if (!strcmp(this_char, MNTOPT_64BITINODE)) { > > > - args->flags &= ~XFSMNT_32BITINODES; > > > + mp->m_flags &= ~XFS_MOUNT_SMALL_INUMS; > > > #if !XFS_BIG_INUMS > > > cmn_err(CE_WARN, > > > "XFS: %s option not allowed on this system", > > > @@ -306,56 +313,60 @@ xfs_parseargs( > > > return EINVAL; > > > #endif > > > } else if (!strcmp(this_char, MNTOPT_NOUUID)) { > > > - args->flags |= XFSMNT_NOUUID; > > > + mp->m_flags |= XFS_MOUNT_NOUUID; > > > } else if (!strcmp(this_char, MNTOPT_BARRIER)) { > > > - args->flags |= XFSMNT_BARRIER; > > > + mp->m_flags |= XFS_MOUNT_BARRIER; > > > } else if (!strcmp(this_char, MNTOPT_NOBARRIER)) { > > > - args->flags &= ~XFSMNT_BARRIER; > > > + mp->m_flags &= ~XFS_MOUNT_BARRIER; > > > } else if (!strcmp(this_char, MNTOPT_IKEEP)) { > > > - args->flags |= XFSMNT_IKEEP; > > > + mp->m_flags |= XFS_MOUNT_IKEEP; > > > } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { > > > dmapi_implies_ikeep = 0; > > > - args->flags &= ~XFSMNT_IKEEP; > > > + mp->m_flags &= ~XFS_MOUNT_IKEEP; > > > } else if (!strcmp(this_char, MNTOPT_LARGEIO)) { > > > - args->flags2 &= ~XFSMNT2_COMPAT_IOSIZE; > > > + mp->m_flags &= ~XFS_MOUNT_COMPAT_IOSIZE; > > > } else if (!strcmp(this_char, MNTOPT_NOLARGEIO)) { > > > - args->flags2 |= XFSMNT2_COMPAT_IOSIZE; > > > + mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; > > > } else if (!strcmp(this_char, MNTOPT_ATTR2)) { > > > - args->flags |= XFSMNT_ATTR2; > > > + mp->m_flags |= XFS_MOUNT_ATTR2; > > > } else if (!strcmp(this_char, MNTOPT_NOATTR2)) { > > > - args->flags &= ~XFSMNT_ATTR2; > > > - args->flags |= XFSMNT_NOATTR2; > > > + mp->m_flags &= ~XFS_MOUNT_ATTR2; > > > + mp->m_flags |= XFS_MOUNT_NOATTR2; > > > } else if (!strcmp(this_char, MNTOPT_FILESTREAM)) { > > > - args->flags2 |= XFSMNT2_FILESTREAMS; > > > + mp->m_flags |= XFS_MOUNT_FILESTREAMS; > > > } else if (!strcmp(this_char, MNTOPT_NOQUOTA)) { > > > - args->flags &= ~(XFSMNT_UQUOTAENF|XFSMNT_UQUOTA); > > > - args->flags &= ~(XFSMNT_GQUOTAENF|XFSMNT_GQUOTA); > > > + mp->m_qflags &= ~(XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | > > > + XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | > > > + XFS_UQUOTA_ENFD | XFS_OQUOTA_ENFD); > > > } else if (!strcmp(this_char, MNTOPT_QUOTA) || > > > !strcmp(this_char, MNTOPT_UQUOTA) || > > > !strcmp(this_char, MNTOPT_USRQUOTA)) { > > > - args->flags |= XFSMNT_UQUOTA | XFSMNT_UQUOTAENF; > > > + mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | > > > + XFS_UQUOTA_ENFD); > > > } else if (!strcmp(this_char, MNTOPT_QUOTANOENF) || > > > !strcmp(this_char, MNTOPT_UQUOTANOENF)) { > > > - args->flags |= XFSMNT_UQUOTA; > > > - args->flags &= ~XFSMNT_UQUOTAENF; > > > + mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE); > > > + mp->m_qflags &= ~XFS_UQUOTA_ENFD; > > > } else if (!strcmp(this_char, MNTOPT_PQUOTA) || > > > !strcmp(this_char, MNTOPT_PRJQUOTA)) { > > > - args->flags |= XFSMNT_PQUOTA | XFSMNT_PQUOTAENF; > > > + mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE | > > > + XFS_OQUOTA_ENFD); > > > } else if (!strcmp(this_char, MNTOPT_PQUOTANOENF)) { > > > - args->flags |= XFSMNT_PQUOTA; > > > - args->flags &= ~XFSMNT_PQUOTAENF; > > > + mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE); > > > + mp->m_qflags &= ~XFS_OQUOTA_ENFD; > > > } else if (!strcmp(this_char, MNTOPT_GQUOTA) || > > > !strcmp(this_char, MNTOPT_GRPQUOTA)) { > > > - args->flags |= XFSMNT_GQUOTA | XFSMNT_GQUOTAENF; > > > + mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | > > > + XFS_OQUOTA_ENFD); > > > } else if (!strcmp(this_char, MNTOPT_GQUOTANOENF)) { > > > - args->flags |= XFSMNT_GQUOTA; > > > - args->flags &= ~XFSMNT_GQUOTAENF; > > > + mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE); > > > + mp->m_qflags &= ~XFS_OQUOTA_ENFD; > > > } else if (!strcmp(this_char, MNTOPT_DMAPI)) { > > > - args->flags |= XFSMNT_DMAPI; > > > + mp->m_flags |= XFS_MOUNT_DMAPI; > > > } else if (!strcmp(this_char, MNTOPT_XDSM)) { > > > - args->flags |= XFSMNT_DMAPI; > > > + mp->m_flags |= XFS_MOUNT_DMAPI; > > > } else if (!strcmp(this_char, MNTOPT_DMI)) { > > > - args->flags |= XFSMNT_DMAPI; > > > + mp->m_flags |= XFS_MOUNT_DMAPI; > > > } else if (!strcmp(this_char, "ihashsize")) { > > > cmn_err(CE_WARN, > > > "XFS: ihashsize no longer used, option is deprecated."); > > > @@ -373,27 +384,29 @@ xfs_parseargs( > > > } > > > } > > > > > > - if (args->flags & XFSMNT_NORECOVERY) { > > > - if ((mp->m_flags & XFS_MOUNT_RDONLY) == 0) { > > > - cmn_err(CE_WARN, > > > - "XFS: no-recovery mounts must be read-only."); > > > - return EINVAL; > > > - } > > > + /* > > > + * no recovery flag requires a read-only mount > > > + */ > > > + if ((mp->m_flags & XFS_MOUNT_NORECOVERY) && > > > + !(mp->m_flags & XFS_MOUNT_RDONLY)) { > > > + cmn_err(CE_WARN, "XFS: no-recovery mounts must be read-only."); > > > + return EINVAL; > > > } > > > > > > - if ((args->flags & XFSMNT_NOALIGN) && (dsunit || dswidth)) { > > > + if ((mp->m_flags & XFS_MOUNT_NOALIGN) && (dsunit || dswidth)) { > > > cmn_err(CE_WARN, > > > "XFS: sunit and swidth options incompatible with the noalign option"); > > > return EINVAL; > > > } > > > > > > - if ((args->flags & XFSMNT_GQUOTA) && (args->flags & XFSMNT_PQUOTA)) { > > > + if ((mp->m_qflags & (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE)) && > > > + (mp->m_qflags & (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE))) { > > > cmn_err(CE_WARN, > > > "XFS: cannot mount with both project and group quota"); > > > return EINVAL; > > > } > > > > > > - if ((args->flags & XFSMNT_DMAPI) && *args->mtpt == '\0') { > > > + if ((mp->m_flags & XFS_MOUNT_DMAPI) && !mtpt) { > > > printk("XFS: %s option needs the mount point option as well\n", > > > MNTOPT_DMAPI); > > > return EINVAL; > > > @@ -421,27 +434,66 @@ xfs_parseargs( > > > * Note that if "ikeep" or "noikeep" mount options are > > > * supplied, then they are honored. > > > */ > > > - if ((args->flags & XFSMNT_DMAPI) && dmapi_implies_ikeep) > > > - args->flags |= XFSMNT_IKEEP; > > > + if ((mp->m_flags & XFS_MOUNT_DMAPI) && dmapi_implies_ikeep) > > > + mp->m_flags |= XFS_MOUNT_IKEEP; > > > > > > - if ((args->flags & XFSMNT_NOALIGN) != XFSMNT_NOALIGN) { > > > +done: > > > + if (!(mp->m_flags & XFS_MOUNT_NOALIGN)) { > > > + /* > > > + * At this point the superblock has not been read > > > + * in, therefore we do not know the block size. > > > + * Before the mount call ends we will convert > > > + * these to FSBs. > > > + */ > > > if (dsunit) { > > > - args->sunit = dsunit; > > > - args->flags |= XFSMNT_RETERR; > > > - } else { > > > - args->sunit = vol_dsunit; > > > + mp->m_dalign = dsunit; > > > + mp->m_flags |= XFS_MOUNT_RETERR; > > > } > > > - dswidth ? (args->swidth = dswidth) : > > > - (args->swidth = vol_dswidth); > > > - } else { > > > - args->sunit = args->swidth = 0; > > > + > > > + if (dswidth) > > > + mp->m_swidth = dswidth; > > > + } > > > + > > > + if (mp->m_logbufs != -1 && > > > + mp->m_logbufs != 0 && > > > + (mp->m_logbufs < XLOG_MIN_ICLOGS || > > > + mp->m_logbufs > XLOG_MAX_ICLOGS)) { > > > + cmn_err(CE_WARN, > > > + "XFS: invalid logbufs value: %d [not %d-%d]", > > > + mp->m_logbufs, XLOG_MIN_ICLOGS, XLOG_MAX_ICLOGS); > > > + return XFS_ERROR(EINVAL); > > > + } > > > + if (mp->m_logbsize != -1 && > > > + mp->m_logbsize != 0 && > > > + (mp->m_logbsize < XLOG_MIN_RECORD_BSIZE || > > > + mp->m_logbsize > XLOG_MAX_RECORD_BSIZE || > > > + !is_power_of_2(mp->m_logbsize))) { > > > + cmn_err(CE_WARN, > > > + "XFS: invalid logbufsize: %d [not 16k,32k,64k,128k or 256k]", > > > + mp->m_logbsize); > > > + return XFS_ERROR(EINVAL); > > > + } > > > + > > > + mp->m_fsname = kstrndup(sb->s_id, MAXNAMELEN, GFP_KERNEL); > > > + if (!mp->m_fsname) > > > + return ENOMEM; > > > + mp->m_fsname_len = strlen(mp->m_fsname) + 1; > > > + > > > + if (iosizelog) { > > > + if (iosizelog > XFS_MAX_IO_LOG || > > > + iosizelog < XFS_MIN_IO_LOG) { > > > + cmn_err(CE_WARN, > > > + "XFS: invalid log iosize: %d [not %d-%d]", > > > + iosizelog, XFS_MIN_IO_LOG, > > > + XFS_MAX_IO_LOG); > > > + return XFS_ERROR(EINVAL); > > > + } > > > + > > > + mp->m_flags |= XFS_MOUNT_DFLT_IOSIZE; > > > + mp->m_readio_log = iosizelog; > > > + mp->m_writeio_log = iosizelog; > > > } > > > > > > -done: > > > - if (args->flags & XFSMNT_32BITINODES) > > > - mp->m_flags |= XFS_MOUNT_SMALL_INUMS; > > > - if (args->flags2) > > > - args->flags |= XFSMNT_FLAGS2; > > > return 0; > > > } > > > > > > @@ -693,8 +745,7 @@ xfs_close_devices( > > > */ > > > STATIC int > > > xfs_open_devices( > > > - struct xfs_mount *mp, > > > - struct xfs_mount_args *args) > > > + struct xfs_mount *mp) > > > { > > > struct block_device *ddev = mp->m_super->s_bdev; > > > struct block_device *logdev = NULL, *rtdev = NULL; > > > @@ -703,14 +754,14 @@ xfs_open_devices( > > > /* > > > * Open real time and log devices - order is important. > > > */ > > > - if (args->logname[0]) { > > > - error = xfs_blkdev_get(mp, args->logname, &logdev); > > > + if (mp->m_logname) { > > > + error = xfs_blkdev_get(mp, mp->m_logname, &logdev); > > > if (error) > > > goto out; > > > } > > > > > > - if (args->rtname[0]) { > > > - error = xfs_blkdev_get(mp, args->rtname, &rtdev); > > > + if (mp->m_rtname) { > > > + error = xfs_blkdev_get(mp, mp->m_rtname, &rtdev); > > > if (error) > > > goto out_close_logdev; > > > > > > @@ -1411,175 +1462,28 @@ xfs_fs_setxquota( > > > > > > /* > > > * This function fills in xfs_mount_t fields based on mount args. > > > - * Note: the superblock has _not_ yet been read in. > > > - */ > > > -STATIC int > > > -xfs_start_flags( > > > - struct xfs_mount_args *ap, > > > - struct xfs_mount *mp) > > > -{ > > > - int error; > > > - > > > - /* Values are in BBs */ > > > - if ((ap->flags & XFSMNT_NOALIGN) != XFSMNT_NOALIGN) { > > > - /* > > > - * At this point the superblock has not been read > > > - * in, therefore we do not know the block size. > > > - * Before the mount call ends we will convert > > > - * these to FSBs. > > > - */ > > > - mp->m_dalign = ap->sunit; > > > - mp->m_swidth = ap->swidth; > > > - } > > > - > > > - if (ap->logbufs != -1 && > > > - ap->logbufs != 0 && > > > - (ap->logbufs < XLOG_MIN_ICLOGS || > > > - ap->logbufs > XLOG_MAX_ICLOGS)) { > > > - cmn_err(CE_WARN, > > > - "XFS: invalid logbufs value: %d [not %d-%d]", > > > - ap->logbufs, XLOG_MIN_ICLOGS, XLOG_MAX_ICLOGS); > > > - return XFS_ERROR(EINVAL); > > > - } > > > - mp->m_logbufs = ap->logbufs; > > > - if (ap->logbufsize != -1 && > > > - ap->logbufsize != 0 && > > > - (ap->logbufsize < XLOG_MIN_RECORD_BSIZE || > > > - ap->logbufsize > XLOG_MAX_RECORD_BSIZE || > > > - !is_power_of_2(ap->logbufsize))) { > > > - cmn_err(CE_WARN, > > > - "XFS: invalid logbufsize: %d [not 16k,32k,64k,128k or 256k]", > > > - ap->logbufsize); > > > - return XFS_ERROR(EINVAL); > > > - } > > > - > > > - error = ENOMEM; > > > - > > > - mp->m_logbsize = ap->logbufsize; > > > - mp->m_fsname_len = strlen(ap->fsname) + 1; > > > - > > > - mp->m_fsname = kstrdup(ap->fsname, GFP_KERNEL); > > > - if (!mp->m_fsname) > > > - goto out; > > > - > > > - if (ap->rtname[0]) { > > > - mp->m_rtname = kstrdup(ap->rtname, GFP_KERNEL); > > > - if (!mp->m_rtname) > > > - goto out_free_fsname; > > > - > > > - } > > > - > > > - if (ap->logname[0]) { > > > - mp->m_logname = kstrdup(ap->logname, GFP_KERNEL); > > > - if (!mp->m_logname) > > > - goto out_free_rtname; > > > - } > > > - > > > - if (ap->flags & XFSMNT_WSYNC) > > > - mp->m_flags |= XFS_MOUNT_WSYNC; > > > -#if XFS_BIG_INUMS > > > - if (ap->flags & XFSMNT_INO64) { > > > - mp->m_flags |= XFS_MOUNT_INO64; > > > - mp->m_inoadd = XFS_INO64_OFFSET; > > > - } > > > -#endif > > > - if (ap->flags & XFSMNT_RETERR) > > > - mp->m_flags |= XFS_MOUNT_RETERR; > > > - if (ap->flags & XFSMNT_NOALIGN) > > > - mp->m_flags |= XFS_MOUNT_NOALIGN; > > > - if (ap->flags & XFSMNT_SWALLOC) > > > - mp->m_flags |= XFS_MOUNT_SWALLOC; > > > - if (ap->flags & XFSMNT_OSYNCISOSYNC) > > > - mp->m_flags |= XFS_MOUNT_OSYNCISOSYNC; > > > - if (ap->flags & XFSMNT_32BITINODES) > > > - mp->m_flags |= XFS_MOUNT_32BITINODES; > > > - > > > - if (ap->flags & XFSMNT_IOSIZE) { > > > - if (ap->iosizelog > XFS_MAX_IO_LOG || > > > - ap->iosizelog < XFS_MIN_IO_LOG) { > > > - cmn_err(CE_WARN, > > > - "XFS: invalid log iosize: %d [not %d-%d]", > > > - ap->iosizelog, XFS_MIN_IO_LOG, > > > - XFS_MAX_IO_LOG); > > > - return XFS_ERROR(EINVAL); > > > - } > > > - > > > - mp->m_flags |= XFS_MOUNT_DFLT_IOSIZE; > > > - mp->m_readio_log = mp->m_writeio_log = ap->iosizelog; > > > - } > > > - > > > - if (ap->flags & XFSMNT_IKEEP) > > > - mp->m_flags |= XFS_MOUNT_IKEEP; > > > - if (ap->flags & XFSMNT_DIRSYNC) > > > - mp->m_flags |= XFS_MOUNT_DIRSYNC; > > > - if (ap->flags & XFSMNT_ATTR2) > > > - mp->m_flags |= XFS_MOUNT_ATTR2; > > > - if (ap->flags & XFSMNT_NOATTR2) > > > - mp->m_flags |= XFS_MOUNT_NOATTR2; > > > - > > > - if (ap->flags2 & XFSMNT2_COMPAT_IOSIZE) > > > - mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; > > > - > > > - /* > > > - * no recovery flag requires a read-only mount > > > - */ > > > - if (ap->flags & XFSMNT_NORECOVERY) { > > > - if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { > > > - cmn_err(CE_WARN, > > > - "XFS: tried to mount a FS read-write without recovery!"); > > > - return XFS_ERROR(EINVAL); > > > - } > > > - mp->m_flags |= XFS_MOUNT_NORECOVERY; > > > - } > > > - > > > - if (ap->flags & XFSMNT_NOUUID) > > > - mp->m_flags |= XFS_MOUNT_NOUUID; > > > - if (ap->flags & XFSMNT_BARRIER) > > > - mp->m_flags |= XFS_MOUNT_BARRIER; > > > - else > > > - mp->m_flags &= ~XFS_MOUNT_BARRIER; > > > - > > > - if (ap->flags2 & XFSMNT2_FILESTREAMS) > > > - mp->m_flags |= XFS_MOUNT_FILESTREAMS; > > > - > > > - if (ap->flags & XFSMNT_DMAPI) > > > - mp->m_flags |= XFS_MOUNT_DMAPI; > > > - return 0; > > > - > > > - > > > - out_free_rtname: > > > - kfree(mp->m_rtname); > > > - out_free_fsname: > > > - kfree(mp->m_fsname); > > > - out: > > > - return error; > > > -} > > > - > > > -/* > > > - * This function fills in xfs_mount_t fields based on mount args. > > > * Note: the superblock _has_ now been read in. > > > */ > > > STATIC int > > > xfs_finish_flags( > > > - struct xfs_mount_args *ap, > > > struct xfs_mount *mp) > > > { > > > int ronly = (mp->m_flags & XFS_MOUNT_RDONLY); > > > > > > /* Fail a mount where the logbuf is smaller then the log stripe */ > > > if (xfs_sb_version_haslogv2(&mp->m_sb)) { > > > - if ((ap->logbufsize <= 0) && > > > - (mp->m_sb.sb_logsunit > XLOG_BIG_RECORD_BSIZE)) { > > > + if (mp->m_logbsize <= 0 && > > > + mp->m_sb.sb_logsunit > XLOG_BIG_RECORD_BSIZE) { > > > mp->m_logbsize = mp->m_sb.sb_logsunit; > > > - } else if (ap->logbufsize > 0 && > > > - ap->logbufsize < mp->m_sb.sb_logsunit) { > > > + } else if (mp->m_logbsize > 0 && > > > + mp->m_logbsize < mp->m_sb.sb_logsunit) { > > > cmn_err(CE_WARN, > > > "XFS: logbuf size must be greater than or equal to log stripe size"); > > > return XFS_ERROR(EINVAL); > > > } > > > } else { > > > /* Fail a mount if the logbuf is larger than 32K */ > > > - if (ap->logbufsize > XLOG_BIG_RECORD_BSIZE) { > > > + if (mp->m_logbsize > XLOG_BIG_RECORD_BSIZE) { > > > cmn_err(CE_WARN, > > > "XFS: logbuf size for version 1 logs must be 16K or 32K"); > > > return XFS_ERROR(EINVAL); > > > @@ -1591,7 +1495,7 @@ xfs_finish_flags( > > > * told by noattr2 to turn it off > > > */ > > > if (xfs_sb_version_hasattr2(&mp->m_sb) && > > > - !(ap->flags & XFSMNT_NOATTR2)) > > > + !(mp->m_flags & XFS_MOUNT_NOATTR2)) > > > mp->m_flags |= XFS_MOUNT_ATTR2; > > > > > > /* > > > @@ -1603,6 +1507,7 @@ xfs_finish_flags( > > > return XFS_ERROR(EROFS); > > > } > > > > > > +#if 0 /* shared mounts were never supported on Linux */ > > > /* > > > * check for shared mount. > > > */ > > > @@ -1625,25 +1530,11 @@ xfs_finish_flags( > > > /* > > > * Shared XFS V0 can't deal with DMI. Return EINVAL. > > > */ > > > - if (mp->m_sb.sb_shared_vn == 0 && (ap->flags & XFSMNT_DMAPI)) > > > + if (mp->m_sb.sb_shared_vn == 0 && > > > + (mp->m_flags & XFS_MOUNT_DMAPI)) > > > return XFS_ERROR(EINVAL); > > > } > > > - > > > - if (ap->flags & XFSMNT_UQUOTA) { > > > - mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE); > > > - if (ap->flags & XFSMNT_UQUOTAENF) > > > - mp->m_qflags |= XFS_UQUOTA_ENFD; > > > - } > > > - > > > - if (ap->flags & XFSMNT_GQUOTA) { > > > - mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE); > > > - if (ap->flags & XFSMNT_GQUOTAENF) > > > - mp->m_qflags |= XFS_OQUOTA_ENFD; > > > - } else if (ap->flags & XFSMNT_PQUOTA) { > > > - mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE); > > > - if (ap->flags & XFSMNT_PQUOTAENF) > > > - mp->m_qflags |= XFS_OQUOTA_ENFD; > > > - } > > > +#endif > > > > > > return 0; > > > } > > > @@ -1656,16 +1547,12 @@ xfs_fs_fill_super( > > > { > > > struct inode *root; > > > struct xfs_mount *mp = NULL; > > > - struct xfs_mount_args *args; > > > int flags = 0, error = ENOMEM; > > > - > > > - args = xfs_args_allocate(sb, silent); > > > - if (!args) > > > - return -ENOMEM; > > > + char *mtpt = NULL; > > > > > > mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL); > > > if (!mp) > > > - goto out_free_args; > > > + goto out; > > > > > > spin_lock_init(&mp->m_sb_lock); > > > mutex_init(&mp->m_ilock); > > > @@ -1678,12 +1565,9 @@ xfs_fs_fill_super( > > > mp->m_super = sb; > > > sb->s_fs_info = mp; > > > > > > - if (sb->s_flags & MS_RDONLY) > > > - mp->m_flags |= XFS_MOUNT_RDONLY; > > > - > > > - error = xfs_parseargs(mp, (char *)data, args, 0); > > > + error = xfs_parseargs(mp, (char *)data, &mtpt); > > > if (error) > > > - goto out_free_mp; > > > + goto out_free_fsname; > > > > > > sb_min_blocksize(sb, BBSIZE); > > > sb->s_xattr = xfs_xattr_handlers; > > > @@ -1691,33 +1575,28 @@ xfs_fs_fill_super( > > > sb->s_qcop = &xfs_quotactl_operations; > > > sb->s_op = &xfs_super_operations; > > > > > > - error = xfs_dmops_get(mp, args); > > > + error = xfs_dmops_get(mp); > > > if (error) > > > - goto out_free_mp; > > > - error = xfs_qmops_get(mp, args); > > > + goto out_free_fsname; > > > + error = xfs_qmops_get(mp); > > > if (error) > > > goto out_put_dmops; > > > > > > - if (args->flags & XFSMNT_QUIET) > > > + if (silent) > > > flags |= XFS_MFSI_QUIET; > > > > > > - error = xfs_open_devices(mp, args); > > > + error = xfs_open_devices(mp); > > > if (error) > > > goto out_put_qmops; > > > > > > if (xfs_icsb_init_counters(mp)) > > > mp->m_flags |= XFS_MOUNT_NO_PERCPU_SB; > > > > > > - /* > > > - * Setup flags based on mount(2) options and then the superblock > > > - */ > > > - error = xfs_start_flags(args, mp); > > > - if (error) > > > - goto out_free_fsname; > > > error = xfs_readsb(mp, flags); > > > if (error) > > > - goto out_free_fsname; > > > - error = xfs_finish_flags(args, mp); > > > + goto out_destroy_counters; > > > + > > > + error = xfs_finish_flags(mp); > > > if (error) > > > goto out_free_sb; > > > > > > @@ -1736,7 +1615,7 @@ xfs_fs_fill_super( > > > if (error) > > > goto out_filestream_unmount; > > > > > > - XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, args->mtpt, args->fsname); > > > + XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, mtpt, mp->m_fsname); > > > > > > sb->s_dirt = 1; > > > sb->s_magic = XFS_SB_MAGIC; > > > @@ -1769,27 +1648,27 @@ xfs_fs_fill_super( > > > goto fail_vnrele; > > > } > > > > > > - xfs_itrace_exit(XFS_I(sb->s_root->d_inode)); > > > + kfree(mtpt); > > > > > > - kfree(args); > > > + xfs_itrace_exit(XFS_I(sb->s_root->d_inode)); > > > return 0; > > > > > > out_filestream_unmount: > > > xfs_filestream_unmount(mp); > > > out_free_sb: > > > xfs_freesb(mp); > > > - out_free_fsname: > > > - xfs_free_fsname(mp); > > > + out_destroy_counters: > > > xfs_icsb_destroy_counters(mp); > > > xfs_close_devices(mp); > > > out_put_qmops: > > > xfs_qmops_put(mp); > > > out_put_dmops: > > > xfs_dmops_put(mp); > > > - out_free_mp: > > > + out_free_fsname: > > > + xfs_free_fsname(mp); > > > + kfree(mtpt); > > > kfree(mp); > > > - out_free_args: > > > - kfree(args); > > > + out: > > > return -error; > > > > > > fail_vnrele: > > > Index: linux-2.6-xfs/fs/xfs/xfs_clnt.h > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/xfs_clnt.h 2008-05-25 16:23:44.000000000 +0200 > > > +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 > > > @@ -1,105 +0,0 @@ > > > -/* > > > - * Copyright (c) 2000-2005 Silicon Graphics, Inc. > > > - * All Rights Reserved. > > > - * > > > - * This program is free software; you can redistribute it and/or > > > - * modify it under the terms of the GNU General Public License as > > > - * published by the Free Software Foundation. > > > - * > > > - * This program is distributed in the hope that it would be useful, > > > - * but WITHOUT ANY WARRANTY; without even the implied warranty of > > > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > > - * GNU General Public License for more details. > > > - * > > > - * You should have received a copy of the GNU General Public License > > > - * along with this program; if not, write the Free Software Foundation, > > > - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > > > - */ > > > -#ifndef __XFS_CLNT_H__ > > > -#define __XFS_CLNT_H__ > > > - > > > -/* > > > - * XFS arguments structure, constructed from the arguments we > > > - * are passed via the mount system call. > > > - * > > > - * NOTE: The mount system call is handled differently between > > > - * Linux and IRIX. In IRIX we worked work with a binary data > > > - * structure coming in across the syscall interface from user > > > - * space (the mount userspace knows about each filesystem type > > > - * and the set of valid options for it, and converts the users > > > - * argument string into a binary structure _before_ making the > > > - * system call), and the ABI issues that this implies. > > > - * > > > - * In Linux, we are passed a comma separated set of options; > > > - * ie. a NULL terminated string of characters. Userspace mount > > > - * code does not have any knowledge of mount options expected by > > > - * each filesystem type and so each filesystem parses its mount > > > - * options in kernel space. > > > - * > > > - * For the Linux port, we kept this structure pretty much intact > > > - * and use it internally (because the existing code groks it). > > > - */ > > > -struct xfs_mount_args { > > > - int flags; /* flags -> see XFSMNT_... macros below */ > > > - int flags2; /* flags -> see XFSMNT2_... macros below */ > > > - int logbufs; /* Number of log buffers, -1 to default */ > > > - int logbufsize; /* Size of log buffers, -1 to default */ > > > - char fsname[MAXNAMELEN+1]; /* data device name */ > > > - char rtname[MAXNAMELEN+1]; /* realtime device filename */ > > > - char logname[MAXNAMELEN+1]; /* journal device filename */ > > > - char mtpt[MAXNAMELEN+1]; /* filesystem mount point */ > > > - int sunit; /* stripe unit (BBs) */ > > > - int swidth; /* stripe width (BBs), multiple of sunit */ > > > - uchar_t iosizelog; /* log2 of the preferred I/O size */ > > > - int ihashsize; /* inode hash table size (buckets) */ > > > -}; > > > - > > > -/* > > > - * XFS mount option flags -- args->flags1 > > > - */ > > > -#define XFSMNT_ATTR2 0x00000001 /* allow ATTR2 EA format */ > > > -#define XFSMNT_WSYNC 0x00000002 /* safe mode nfs mount > > > - * compatible */ > > > -#define XFSMNT_INO64 0x00000004 /* move inode numbers up > > > - * past 2^32 */ > > > -#define XFSMNT_UQUOTA 0x00000008 /* user quota accounting */ > > > -#define XFSMNT_PQUOTA 0x00000010 /* IRIX prj quota accounting */ > > > -#define XFSMNT_UQUOTAENF 0x00000020 /* user quota limit > > > - * enforcement */ > > > -#define XFSMNT_PQUOTAENF 0x00000040 /* IRIX project quota limit > > > - * enforcement */ > > > -#define XFSMNT_QUIET 0x00000080 /* don't report mount errors */ > > > -#define XFSMNT_NOALIGN 0x00000200 /* don't allocate at > > > - * stripe boundaries*/ > > > -#define XFSMNT_RETERR 0x00000400 /* return error to user */ > > > -#define XFSMNT_NORECOVERY 0x00000800 /* no recovery, implies > > > - * read-only mount */ > > > -#define XFSMNT_SHARED 0x00001000 /* shared XFS mount */ > > > -#define XFSMNT_IOSIZE 0x00002000 /* optimize for I/O size */ > > > -#define XFSMNT_OSYNCISOSYNC 0x00004000 /* o_sync is REALLY o_sync */ > > > - /* (osyncisdsync is default) */ > > > -#define XFSMNT_NOATTR2 0x00008000 /* turn off ATTR2 EA format */ > > > -#define XFSMNT_32BITINODES 0x00200000 /* restrict inodes to 32 > > > - * bits of address space */ > > > -#define XFSMNT_GQUOTA 0x00400000 /* group quota accounting */ > > > -#define XFSMNT_GQUOTAENF 0x00800000 /* group quota limit > > > - * enforcement */ > > > -#define XFSMNT_NOUUID 0x01000000 /* Ignore fs uuid */ > > > -#define XFSMNT_DMAPI 0x02000000 /* enable dmapi/xdsm */ > > > -#define XFSMNT_BARRIER 0x04000000 /* use write barriers */ > > > -#define XFSMNT_IKEEP 0x08000000 /* inode cluster delete */ > > > -#define XFSMNT_SWALLOC 0x10000000 /* turn on stripe width > > > - * allocation */ > > > -#define XFSMNT_DIRSYNC 0x40000000 /* sync creat,link,unlink,rename > > > - * symlink,mkdir,rmdir,mknod */ > > > -#define XFSMNT_FLAGS2 0x80000000 /* more flags set in flags2 */ > > > - > > > -/* > > > - * XFS mount option flags -- args->flags2 > > > - */ > > > -#define XFSMNT2_COMPAT_IOSIZE 0x00000001 /* don't report large preferred > > > - * I/O size in stat(2) */ > > > -#define XFSMNT2_FILESTREAMS 0x00000002 /* enable the filestreams > > > - * allocator */ > > > - > > > -#endif /* __XFS_CLNT_H__ */ > > > Index: linux-2.6-xfs/fs/xfs/xfs_dmops.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/xfs_dmops.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/xfs_dmops.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -25,7 +25,6 @@ > > > #include "xfs_inum.h" > > > #include "xfs_ag.h" > > > #include "xfs_mount.h" > > > -#include "xfs_clnt.h" > > > > > > > > > static struct xfs_dmops xfs_dmcore_stub = { > > > @@ -38,9 +37,9 @@ static struct xfs_dmops xfs_dmcore_stub > > > }; > > > > > > int > > > -xfs_dmops_get(struct xfs_mount *mp, struct xfs_mount_args *args) > > > +xfs_dmops_get(struct xfs_mount *mp) > > > { > > > - if (args->flags & XFSMNT_DMAPI) { > > > + if (mp->m_flags & XFS_MOUNT_DMAPI) { > > > struct xfs_dmops *ops; > > > > > > ops = symbol_get(xfs_dmcore_xfs); > > > Index: linux-2.6-xfs/fs/xfs/xfs_mount.h > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-05-25 16:23:58.000000000 +0200 > > > @@ -540,9 +540,9 @@ extern void xfs_sb_from_disk(struct xfs_ > > > extern void xfs_sb_to_disk(struct xfs_dsb *, struct xfs_sb *, __int64_t); > > > extern int xfs_sb_validate_fsb_count(struct xfs_sb *, __uint64_t); > > > > > > -extern int xfs_dmops_get(struct xfs_mount *, struct xfs_mount_args *); > > > +extern int xfs_dmops_get(struct xfs_mount *); > > > extern void xfs_dmops_put(struct xfs_mount *); > > > -extern int xfs_qmops_get(struct xfs_mount *, struct xfs_mount_args *); > > > +extern int xfs_qmops_get(struct xfs_mount *); > > > extern void xfs_qmops_put(struct xfs_mount *); > > > > > > extern struct xfs_dmops xfs_dmcore_xfs; > > > Index: linux-2.6-xfs/fs/xfs/xfs_qmops.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/xfs_qmops.c 2008-05-25 16:23:45.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/xfs_qmops.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -28,7 +28,6 @@ > > > #include "xfs_mount.h" > > > #include "xfs_quota.h" > > > #include "xfs_error.h" > > > -#include "xfs_clnt.h" > > > > > > > > > STATIC struct xfs_dquot * > > > @@ -131,9 +130,11 @@ static struct xfs_qmops xfs_qmcore_stub > > > }; > > > > > > int > > > -xfs_qmops_get(struct xfs_mount *mp, struct xfs_mount_args *args) > > > +xfs_qmops_get(struct xfs_mount *mp) > > > { > > > - if (args->flags & (XFSMNT_UQUOTA | XFSMNT_PQUOTA | XFSMNT_GQUOTA)) { > > > + if (mp->m_qflags & (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | > > > + XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | > > > + XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE)) { > > > struct xfs_qmops *ops; > > > > > > ops = symbol_get(xfs_qmcore_xfs); > > > Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -49,7 +49,6 @@ > > > #include "xfs_extfree_item.h" > > > #include "xfs_acl.h" > > > #include "xfs_attr.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_mru_cache.h" > > > #include "xfs_filestream.h" > > > #include "xfs_fsops.h" > > > Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -21,7 +21,6 @@ > > > #include "xfs_bit.h" > > > #include "xfs_log.h" > > > #include "xfs_inum.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_trans.h" > > > #include "xfs_sb.h" > > > #include "xfs_ag.h" > > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -22,7 +22,6 @@ > > > #include "xfs_log.h" > > > #include "xfs_imap.h" > > > #include "xfs_inum.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_trans.h" > > > #include "xfs_sb.h" > > > #include "xfs_ag.h" > > > Index: linux-2.6-xfs/fs/xfs/quota/xfs_qm.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/quota/xfs_qm.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/quota/xfs_qm.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -20,7 +20,6 @@ > > > #include "xfs_bit.h" > > > #include "xfs_log.h" > > > #include "xfs_inum.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_trans.h" > > > #include "xfs_sb.h" > > > #include "xfs_ag.h" > > > Index: linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/quota/xfs_qm_bhv.c 2008-05-25 16:23:44.000000000 +0200 > > > +++ linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c 2008-05-25 16:23:58.000000000 +0200 > > > @@ -20,7 +20,6 @@ > > > #include "xfs_bit.h" > > > #include "xfs_log.h" > > > #include "xfs_inum.h" > > > -#include "xfs_clnt.h" > > > #include "xfs_trans.h" > > > #include "xfs_sb.h" > > > #include "xfs_ag.h" > > ---end quoted text--- > ---end quoted text--- ---end quoted text--- From owner-xfs@oss.sgi.com Sat Oct 18 05:34:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ICYg0v015204 for ; Sat, 18 Oct 2008 05:34:43 -0700 X-ASG-Debug-ID: 1224333385-4d75038a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 36E7C130E53F for ; Sat, 18 Oct 2008 05:36:26 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id k3nMZkMxoUk72Jfi for ; Sat, 18 Oct 2008 05:36:26 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9ICaNIF025440 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sat, 18 Oct 2008 14:36:24 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9ICaNR4025431 for xfs@oss.sgi.com; Sat, 18 Oct 2008 14:36:23 +0200 Date: Sat, 18 Oct 2008 14:36:23 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] trivial xfs_remove comment fixup Subject: Re: [PATCH] trivial xfs_remove comment fixup Message-ID: <20081018123623.GB25304@lst.de> References: <20080807215849.GA11345@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080807215849.GA11345@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224333387 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8212 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ping? This is just a trivial comment fixup, shouldn't be that hard to review.. On Thu, Aug 07, 2008 at 11:58:49PM +0200, Christoph Hellwig wrote: > The dp to ip comment should be for the unconditional xfs_droplink > call, and the "." link obviously only exists for directories, > so it should be in the is_dir conditional. > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-08-06 17:26:37.000000000 -0300 > +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-08-06 17:36:44.000000000 -0300 > @@ -2014,7 +2014,7 @@ xfs_remove( > goto out_bmap_cancel; > > /* > - * Drop the link from dp to ip. > + * Drop the "." link from ip to self. > */ > error = xfs_droplink(tp, ip); > if (error) > @@ -2029,7 +2029,7 @@ xfs_remove( > } > > /* > - * Drop the "." link from ip to self. > + * Drop the link from dp to ip. > */ > error = xfs_droplink(tp, ip); > if (error) ---end quoted text--- From owner-xfs@oss.sgi.com Sat Oct 18 05:35:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ICZw5U015499 for ; Sat, 18 Oct 2008 05:35:58 -0700 X-ASG-Debug-ID: 1224333461-4dd303a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7ECF0130E559 for ; Sat, 18 Oct 2008 05:37:41 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id 3PDCG5WDZk1N2kgm for ; Sat, 18 Oct 2008 05:37:41 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9ICbdIF025510 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Sat, 18 Oct 2008 14:37:39 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9ICbdwh025508 for xfs@oss.sgi.com; Sat, 18 Oct 2008 14:37:39 +0200 Date: Sat, 18 Oct 2008 14:37:39 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] use proper mnt_want_write calls for handle ioctls Subject: Re: [PATCH] use proper mnt_want_write calls for handle ioctls Message-ID: <20081018123739.GC25304@lst.de> References: <20080814203952.GB18704@lst.de> <20080912084431.GA22641@lst.de> <20080929074234.GA23785@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080929074234.GA23785@lst.de> User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224333462 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8212 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ping again. As said before this could cause filesystem corruption with the SGI tree, and it's always been correct in mainline there shouldn't be any reason to delay it. On Mon, Sep 29, 2008 at 09:42:34AM +0200, Christoph Hellwig wrote: > ping^2? > > On Fri, Sep 12, 2008 at 10:44:31AM +0200, Christoph Hellwig wrote: > > ping? Without this patch the CVS tree won't properly work with > > read-only bind mounts. > > > > On Thu, Aug 14, 2008 at 10:39:52PM +0200, Christoph Hellwig wrote: > > > Since 2.6.26 all writes to filesystems need to be enclosed by a > > > mnt_want_write / mnt_drop_write pair instead of checking for IS_RDONLY. > > > > > > XFs was updated for this in mainline but the changes to xfs_ioctl.c > > > were never megred back into the CVS tree. > > > > > > The original commit introducing this was: > > > > > > commit 42a74f206b914db13ee1f5ae932dcd91a77c8579 > > > Author: Dave Hansen > > > Date: Fri Feb 15 14:37:46 2008 -0800 > > > > > > [PATCH] r/o bind mounts: elevate write count for ioctls() > > > > > > Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c > > > =================================================================== > > > --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-08-14 14:54:53.000000000 -0300 > > > +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-08-14 15:15:49.000000000 -0300 > > > @@ -543,8 +543,6 @@ xfs_attrmulti_attr_set( > > > char *kbuf; > > > int error = EFAULT; > > > > > > - if (IS_RDONLY(inode)) > > > - return -EROFS; > > > if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) > > > return EPERM; > > > if (len > XATTR_SIZE_MAX) > > > @@ -570,8 +568,6 @@ xfs_attrmulti_attr_remove( > > > char *name, > > > __uint32_t flags) > > > { > > > - if (IS_RDONLY(inode)) > > > - return -EROFS; > > > if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) > > > return EPERM; > > > return xfs_attr_remove(XFS_I(inode), name, flags); > > > @@ -581,6 +577,7 @@ STATIC int > > > xfs_attrmulti_by_handle( > > > xfs_mount_t *mp, > > > void __user *arg, > > > + struct file *parfilp, > > > struct inode *parinode) > > > { > > > int error; > > > @@ -634,13 +631,21 @@ xfs_attrmulti_by_handle( > > > &ops[i].am_length, ops[i].am_flags); > > > break; > > > case ATTR_OP_SET: > > > + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); > > > + if (ops[i].am_error) > > > + break; > > > ops[i].am_error = xfs_attrmulti_attr_set(inode, > > > attr_name, ops[i].am_attrvalue, > > > ops[i].am_length, ops[i].am_flags); > > > + mnt_drop_write(parfilp->f_path.mnt); > > > break; > > > case ATTR_OP_REMOVE: > > > + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); > > > + if (ops[i].am_error) > > > + break; > > > ops[i].am_error = xfs_attrmulti_attr_remove(inode, > > > attr_name, ops[i].am_flags); > > > + mnt_drop_write(parfilp->f_path.mnt); > > > break; > > > default: > > > ops[i].am_error = EINVAL; > > > @@ -1431,7 +1436,7 @@ xfs_ioctl( > > > return xfs_attrlist_by_handle(mp, arg, inode); > > > > > > case XFS_IOC_ATTRMULTI_BY_HANDLE: > > > - return xfs_attrmulti_by_handle(mp, arg, inode); > > > + return xfs_attrmulti_by_handle(mp, arg, filp, inode); > > > > > > case XFS_IOC_SWAPEXT: { > > > error = xfs_swapext((struct xfs_swapext __user *)arg); > > ---end quoted text--- > ---end quoted text--- ---end quoted text--- From owner-xfs@oss.sgi.com Sat Oct 18 07:47:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9IElGGM027186 for ; Sat, 18 Oct 2008 07:47:16 -0700 X-ASG-Debug-ID: 1224341339-3fa502620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8839610AC427 for ; Sat, 18 Oct 2008 07:48:59 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id wNZC16x0VAtSDRfZ for ; Sat, 18 Oct 2008 07:48:59 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 3038FAC358C; Sat, 18 Oct 2008 09:48:58 -0500 (CDT) Message-ID: <48F9F759.5070602@sandeen.net> Date: Sat, 18 Oct 2008 09:48:57 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Martin Michlmayr CC: Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> In-Reply-To: <20081018085752.GS25834@deprecation.cyrius.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224341340 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8217 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Martin Michlmayr wrote: > * Eric Sandeen [2008-10-17 09:15]: >> Do you know what cachepolicy you're booted with? If it's writeallocate, >> you might try cachepolicy=writeback, otherwise try cachepolicy=uncached >> (which will be horribly slow) and see if the problem goes away or not; >> it'd be a clue. > > I just tried with cachepolicy=writeback and cachepolicy=uncached but I > get the same problem. Oh, wow. This sounds like a new problem then; not a cache problem, and not an alignment problem... hrm. I'll try to think of something else to try. Thanks, -Eric From owner-xfs@oss.sgi.com Sat Oct 18 12:45:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00, RCVD_IN_BL_SPAMCOP_NET autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9IJjpZU001354 for ; Sat, 18 Oct 2008 12:45:51 -0700 X-ASG-Debug-ID: 1224359251-13d302770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ug-out-1314.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A8D7C10D3B33 for ; Sat, 18 Oct 2008 12:47:32 -0700 (PDT) Received: from ug-out-1314.google.com (ug-out-1314.google.com [66.249.92.175]) by cuda.sgi.com with ESMTP id PW6uZrMvT238x0q8 for ; Sat, 18 Oct 2008 12:47:32 -0700 (PDT) Received: by ug-out-1314.google.com with SMTP id k3so306894ugf.9 for ; Sat, 18 Oct 2008 12:47:31 -0700 (PDT) Received: by 10.210.141.4 with SMTP id o4mr6325723ebd.177.1224359250943; Sat, 18 Oct 2008 12:47:30 -0700 (PDT) Received: from localhost.localdomain (mm-126-151-57-86.adsl.mgts.by [86.57.151.126]) by mx.google.com with ESMTPS id q9sm5983742gve.9.2008.10.18.12.47.28 (version=SSLv3 cipher=RC4-MD5); Sat, 18 Oct 2008 12:47:30 -0700 (PDT) Date: Sat, 18 Oct 2008 22:48:53 +0300 From: "Kirill A. Shutemov" To: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081018194851.GA2083@localhost.localdomain> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <20081017094615.GT4504@soziologie.ch> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ikeVEW9yuYc//A+q" Content-Disposition: inline In-Reply-To: <20081017094615.GT4504@soziologie.ch> User-Agent: Mutt/1.5.18 (2008-05-29) X-Barracuda-Connect: ug-out-1314.google.com[66.249.92.175] X-Barracuda-Start-Time: 1224359254 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --ikeVEW9yuYc//A+q Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Oct 17, 2008 at 11:46:15AM +0200, Gaudenz Steinlin wrote: > On Fri, Oct 17, 2008 at 09:01:09AM +0200, Martin Michlmayr wrote: > > * Eric Sandeen [2008-10-16 17:13]: > > > So is this a regression? did it used to work? If so, when? :) > >=20 > > The original report was with 2.6.18 but that was with the old ABI: > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D423562 > > I just installed a 2.6.22 kernel with EABI and I can also trigger > > the bug. So it's not a (recent) regression. >=20 > As far as I can remember (I only used old ABI arm) this is not a=20 > regression. XFS never worked on arm for me. You are wrong.=20 Our team have experience with XFS on ARM OABI on NAS. It worked fine on 2.6.12, but got broken on 2.6.17. http://oss.sgi.com/bugzilla/show_bug.cgi?id=3D712 --=20 Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/ --ikeVEW9yuYc//A+q Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkj6PaMACgkQbWYnhzC5v6r+NQCeNIhqvLMHizWqy2JUmZ0DHRqE 4OMAn0fGG3BBlfoOjv75tZwHdlLmmxeT =6Tsu -----END PGP SIGNATURE----- --ikeVEW9yuYc//A+q-- From owner-xfs@oss.sgi.com Sat Oct 18 13:08:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9IK8Srs003510 for ; Sat, 18 Oct 2008 13:08:29 -0700 X-ASG-Debug-ID: 1224360612-58d900200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1E151075C2B for ; Sat, 18 Oct 2008 13:10:12 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id dy2vGrDrVdFNirIe for ; Sat, 18 Oct 2008 13:10:12 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KrI7H-0004WG-85; Sat, 18 Oct 2008 20:09:39 +0000 Date: Sat, 18 Oct 2008 16:09:39 -0400 From: Christoph Hellwig To: "Kirill A. Shutemov" Cc: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081018200939.GA3779@infradead.org> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <20081017094615.GT4504@soziologie.ch> <20081018194851.GA2083@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081018194851.GA2083@localhost.localdomain> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224360612 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8229 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 18, 2008 at 10:48:53PM +0300, Kirill A. Shutemov wrote: > Our team have experience with XFS on ARM OABI on NAS. It worked fine on > 2.6.12, but got broken on 2.6.17. So any chance to bisect it down to at least a kernel release where it stopped working? From owner-xfs@oss.sgi.com Sat Oct 18 13:14:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00, RCVD_IN_BL_SPAMCOP_NET autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9IKErqJ004377 for ; Sat, 18 Oct 2008 13:14:53 -0700 X-ASG-Debug-ID: 1224360996-4a5b00bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nf-out-0910.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3F5EAC4213 for ; Sat, 18 Oct 2008 13:16:36 -0700 (PDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.188]) by cuda.sgi.com with ESMTP id yggZl6PlWBFALXPU for ; Sat, 18 Oct 2008 13:16:36 -0700 (PDT) Received: by nf-out-0910.google.com with SMTP id h3so519746nfh.42 for ; Sat, 18 Oct 2008 13:16:35 -0700 (PDT) Received: by 10.210.49.7 with SMTP id w7mr1042885ebw.140.1224360995683; Sat, 18 Oct 2008 13:16:35 -0700 (PDT) Received: from localhost.localdomain (mm-126-151-57-86.adsl.mgts.by [86.57.151.126]) by mx.google.com with ESMTPS id j8sm11072720gvb.1.2008.10.18.13.16.28 (version=SSLv3 cipher=RC4-MD5); Sat, 18 Oct 2008 13:16:34 -0700 (PDT) Date: Sat, 18 Oct 2008 23:17:50 +0300 From: "Kirill A. Shutemov" To: Christoph Hellwig Cc: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081018201747.GB2083@localhost.localdomain> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <20081017094615.GT4504@soziologie.ch> <20081018194851.GA2083@localhost.localdomain> <20081018200939.GA3779@infradead.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3lcZGd9BuhuYXNfi" Content-Disposition: inline In-Reply-To: <20081018200939.GA3779@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-29) X-Barracuda-Connect: nf-out-0910.google.com[64.233.182.188] X-Barracuda-Start-Time: 1224360997 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8230 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --3lcZGd9BuhuYXNfi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Oct 18, 2008 at 04:09:39PM -0400, Christoph Hellwig wrote: > On Sat, Oct 18, 2008 at 10:48:53PM +0300, Kirill A. Shutemov wrote: > > Our team have experience with XFS on ARM OABI on NAS. It worked fine on > > 2.6.12, but got broken on 2.6.17. >=20 > So any chance to bisect it down to at least a kernel release where it > stopped working? I'll try to do it. --=20 Regards, Kirill A. Shutemov + Belarus, Minsk + ALT Linux Team, http://www.altlinux.com/ --3lcZGd9BuhuYXNfi Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkj6RGsACgkQbWYnhzC5v6oP+gCdG37HnYwqMJVvr6tMSa+N02WD EW8An2Ep/FRKxSb9D57ZjV+wUvf81gyI =iSPt -----END PGP SIGNATURE----- --3lcZGd9BuhuYXNfi-- From owner-xfs@oss.sgi.com Sat Oct 18 16:26:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9INQBqo026682 for ; Sat, 18 Oct 2008 16:26:11 -0700 X-ASG-Debug-ID: 1224372474-553c00ee0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 96831AC4C8A for ; Sat, 18 Oct 2008 16:27:55 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id bXYgKhBBkYH0YhuC for ; Sat, 18 Oct 2008 16:27:55 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id F34BC1A479B; Sat, 18 Oct 2008 19:27:53 -0400 (EDT) Date: Sat, 18 Oct 2008 19:27:53 -0400 (EDT) From: Justin Piszcz To: xfs@oss.sgi.com X-ASG-Orig-Subj: kernel 2.6.27.2 (32bit) filesystem is read-only Subject: kernel 2.6.27.2 (32bit) filesystem is read-only Message-ID: User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1224372475 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- all 2.6.26.x kernels work ok, make oldconfig on 2.6.27.2, filesystem mounted read-only at boot booted back to 2.6.26.x, back to normal barriers are on by default (single disk system) From owner-xfs@oss.sgi.com Sat Oct 18 18:18:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J1INEa004878 for ; Sat, 18 Oct 2008 18:18:24 -0700 X-ASG-Debug-ID: 1224379204-33fb02b60000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ciao.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 295E81430574 for ; Sat, 18 Oct 2008 18:20:04 -0700 (PDT) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by cuda.sgi.com with ESMTP id U36f3DNqyMyWRIEP for ; Sat, 18 Oct 2008 18:20:04 -0700 (PDT) Received: from root by ciao.gmane.org with local (Exim 4.43) id 1KrMxe-0002Mm-DX for linux-xfs@oss.sgi.com; Sun, 19 Oct 2008 01:20:02 +0000 Received: from 75-134-105-39.dhcp.aldl.mi.charter.com ([75.134.105.39]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 19 Oct 2008 01:20:02 +0000 Received: from mlueck by 75-134-105-39.dhcp.aldl.mi.charter.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 19 Oct 2008 01:20:02 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Michael Lueck X-ASG-Orig-Subj: Bad day with xfsrestore, what went wrong? Subject: Bad day with xfsrestore, what went wrong? Date: Sat, 18 Oct 2008 21:13:36 -0400 Organization: Lueck Data Systems Lines: 23 Message-ID: Reply-To: mlueck@lueckdatasystems.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 75-134-105-39.dhcp.aldl.mi.charter.com User-Agent: Thunderbird 2.0.0.16 (X11/20080707) Sender: news X-Barracuda-Connect: main.gmane.org[80.91.229.2] X-Barracuda-Start-Time: 1224379206 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0091 1.0000 -1.9614 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.96 X-Barracuda-Spam-Status: No, SCORE=-1.96 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8248 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Greetings- I hope this is the NNTP equiv of the email list found on this web page: http://oss.sgi.com/projects/xfs/ I have been using XFS with Debian for a number of years with great success. Today, xfsrestore really threw me a curve ball. I am wondering what went wrong. I had wanted to restore from an old backup some directories that I discovered I had need of. I used the following syntax to get the restore started: xfsrestore -J -E -f /mnt/ext_backup/ldslnx01/20061220/data -s shares/data -i -v verbose /srv I selected some directories to restore through the interactive interface, then allowed it to restore the specified files. What it ended up doing, HOWEVER, was to restore every file present in that old backup that was no longer on disk! Thus, what went wrong? Thanks! -- Michael Lueck Lueck Data Systems http://www.lueckdatasystems.com/ From owner-xfs@oss.sgi.com Sat Oct 18 18:22:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J1MWVU005411 for ; Sat, 18 Oct 2008 18:22:32 -0700 X-ASG-Debug-ID: 1224379454-162e022f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 47977AC4F5E for ; Sat, 18 Oct 2008 18:24:14 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id AzFNoX266PY3Nui9 for ; Sat, 18 Oct 2008 18:24:14 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id D8E94AC358C; Sat, 18 Oct 2008 20:24:13 -0500 (CDT) Message-ID: <48FA8C3D.5090202@sandeen.net> Date: Sat, 18 Oct 2008 20:24:13 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Justin Piszcz CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel 2.6.27.2 (32bit) filesystem is read-only Subject: Re: kernel 2.6.27.2 (32bit) filesystem is read-only References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224379456 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8247 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Justin Piszcz wrote: > all 2.6.26.x kernels work ok, > make oldconfig on 2.6.27.2, filesystem mounted read-only at boot > booted back to 2.6.26.x, back to normal > barriers are on by default (single disk system) > > You'll need: http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=blob;f=review-2.6.27/xfs-fix-remount-rw-with-unrecognized-options.patch;h=4f93cbab85eb4c3b097065da3e13878d499b0d5a;hb=HEAD s/b in 2.6.27.3 (pity it took 3 -stable releases, though) -Eric From owner-xfs@oss.sgi.com Sat Oct 18 18:46:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J1kx2B007490 for ; Sat, 18 Oct 2008 18:46:59 -0700 X-ASG-Debug-ID: 1224380922-3c2000790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91174AC4F1B for ; Sat, 18 Oct 2008 18:48:42 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id eM8CtGR82tT15PVV for ; Sat, 18 Oct 2008 18:48:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmEDACYv+kh5LF1jiGdsb2JhbACTbQEBARUirGODbA X-IronPort-AV: E=Sophos;i="4.33,441,1220193000"; d="scan'208";a="233925834" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 19 Oct 2008 12:18:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KrNPC-0007sG-My; Sun, 19 Oct 2008 12:48:30 +1100 Date: Sun, 19 Oct 2008 12:48:30 +1100 From: Dave Chinner To: Martin Michlmayr Cc: Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081019014830.GI31761@disturbed> Mail-Followup-To: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081018085752.GS25834@deprecation.cyrius.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224380923 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8248 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 18, 2008 at 10:57:56AM +0200, Martin Michlmayr wrote: > * Eric Sandeen [2008-10-17 09:15]: > > If you unmount & remount, does the ls work then? > > I cannot even mount it: > > debian:~# mkfs.xfs -f /dev/sda5 > meta-data=/dev/sda5 isize=256 agcount=4, agsize=94380 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=377519, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 > log =internal log bsize=4096 blocks=2560, version=2 > = sectsz=512 sunit=0 blks, lazy-count=0 > realtime =none extsz=4096 blocks=0, rtextents=0 > debian:~# mount /dev/sda5 /mnt > [42949596.920000] XFS mounting filesystem sda5 > debian:~# cp /usr/bin/* /mnt/ > debian:~# umount /mnt > debian:~# mount -t xfs /dev/sda5 /mnt > [42949612.290000] XFS mounting filesystem sda5 > [42949612.460000] Starting XFS recovery on filesystem: sda5 (logdev: internal) > [42949612.480000] XFS: xlog_recover_process_data: bad flag > [42949612.500000] XFS: log mount/recovery failed: error 5 > [42949612.500000] XFS: log mount failed > mount: /dev/sda5: can't read superblock > debian:~# That's the log replay indicating that there's a bad transaction header in the log. Very strange - it shoul dbe a clean log. What does xfs_logprint -t /dev/sda5 tell you about the transactions in the log? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sat Oct 18 20:05:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J353f6014411 for ; Sat, 18 Oct 2008 20:05:04 -0700 X-ASG-Debug-ID: 1224385607-7d7303680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 70E221430CAD for ; Sat, 18 Oct 2008 20:06:47 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id DcXkjaaKl5CczIgO for ; Sat, 18 Oct 2008 20:06:47 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 118EBAC358C; Sat, 18 Oct 2008 22:06:46 -0500 (CDT) Message-ID: <48FAA445.9050800@sandeen.net> Date: Sat, 18 Oct 2008 22:06:45 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Martin Michlmayr , Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> <20081019014830.GI31761@disturbed> In-Reply-To: <20081019014830.GI31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224385608 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8251 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > On Sat, Oct 18, 2008 at 10:57:56AM +0200, Martin Michlmayr wrote: >> * Eric Sandeen [2008-10-17 09:15]: >>> If you unmount & remount, does the ls work then? >> I cannot even mount it: >> >> debian:~# mkfs.xfs -f /dev/sda5 >> meta-data=/dev/sda5 isize=256 agcount=4, agsize=94380 blks >> = sectsz=512 attr=2 >> data = bsize=4096 blocks=377519, imaxpct=25 >> = sunit=0 swidth=0 blks >> naming =version 2 bsize=4096 >> log =internal log bsize=4096 blocks=2560, version=2 >> = sectsz=512 sunit=0 blks, lazy-count=0 >> realtime =none extsz=4096 blocks=0, rtextents=0 >> debian:~# mount /dev/sda5 /mnt >> [42949596.920000] XFS mounting filesystem sda5 >> debian:~# cp /usr/bin/* /mnt/ >> debian:~# umount /mnt >> debian:~# mount -t xfs /dev/sda5 /mnt >> [42949612.290000] XFS mounting filesystem sda5 >> [42949612.460000] Starting XFS recovery on filesystem: sda5 (logdev: internal) >> [42949612.480000] XFS: xlog_recover_process_data: bad flag >> [42949612.500000] XFS: log mount/recovery failed: error 5 >> [42949612.500000] XFS: log mount failed >> mount: /dev/sda5: can't read superblock >> debian:~# > > That's the log replay indicating that there's a bad transaction > header in the log. Very strange - it shoul dbe a clean log. What > does xfs_logprint -t /dev/sda5 tell you about the transactions > in the log? This is probably the vmap cache aliasing problem that we paid a bit of attention to a few months ago, no? -Eric From owner-xfs@oss.sgi.com Sat Oct 18 22:11:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J5BFAB028274 for ; Sat, 18 Oct 2008 22:11:15 -0700 X-ASG-Debug-ID: 1224393178-774902690000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sorrow.cyrius.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C6F33515701 for ; Sat, 18 Oct 2008 22:12:58 -0700 (PDT) Received: from sorrow.cyrius.com (sorrow.cyrius.com [65.19.161.204]) by cuda.sgi.com with ESMTP id 4J8rvYGzQ45vjoB1 for ; Sat, 18 Oct 2008 22:12:58 -0700 (PDT) Received: by sorrow.cyrius.com (Postfix, from userid 10) id 6A014D857; Sun, 19 Oct 2008 05:12:57 +0000 (UTC) Received: by deprecation.cyrius.com (Postfix, from userid 1000) id 5CD88150B63; Sun, 19 Oct 2008 07:12:47 +0200 (CEST) Date: Sun, 19 Oct 2008 07:12:47 +0200 From: Martin Michlmayr To: Eric Sandeen , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081019051247.GD9598@deprecation.cyrius.com> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> <20081019014830.GI31761@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081019014830.GI31761@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: sorrow.cyrius.com[65.19.161.204] X-Barracuda-Start-Time: 1224393179 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8255 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- * Dave Chinner [2008-10-19 12:48]: > That's the log replay indicating that there's a bad transaction > header in the log. Very strange - it shoul dbe a clean log. What > does xfs_logprint -t /dev/sda5 tell you about the transactions > in the log? mdebian:~# mkfs.xfs -f /dev/sda5 meta-data=/dev/sda5 isize=256 agcount=4, agsize=94380 blks = sectsz=512 attr=2 data = bsize=4096 blocks=377519, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 debian:~# mount -t xfs /dev/sda5 /mnt debian:~# cp /usr/bin/* /mnt/ debian:~# umount /mnt debian:~# mount -t xfs /dev/sda5 /mnt mount: /dev/sda5: can't read superblock debian:~# xfs_logprint -t /dev/sda5 xfs_logprint: data device: 0x805 log device: 0x805 daddr: 1510112 length: 20480 XFS: Log inconsistent (didn't find previous header) XFS: empty log check failed xfs_logprint: failed to find head and tail, error: 5 debian:~# -- Martin Michlmayr http://www.cyrius.com/ From owner-xfs@oss.sgi.com Sun Oct 19 01:05:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J85wtI014743 for ; Sun, 19 Oct 2008 01:05:59 -0700 X-ASG-Debug-ID: 1224403662-420900400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B9DC7AC6674 for ; Sun, 19 Oct 2008 01:07:42 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id TavZmoKEfF6gzVPz for ; Sun, 19 Oct 2008 01:07:42 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id D147519A5C; Sun, 19 Oct 2008 04:07:41 -0400 (EDT) Date: Sun, 19 Oct 2008 04:07:41 -0400 (EDT) From: Justin Piszcz To: Eric Sandeen cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel 2.6.27.2 (32bit) filesystem is read-only Subject: Re: kernel 2.6.27.2 (32bit) filesystem is read-only In-Reply-To: <48FA8C3D.5090202@sandeen.net> Message-ID: References: <48FA8C3D.5090202@sandeen.net> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1224403662 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8263 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, 18 Oct 2008, Eric Sandeen wrote: > Justin Piszcz wrote: >> all 2.6.26.x kernels work ok, >> make oldconfig on 2.6.27.2, filesystem mounted read-only at boot >> booted back to 2.6.26.x, back to normal >> barriers are on by default (single disk system) >> >> > > You'll need: > > http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=blob;f=review-2.6.27/xfs-fix-remount-rw-with-unrecognized-options.patch;h=4f93cbab85eb4c3b097065da3e13878d499b0d5a;hb=HEAD > > s/b in 2.6.27.3 (pity it took 3 -stable releases, though) > > -Eric > > Thanks Eric. Justin. From owner-xfs@oss.sgi.com Sun Oct 19 02:05:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J95rlL018997 for ; Sun, 19 Oct 2008 02:05:53 -0700 X-ASG-Debug-ID: 1224407254-420a02f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F1195E7136D for ; Sun, 19 Oct 2008 02:07:35 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IuNROHBIPP48jhpL for ; Sun, 19 Oct 2008 02:07:35 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KrUFa-0000wd-4K; Sun, 19 Oct 2008 09:07:02 +0000 Date: Sun, 19 Oct 2008 05:07:02 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: Martin Michlmayr , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com, kernel@wantstofly.org, Hiroki KUMAGAI X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081019090702.GA1925@infradead.org> References: <1222893502.5020.40.camel@moria> <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> <20081019014830.GI31761@disturbed> <48FAA445.9050800@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FAA445.9050800@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224407256 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8264 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 18, 2008 at 10:06:45PM -0500, Eric Sandeen wrote: > This is probably the vmap cache aliasing problem that we paid a bit of > attention to a few months ago, no? Shouldn't the cachepolicy switch take care of that? But yes, there are various problems with I/O on vmap regions with virtually indexed caches, see: http://www.spinics.net/lists/linux-arch/msg04301.html http://tree.celinuxforum.org/CelfPubWiki/JapanTechnicalJamboree21?action=AttachFile&do=get&target=celf_discussions.pdf Actually, looking again at the second document it shows exactly the symptoms you're seeing. > > -Eric > > ---end quoted text--- From owner-xfs@oss.sgi.com Sun Oct 19 02:08:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9J98bEn019500 for ; Sun, 19 Oct 2008 02:08:37 -0700 X-ASG-Debug-ID: 1224407421-420b03720000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 369CE10AC666; Sun, 19 Oct 2008 02:10:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id qfCw3VNFpYppksLg; Sun, 19 Oct 2008 02:10:22 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KrUIn-0005c9-Gy; Sun, 19 Oct 2008 09:10:21 +0000 Date: Sun, 19 Oct 2008 05:10:21 -0400 From: Christoph Hellwig To: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: another problem with latest code drops Subject: Re: another problem with latest code drops Message-ID: <20081019091021.GB1925@infradead.org> References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081016072019.GH25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224407422 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8264 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 16, 2008 at 06:20:19PM +1100, Dave Chinner wrote: > I just ran up the same load in a UML session. I'd say it's this > slab: > > 2482 2481 99% 0.23K 146 17 584K xfs_btree_cur > > which is showing a leak. It is slowly growing on my system > and dropping the caches doesn't reduce it's size. At least it's > a place to start looking - somewhere in the new btree code we > seem to be leaking a btree cursor.... I've been running for i in $(seq 1 8); do fsstress -p 64 -n 10000000 -d /mnt/data/fsstress.$i & done for about 20 hours now, and I'm only up to a few hundred xfs_btree_cur entires, not changing much at all over time. This is xfs-2.6 on a 4-way PPC machine. From owner-xfs@oss.sgi.com Sun Oct 19 04:17:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9JBHbCx029423 for ; Sun, 19 Oct 2008 04:17:37 -0700 X-ASG-Debug-ID: 1224415159-0a4503310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DA1C51432190 for ; Sun, 19 Oct 2008 04:19:19 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id P3Ri47mpXOkPKMCV for ; Sun, 19 Oct 2008 04:19:19 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 849B1321DE; Sun, 19 Oct 2008 07:19:19 -0400 (EDT) Date: Sun, 19 Oct 2008 07:19:19 -0400 (EDT) From: Justin Piszcz To: Eric Sandeen cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: kernel 2.6.27.2 (32bit) filesystem is read-only Subject: Re: kernel 2.6.27.2 (32bit) filesystem is read-only In-Reply-To: Message-ID: References: <48FA8C3D.5090202@sandeen.net> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1224415161 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8270 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, 19 Oct 2008, Justin Piszcz wrote: > > > On Sat, 18 Oct 2008, Eric Sandeen wrote: > >> Justin Piszcz wrote: >>> all 2.6.26.x kernels work ok, >>> make oldconfig on 2.6.27.2, filesystem mounted read-only at boot >>> booted back to 2.6.26.x, back to normal >>> barriers are on by default (single disk system) >>> >>> >> >> You'll need: >> >> http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git;a=blob;f=review-2.6.27/xfs-fix-remount-rw-with-unrecognized-options.patch;h=4f93cbab85eb4c3b097065da3e13878d499b0d5a;hb=HEAD >> >> s/b in 2.6.27.3 (pity it took 3 -stable releases, though) >> >> -Eric >> >> > > Thanks Eric. > > Justin. > Confirmed working, but now it broke my UPS (nut doesn't start anymore) (usb issues) $ uname -a Linux box 2.6.27.2 #2 SMP PREEMPT Sun Oct 19 06:58:32 EDT 2008 i686 GNU/Linux From owner-xfs@oss.sgi.com Sun Oct 19 09:21:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9JGL2Oq029941 for ; Sun, 19 Oct 2008 09:21:04 -0700 X-ASG-Debug-ID: 1224433366-369200c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from xi.wantstofly.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9C6D6AC759A for ; Sun, 19 Oct 2008 09:22:46 -0700 (PDT) Received: from xi.wantstofly.org (xi.wantstofly.org [83.160.184.112]) by cuda.sgi.com with ESMTP id 8I82uRa9ShPx5O2U for ; Sun, 19 Oct 2008 09:22:46 -0700 (PDT) Received: by xi.wantstofly.org (Postfix, from userid 500) id 28FDB7FAB6; Sun, 19 Oct 2008 18:22:44 +0200 (CEST) Date: Sun, 19 Oct 2008 18:22:44 +0200 From: Lennert Buytenhek To: Christoph Hellwig Cc: Eric Sandeen , Martin Michlmayr , Tobias Frost , linux-kernel@vger.kernel.org, debian-arm@lists.debian.org, xfs@oss.sgi.com, Hiroki KUMAGAI X-ASG-Orig-Subj: Re: XFS filesystem corruption on the arm(el) architecture Subject: Re: XFS filesystem corruption on the arm(el) architecture Message-ID: <20081019162244.GF4129@xi.wantstofly.org> References: <20081002004556.GB30001@disturbed> <48E4213E.9090508@sandeen.net> <20081016212500.GA27228@deprecation.cyrius.com> <48F7BC9F.4080909@sandeen.net> <20081017070109.GA30726@deprecation.cyrius.com> <48F89E0F.6030307@sandeen.net> <20081018085752.GS25834@deprecation.cyrius.com> <20081019014830.GI31761@disturbed> <48FAA445.9050800@sandeen.net> <20081019090702.GA1925@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081019090702.GA1925@infradead.org> User-Agent: Mutt/1.4.2.2i X-Barracuda-Connect: xi.wantstofly.org[83.160.184.112] X-Barracuda-Start-Time: 1224433367 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8287 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 19, 2008 at 05:07:02AM -0400, Christoph Hellwig wrote: > > This is probably the vmap cache aliasing problem that we paid a bit of > > attention to a few months ago, no? > > Shouldn't the cachepolicy switch take care of that? Setting cachepolicy=uncached should make aliasing issues disappear. If you're still seeing issues with cachepolicy=uncached, it's likely some other issue. From owner-xfs@oss.sgi.com Sun Oct 19 17:48:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K0mBXP016396 for ; Sun, 19 Oct 2008 17:48:11 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 4C73F3040BF; Sun, 19 Oct 2008 17:49:52 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA05257; Mon, 20 Oct 2008 11:49:48 +1100 Message-ID: <48FBD5AB.6090306@sgi.com> Date: Mon, 20 Oct 2008 11:49:47 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Miklos Szeredi , xfs-oss Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> <20081017171000.GC18582@lst.de> In-Reply-To: <20081017171000.GC18582@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: >> Fair enough. >> But XFS_ERROR is used throughout the function. > > Can we leave it the simple way for now? Yep. > I have to revamp that whole > function anyway as it's extremly buggy in many ways, especially when > used to open directories (can lead to multiple dentries for a single > directory - ouch) and then I'll kill the other uses. Oh ok. In userspace, we use it for opening directories on xfsdump via jdm_open in order to do bulkstat driven dirent dumping. We also use it in xfsrestore - though I am not convinced we should - it was initially done for "performance" reasons apparently. --Tim From owner-xfs@oss.sgi.com Sun Oct 19 18:16:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=BAYES_50,HTML_MESSAGE, J_CHICKENPOX_43 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K1GRMV019291 for ; Sun, 19 Oct 2008 18:16:27 -0700 X-ASG-Debug-ID: 1224465489-246802400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ramunia.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1DC63AC8E00 for ; Sun, 19 Oct 2008 18:18:10 -0700 (PDT) Received: from mail.ramunia.com ([58.26.86.165]) by cuda.sgi.com with ESMTP id eHbBgNqhaFVn6eSo for ; Sun, 19 Oct 2008 18:18:10 -0700 (PDT) Received: (qmail 9360 invoked by uid 509); 20 Oct 2008 09:12:56 +0800 Received: from 58.26.120.2 by mail.ramunia.com (envelope-from , uid 508) with qmail-scanner-1.25-st-qms (clamdscan: 0.91.2/4429. spamassassin: 3.0.2. perlscan: 1.25-st-qms. Clear:RC:0(58.26.120.2):SA:0(-5.5/0.2):. Processed in 7.390338 secs); 20 Oct 2008 01:12:56 -0000 X-Antivirus-MYDOMAIN-Mail-From: rozi@ramunia.com via mail.ramunia.com X-Antivirus-MYDOMAIN: 1.25-st-qms (Clear:RC:0(58.26.120.2):SA:0(-5.5/0.2):. Processed in 7.390338 secs Process 9306) Received: from unknown (HELO ?192.168.1.16?) (rozi@ramunia.com@58.26.120.2) by mail.ramunia.com with SMTP; 20 Oct 2008 09:12:49 +0800 Message-ID: <48FBDC47.5080700@ramunia.com> Date: Mon, 20 Oct 2008 09:17:59 +0800 From: Muhammad Fakhrul Rozi Bin Mohd Seth User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: XFS slow performance Subject: XFS slow performance X-Barracuda-Connect: UNKNOWN[58.26.86.165] X-Barracuda-Start-Time: 1224465492 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4840 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8309 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 911 Hi All, I'm using the UBUNTU server with LVM group of SCSI harddisk. I'm using this setting for XFS: 1. mkfs.xfs --l logdev=/dev/sda1,size=64m --d agcount=32 /dev/test/department 1. mount -o noatime,nodiratime,nobarrier,logbufs=8 /dev/test/department /data/ My current situation is : 1) I'm using XFS file system as my files server 2) i'm using snapshot to make a hot backup like shadow copies in windows The problem is it takes a long time and some time it make time out for: 1) New file creation 2) Copy files from xfs shared to another local pc's ** what have i check is; if no snapshot was taken; the files sharing was go on without problem and really fast. This problem occurred only when we have a snapshot drives. even a single drive. please help me and advise me on this? Regards Rozi [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Sun Oct 19 18:36:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K1aUst020859 for ; Sun, 19 Oct 2008 18:36:31 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id B0C2330406D; Sun, 19 Oct 2008 18:38:11 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA06466; Mon, 20 Oct 2008 12:38:09 +1100 Message-ID: <48FBEED9.30609@sgi.com> Date: Mon, 20 Oct 2008 12:37:13 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: [PATCH] Re: another problem with latest code drops References: <48F6A19D.9080900@sgi.com> <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> In-Reply-To: <20081017020718.GE31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Fri, Oct 17, 2008 at 01:04:34PM +1100, Dave Chinner wrote: >> On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: >>> On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: >>>> Dave Chinner wrote: >>>>>> I am seeing a lot of memory used here though: >>>>>> >>>>>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security >>>>> Ah - I don't run selinux. Sounds like a bug that needs reporting >>>>> to lkml... >>>> I'm sure this is caused by your changes that introduced inode_init_always(). >>>> It re-initialises an existing inode without destroying it first so it calls >>>> security_inode_alloc() without calling security_inode_free(). >>> I can't think of how. The layers above XFS are symmetric: >> ..... >>> And we should have this symmetry everywhere. >>> >>> >>> >>> Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call >>> xfs_idestroy() could leak contexts. We should really call xfs_iput() >>> because we have an initialised linux inode at this point and so >>> we need to go through destroy_inode(). I'll have a bit more of >>> a look, but this doesn't seem to account for the huge number of >>> leaked contexts you reported.... >> Patch below that replaces xfs_idestroy() with IRELE() to destroy >> the inode via the normal iput() path. It also fixes a second issue >> that I found by inspection related to security contexts as a result >> of hooking up ->destroy_inode. >> >> It's running QA now. >> >> FWIW, I'm not sure if this patch will apply cleanly - I'm still >> running of my stack of patches and not what has been checked into >> ptools. Any idea of when all the patches in ptools will be pushed >> out to the git tree? > > And now with the patch. Nope, that didn't help. The system still leaks - and at the same apparent rate too. I also hit this panic where we have taken a reference on an inode that has I_CLEAR set. I suspect we've made it into xfs_iget_cache_hit() and found an inode with XFS_IRECLAIMABLE set and since we don't call igrab() we don't do the I_CLEAR check. I'm not really convinced that activating dead inodes is such a good idea. <5>[ 253.457411] XFS mounting filesystem dm-0 <7>[ 253.460353] Ending clean XFS mount for filesystem: dm-0 <4>[ 1727.071933] sar used greatest stack depth: 3368 bytes left <4>[ 6212.214445] pdflush used greatest stack depth: 2888 bytes left <4>[ 6601.643218] df used greatest stack depth: 2632 bytes left <0>[ 6601.800534] ------------[ cut here ]------------ <2>[ 6601.801127] kernel BUG at fs/inode.c:1194! [1]kdb> [1]kdb> bt Stack traceback for pid 6700 0xffff8810048d5dc0 6700 6594 1 1 R 0xffff8810048d6228 *fsstress sp ip Function (args) 0xffff881004945a58 0xffffffff810bc8a4 iput+0x1b (0xffff880857fb02a0) 0xffff881004945aa0 0xffffffff8119734d xfs_iget+0x432 (0xffff88100e780000, 0x0, 0x20000080, invalid, 0x200000008, 0xffff881004945b38, 0xcd18e40) 0xffff881004945b20 0xffffffff811a135e xfs_bulkstat_one_iget+0x3a (0xffff88100e780000, 0x20000080, 0xcd18e40, 0xffff8803d9ed2c60, 0xffff881004945ce4) 0xffff881004945b70 0xffffffff811a15b6 xfs_bulkstat_one+0x9a (0xffff88100e780000, 0x20000080, 0x7fff91556de0, invalid, invalid, 0xcd18e40, 0xffff881004945cd0, 0x0, 0xffff881004945ce4) 0xffff881004945bc0 0xffffffff811a0f7f xfs_bulkstat+0x7fd (0xffff88100e780000, 0xffff881004945dd8, 0xffff881004945d5c, 0xffffffff811a151c, 0x0, 0x88, 0x7fff91556de0, 0x1, 0xffff881004945de0) 0xffff881004945d20 0xffffffff811a16a7 xfs_bulkstat_single+0x93 (0xffff88100e780000, 0xffff881004945dd8, 0x7fff91556de0, 0xffff881004945de0) 0xffff881004945d90 0xffffffff811c1f4a xfs_ioc_bulkstat+0xd5 (0xffff88100e780000, invalid, invalid) 0xffff881004945e10 0xffffffff811c2f99 xfs_ioctl+0x2ea (0xffff88100b3cc140, 0xffff880a8e984900, invalid, invalid, 0x7fff91556e70) 0xffff881004945e80 0xffffffff811c123f xfs_file_ioctl+0x36 (invalid, invalid, invalid) 0xffff881004945eb0 0xffffffff810b5c42 vfs_ioctl+0x2a (0xffff880a8e984900, invalid, 0x7fff91556e70) 0xffff881004945ee0 0xffffffff810b5eee do_vfs_ioctl+0x25f (invalid, invalid, invalid, 0x7fff91556e70) 0xffff881004945f30 0xffffffff810b5f62 sys_ioctl+0x57 (invalid, invalid, 0x7fff91556e70) not matched: from 0xffffffff8100bfb2 to 0xffffffff8100c02a drop_through 0 bb_jmp[7] bb_special_case: Invalid bb_reg_state.memory, missing trailing entries bb_special_case: on transfer to int_with_check Assuming system_call_fastpath is 'pass through' with 6 register parameters kdb_bb: 0xffffffff8100bf3b [kernel]system_call_fastpath failed at 0xffffffff8100bfcd Using old style backtrace, unreliable with no arguments sp ip Function (args) [1]more> 0xffff881004945a08 0xffffffff811a135e xfs_bulkstat_one_iget+0x3a 0xffff881004945a18 0xffffffff811a135e xfs_bulkstat_one_iget+0x3a 0xffff881004945a58 0xffffffff810bc8a4 iput+0x1b 0xffff881004945aa0 0xffffffff8119734d xfs_iget+0x432 0xffff881004945b00 0xffffffff811a06e2 xfs_bulkstat_one_fmt 0xffff881004945b20 0xffffffff811a135e xfs_bulkstat_one_iget+0x3a 0xffff881004945b30 0xffffffff811bbd4d kmem_alloc+0x67 0xffff881004945b38 0xffffffff811a0cdd xfs_bulkstat+0x55b 0xffff881004945b50 0xffffffff811a06e2 xfs_bulkstat_one_fmt 0xffff881004945b70 0xffffffff811a15b6 xfs_bulkstat_one+0x9a 0xffff881004945bc0 0xffffffff811a0f7f xfs_bulkstat+0x7fd 0xffff881004945bf8 0xffffffff811a151c xfs_bulkstat_one 0xffff881004945ca0 0xffffffff811a06e2 xfs_bulkstat_one_fmt 0xffff881004945d20 0xffffffff811a16a7 xfs_bulkstat_single+0x93 0xffff881004945d90 0xffffffff811c1f4a xfs_ioc_bulkstat+0xd5 0xffff881004945da0 0xffffffff811c900f _xfs_itrace_entry+0x9e 0xffff881004945e10 0xffffffff811c2f99 xfs_ioctl+0x2ea 0xffff881004945e80 0xffffffff811c123f xfs_file_ioctl+0x36 0xffff881004945eb0 0xffffffff810b5c42 vfs_ioctl+0x2a 0xffff881004945ee0 0xffffffff810b5eee do_vfs_ioctl+0x25f 0xffff881004945f30 0xffffffff810b5f62 sys_ioctl+0x57 [1]kdb> [1]kdb> xinode 0xffff880857fb02a0 Unknown kdb command: 'xinode 0xffff880857fb02a0 ' [1]kdb> inode 0xffff880857fb02a0 struct inode at 0xffff880857fb02a0 i_ino = 1745051539 i_count = 1 i_size 0 i_mode = 040777 i_nlink = 1 i_rdev = 0x0 i_hash.nxt = 0x0000000000000000 i_hash.pprev = 0x0000000000000000 i_list.nxt = 0x00000000001000f0 i_list.prv = 0x00000000002001f0 i_dentry.nxt = 0xffff880857fb0238 i_dentry.prv = 0xffff880857fb0238 i_sb = 0xffff88100e7818d8 i_op = 0xffffffff81eecb80 i_data = 0xffff880857fb0488 nrpages = 0 i_fop= 0xffffffff81eecaa0 i_flock = 0x0000000000000000 i_mapping = 0xffff880857fb0488 i_flags 0x0 i_state 0x40 [I_CLEAR] fs specific info @ 0xffff880857fb0688 [1]kdb> md8c1 0xffff880857fb0688 0xffff880857fb0688 0000000000000000 ........ [1]kdb> From owner-xfs@oss.sgi.com Sun Oct 19 19:16:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K2GbaV024295 for ; Sun, 19 Oct 2008 19:16:37 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 344B19088D for ; Sun, 19 Oct 2008 19:18:18 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA07390 for ; Mon, 20 Oct 2008 13:18:17 +1100 Message-ID: <48FBF841.1060603@sgi.com> Date: Mon, 20 Oct 2008 13:17:21 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: Re: git tree updates.... References: <20081017054742.GH31761@disturbed> In-Reply-To: <20081017054742.GH31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Lachlan, > > I just noticed you've been updating the git tree. You might want to > change the order that certain patches have been committed - the > changes to the fs/inode.c needed to be committed before the changes > to fs/xfs/xfs_inode.c that use them. They've been committed the > wrong way around and about 20 commits apart, so there's significant > region in the commit history where the kernel will fail to build. > Given the distance between the commits, there's a fair chance that > a git bisect could land in this range of compiliation failures. > > Any chance of redoing these commits before you push to Linus so > that they are ordered correctly in the git tree? Yeah I'll try to get them back in the right order. Our merge tools conveniently missed anything outside fs/xfs so I didn't realise I had missed them until after I merge all the XFS mods. I just wanted to get something out for linux-next and also since the cvs tree was busted. Out of curiosity Dave, why didn't you send those changes directly to Linus? From owner-xfs@oss.sgi.com Sun Oct 19 19:23:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K2NF1c025036 for ; Sun, 19 Oct 2008 19:23:16 -0700 X-ASG-Debug-ID: 1224469499-4efa00910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 961A1519713 for ; Sun, 19 Oct 2008 19:25:00 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id Hs4ujwrNfgBz0F0e for ; Sun, 19 Oct 2008 19:25:00 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 2FED4AC359B; Sun, 19 Oct 2008 21:24:59 -0500 (CDT) Message-ID: <48FBEBFA.30200@sandeen.net> Date: Sun, 19 Oct 2008 21:24:58 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Muhammad Fakhrul Rozi Bin Mohd Seth CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS slow performance Subject: Re: XFS slow performance References: <48FBDC47.5080700@ramunia.com> In-Reply-To: <48FBDC47.5080700@ramunia.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224469500 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8311 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Muhammad Fakhrul Rozi Bin Mohd Seth wrote: > Hi All, ... > ** what have i check is; if no snapshot was taken; the files sharing was > go on without problem and really fast. > This problem occurred only when we have a snapshot drives. even a single > drive. > > > please help me and advise me on this? There's not a lot to go on here, but it sounds like it's possibly an lvm snapshot issue, not an xfs issue, to me. Can you test another filesystem temporarily to see if you see the same slowdown when a snapshot is active? When a snapshot is active, it's doing copy on write, which will slow things down to some degree. -Eric From owner-xfs@oss.sgi.com Sun Oct 19 19:55:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K2tRaB027947 for ; Sun, 19 Oct 2008 19:55:27 -0700 X-ASG-Debug-ID: 1224471430-067201800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EC9AF1B609A6 for ; Sun, 19 Oct 2008 19:57:11 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id lxjsUFxoee4XSDn3 for ; Sun, 19 Oct 2008 19:57:11 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 8F7FAAC359B; Sun, 19 Oct 2008 21:57:09 -0500 (CDT) Message-ID: <48FBF385.2010709@sandeen.net> Date: Sun, 19 Oct 2008 21:57:09 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Muhammad Fakhrul Rozi Bin Mohd Seth CC: xfs-oss X-ASG-Orig-Subj: Re: XFS slow performance Subject: Re: XFS slow performance References: <48FBDC47.5080700@ramunia.com> <48FBEBFA.30200@sandeen.net> <48FBED80.60604@ramunia.com> In-Reply-To: <48FBED80.60604@ramunia.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224471431 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8312 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Muhammad Fakhrul Rozi Bin Mohd Seth wrote: > Thanks for the reply; No problem; please keep the list on cc: so that others with similar problems will have something to find on google :) > Yes i have test the other's and it is more worst than XFS. > So here the snapshot is provide by the LVM not the XFS itself? That's right; xfs itself has no snapshot capability. It's done at the block layer (via lvm in your case). > Have face any issue on snapshot using LVM before? I don't use snapshots much so can't say, but they do have overhead. You may have more luck asking for suggestions on the lvm users list. There might be some tuning you can do. -Eric > Regards > Rozi From owner-xfs@oss.sgi.com Sun Oct 19 20:16:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K3GLWV029993 for ; Sun, 19 Oct 2008 20:16:23 -0700 X-ASG-Debug-ID: 1224472682-561701930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B0B1519920 for ; Sun, 19 Oct 2008 20:18:05 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 3onnJpbrcDSKM9Al for ; Sun, 19 Oct 2008 20:18:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmICAHqS+0h5LF1jiGdsb2JhbACTbQEBARUipWIIhWuCaQh7 X-IronPort-AV: E=Sophos;i="4.33,449,1220193000"; d="scan'208";a="234519062" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 20 Oct 2008 13:47:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KrlHK-0006du-2g; Mon, 20 Oct 2008 14:17:58 +1100 Date: Mon, 20 Oct 2008 14:17:57 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Re: another problem with latest code drops Subject: Re: [PATCH] Re: another problem with latest code drops Message-ID: <20081020031757.GM31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> <48FBEED9.30609@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FBEED9.30609@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224472686 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8314 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 12:37:13PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Fri, Oct 17, 2008 at 01:04:34PM +1100, Dave Chinner wrote: >>> On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: >>>> On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: >>>>> Dave Chinner wrote: >>>>>>> I am seeing a lot of memory used here though: >>>>>>> >>>>>>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security >>>>>> Ah - I don't run selinux. Sounds like a bug that needs reporting >>>>>> to lkml... >>>>> I'm sure this is caused by your changes that introduced inode_init_always(). >>>>> It re-initialises an existing inode without destroying it first so it calls >>>>> security_inode_alloc() without calling security_inode_free(). >>>> I can't think of how. The layers above XFS are symmetric: >>> ..... >>>> And we should have this symmetry everywhere. >>>> >>>> >>>> >>>> Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call >>>> xfs_idestroy() could leak contexts. We should really call xfs_iput() >>>> because we have an initialised linux inode at this point and so >>>> we need to go through destroy_inode(). I'll have a bit more of >>>> a look, but this doesn't seem to account for the huge number of >>>> leaked contexts you reported.... >>> Patch below that replaces xfs_idestroy() with IRELE() to destroy >>> the inode via the normal iput() path. It also fixes a second issue >>> that I found by inspection related to security contexts as a result >>> of hooking up ->destroy_inode. >>> >>> It's running QA now. >>> >>> FWIW, I'm not sure if this patch will apply cleanly - I'm still >>> running of my stack of patches and not what has been checked into >>> ptools. Any idea of when all the patches in ptools will be pushed >>> out to the git tree? >> >> And now with the patch. > > Nope, that didn't help. The system still leaks - and at the same > apparent rate too. I didn't fix xfs_iread() properly - it still calls xfs_idestroy() directly rather than dropping reference counts. Updated patch below that should fix this. > I also hit this panic where we have taken a reference on an inode > that has I_CLEAR set. I suspect we've made it into xfs_iget_cache_hit() I don't think there is an iput() in that path. The only iput() call should be the IRELE() I added to xfs_iget_cache_miss(). Can you make sure the compiler is not inlining functions so we can pin-point where the iput() call is coming from? (i.e. static > STATIC on the hit/miss functions) > and found an inode with XFS_IRECLAIMABLE set and since we don't call > igrab() we don't do the I_CLEAR check. In that case, we call inode_init_always() instead which sets the state to I_NEW and the reference count to 1. In the error case, the inode will have already been freed and we make > I'm not really convinced that > activating dead inodes is such a good idea. By the time the XFS_IRECLAIMABLE flag is set, I_CLEAR has been set on the VFS inode. It is safe to re-use the inode at this point as the VFS inode has been "destroyed" and hence all we need to do is re-initialise it. We've always done this for inodes in reclaim so we don't have to re-read them off disk... Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Ensure that we destroy the linux inode after initialisation Now that XFS initialises the struct inode prior to completing all checks and insertion into caches, we need to destroy that state if we fail to instantiate the inode completely. Hence we cannot just call xfs_idestroy() to clean up state when such an occurrence happens - we need to go through the normal reclaim path by dropping the reference count on the linux inode we now hold. This will prevent leaking security contexts on failed lookups. Also, now that we have a ->destroy_inode() method, failing to allocate a security context for the inode will result in the xfs_inode being freed via the ->destroy_inode() path internally to inode_init_always(). Rearrange xfs_inode_alloc() to initialise the xfs_inode prior to attempting to initialise the VFS inode so that the reclaim path will work and remove the freeing of the inode in xfs_inode_alloc() if VFS inode initialisation fails. Version 2: o use reference counted destroys in xfs_iread() instead of xfs_idestroy() calls as well. Signed-off-by: Dave Chinner --- fs/xfs/xfs_iget.c | 9 ++++++++- fs/xfs/xfs_inode.c | 46 ++++++++++++++++++++++++++++------------------ 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index a1f209b..bf41ae4 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -197,7 +197,14 @@ out_unlock: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); out_destroy: - xfs_idestroy(ip); + /* + * we've already initialised the linux inode, so we have a valid + * reference count of 1 and so we cannot destroy the inode with + * xfs_idestroy. Kill it by dropping the reference count to push + * it through the normal reclaim path so that state on the linux + * inode is also destroyed. + */ + IRELE(ip); return error; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index c83f699..920a0ae 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -813,14 +813,6 @@ xfs_inode_alloc( ASSERT(!spin_is_locked(&ip->i_flags_lock)); ASSERT(completion_done(&ip->i_flush)); - /* - * initialise the VFS inode here to get failures - * out of the way early. - */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { - kmem_zone_free(xfs_inode_zone, ip); - return NULL; - } /* initialise the xfs inode */ ip->i_ino = ino; @@ -860,6 +852,17 @@ xfs_inode_alloc( ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); #endif + /* + * Now initialise the VFS inode. We do this after the xfs_inode + * initialisation as internal failures will result in ->destroy_inode + * being called and that will pass down through the reclaim path and + * free the XFS inode. This path requires the XFS inode to already be + * initialised. Hence if this call fails, the xfs_inode has already + * been freed and we should not reference it at all in the error + * handling. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) + return NULL; return ip; } @@ -897,18 +900,16 @@ xfs_iread( * know that this is a new incore inode. */ error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_error; + /* * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); + error = EINVAL; #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "dip->di_core.di_magic (0x%x) != " @@ -916,7 +917,7 @@ xfs_iread( be16_to_cpu(dip->di_core.di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ - return XFS_ERROR(EINVAL); + goto out_error_relse; } /* @@ -930,14 +931,12 @@ xfs_iread( xfs_dinode_from_disk(&ip->i_d, &dip->di_core); error = xfs_iformat(ip, dip); if (error) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "xfs_iformat() returned error %d", error); #endif /* DEBUG */ - return error; + goto out_error_relse; } } else { ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); @@ -1003,6 +1002,17 @@ xfs_iread( xfs_trans_brelse(tp, bp); *ipp = ip; return 0; + +out_error_relse: + xfs_trans_brelse(tp, bp); +out_error: + /* + * As per xfs_iget_cache_miss(), we have a valid reference count on + * the inode now so need to destroy it by dropping the reference + * count. + */ + IRELE(ip); + return XFS_ERROR(error); } /* From owner-xfs@oss.sgi.com Sun Oct 19 20:36:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K3axkq004502 for ; Sun, 19 Oct 2008 20:36:59 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 5BD8A3040CD; Sun, 19 Oct 2008 20:38:40 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA09275; Mon, 20 Oct 2008 14:38:38 +1100 Message-ID: <48FC0B16.9090102@sgi.com> Date: Mon, 20 Oct 2008 14:37:42 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , xfs-oss Subject: Re: [PATCH] Re: another problem with latest code drops References: <20081016060247.GF25906@disturbed> <48F6EF7F.4070008@sgi.com> <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> <48FBEED9.30609@sgi.com> <20081020031757.GM31761@disturbed> In-Reply-To: <20081020031757.GM31761@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Mon, Oct 20, 2008 at 12:37:13PM +1000, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Fri, Oct 17, 2008 at 01:04:34PM +1100, Dave Chinner wrote: >>>> On Fri, Oct 17, 2008 at 12:21:41PM +1100, Dave Chinner wrote: >>>>> On Fri, Oct 17, 2008 at 11:17:46AM +1000, Lachlan McIlroy wrote: >>>>>> Dave Chinner wrote: >>>>>>>> I am seeing a lot of memory used here though: >>>>>>>> >>>>>>>> 116605669 116605669 26% 0.23K 6859157 17 27436628K selinux_inode_security >>>>>>> Ah - I don't run selinux. Sounds like a bug that needs reporting >>>>>>> to lkml... >>>>>> I'm sure this is caused by your changes that introduced inode_init_always(). >>>>>> It re-initialises an existing inode without destroying it first so it calls >>>>>> security_inode_alloc() without calling security_inode_free(). >>>>> I can't think of how. The layers above XFS are symmetric: >>>> ..... >>>>> And we should have this symmetry everywhere. >>>>> >>>>> >>>>> >>>>> Hmmmm - maybe the xfs_iget_cache_miss failure paths where we call >>>>> xfs_idestroy() could leak contexts. We should really call xfs_iput() >>>>> because we have an initialised linux inode at this point and so >>>>> we need to go through destroy_inode(). I'll have a bit more of >>>>> a look, but this doesn't seem to account for the huge number of >>>>> leaked contexts you reported.... >>>> Patch below that replaces xfs_idestroy() with IRELE() to destroy >>>> the inode via the normal iput() path. It also fixes a second issue >>>> that I found by inspection related to security contexts as a result >>>> of hooking up ->destroy_inode. >>>> >>>> It's running QA now. >>>> >>>> FWIW, I'm not sure if this patch will apply cleanly - I'm still >>>> running of my stack of patches and not what has been checked into >>>> ptools. Any idea of when all the patches in ptools will be pushed >>>> out to the git tree? >>> And now with the patch. >> Nope, that didn't help. The system still leaks - and at the same >> apparent rate too. > > I didn't fix xfs_iread() properly - it still calls xfs_idestroy() > directly rather than dropping reference counts. Updated patch below > that should fix this. > >> I also hit this panic where we have taken a reference on an inode >> that has I_CLEAR set. I suspect we've made it into xfs_iget_cache_hit() > > I don't think there is an iput() in that path. The only iput() call > should be the IRELE() I added to xfs_iget_cache_miss(). Can you make > sure the compiler is not inlining functions so we can pin-point > where the iput() call is coming from? (i.e. static > STATIC on the > hit/miss functions) Just disassembled xfs_iget() and xfs_iget_cache_miss() has been inlined and we're calling the IRELE() at the end of that function. > >> and found an inode with XFS_IRECLAIMABLE set and since we don't call >> igrab() we don't do the I_CLEAR check. > > In that case, we call inode_init_always() instead which sets the > state to I_NEW and the reference count to 1. In the error case, > the inode will have already been freed and we make We don't set inode->i_state to i_NEW. We're stuffing XFS_INEW into the XFS inode's i_flags field and not removing the I_CLEAR from the linux inode. Note that inode_init_always() doesn't touch i_state. > >> I'm not really convinced that >> activating dead inodes is such a good idea. > > By the time the XFS_IRECLAIMABLE flag is set, I_CLEAR has been set > on the VFS inode. It is safe to re-use the inode at this point as > the VFS inode has been "destroyed" and hence all we need to do is > re-initialise it. We've always done this for inodes in reclaim so > we don't have to re-read them off disk... > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Sun Oct 19 22:27:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K5Ro6Z014150 for ; Sun, 19 Oct 2008 22:27:51 -0700 X-ASG-Debug-ID: 1224480572-1ff7034b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0091D519FD4 for ; Sun, 19 Oct 2008 22:29:33 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id PbiKeLhih1Bivg1F for ; Sun, 19 Oct 2008 22:29:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqoCAK6x+0h5LF1jgWdsb2JhbACTbQEBFiKrZoNs X-IronPort-AV: E=Sophos;i="4.33,449,1220193000"; d="scan'208";a="234634105" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 20 Oct 2008 15:59:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KrnKb-0000jU-98; Mon, 20 Oct 2008 16:29:29 +1100 Date: Mon, 20 Oct 2008 16:29:29 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Re: another problem with latest code drops Subject: Re: [PATCH] Re: another problem with latest code drops Message-ID: <20081020052929.GN31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <20081016072019.GH25906@disturbed> <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> <48FBEED9.30609@sgi.com> <20081020031757.GM31761@disturbed> <48FC0B16.9090102@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <48FC0B16.9090102@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224480575 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8317 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 02:37:42PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Mon, Oct 20, 2008 at 12:37:13PM +1000, Lachlan McIlroy wrote: >>> I also hit this panic where we have taken a reference on an inode >>> that has I_CLEAR set. I suspect we've made it into xfs_iget_cache_hit() >> >> I don't think there is an iput() in that path. The only iput() call >> should be the IRELE() I added to xfs_iget_cache_miss(). Can you make >> sure the compiler is not inlining functions so we can pin-point >> where the iput() call is coming from? (i.e. static > STATIC on the >> hit/miss functions) > Just disassembled xfs_iget() and xfs_iget_cache_miss() has been inlined > and we're calling the IRELE() at the end of that function. Ok, that makes more sense. >>> and found an inode with XFS_IRECLAIMABLE set and since we don't call >>> igrab() we don't do the I_CLEAR check. >> >> In that case, we call inode_init_always() instead which sets the >> state to I_NEW and the reference count to 1. In the error case, >> the inode will have already been freed and we make > We don't set inode->i_state to i_NEW. We're stuffing XFS_INEW into > the XFS inode's i_flags field and not removing the I_CLEAR from the > linux inode. Note that inode_init_always() doesn't touch i_state. Yeah, xfs_setup_inode() is what is doing: inode->i_state = I_NEW|I_LOCK; which happens after the cache miss has been processed. Ok, so the initialisation code needs to clear іnode->i_state during allocation so that iput() does not complain. The i_state field is not accessed by anything until the inode is inserted into the superblock lists, so it should be safe to zero it in xfs_inode_alloc(). I missed that new_inode() returns an inode with a zeroed i_state.... Updated patch below, just starting a QA run on it. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Ensure that we destroy the linux inode after initialisation Now that XFS initialises the struct inode prior to completing all checks and insertion into caches, we need to destroy that state if we fail to instantiate the inode completely. Hence we cannot just call xfs_idestroy() to clean up state when such an occurrence happens - we need to go through the normal reclaim path by dropping the reference count on the linux inode we now hold. This will prevent leaking security contexts on failed lookups. Also, now that we have a ->destroy_inode() method, failing to allocate a security context for the inode will result in the xfs_inode being freed via the ->destroy_inode() path internally to inode_init_always(). Rearrange xfs_inode_alloc() to initialise the xfs_inode prior to attempting to initialise the VFS inode so that the reclaim path will work and remove the freeing of the inode in xfs_inode_alloc() if VFS inode initialisation fails. Signed-off-by: Dave Chinner --- Version 3: o initialise i_state early so that we don't trip a BUG in iput() when destroying an inode due to a failed initialisation. Version 2: o use reference counted destroys in xfs_iread() instead of xfs_idestroy() calls as well. fs/xfs/xfs_iget.c | 9 ++++++++- fs/xfs/xfs_inode.c | 50 ++++++++++++++++++++++++++++++++------------------ 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index a1f209b..bf41ae4 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -197,7 +197,14 @@ out_unlock: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); out_destroy: - xfs_idestroy(ip); + /* + * we've already initialised the linux inode, so we have a valid + * reference count of 1 and so we cannot destroy the inode with + * xfs_idestroy. Kill it by dropping the reference count to push + * it through the normal reclaim path so that state on the linux + * inode is also destroyed. + */ + IRELE(ip); return error; } diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index c83f699..d9ffd55 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -813,14 +813,6 @@ xfs_inode_alloc( ASSERT(!spin_is_locked(&ip->i_flags_lock)); ASSERT(completion_done(&ip->i_flush)); - /* - * initialise the VFS inode here to get failures - * out of the way early. - */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { - kmem_zone_free(xfs_inode_zone, ip); - return NULL; - } /* initialise the xfs inode */ ip->i_ino = ino; @@ -860,6 +852,21 @@ xfs_inode_alloc( ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); #endif + /* + * Now initialise the VFS inode. We do this after the xfs_inode + * initialisation as internal failures will result in ->destroy_inode + * being called and that will pass down through the reclaim path and + * free the XFS inode. This path requires the XFS inode to already be + * initialised. Hence if this call fails, the xfs_inode has already + * been freed and we should not reference it at all in the error + * handling. Note that we need to manually initialise the VFS inode + * state to prevent triggering a BUG in iput() if we fail the inode + * instantiation later on. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) + return NULL; + VFS_I(ip)->i_state = 0; + return ip; } @@ -897,18 +904,16 @@ xfs_iread( * know that this is a new incore inode. */ error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_error; + /* * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); + error = EINVAL; #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "dip->di_core.di_magic (0x%x) != " @@ -916,7 +921,7 @@ xfs_iread( be16_to_cpu(dip->di_core.di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ - return XFS_ERROR(EINVAL); + goto out_error_relse; } /* @@ -930,14 +935,12 @@ xfs_iread( xfs_dinode_from_disk(&ip->i_d, &dip->di_core); error = xfs_iformat(ip, dip); if (error) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "xfs_iformat() returned error %d", error); #endif /* DEBUG */ - return error; + goto out_error_relse; } } else { ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); @@ -1003,6 +1006,17 @@ xfs_iread( xfs_trans_brelse(tp, bp); *ipp = ip; return 0; + +out_error_relse: + xfs_trans_brelse(tp, bp); +out_error: + /* + * As per xfs_iget_cache_miss(), we have a valid reference count on + * the inode now so need to destroy it by dropping the reference + * count. + */ + IRELE(ip); + return XFS_ERROR(error); } /* From owner-xfs@oss.sgi.com Sun Oct 19 22:34:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K5YHsv014955 for ; Sun, 19 Oct 2008 22:34:18 -0700 X-ASG-Debug-ID: 1224480961-1ff5038b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2B3551A04B for ; Sun, 19 Oct 2008 22:36:01 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id hFa4EJTZxtxROZPT for ; Sun, 19 Oct 2008 22:36:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqoCAK21+0h5LF1jgWdsb2JhbACTbQEBFiKrZYNs X-IronPort-AV: E=Sophos;i="4.33,449,1220193000"; d="scan'208";a="234639293" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 20 Oct 2008 16:05:54 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KrnQn-0003OS-U4; Mon, 20 Oct 2008 16:35:53 +1100 Date: Mon, 20 Oct 2008 16:35:53 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: git tree updates.... Subject: Re: git tree updates.... Message-ID: <20081020053553.GO31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs@oss.sgi.com References: <20081017054742.GH31761@disturbed> <48FBF841.1060603@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FBF841.1060603@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224480962 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8317 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 01:17:21PM +1000, Lachlan McIlroy wrote: > Dave Chinner wrote: >> Lachlan, >> >> I just noticed you've been updating the git tree. You might want to >> change the order that certain patches have been committed - the >> changes to the fs/inode.c needed to be committed before the changes >> to fs/xfs/xfs_inode.c that use them. They've been committed the >> wrong way around and about 20 commits apart, so there's significant >> region in the commit history where the kernel will fail to build. >> Given the distance between the commits, there's a fair chance that >> a git bisect could land in this range of compiliation failures. >> >> Any chance of redoing these commits before you push to Linus so >> that they are ordered correctly in the git tree? > > Yeah I'll try to get them back in the right order. Our merge tools > conveniently missed anything outside fs/xfs so I didn't realise I had > missed them until after I merge all the XFS mods. I just wanted to > get something out for linux-next and also since the cvs tree was busted. Fair enough - I wasn't sure that you noticed it. > Out of curiosity Dave, why didn't you send those changes directly to > Linus? Because trying to co-ordinate an dependent updates in different trees is extremely painful. We'd have to delay the XFS update till the inode patches were in mainline anyway, so it makes little sense to separate them.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 19 23:03:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K63g7C017603 for ; Sun, 19 Oct 2008 23:03:43 -0700 X-ASG-Debug-ID: 1224482724-361003be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B80151A028 for ; Sun, 19 Oct 2008 23:05:25 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 6jG4jP6iSBllrfl2 for ; Sun, 19 Oct 2008 23:05:25 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqoCADC8+0h5LF1jgWdsb2JhbACTbQEBFiKrYINs X-IronPort-AV: E=Sophos;i="4.33,449,1220193000"; d="scan'208";a="234662005" Received: from ppp121-44-93-99.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.93.99]) by ipmail05.adl2.internode.on.net with ESMTP; 20 Oct 2008 16:35:23 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KrntK-00043T-DS; Mon, 20 Oct 2008 17:05:22 +1100 Date: Mon, 20 Oct 2008 17:05:22 +1100 From: Dave Chinner To: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Re: another problem with latest code drops Subject: Re: [PATCH] Re: another problem with latest code drops Message-ID: <20081020060522.GP31761@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs-oss References: <48F6FCB7.6050905@sgi.com> <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> <48FBEED9.30609@sgi.com> <20081020031757.GM31761@disturbed> <48FC0B16.9090102@sgi.com> <20081020052929.GN31761@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20081020052929.GN31761@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1224482726 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8318 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 04:29:29PM +1100, Dave Chinner wrote: > On Mon, Oct 20, 2008 at 02:37:42PM +1000, Lachlan McIlroy wrote: > > Dave Chinner wrote: > >> On Mon, Oct 20, 2008 at 12:37:13PM +1000, Lachlan McIlroy wrote: > >>> I also hit this panic where we have taken a reference on an inode > >>> that has I_CLEAR set. I suspect we've made it into xfs_iget_cache_hit() > >> > >> I don't think there is an iput() in that path. The only iput() call > >> should be the IRELE() I added to xfs_iget_cache_miss(). Can you make > >> sure the compiler is not inlining functions so we can pin-point > >> where the iput() call is coming from? (i.e. static > STATIC on the > >> hit/miss functions) > > Just disassembled xfs_iget() and xfs_iget_cache_miss() has been inlined > > and we're calling the IRELE() at the end of that function. > > Ok, that makes more sense. > > >>> and found an inode with XFS_IRECLAIMABLE set and since we don't call > >>> igrab() we don't do the I_CLEAR check. > >> > >> In that case, we call inode_init_always() instead which sets the > >> state to I_NEW and the reference count to 1. In the error case, > >> the inode will have already been freed and we make > > We don't set inode->i_state to i_NEW. We're stuffing XFS_INEW into > > the XFS inode's i_flags field and not removing the I_CLEAR from the > > linux inode. Note that inode_init_always() doesn't touch i_state. > > Yeah, xfs_setup_inode() is what is doing: > > inode->i_state = I_NEW|I_LOCK; > > which happens after the cache miss has been processed. > > Ok, so the initialisation code needs to clear іnode->i_state > during allocation so that iput() does not complain. The i_state > field is not accessed by anything until the inode is inserted > into the superblock lists, so it should be safe to zero it > in xfs_inode_alloc(). I missed that new_inode() returns an > inode with a zeroed i_state.... On second thoughts, the inode has not been set up properly by this stage, so we can't really even expect to be able to call iput() on it. Hmmmm - maybe the only thing we can do here is call security_inode_free() before xfs_idestroy. Christoph - any opinions on what the best thing to do is? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 02:22:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9K9M3mr009189 for ; Mon, 20 Oct 2008 02:22:05 -0700 X-ASG-Debug-ID: 1224494627-186302920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4CF4AAD1222; Mon, 20 Oct 2008 02:23:47 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id sK71BhmiltucHcGA; Mon, 20 Oct 2008 02:23:47 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KrqzK-0005YK-EK; Mon, 20 Oct 2008 09:23:46 +0000 Date: Mon, 20 Oct 2008 05:23:46 -0400 From: Christoph Hellwig To: Timothy Shimmin Cc: Christoph Hellwig , Miklos Szeredi , xfs-oss X-ASG-Orig-Subj: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias Message-ID: <20081020092346.GA14455@infradead.org> References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> <20081017171000.GC18582@lst.de> <48FBD5AB.6090306@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FBD5AB.6090306@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224494628 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8326 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 11:49:47AM +1100, Timothy Shimmin wrote: > > I have to revamp that whole > > function anyway as it's extremly buggy in many ways, especially when > > used to open directories (can lead to multiple dentries for a single > > directory - ouch) and then I'll kill the other uses. > > Oh ok. > > In userspace, > we use it for opening directories on xfsdump via jdm_open in order to > do bulkstat driven dirent dumping. > We also use it in xfsrestore - though I am not convinced we should - > it was initially done for "performance" reasons apparently. I think the use of the API is fine, the problem is that the current implemention is buggy. From owner-xfs@oss.sgi.com Mon Oct 20 06:02:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KD2BCt004068 for ; Mon, 20 Oct 2008 06:02:12 -0700 X-ASG-Debug-ID: 1224507835-647a01dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from cgp.gldn.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF970AD1D8D for ; Mon, 20 Oct 2008 06:03:56 -0700 (PDT) Received: from cgp.gldn.net (cgp.gldn.net [194.186.47.92]) by cuda.sgi.com with ESMTP id 8EOCPNGtmjJSAOq5 for ; Mon, 20 Oct 2008 06:03:56 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?8NLFxMzP1sXOycUg1dPM1ccg0M8g08XS1MnGycvBw8nJINDSz8TVyw==?= =?koi8-r?B?w8nJ?= Subject: Undeliverable mail: =?koi8-r?B?8NLFxMzP1sXOycUg1dPM1ccg0M8g08XS1MnGycvBw8nJINDSz8TVyw==?= =?koi8-r?B?w8nJ?= From: To: Date: Mon, 20 Oct 2008 17:03:54 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===102736391====frontend2.cgp.gldn.net===_" X-Barracuda-Connect: cgp.gldn.net[194.186.47.92] X-Barracuda-Start-Time: 1224507836 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3917 1.0000 -0.0216 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.98 X-Barracuda-Spam-Status: No, SCORE=0.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, BSF_RULE_7582B, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8335 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE7568M Custom Rule 7568M 0.50 BSF_RULE_7582B Custom Rule 7582B 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===102736391====frontend2.cgp.gldn.net===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'naln@eec-msk.ru' SMTP module(domain eec-msk.ru) reports: host eec-msk.ru says: 550 5.1.1 : Recipient address rejected: User unknown in local recipient table --_===102736391====frontend2.cgp.gldn.net===_ Content-Type: message/delivery-status Reporting-MTA: dns; frontend2.cgp.gldn.net Original-Recipient: rfc822; Final-Recipient: rfc822; Action: failed Status: 5.0.0 --_===102736391====frontend2.cgp.gldn.net===_ Content-Type: text/rfc822-headers Received: from [83.156.247.163] ([83.156.247.163] verified) by frontend2.cgp.gldn.net (CommuniGate Pro SMTP 5.1.14) with ESMTP id 102736912 for naln@eec-msk.ru; Mon, 20 Oct 2008 17:03:54 +0400 Received-SPF: none receiver=frontend2.cgp.gldn.net; client-ip=83.156.247.163; envelope-from=xfs@oss.sgi.com Message-ID: <000701c932b4$0592a981$203ae6b2@cgyqiaf> From: =?koi8-r?B?4czF09E=?= To: Subject: =?koi8-r?B?8NLFxMzP1sXOycUg1dPM1ccg0M8g08XS1MnGycvBw8nJINDSz8TVyw==?= =?koi8-r?B?w8nJ?= Date: Mon, 20 Oct 2008 11:16:23 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0004_01C932B4.05923A87" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===102736391====frontend2.cgp.gldn.net===_-- From owner-xfs@oss.sgi.com Mon Oct 20 06:04:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.8 required=5.0 tests=BAYES_50,FH_FROMEML_NOTLD, J_CHICKENPOX_92 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KD4jgc004489 for ; Mon, 20 Oct 2008 06:04:45 -0700 X-ASG-Debug-ID: 1224507988-428d026b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from h948794.serverkompetenz.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4EDD751B794 for ; Mon, 20 Oct 2008 06:06:29 -0700 (PDT) Received: from h948794.serverkompetenz.net (studiomix.eu [81.169.130.255]) by cuda.sgi.com with ESMTP id gMLdt94rfHbSGlvC for ; Mon, 20 Oct 2008 06:06:29 -0700 (PDT) Received: (qmail 20363 invoked for bounce); 20 Oct 2008 14:42:26 -0000 Date: 20 Oct 2008 14:42:26 -0000 From: To: xfs@oss.sgi.com X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: studiomix.eu[81.169.130.255] X-Barracuda-Start-Time: 1224507990 Message-Id: <20081020130629.4EDD751B794@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.4051 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, MAILTO_TO_SPAM_ADDR X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8336 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Hi. This is the qmail-send program at . I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : Sorry, no mailbox here by that name. vpopmail (#5.1.1) --- Below this line is a copy of the message. Return-Path: Received: (qmail 20346 invoked by uid 60000); 20 Oct 2008 14:42:26 -0000 Received: from 195.250.201.249 by h948794 (envelope-from , uid 60004) with qmail-scanner-1.24st SA 24 Received: from unknown (HELO ?195.250.201.249?) (195.250.201.249) by studiomix.eu with SMTP; 20 Oct 2008 14:42:25 -0000 Message-ID: <000a01c932b4$074b9318$04a7cc80@dlqux> From: =?koi8-r?B?4cbJ28Eg7c/Ty9fZ?= To: Subject: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= Date: Mon, 20 Oct 2008 11:18:25 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C932B4.074A592B" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C932B4.074A592B Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =F3=E1=ED=F9=E5 =F1=F2=EB=E9=E5 = =F4=E5=E1=F4=F2=E1=EC=F8=EE=F9=E5 =F3=EF=E2=F9=F4=E9=F1=20 / =FE 9 5 / 2 2 9 3 5 0 0 =FA=C1=CB=C1=DA, =C4=CF=D3=D4=C1=D7=CB=C1 = =E2=E9=EC=E5=F4=EF=F7=20 =EE=EF=F7=E1=F1 =F0=F2=E5=ED=F8=E5=F2=E1 = =EB=EF=ED=E9=FE=E5=F3=EB=EF=E7=EF =F4=E5=E1=F4=F2=E1 = "=EB=F7=E1=F2=F4=E5=F4 =E9" -=20 =F2=E1=FA=E7=EF=F7=EF=F2=F9 =ED=F5=F6=FE=E9=EE =F3=F2=E5=E4=EE=E5=E7=EF = =F7=EF=FA=F2=E1=F3=F4=E1 =EF =F6=E5=EE=FD=E9=EE=E1=E8, =EB=E9=EE=EF =E9 = =E1=EC=E0=ED=E9=EE=E9=E5=F7=F9=E8 =F7=E9=EC=EB=E1=E8 - 22.10 =C9 11, 18, = 19, 26.11=20 ...=EF =DE=C5=CD =C7=CF=D7=CF=D2=D1=D4 =CD=D5=D6=DE=C9=CE=D9, = =CB=CF=C7=C4=C1 =CF=CE=C9 =CF=C4=CE=C9? =E2=C5=D3=D3=D0=CF=D2=CE=CF, = =C2=C5=DA =D2=C1=DA=C7=CF=D7=CF=D2=CF=D7 =CF =D3=C1=CD=C9=C8 = =D6=C5=CE=DD=C9=CE=C1=C8 =CE=C5 =CF=C2=CF=CA=C4=C5=D4=D3=D1 - =C1 = =CB=C1=CB =D6=C5 =C2=C5=DA =CE=C9=C8! =EE=CF, =D0=D2=C9=DE=C5=CD = =D4=D5=D4 =C1=CC=C0=CD=C9=CE=C9=D7=D9=C5 =D7=C9=CC=CB=C9, =CB=C9=CE=CF = =C9 =D3=D2=C5=C4=C1 =CF=C2=C9=D4=C1=CE=C9=D1. =EE=D5, =CC=C1=C4=CE=CF = =CB=C9=CE=CF, =DC=D4=CF =D0=CF=CE=D1=D4=CE=CF. =EE=CF =D7=C9=CC=CB=C9?!=20 =F7=E9=FA=E9=F4 =E4=E1=ED=F9 (=F0=F2=E5=ED=F8=E5=F2=E1 =F7 = =EC=E5=EE=EB=EF=ED=E5, =ED=C1=D2=C9=D1 =ED=C9=D2=CF=CE=CF=D7=C1, = =E1=CC=C5=CB=D3=C1=CE=C4=D2 =EC=C1=DA=C1=D2=C5=D7, =E1=CE=C4=D2=C5=CA = =F3=CF=CB=CF=CC=CF=D7 ) - 2.11=20 =FD=E5=EC=EB=F5=EE=FE=E9=EB (=E2=CF=CC=D8=DB=CF=CA =D4=C5=C1=D4=D2) - = 25.10 (12.00)=20 =20 ------=_NextPart_000_0007_01C932B4.074A592B Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =20

= =F3=E1=ED=F9=E5 =F1=F2=EB=E9=E5 =F4=E5=E1=F4=F2=E1=EC=F8=EE=F9=E5 = =F3=EF=E2=F9=F4=E9=F1
/ =FE 9 5 / 2 2 9 3 5 0 0 =FA=C1=CB=C1=DA, = =C4=CF=D3=D4=C1=D7=CB=C1 =E2=E9=EC=E5=F4=EF=F7

=EE=EF=F7=E1=F1 = =F0=F2=E5=ED=F8=E5=F2=E1 =EB=EF=ED=E9=FE=E5=F3=EB=EF=E7=EF = =F4=E5=E1=F4=F2=E1 "=EB=F7=E1=F2=F4=E5=F4 =E9" -
=F2=E1=FA=E7=EF=F7=EF=F2=F9 =ED=F5=F6=FE=E9=EE = =F3=F2=E5=E4=EE=E5=E7=EF =F7=EF=FA=F2=E1=F3=F4=E1 =EF = =F6=E5=EE=FD=E9=EE=E1=E8, =EB=E9=EE=EF =E9 = =E1=EC=E0=ED=E9=EE=E9=E5=F7=F9=E8 =F7=E9=EC=EB=E1=E8 - 22.10 =C9 11, 18, 19, 26.11
...=EF =DE=C5=CD =C7=CF=D7=CF=D2=D1=D4 =CD=D5=D6=DE=C9=CE=D9, = =CB=CF=C7=C4=C1 =CF=CE=C9 =CF=C4=CE=C9? =E2=C5=D3=D3=D0=CF=D2=CE=CF, = =C2=C5=DA =D2=C1=DA=C7=CF=D7=CF=D2=CF=D7 =CF =D3=C1=CD=C9=C8 = =D6=C5=CE=DD=C9=CE=C1=C8 =CE=C5 =CF=C2=CF=CA=C4=C5=D4=D3=D1 - =C1 = =CB=C1=CB =D6=C5 =C2=C5=DA =CE=C9=C8! =EE=CF, =D0=D2=C9=DE=C5=CD = =D4=D5=D4 =C1=CC=C0=CD=C9=CE=C9=D7=D9=C5 =D7=C9=CC=CB=C9, =CB=C9=CE=CF = =C9 =D3=D2=C5=C4=C1 =CF=C2=C9=D4=C1=CE=C9=D1. =EE=D5, =CC=C1=C4=CE=CF = =CB=C9=CE=CF, =DC=D4=CF =D0=CF=CE=D1=D4=CE=CF. =EE=CF =D7=C9=CC=CB=C9?! =

=F7=E9=FA=E9=F4 = =E4=E1=ED=F9 (=F0=F2=E5=ED=F8=E5=F2=E1 =F7 = =EC=E5=EE=EB=EF=ED=E5, =ED=C1=D2=C9=D1 =ED=C9=D2=CF=CE=CF=D7=C1, = =E1=CC=C5=CB=D3=C1=CE=C4=D2 =EC=C1=DA=C1=D2=C5=D7, =E1=CE=C4=D2=C5=CA = =F3=CF=CB=CF=CC=CF=D7 ) - 2.11

= =FD=E5=EC=EB=F5=EE=FE=E9=EB (=E2=CF=CC=D8=DB=CF=CA =D4=C5=C1=D4=D2) - = 25.10 (12.00)

------=_NextPart_000_0007_01C932B4.074A592B-- From owner-xfs@oss.sgi.com Mon Oct 20 06:07:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, MIME_8BIT_HEADER,NORMAL_HTTP_TO_IP autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KD77i2004949 for ; Mon, 20 Oct 2008 06:07:08 -0700 X-ASG-Debug-ID: 1224508129-647a02390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from internet.referent.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6529A130F44C for ; Mon, 20 Oct 2008 06:08:50 -0700 (PDT) Received: from internet.referent.ru (news.referent.ru [212.188.13.163]) by cuda.sgi.com with ESMTP id CxGalPJzh1eUTUPg for ; Mon, 20 Oct 2008 06:08:50 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= Subject: Undeliverable mail: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= From: To: Date: Mon, 20 Oct 2008 17:08:49 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===28678464====internet.referent.ru===_" X-Barracuda-Connect: news.referent.ru[212.188.13.163] X-Barracuda-Start-Time: 1224508131 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3524 1.0000 -0.1442 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.14 X-Barracuda-Spam-Status: No, SCORE=-0.14 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NORMAL_HTTP_TO_IP, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8336 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 NORMAL_HTTP_TO_IP URI: Uses a dotted-decimal IP address in URL 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===28678464====internet.referent.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '999vniiofi@vniiofi.ru' SMTP module(domain mx1.vniiofi.ru) reports: host mx1.vniiofi.ru says: 550 5.1.1 <999vniiofi@vniiofi.ru>: Recipient address rejected: User unknown in local recipient table --_===28678464====internet.referent.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; internet.referent.ru Original-Recipient: rfc822;<999vniiofi@vniiofi.ru> Final-Recipient: rfc822;<999vniiofi@vniiofi.ru> Action: failed Status: 5.0.0 --_===28678464====internet.referent.ru===_ Content-Type: text/rfc822-headers Received: from 82.158.101.45.dyn.user.ono.com ([82.158.101.45] verified) by internet.referent.ru (CommuniGate Pro SMTP 5.2.1 _community_) with ESMTP id 28678436 for 999vniiofi@vniiofi.ru; Mon, 20 Oct 2008 17:08:48 +0400 Message-ID: <000a01c932b4$06807d84$20644cab@tuvrfeu> From: =?koi8-r?B?4cbJ28Eg7c/Ty9fZ?= To: <999vniiofi@vniiofi.ru> Subject: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= Date: Mon, 20 Oct 2008 11:21:12 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C932B4.067B564F" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===28678464====internet.referent.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 06:07:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KD7NvZ005084 for ; Mon, 20 Oct 2008 06:07:23 -0700 X-ASG-Debug-ID: 1224508146-695001e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay.ptc.spbu.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEE5514408A5 for ; Mon, 20 Oct 2008 06:09:06 -0700 (PDT) Received: from relay.ptc.spbu.ru (relay.ptc.spbu.ru [195.19.225.251]) by cuda.sgi.com with ESMTP id NcfEAzyTBT3y5mM5 for ; Mon, 20 Oct 2008 06:09:06 -0700 (PDT) Received: from localhost (localhost) by relay.ptc.spbu.ru (8.14.2/8.14.2/1.18) id m9KD95NV013389; Mon, 20 Oct 2008 17:09:05 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Mon, 20 Oct 2008 17:09:05 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810201309.m9KD95NV013389@relay.ptc.spbu.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9KD95NV013389.1224508145/relay.ptc.spbu.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: relay.ptc.spbu.ru[195.19.225.251] X-Barracuda-Start-Time: 1224508147 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1847 1.0000 -0.9093 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.91 X-Barracuda-Spam-Status: No, SCORE=-0.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8336 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9KD95NV013389.1224508145/relay.ptc.spbu.ru The original message was received at Mon, 20 Oct 2008 17:09:04 +0400 (MSD) from dslb-088-067-176-230.pools.arcor-ip.net [88.67.176.230] ----- The following addresses had permanent fatal errors ----- (reason: 550 5.1.1 ... User unknown) ----- Transcript of session follows ----- ... while talking to flux.ptc.spbu.ru.: >>> DATA <<< 550 5.1.1 ... User unknown 550 5.1.1 ... User unknown <<< 503 5.0.0 Need RCPT (recipient) --m9KD95NV013389.1224508145/relay.ptc.spbu.ru Content-Type: message/delivery-status Reporting-MTA: dns; relay.ptc.spbu.ru Received-From-MTA: DNS; dslb-088-067-176-230.pools.arcor-ip.net Arrival-Date: Mon, 20 Oct 2008 17:09:04 +0400 (MSD) Final-Recipient: RFC822; text-aligv@pobox.spbu.ru Action: failed Status: 5.1.1 Remote-MTA: DNS; flux.ptc.spbu.ru Diagnostic-Code: SMTP; 550 5.1.1 ... User unknown Last-Attempt-Date: Mon, 20 Oct 2008 17:09:04 +0400 (MSD) --m9KD95NV013389.1224508145/relay.ptc.spbu.ru Content-Type: text/rfc822-headers Return-Path: Received: from dslb-088-067-176-230.pools.arcor-ip.net (dslb-088-067-176-230.pools.arcor-ip.net [88.67.176.230]) by relay.ptc.spbu.ru (8.14.2/8.14.2/1.18) with ESMTP id m9KD92NV013297 for ; Mon, 20 Oct 2008 17:09:04 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000901c932b5$0684d8d2$6f20c883@htoibjve> From: "edgardo kwan" To: Subject: =?koi8-r?B?9MXQxdLYIPfB29Ug18naydTL1SDOycvPx8TBIM7FINfZy8nO1dQh?= Date: Mon, 20 Oct 2008 11:21:36 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0006_01C932B5.0682B975" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9KD95NV013389.1224508145/relay.ptc.spbu.ru-- From owner-xfs@oss.sgi.com Mon Oct 20 06:44:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_50 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KDiCcW009279 for ; Mon, 20 Oct 2008 06:44:17 -0700 X-ASG-Debug-ID: 1224510356-1abf00270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx10.mebel-rim.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8823B3225FA for ; Mon, 20 Oct 2008 06:45:56 -0700 (PDT) Received: from mx10.mebel-rim.ru (mx10.mebel-rim.ru [81.222.196.2]) by cuda.sgi.com with ESMTP id wIEPN9mo3NQGjNq4 for ; Mon, 20 Oct 2008 06:45:56 -0700 (PDT) Received: from localhost (localhost) by mx10.mebel-rim.ru (8.13.4/8.12.9) id m9KDYIbc052348; Mon, 20 Oct 2008 17:34:18 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Mon, 20 Oct 2008 17:34:18 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810201334.m9KDYIbc052348@mx10.mebel-rim.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9KDYIbc052348.1224509658/mx10.mebel-rim.ru" Content-Transfer-Encoding: 8bit X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: mx10.mebel-rim.ru[81.222.196.2] X-Barracuda-Start-Time: 1224510357 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4918 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9KDYIbc052348.1224509658/mx10.mebel-rim.ru The original message was received at Mon, 20 Oct 2008 17:34:17 +0400 (MSD) from [78.59.214.161] ----- The following addresses had permanent fatal errors ----- cmrim700_7 (reason: 550 5.1.1 User unknown) (expanded from: ) ----- Transcript of session follows ----- 550 5.1.1 cmrim700_7... User unknown --m9KDYIbc052348.1224509658/mx10.mebel-rim.ru Content-Type: message/delivery-status Reporting-MTA: dns; mx10.mebel-rim.ru Received-From-MTA: DNS; [78.59.214.161] Arrival-Date: Mon, 20 Oct 2008 17:34:17 +0400 (MSD) Final-Recipient: RFC822; vsk@mebel-rim.ru X-Actual-Recipient: RFC822; cmrim700_7@mx10.mebel-rim.ru Action: failed Status: 5.1.1 Diagnostic-Code: SMTP; 550 5.1.1 User unknown Last-Attempt-Date: Mon, 20 Oct 2008 17:34:18 +0400 (MSD) --m9KDYIbc052348.1224509658/mx10.mebel-rim.ru Content-Type: message/rfc822 Content-Transfer-Encoding: 8bit Return-Path: Received: from [78.59.214.161] ([78.59.214.161]) by mx10.mebel-rim.ru (8.13.4/8.12.9) with ESMTP id m9KDYHbc052343 for ; Mon, 20 Oct 2008 17:34:17 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000601c932ba$0668a8ab$4cbde28a@xmvtcfn> From: =?koi8-r?B?88vMwcQ=?= To: Subject: =?koi8-r?B?88vMwcQ=?= Date: Mon, 20 Oct 2008 11:58:26 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 éÚÂÁŚÌŃĆÍ ÏÔ ÇÏÌÏŚÎÏÊ ÂÏÌÉ Ó ÓÏÂÓÔŚĆÎÎÙÍ ÓËÌÁÄÓËÉÍ ÈÏÚŃÊÓÔŚÏÍ, ĐÏÈÍĆÌŰÎÙÍÉ ÇÒŐÚȚÉËÁÍÉ, ÔÉÈÉÍ ŚÏÒÏŚÓÔŚÏÍ É ĐÏÓÔÏŃÎÎÏÊ ÔĆËŐȚËÏÊ ËÁÄÒÏŚ! ïËÁÚÙŚÁĆÍ ĐÒÏÆĆÓÓÉÏÎÁÌŰÎÙĆ ŐÓÌŐÇÉ ÏÔŚĆÔÓÔŚĆÎÎÏÇÏ ÈÒÁÎĆÎÉŃ ÎÁ ÓËÌÁÄÓËÉÈ ÔĆÒÍÉÎÁÌÁÈ. đÏÌÎÙÊ ËÏÍĐÌĆËÓ ÓËÌÁÄÓËÉÈ ŐÓÌŐÇ: ĐÒÉĆÍ, ÈÒÁÎĆÎÉĆ, ËÏÍĐÌĆËÔÁĂÉŃ, ÏÔÇÒŐÚËÁ ĐÒÏÄŐËĂÉÉ. ïÆÉÓÙ É ÒÁÂÏȚÉĆ ÍĆÓÔÁ ÄÌŃ ĐÒĆÄÓÔÁŚÉÔĆÌĆÊ ËÌÉĆÎÔÏŚ. đĆÒÓÏÎÁÌŰÎÙĆ ÍĆÎĆÄÖĆÒÙ. óËÌÁÄÓËÉĆ ÏÓÔÁÔËÉ Ś ÒĆÖÉÍĆ «ÏÎ-ÌÁÊλ. 100% ÓÔÒÁÈÏŚÁÎÉĆ ĐÒÏÄŐËĂÉÉ ÏÔ ŚÓĆÈ ŚÉÄÏŚ ÒÉÓËÏŚ. óÄÁÀÔÓŃ Ś ÁÒĆÎÄŐ ËÏÎÔĆÊÎĆÒÁ (40-ÆŐÔÏŚÙĆ, 12,2È2,35, ŚÙÓÏÔÁ 2,9). ëÏÎÔĆÊÎĆÒÎÁŃ ĐÌÏĘÁÄËÁ, ÂÏÌŰÛÁŃ ÁĐĐÁÒĆÌŰ ÄÌŃ ÌÀÂÏÇÏ ÁŚÔÏÔÒÁÎÓĐÏÒÔÁ (+ ÂĆÓĐÌÁÔÎÁŃ ÎÏȚÎÁŃ ÓÔÏŃÎËÁ). òÁÚÇÒŐÚÏ-ĐÏÇÒŐÚÏȚÎÙĆ ÒÁÂÏÔÙ ÌÀÂÏÊ ÓÌÏÖÎÏÓÔÉ. đÏÍÏĘŰ Ś ĐÏÄÂÏÒĆ É ËÏÍĐÌĆËÔÁĂÉÉ ÚÁËÁÚÏŚ ÎÁ ÏÔÇÒŐÚËŐ. ćÓÔŰ ÏÆÉÓÎÙĆ ĐÏÍĆĘĆÎÉŃ. ôĆÌĆÆÏÎ, éÎÔĆÒÎĆÔ. ëÒŐÇÌÏÓŐÔÏȚÎÁŃ ÏÈÒÁÎÁ. ôÒÁÎÓĐÏÒÔÎÏĆ ÏÂÓÌŐÖÉŚÁÎÉĆ. àÇÏ-śÏÓÔÏË. 2 ËÍ ÏÔ íëáä ôĆÌĆÆÏÎ: 565 45 65, 565 42 32 --m9KDYIbc052348.1224509658/mx10.mebel-rim.ru-- From owner-xfs@oss.sgi.com Mon Oct 20 06:45:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KDjkjm009790 for ; Mon, 20 Oct 2008 06:45:46 -0700 X-ASG-Debug-ID: 1224510448-4bcb03a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from dmzdubna.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0A5A651B87D for ; Mon, 20 Oct 2008 06:47:29 -0700 (PDT) Received: from dmzdubna.ru (cust105-178-ll.dubna.ru [62.84.105.178]) by cuda.sgi.com with ESMTP id 1xrrDHTRQnHU0GJc for ; Mon, 20 Oct 2008 06:47:29 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= Subject: Undeliverable mail: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= From: To: Date: Mon, 20 Oct 2008 17:50:20 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===1011695====dmzdubna.ru===_" X-Barracuda-Connect: cust105-178-ll.dubna.ru[62.84.105.178] X-Barracuda-Start-Time: 1224510451 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4723 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE_7582B, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE_7582B Custom Rule 7582B 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===1011695====dmzdubna.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' This is a spam... ;) --_===1011695====dmzdubna.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; dmzdubna.ru Original-Recipient: rfc822; Final-Recipient: system; Action: failed Status: 5.0.0 --_===1011695====dmzdubna.ru===_ Content-Type: text/rfc822-headers Received: from [194.44.35.38] ([194.44.35.38] verified) by dmzdubna.ru (CommuniGate Pro SMTP 5.2.5) with ESMTP id 1011689 for proizvodstvo@dmzkamov.ru; Mon, 20 Oct 2008 17:50:13 +0400 X-Spam: [194.44.35.38] blacklisted() Received-SPF: none receiver=dmzdubna.ru; client-ip=194.44.35.38; envelope-from=xfs@oss.sgi.com Message-ID: <000801c3768f$05177e11$4fe192be@afgutxu> From: =?koi8-r?B?58HMyc7B?= To: Subject: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= Date: Tue, 09 Sep 2003 03:14:44 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C3768F.0516E8D1" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===1011695====dmzdubna.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 07:11:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.2 required=5.0 tests=BAYES_40,NUMERIC_HTTP_ADDR, URI_HEX autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KEAxlC012501 for ; Mon, 20 Oct 2008 07:10:59 -0700 X-ASG-Debug-ID: 1224511962-392700f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from crocodile.lis.nnov.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1A9B10AF6E9 for ; Mon, 20 Oct 2008 07:12:42 -0700 (PDT) Received: from crocodile.lis.nnov.ru (lllis.sci-nnov.ru [195.122.245.231]) by cuda.sgi.com with ESMTP id PGGlqiLTpXfLrDsT for ; Mon, 20 Oct 2008 07:12:42 -0700 (PDT) Received: from localhost (localhost) by crocodile.lis.nnov.ru (8.11.2/8.11.2) id m9KE6QO22153; Mon, 20 Oct 2008 18:06:26 +0400 Date: Mon, 20 Oct 2008 18:06:26 +0400 From: Mail Delivery Subsystem Message-Id: <200810201406.m9KE6QO22153@crocodile.lis.nnov.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9KE6QO22153.1224511586/crocodile.lis.nnov.ru" Content-Transfer-Encoding: 8bit X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: lllis.sci-nnov.ru[195.122.245.231] X-Barracuda-Start-Time: 1224511963 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4555 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.32 X-Barracuda-Spam-Status: No, SCORE=0.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NUMERIC_HTTP_ADDR, URI_HEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8340 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.32 URI_HEX URI: URI hostname has long hexadecimal sequence 0.00 NUMERIC_HTTP_ADDR URI: Uses a numeric IP address in URL 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9KE6QO22153.1224511586/crocodile.lis.nnov.ru The original message was received at Mon, 20 Oct 2008 18:06:25 +0400 from 18970169083.user.veloxzone.com.br [189.70.169.83] (may be forged) ----- The following addresses had permanent fatal errors ----- (reason: 550 karavapersonal@lis.nnov.ru unknown user account) ----- Transcript of session follows ----- ... while talking to [192.168.0.2]: >>> RCPT To: <<< 550 karavapersonal@lis.nnov.ru unknown user account 550 5.1.1 ... User unknown --m9KE6QO22153.1224511586/crocodile.lis.nnov.ru Content-Type: message/delivery-status Reporting-MTA: dns; crocodile.lis.nnov.ru Received-From-MTA: DNS; 18970169083.user.veloxzone.com.br Arrival-Date: Mon, 20 Oct 2008 18:06:25 +0400 Final-Recipient: RFC822; karavapersonal@lis.nnov.ru Action: failed Status: 5.1.1 Remote-MTA: DNS; [192.168.0.2] Diagnostic-Code: SMTP; 550 karavapersonal@lis.nnov.ru unknown user account Last-Attempt-Date: Mon, 20 Oct 2008 18:06:26 +0400 --m9KE6QO22153.1224511586/crocodile.lis.nnov.ru Content-Type: message/rfc822 Content-Transfer-Encoding: 8bit Return-Path: Received: from 18970169083.user.veloxzone.com.br (18970169083.user.veloxzone.com.br [189.70.169.83] (may be forged)) by crocodile.lis.nnov.ru (8.11.2/8.11.2) with ESMTP id m9KE6OO22148 for ; Mon, 20 Oct 2008 18:06:25 +0400 Message-ID: <000501c932bd$029f4252$d9ba8698@ogxbkjg> From: =?koi8-r?B?6cvSwQ==?= To: Subject: =?koi8-r?B?7M/Tz9PF18HRIMnL0sEg1yDPxsnT?= Date: Mon, 20 Oct 2008 12:25:06 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 ëòáóîáń éëòá, ŚÙÓÛĆÊ ĐÒÏÂÙ ÏÔ ĐÒÏÉÚŚÏÄÉÔĆÌŃ Ś ÇĆÒÍĆÔÉȚÎÙÈ ËÏÎÔĆÊÎĆÒÁÈ 300ÇÒ, 500ÇÒ. òÁÓĐÒÏÓÔÒÁÎÉÔĆÌŃÍ 50 ÒŐÂÌĆÊ ÚÁ ËÉÌÏÇÒÁÍÍ. äÏÓÔÁŚËÁ ÂĆÓĐÌÁÔÎÏ. đÒÉ ĐÏËŐĐËĆ śÙ ÉÍĆĆÔĆ ŚÏÚÍÏÖÎÏÓÔŰ ĐÒÏÄĆÇŐÓÔÉÒÏŚÁÔŰ É ÓÄĆÌÁÔŰ ÏËÏÎȚÁÔĆÌŰÎÙÊ ŚÙÂÏÒ ëÏÎÔÁËÔÎÙÊ ÔĆÌĆÆÏÎ: (495) 510-85-12 ó 9-00 ÄÏ 16-00 ïïï <óÔÁÔŐÓ-ëśï> --m9KE6QO22153.1224511586/crocodile.lis.nnov.ru-- From owner-xfs@oss.sgi.com Mon Oct 20 07:11:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KEBWrG012821 for ; Mon, 20 Oct 2008 07:11:32 -0700 X-ASG-Debug-ID: 1224511995-1abf01730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.northnet.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BFE1051BCDB for ; Mon, 20 Oct 2008 07:13:15 -0700 (PDT) Received: from mail.northnet.ru (mail.crossnet.ru [81.88.113.3]) by cuda.sgi.com with ESMTP id Fg4sx6MY4QJiyTWS for ; Mon, 20 Oct 2008 07:13:15 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?5M/T1MHXy8Egz8LFxM/X?= Subject: Undeliverable mail: =?koi8-r?B?5M/T1MHXy8Egz8LFxM/X?= From: To: Date: Mon, 20 Oct 2008 18:18:38 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===59574860====mail.northnet.ru===_" X-Barracuda-Connect: mail.crossnet.ru[81.88.113.3] X-Barracuda-Start-Time: 1224511996 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4473 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===59574860====mail.northnet.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' This user rejects any mail from your e-mail address! You seems to be a spammer. --_===59574860====mail.northnet.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; mail.northnet.ru Original-Recipient: rfc822; Final-Recipient: system; Action: failed Status: 5.0.0 --_===59574860====mail.northnet.ru===_ Content-Type: text/rfc822-headers Received: from [92.112.255.154] (HELO 154-255-112-92.pool.ukrtel.net) by mail.northnet.ru (CommuniGate Pro SMTP 4.3.8) with ESMTP id 59574774 for leo@mail.northnet.ru; Mon, 20 Oct 2008 18:18:13 +0400 Received-SPF: none receiver=mail.northnet.ru; client-ip=92.112.255.154; envelope-from=xfs@oss.sgi.com Message-ID: <000701c94b11$0712815c$303cc6ac@bqdyfgj> From: =?koi8-r?B?5MXOydM=?= To: Subject: =?koi8-r?B?5M/T1MHXy8Egz8LFxM/X?= Date: Thu, 20 Nov 2008 11:23:54 +0000 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_0002_01C94B11.07114960" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===59574860====mail.northnet.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 07:56:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KEuO80016896 for ; Mon, 20 Oct 2008 07:56:25 -0700 X-ASG-Debug-ID: 1224514689-3569039f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from yx-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 095BB1441A6A for ; Mon, 20 Oct 2008 07:58:09 -0700 (PDT) Received: from yx-out-1718.google.com (yx-out-1718.google.com [74.125.44.155]) by cuda.sgi.com with ESMTP id lf6JoIjYnLMeVAj5 for ; Mon, 20 Oct 2008 07:58:09 -0700 (PDT) Received: by yx-out-1718.google.com with SMTP id 36so302416yxh.32 for ; Mon, 20 Oct 2008 07:58:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=4y7oMEUC3Zjoq6KTYwg6+5mxfDHxVSEl8PfEZlVQw1E=; b=MRuMDDYwQaIkPIorVpFq7VXTiuvDZDkajKtuBdnqD+t9m8M5wNLZFDdR3j9JGHukhx UWIisFtjoNlkIl34WWD/5hOCRWeqqxRXT4L6Q/KOywDvD6l6FkAFuqxDJ7sa1oSpSMJo a/mgs3o8HeDjhnAGGKybtsU0WPxGX4L0l8Cn4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=HfiO15nnQ446lqIQYV+Vfu7PN1c6b/X2I3LP3N0qT0t0Qj2+qEWfCdkzffIfwdom+4 EC3yI1cu5zvUVpQVr14hsXFomwL4ss2oFTK+kif5pQbYvnYY6DTJ1SS2ZicWMaERB3fc ChlN5SiTOKBFAVrVtKCyoz4UrLokLt+IS01pE= Received: by 10.100.42.4 with SMTP id p4mr8443763anp.91.1224514689311; Mon, 20 Oct 2008 07:58:09 -0700 (PDT) Received: by 10.100.111.12 with HTTP; Mon, 20 Oct 2008 07:58:09 -0700 (PDT) Message-ID: Date: Mon, 20 Oct 2008 18:58:09 +0400 From: "Alexander Beregalov" To: "Arjan van de Ven" X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Cc: "Christoph Hellwig" , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML In-Reply-To: <20081017135510.7127c4e7@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> X-Barracuda-Connect: yx-out-1718.google.com[74.125.44.155] X-Barracuda-Start-Time: 1224514690 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8343 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2008/10/18 Arjan van de Ven : > On Fri, 17 Oct 2008 16:37:10 -0400 > Christoph Hellwig wrote: > >> I just ran the xfs testsuite over linux-next on qemu (i386), and I >> can't find anything at all. Really strange. Let's see if this still >> there with mondays linux-next, and if yes can you just try the xfs >> patch from the splitout linux-next patches and see if that alone >> causes it? Hi Christoph I have the same result with next-1020 and today's xfs-2.6.git/master ( commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 Author: David Chinner Date: Fri Oct 17 15:36:23 2008 +1000 Inode: Allow external list initialisation ) Should I start bisecting? >> >> In fact that might be useful for todays linux-next, too. >> -- > > also if you enable lockdep, it tracks where irq's got turned off (with > a stacktrace I think) so it would provide some good clues. Yes, lockdep was enabled, but there is no more information than I already posted. From owner-xfs@oss.sgi.com Mon Oct 20 07:58:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KEw5Vx017210 for ; Mon, 20 Oct 2008 07:58:05 -0700 X-ASG-Debug-ID: 1224514785-34c403060000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ginvl.real.kamchatka.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD68710AFEF9 for ; Mon, 20 Oct 2008 07:59:47 -0700 (PDT) Received: from ginvl.real.kamchatka.ru (gin.real.kamchatka.ru [85.28.195.129]) by cuda.sgi.com with ESMTP id wKyvkaq3NBinxBuG for ; Mon, 20 Oct 2008 07:59:47 -0700 (PDT) Received: from localhost (localhost) by ginvl.real.kamchatka.ru (8.13.8/8.13.4) id m9KExhuC093761; Tue, 21 Oct 2008 03:59:43 +1300 (PETST) Date: Tue, 21 Oct 2008 03:59:43 +1300 (PETST) From: Mail Delivery Subsystem Message-Id: <200810201459.m9KExhuC093761@ginvl.real.kamchatka.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9KExhuC093761.1224514783/ginvl.real.kamchatka.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: gin.real.kamchatka.ru[85.28.195.129] X-Barracuda-Start-Time: 1224514790 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3444 1.0000 -0.1727 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.33 X-Barracuda-Spam-Status: No, SCORE=0.33 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8342 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9KExhuC093761.1224514783/ginvl.real.kamchatka.ru The original message was received at Tue, 21 Oct 2008 03:59:32 +1300 (PETST) from [117.53.205.230] ----- The following addresses had permanent fatal errors ----- (reason: 550 Host unknown) ----- Transcript of session follows ----- 550 5.1.2 ... Host unknown (Name server: ktfoms.kamchatka.su: host not found) --m9KExhuC093761.1224514783/ginvl.real.kamchatka.ru Content-Type: message/delivery-status Reporting-MTA: dns; ginvl.real.kamchatka.ru Received-From-MTA: DNS; [117.53.205.230] Arrival-Date: Tue, 21 Oct 2008 03:59:32 +1300 (PETST) Final-Recipient: RFC822; ot@ktfoms.kamchatka.su Action: failed Status: 5.1.2 Remote-MTA: DNS; ktfoms.kamchatka.su Diagnostic-Code: SMTP; 550 Host unknown Last-Attempt-Date: Tue, 21 Oct 2008 03:59:43 +1300 (PETST) --m9KExhuC093761.1224514783/ginvl.real.kamchatka.ru Content-Type: text/rfc822-headers Return-Path: Received: from [117.53.205.230] ([117.53.205.230]) by ginvl.real.kamchatka.ru (8.13.8/8.13.4) with ESMTP id m9KExFuC093421 for ; Tue, 21 Oct 2008 03:59:32 +1300 (PETST) Message-ID: <000601c932c4$04e0019f$6e5c85b2@ketqnusk> From: =?koi8-r?B?8M/Myc7B?= To: Subject: =?koi8-r?B?5MXMz9fB0SDQz8zJx9LBxsnRIM7BIO7P19nKIOfPxCDJIM7FINTPzA==?= =?koi8-r?B?2MvP?= Date: Mon, 20 Oct 2008 13:11:35 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C932C4.04DF9DDA" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9KExhuC093761.1224514783/ginvl.real.kamchatka.ru-- From owner-xfs@oss.sgi.com Mon Oct 20 08:01:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KF14Y7017759 for ; Mon, 20 Oct 2008 08:01:05 -0700 X-ASG-Debug-ID: 1224514968-239600660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from main.rgs.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C7932144261B for ; Mon, 20 Oct 2008 08:02:49 -0700 (PDT) Received: from main.rgs.ru (mx.rgs.ru [194.84.56.197]) by cuda.sgi.com with ESMTP id eVe0pOpHZZlFrVzJ for ; Mon, 20 Oct 2008 08:02:49 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= Subject: Undeliverable mail: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= From: To: Date: Mon, 20 Oct 2008 19:02:48 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===184518103====main.rgs.ru===_" X-Barracuda-Connect: mx.rgs.ru[194.84.56.197] X-Barracuda-Start-Time: 1224514969 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4153 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE_7582B, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8343 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE_7582B Custom Rule 7582B 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===184518103====main.rgs.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '335086982.20051102100627@500.arhn.rgs.ru' Message rejected under suspicion of spam. --_===184518103====main.rgs.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; main.rgs.ru Original-Recipient: rfc822;<335086982.20051102100627@500.arhn.rgs.ru> Final-Recipient: system;<335086982.20051102100627@500.arhn.rgs.ru> Action: failed Status: 5.0.0 --_===184518103====main.rgs.ru===_ Content-Type: text/rfc822-headers Received: from [207.148.222.218] ([207.148.222.218] verified) by main.rgs.ru (CommuniGate Pro SMTP 5.1.12) with ESMTP id 184517799 for 335086982.20051102100627@500.arhn.rgs.ru; Mon, 20 Oct 2008 19:02:46 +0400 Message-ID: <000601c932c6$06c80a0b$df3b189e@sbatkkeo> From: =?koi8-r?B?58HMyc7B?= To: <335086982.20051102100627@500.arhn.rgs.ru> Subject: =?koi8-r?B?68HLINrBy9LZ1Ngg08zP1s7ZxSDXwcvBztPJyQ==?= Date: Mon, 20 Oct 2008 13:23:54 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C932C6.06C4A54B" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===184518103====main.rgs.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 08:13:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_20,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFD4jn019287 for ; Mon, 20 Oct 2008 08:13:05 -0700 X-ASG-Debug-ID: 1224515688-3bb800290000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from informex3.lukoil.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AAD5B1442175 for ; Mon, 20 Oct 2008 08:14:48 -0700 (PDT) Received: from informex3.lukoil.ru (informex3.lukoil.ru [212.38.97.15]) by cuda.sgi.com with ESMTP id QskWGqbhPGgi0ou0 for ; Mon, 20 Oct 2008 08:14:48 -0700 (PDT) Received: from paddy.luknef.ru ([172.31.61.9]) by informex3.lukoil.ru with Microsoft SMTPSVC(6.0.3790.3959); Mon, 20 Oct 2008 19:14:46 +0400 X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Subject: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= From: MAILER-DAEMON@paddy.luknef.ru To: Date: Mon, 20 Oct 2008 19:23:49 +0400 Message-ID: MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===9174711====paddy.luknef.ru===_" X-OriginalArrivalTime: 20 Oct 2008 15:14:46.0487 (UTC) FILETIME=[9664C670:01C932C6] X-Barracuda-Connect: informex3.lukoil.ru[212.38.97.15] X-Barracuda-Start-Time: 1224515689 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4963 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8343 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===9174711====paddy.luknef.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'glazkova@luknef.ru' LOCAL module(account glazkova@luknef.ru) reports: mailbox does not exist --_===9174711====paddy.luknef.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; paddy.luknef.ru Original-Recipient: rfc822; Final-Recipient: LOCAL;<> Action: failed Status: 5.0.0 --_===9174711====paddy.luknef.ru===_ Content-Type: text/rfc822-headers Received: from [212.38.97.174] (HELO SMTP4.corp.lukoil.com) by paddy.luknef.ru (CommuniGate Pro SMTP 4.1.8) with ESMTP id 9174710 for glazkova@luknef.ru; Mon, 20 Oct 2008 19:23:49 +0400 X-TM-IMSS-Message-ID:<811b4713000031c1@lukoil.com> Received: from c194.187.101.112.interlain.lv ([194.187.101.112]) by lukoil.com ([212.38.97.175]) with ESMTP (TREND IMSS SMTP Service 7.0) id 811b4713000031c1 ; Mon, 20 Oct 2008 19:13:47 +0300 Message-ID: <000601c932c6$02016cbb$835ebca6@snvgltg> From: =?koi8-r?B?6dLJzsE=?= To: Subject: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Date: Mon, 20 Oct 2008 13:26:53 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C932C6.0200BA0A" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-TM-AS-Product-Ver: IMSS-7.0.0.6219-5.5.0.1027-16230.000 X-TM-AS-Result: Yes-42.865-5.0-31-1 X-imss-scan-details: Yes-42.865-5.0-31-1 --_===9174711====paddy.luknef.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 08:17:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFH4Ds019965 for ; Mon, 20 Oct 2008 08:17:04 -0700 X-ASG-Debug-ID: 1224515926-7dae000f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ns.roilcom.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 10A5E51C332 for ; Mon, 20 Oct 2008 08:18:46 -0700 (PDT) Received: from ns.roilcom.ru (ns.roilcom.ru [217.22.160.5]) by cuda.sgi.com with ESMTP id b8vCTuPE0sB0WlOP for ; Mon, 20 Oct 2008 08:18:46 -0700 (PDT) Received: from localhost (localhost) by ns.roilcom.ru (8.12.11/8.12.6) id m9KFLP81075641; Mon, 20 Oct 2008 19:21:25 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Mon, 20 Oct 2008 19:21:25 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810201521.m9KFLP81075641@ns.roilcom.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9KFLP81075641.1224516085/ns.roilcom.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: ns.roilcom.ru[217.22.160.5] X-Barracuda-Start-Time: 1224515929 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3594 1.0000 -0.1204 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.88 X-Barracuda-Spam-Status: No, SCORE=0.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8343 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.50 BSF_RULE_7582B Custom Rule 7582B 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9KFLP81075641.1224516085/ns.roilcom.ru The original message was received at Mon, 20 Oct 2008 19:21:21 +0400 (MSD) from dslb-092-073-100-167.pools.arcor-ip.net [92.73.100.167] ----- The following addresses had permanent fatal errors ----- (reason: 550 5.7.1 Requested action not taken: mailbox not available) ----- Transcript of session follows ----- ... while talking to local.rosneft.ru.: >>> DATA <<< 550 5.7.1 Requested action not taken: mailbox not available 550 5.1.1 ... User unknown <<< 503 5.5.2 Need Rcpt command. --m9KFLP81075641.1224516085/ns.roilcom.ru Content-Type: message/delivery-status Reporting-MTA: dns; ns.roilcom.ru Received-From-MTA: DNS; dslb-092-073-100-167.pools.arcor-ip.net Arrival-Date: Mon, 20 Oct 2008 19:21:21 +0400 (MSD) Final-Recipient: RFC822; i_baikov@local.rosneft.ru Action: failed Status: 5.7.1 Remote-MTA: DNS; local.rosneft.ru Diagnostic-Code: SMTP; 550 5.7.1 Requested action not taken: mailbox not available Last-Attempt-Date: Mon, 20 Oct 2008 19:21:25 +0400 (MSD) --m9KFLP81075641.1224516085/ns.roilcom.ru Content-Type: text/rfc822-headers Return-Path: Received: from dslb-092-073-100-167.pools.arcor-ip.net (dslb-092-073-100-167.pools.arcor-ip.net [92.73.100.167]) by ns.roilcom.ru (8.12.11/8.12.6) with ESMTP id m9KFLK81075568 for ; Mon, 20 Oct 2008 19:21:21 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000501c92c1c$07ec4933$6c4616a0@pwqlxm> From: =?koi8-r?B?4c7Uz87JzsE=?= To: Subject: =?koi8-r?B?9d7F1CDB19TP1NLBztPQz9LUwSDOwSDQ0sXE0NLJ0dTJyS4g7sHMzw==?= =?koi8-r?B?x8/PwszP1sXOycU=?= Date: Sun, 12 Oct 2008 01:55:21 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0002_01C92C1C.07EAA58C" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9KFLP81075641.1224516085/ns.roilcom.ru-- From owner-xfs@oss.sgi.com Mon Oct 20 08:48:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFmToq027691 for ; Mon, 20 Oct 2008 08:48:30 -0700 X-ASG-Debug-ID: 1224517812-13af02220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ns.ugsm.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 549C210B013F for ; Mon, 20 Oct 2008 08:50:13 -0700 (PDT) Received: from ns.ugsm.ru (ns.ugsm.ru [83.149.32.2]) by cuda.sgi.com with ESMTP id NO5yqNGm4sV15ZMZ for ; Mon, 20 Oct 2008 08:50:13 -0700 (PDT) Received: from smsmail.sms.ugsm.ru (smsemail.sms.ugsm.ru [10.66.227.3]) by ns.ugsm.ru (8.12.9p2/8.12.9) with SMTP id m9KFoVjT040470 for ; Mon, 20 Oct 2008 21:50:31 +0600 (YEKST) Received: by smsmail.sms.ugsm.ru (Postfix, from userid 99) id 19F6E8021F4; Mon, 20 Oct 2008 21:27:47 +0600 (YEKST) Received: from localhost.localdomain (localhost [127.0.0.1]) by smsmail.sms.ugsm.ru (Postfix) with ESMTP id D030C802124 for ; Mon, 20 Oct 2008 21:27:46 +0600 (YEKST) From: MAILER-DAEMON@sms.ugsm.ru To: xfs@oss.sgi.com X-ASG-Orig-Subj: Undelivered Mail Returned to Sender Subject: Undelivered Mail Returned to Sender Mime-Version: 1.0 Content-Type: text/plain; charset=Windows-1251 Message-Id: <20081020152746.D030C802124@smsmail.sms.ugsm.ru> Date: Mon, 20 Oct 2008 21:27:46 +0600 (YEKST) X-Barracuda-Connect: ns.ugsm.ru[83.149.32.2] X-Barracuda-Start-Time: 1224517814 X-Barracuda-Bayes: INNOCENT GLOBAL 0.6297 1.0000 0.9004 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.90 X-Barracuda-Spam-Status: No, SCORE=0.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m9KFmUoq027692 This is the SMS & E-Mail program. I'm sorry to have to inform you that the message returned below could not be delivered to one or more destinations. pchelka: 550-Mailbox unknown. Either there is no mailbox associated with this 550-name or you do not have authorization to see it. From owner-xfs@oss.sgi.com Mon Oct 20 08:49:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFnmZQ028039 for ; Mon, 20 Oct 2008 08:49:48 -0700 X-ASG-Debug-ID: 1224517892-790e01f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from postoffice.net.ua (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E129151C091 for ; Mon, 20 Oct 2008 08:51:33 -0700 (PDT) Received: from postoffice.net.ua (postoffice.net.ua [62.149.8.98]) by cuda.sgi.com with ESMTP id 9GwIYZ1vaECYM3VW for ; Mon, 20 Oct 2008 08:51:33 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?4sHC2MUgzMXUzyDXIM/UxczFIOTBy8vB0g==?= Subject: Undeliverable mail: =?koi8-r?B?4sHC2MUgzMXUzyDXIM/UxczFIOTBy8vB0g==?= From: To: Date: Mon, 20 Oct 2008 18:51:32 +0300 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===149196681====postoffice.net.ua===_" X-Barracuda-Connect: postoffice.net.ua[62.149.8.98] X-Barracuda-Start-Time: 1224517893 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4980 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===149196681====postoffice.net.ua===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' LOCAL module(account postmaster@odportal.com.ua) reports: !!! NO SPAM !!! --_===149196681====postoffice.net.ua===_ Content-Type: message/delivery-status Reporting-MTA: dns; postoffice.net.ua Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 5.0.0 --_===149196681====postoffice.net.ua===_ Content-Type: text/rfc822-headers Received: from [78.174.51.4] ([78.174.51.4] verified) by postoffice.net.ua (DigitalGate Pro SMTP 5.2c3) with ESMTP id 149195881 for htte@odportal.com.ua; Mon, 20 Oct 2008 18:50:39 +0300 Received-SPF: none receiver=postoffice.net.ua; client-ip=78.174.51.4; envelope-from=xfs@oss.sgi.com Message-ID: <000701c932cb$0591deb3$73901892@muoxjtga> From: =?koi8-r?B?4sHMwcvMwdfB?= To: Subject: =?koi8-r?B?4sHC2MUgzMXUzyDXIM/UxczFIOTBy8vB0g==?= Date: Mon, 20 Oct 2008 14:03:00 +0000 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_0002_01C932CB.058F9FFD" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===149196681====postoffice.net.ua===_-- From owner-xfs@oss.sgi.com Mon Oct 20 08:54:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFskse028714 for ; Mon, 20 Oct 2008 08:54:46 -0700 X-ASG-Debug-ID: 1224518189-239503490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from contrabass.post.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BBACD1442547 for ; Mon, 20 Oct 2008 08:56:30 -0700 (PDT) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by cuda.sgi.com with ESMTP id aCINCTjLTG7Wt7Se for ; Mon, 20 Oct 2008 08:56:30 -0700 (PDT) Received: from corbina.ru (harp.corbina.net [195.14.50.10]) by contrabass.post.ru (Postfix) with ESMTP id 743FCBC79 for ; Mon, 20 Oct 2008 19:56:29 +0400 (MSD) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= Subject: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= From: To: Date: Mon, 20 Oct 2008 19:56:29 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===1350890473====corbina.ru===_" X-Barracuda-Connect: contrabass.post.ru[85.21.78.5] X-Barracuda-Start-Time: 1224518190 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4035 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===1350890473====corbina.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' LOCAL module(account prizmapl@post.ru) reports: account is full (quota exceeded) --_===1350890473====corbina.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; corbina.ru Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 4.0.0 --_===1350890473====corbina.ru===_ Content-Type: text/rfc822-headers Received: from buben.corbina.net ([85.21.78.95] verified) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1350890470 for owff@prizma.ru; Mon, 20 Oct 2008 19:56:29 +0400 Received: by buben.corbina.net (Postfix, from userid 426) id 234B51595E6; Mon, 20 Oct 2008 19:56:29 +0400 (MSD) Received: from localhost (localhost [127.0.0.1]) by buben.corbina.net (Postfix) with ESMTP id D369E159453 for ; Mon, 20 Oct 2008 19:56:28 +0400 (MSD) X-Spam-Ystatus: hits=40.7 __R63 R3543 R1653 R2939 R2837 R72 R358 __R30 R4795 R5062 R4746 R4852 R4753 R4882 R4767 R4941 R5470 R5532 R5533 R5555 __R5647 R6293 R383 R686 R823 R1361 R5459 R5646 R5686 R839 R846 R848 R857 R952 R980 R981 R1096 R1097 R1098 R1100 R954 R955 R956 R809 R3243 R3255 R3258 R3276 X-Spam-Flag: YES X-Spam-Yversion: Spamooborona-2.3 Received: from [220.181.56.99] (unknown [210.73.58.126]) by buben.corbina.net (Postfix) with ESMTP id 03607159398 for ; Mon, 20 Oct 2008 19:56:28 +0400 (MSD) Message-ID: <000501c932cc$0744c524$2dc75691@iqhcjui> From: =?koi8-r?B?88vMwcQ=?= To: Subject: =?koi8-r?B?88vMwcQ=?= Date: Mon, 20 Oct 2008 14:09:02 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===1350890473====corbina.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 08:59:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KFx69s029326 for ; Mon, 20 Oct 2008 08:59:06 -0700 X-ASG-Debug-ID: 1224518449-186502020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from aha.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEA6A10B0733 for ; Mon, 20 Oct 2008 09:00:49 -0700 (PDT) Received: from aha.ru (zfrontend3.aha.ru [195.2.83.149]) by cuda.sgi.com with ESMTP id LDUyiSF4yQEWCFCd for ; Mon, 20 Oct 2008 09:00:49 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Subject: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= From: To: Date: Mon, 20 Oct 2008 20:00:48 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===184816200====zfrontend3.aha.ru===_" X-Barracuda-Connect: zfrontend3.aha.ru[195.2.83.149] X-Barracuda-Start-Time: 1224518451 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4922 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===184816200====zfrontend3.aha.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'bald@aha.ru' LOCAL module(account bald@aha.ru) reports: account is full (quota exceeded) --_===184816200====zfrontend3.aha.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; zfrontend3.aha.ru Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 4.0.0 --_===184816200====zfrontend3.aha.ru===_ Content-Type: text/rfc822-headers Received: from 212-59-21-214.static.telecom.lt ([212.59.21.214] verified) by zfrontend3.aha.ru (CommuniGate Pro SMTP 4.2.8) with ESMTP id 184813870 for bald@aha.ru; Mon, 20 Oct 2008 20:00:36 +0400 Message-ID: <000501c932cc$02369183$dc2b48af@odojunr> From: =?koi8-r?B?6dLJzsE=?= To: Subject: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Date: Mon, 20 Oct 2008 14:12:57 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0002_01C932CC.02354FFB" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===184816200====zfrontend3.aha.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 09:00:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KG0vTA029857 for ; Mon, 20 Oct 2008 09:00:58 -0700 X-ASG-Debug-ID: 1224518561-3c5202440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from aha.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8EC001442E7E for ; Mon, 20 Oct 2008 09:02:41 -0700 (PDT) Received: from aha.ru (bumblebee.zenon.net [62.113.100.75]) by cuda.sgi.com with ESMTP id xWp2yr3C8L9Dx3I0 for ; Mon, 20 Oct 2008 09:02:41 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Subject: Undeliverable mail: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= From: To: Date: Mon, 20 Oct 2008 20:02:40 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===10932359====zfrontend2.aha.ru===_" X-Barracuda-Connect: bumblebee.zenon.net[62.113.100.75] X-Barracuda-Start-Time: 1224518562 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4966 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===10932359====zfrontend2.aha.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'bauman@aha.ru' LOCAL module(account bauman@aha.ru) reports: account is full (quota exceeded) --_===10932359====zfrontend2.aha.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; zfrontend2.aha.ru Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 4.0.0 --_===10932359====zfrontend2.aha.ru===_ Content-Type: text/rfc822-headers Received: from 212-59-21-214.static.telecom.lt ([212.59.21.214] verified) by zfrontend2.aha.ru (CommuniGate Pro SMTP 4.2.8) with ESMTP id 10930878 for bauman@aha.ru; Mon, 20 Oct 2008 20:02:07 +0400 Message-ID: <000801c932cd$056936d7$24b946bf@wddnad> From: =?koi8-r?B?6dLJzsE=?= To: Subject: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Date: Mon, 20 Oct 2008 14:14:34 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C932CD.05636B61" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===10932359====zfrontend2.aha.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 09:07:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KG7Hpm030836 for ; Mon, 20 Oct 2008 09:07:17 -0700 X-ASG-Debug-ID: 1224518938-3bbb02ce0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from contrabass.post.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 41FE41442F5F for ; Mon, 20 Oct 2008 09:08:58 -0700 (PDT) Received: from contrabass.post.ru (contrabass.post.ru [85.21.78.5]) by cuda.sgi.com with ESMTP id bPtCdDZZHH2Tzdyd for ; Mon, 20 Oct 2008 09:08:58 -0700 (PDT) Received: from corbina.ru (harp.corbina.net [195.14.50.10]) by contrabass.post.ru (Postfix) with ESMTP id 0F8E19DA6 for ; Mon, 20 Oct 2008 20:08:58 +0400 (MSD) X-Virus-Scanned: by cgpav Uf39PSi9pFi9oFi9 X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= Subject: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= From: To: Date: Mon, 20 Oct 2008 20:08:58 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===1350945944====corbina.ru===_" X-Barracuda-Connect: contrabass.post.ru[85.21.78.5] X-Barracuda-Start-Time: 1224518939 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3802 1.0000 -0.0542 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.05 X-Barracuda-Spam-Status: No, SCORE=-0.05 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===1350945944====corbina.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' LOCAL module(account vmerkul@post.ru) reports: account is full (quota exceeded) --_===1350945944====corbina.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; corbina.ru Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 4.0.0 --_===1350945944====corbina.ru===_ Content-Type: text/rfc822-headers Received: from horn.corbina.net ([83.102.180.2] verified) by corbina.ru (CommuniGate Pro SMTP 5.1.14) with ESMTPS id 1350945924 for rt@dentalart.ru; Mon, 20 Oct 2008 20:08:58 +0400 Received: by horn.corbina.net (Postfix, from userid 426) id B8F32821A42; Mon, 20 Oct 2008 20:08:57 +0400 (MSD) Received: from localhost (localhost [127.0.0.1]) by horn.corbina.net (Postfix) with ESMTP id 682D28218C3 for ; Mon, 20 Oct 2008 20:08:57 +0400 (MSD) X-Spam-Ystatus: hits=54.9 R4059 __R63 R3543 R1653 R2939 R2837 R72 R4287 __R30 __R359 R366 R3299 R3300 R3305 R3316 R3323 R4795 R5062 R4746 R4852 R4753 R4882 R4767 R4941 R5468 R5470 R5532 R5533 R5555 R5572 __R5647 R6293 R381 R686 R823 R1346 R1361 R4080 R5459 R5643 R5646 R3189 R5686 R1116 R1121 R1130 R4157 R839 R846 R848 R857 R952 R980 R981 R1096 R1097 R1098 R1100 R1101 R954 R955 R956 R809 R3243 R3255 R3258 R3276 X-Spam-Flag: YES X-Spam-Yversion: Spamooborona-2.3 Received: from host75.190-136-104.telecom.net.ar (host75.190-136-104.telecom.net.ar [190.136.104.75]) by horn.corbina.net (Postfix) with ESMTP id A59CC821A91 for ; Mon, 20 Oct 2008 20:08:46 +0400 (MSD) Message-ID: <000901c932d6$07b98169$54a0bcbf@bhjetjn> From: =?koi8-r?B?88vMwcQ=?= To: Subject: =?koi8-r?B?88vMwcQ=?= Date: Mon, 20 Oct 2008 15:20:56 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===1350945944====corbina.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 09:31:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KGVivU001373 for ; Mon, 20 Oct 2008 09:31:46 -0700 X-ASG-Debug-ID: 1224520408-180103630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D978610B1140 for ; Mon, 20 Oct 2008 09:33:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Y2NgTxhFi5UFljeO for ; Mon, 20 Oct 2008 09:33:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Krxh9-00059O-Uj; Mon, 20 Oct 2008 16:33:27 +0000 Date: Mon, 20 Oct 2008 12:33:27 -0400 From: Christoph Hellwig To: Alexander Beregalov Cc: Arjan van de Ven , Christoph Hellwig , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081020163327.GA15651@infradead.org> References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224520409 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8344 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 06:58:09PM +0400, Alexander Beregalov wrote: > Hi Christoph > > I have the same result with next-1020 and today's xfs-2.6.git/master > ( > commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 > Author: David Chinner > Date: Fri Oct 17 15:36:23 2008 +1000 > Inode: Allow external list initialisation > ) > > Should I start bisecting? That would be extremely helpful! And as mentioned in the other mail I still can't reproduce it, but I can currently only test on x86-32, not x86-64. From owner-xfs@oss.sgi.com Mon Oct 20 09:58:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KGw38c003803 for ; Mon, 20 Oct 2008 09:58:03 -0700 X-ASG-Debug-ID: 1224521985-5e01012b0002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail1.kunstkamera.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AD76151D133 for ; Mon, 20 Oct 2008 09:59:48 -0700 (PDT) Received: from mail1.kunstkamera.ru (relay.mae.nw.ru [195.19.204.76]) by cuda.sgi.com with ESMTP id pLr7Dal4B7MpwhNr for ; Mon, 20 Oct 2008 09:59:48 -0700 (PDT) Received: from relay1.kunstkamera.ru ([10.0.200.4] RDNS failed) by mail1.kunstkamera.ru with Microsoft SMTPSVC(6.0.3790.3959); Mon, 20 Oct 2008 20:59:44 +0400 X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= Subject: Undeliverable mail: =?koi8-r?B?88vMwcQ=?= From: To: Date: Mon, 20 Oct 2008 20:19:42 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===52485623====relay1.kunstkamera.ru===_" X-OriginalArrivalTime: 20 Oct 2008 16:59:44.0460 (UTC) FILETIME=[404730C0:01C932D5] X-Barracuda-Connect: relay.mae.nw.ru[195.19.204.76] X-Barracuda-Start-Time: 1224521988 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2260 1.0000 -0.6938 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.69 X-Barracuda-Spam-Status: No, SCORE=-0.69 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8347 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===52485623====relay1.kunstkamera.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' Your Message Rejected by security reasons, please contact your SYSTEM ADMINISTRATOR. --_===52485623====relay1.kunstkamera.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; relay1.kunstkamera.ru Original-Recipient: rfc822; Final-Recipient: system; Action: failed Status: 5.0.0 --_===52485623====relay1.kunstkamera.ru===_ Content-Type: message/rfc822 Received: from [80.250.49.229] ([80.250.49.229] verified) by relay1.kunstkamera.ru (CommuniGate Pro SMTP 5.2.7) with ESMTP id 52470650 for buhgalteria@kunstkamera.ru; Mon, 20 Oct 2008 19:27:22 +0400 Message-ID: <000501c932c7$019852fd$24d9b78a@jlmgkq> From: =?koi8-r?B?88vMwcQ=?= To: Subject: =?koi8-r?B?88vMwcQ=?= Date: Mon, 20 Oct 2008 13:33:36 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 éÚÂÁŚÌŃĆÍ ÏÔ ÇÏÌÏŚÎÏÊ ÂÏÌÉ Ó ÓÏÂÓÔŚĆÎÎÙÍ ÓËÌÁÄÓËÉÍ ÈÏÚŃÊÓÔŚÏÍ, ĐÏÈÍĆÌŰÎÙÍÉ ÇÒŐÚȚÉËÁÍÉ, ÔÉÈÉÍ ŚÏÒÏŚÓÔŚÏÍ É ĐÏÓÔÏŃÎÎÏÊ ÔĆËŐȚËÏÊ ËÁÄÒÏŚ! ïËÁÚÙŚÁĆÍ ĐÒÏÆĆÓÓÉÏÎÁÌŰÎÙĆ ŐÓÌŐÇÉ ÏÔŚĆÔÓÔŚĆÎÎÏÇÏ ÈÒÁÎĆÎÉŃ ÎÁ ÓËÌÁÄÓËÉÈ ÔĆÒÍÉÎÁÌÁÈ. đÏÌÎÙÊ ËÏÍĐÌĆËÓ ÓËÌÁÄÓËÉÈ ŐÓÌŐÇ: ĐÒÉĆÍ, ÈÒÁÎĆÎÉĆ, ËÏÍĐÌĆËÔÁĂÉŃ, ÏÔÇÒŐÚËÁ ĐÒÏÄŐËĂÉÉ. ïÆÉÓÙ É ÒÁÂÏȚÉĆ ÍĆÓÔÁ ÄÌŃ ĐÒĆÄÓÔÁŚÉÔĆÌĆÊ ËÌÉĆÎÔÏŚ. đĆÒÓÏÎÁÌŰÎÙĆ ÍĆÎĆÄÖĆÒÙ. óËÌÁÄÓËÉĆ ÏÓÔÁÔËÉ Ś ÒĆÖÉÍĆ «ÏÎ-ÌÁÊλ. 100% ÓÔÒÁÈÏŚÁÎÉĆ ĐÒÏÄŐËĂÉÉ ÏÔ ŚÓĆÈ ŚÉÄÏŚ ÒÉÓËÏŚ. óÄÁÀÔÓŃ Ś ÁÒĆÎÄŐ ËÏÎÔĆÊÎĆÒÁ (40-ÆŐÔÏŚÙĆ, 12,2È2,35, ŚÙÓÏÔÁ 2,9). ëÏÎÔĆÊÎĆÒÎÁŃ ĐÌÏĘÁÄËÁ, ÂÏÌŰÛÁŃ ÁĐĐÁÒĆÌŰ ÄÌŃ ÌÀÂÏÇÏ ÁŚÔÏÔÒÁÎÓĐÏÒÔÁ (+ ÂĆÓĐÌÁÔÎÁŃ ÎÏȚÎÁŃ ÓÔÏŃÎËÁ). òÁÚÇÒŐÚÏ-ĐÏÇÒŐÚÏȚÎÙĆ ÒÁÂÏÔÙ ÌÀÂÏÊ ÓÌÏÖÎÏÓÔÉ. đÏÍÏĘŰ Ś ĐÏÄÂÏÒĆ É ËÏÍĐÌĆËÔÁĂÉÉ ÚÁËÁÚÏŚ ÎÁ ÏÔÇÒŐÚËŐ. ćÓÔŰ ÏÆÉÓÎÙĆ ĐÏÍĆĘĆÎÉŃ. ôĆÌĆÆÏÎ, éÎÔĆÒÎĆÔ. ëÒŐÇÌÏÓŐÔÏȚÎÁŃ ÏÈÒÁÎÁ. ôÒÁÎÓĐÏÒÔÎÏĆ ÏÂÓÌŐÖÉŚÁÎÉĆ. àÇÏ-śÏÓÔÏË. 2 ËÍ ÏÔ íëáä ôĆÌĆÆÏÎ: 565 45 65, 565 42 32 --_===52485623====relay1.kunstkamera.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 10:11:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KHBL8r006132 for ; Mon, 20 Oct 2008 10:11:21 -0700 X-ASG-Debug-ID: 1224522785-761600f60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-gx0-f18.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5C28151D688 for ; Mon, 20 Oct 2008 10:13:05 -0700 (PDT) Received: from mail-gx0-f18.google.com (mail-gx0-f18.google.com [209.85.217.18]) by cuda.sgi.com with ESMTP id LZd7as1l90xvG2p7 for ; Mon, 20 Oct 2008 10:13:05 -0700 (PDT) Received: by gxk11 with SMTP id 11so4026199gxk.20 for ; Mon, 20 Oct 2008 10:13:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=KaKMzOJH/343OPdxQIDrdCp91ANJ/i9M8uLixqtG89c=; b=tmFTJ9GEgLMUj60uRq2fEycRPGwGwi+ypEd8giVd/nt28HhLhXskZ5xG9RoyAuNyR/ vpn4iKsSDeFw64HbccYqghEb5wSZtgM373dcW0pfhWc/OjXkpc4C4Us/UsOPstjz2t1u o4tjgVgnWaHfqKPMpbjibY1PGqemZmEQr0MWI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=JUxsAQxHcYtN8o3lU7q6hwafXXZtNbwSa2nnWdn97an2DoPQm/L0Jz89e7OJ/Bjz++ LAC/v3EIdJD3qVqMaNxvyn2UiesjcCSkwCBfZKYnHUGS8Z68pizos6mpVVXKorVeF0FP gNLszNUCltzLDEuX7rms3609ORC87EuJb+JXQ= Received: by 10.100.3.13 with SMTP id 13mr7205409anc.26.1224522785045; Mon, 20 Oct 2008 10:13:05 -0700 (PDT) Received: by 10.100.111.12 with HTTP; Mon, 20 Oct 2008 10:13:05 -0700 (PDT) Message-ID: Date: Mon, 20 Oct 2008 21:13:05 +0400 From: "Alexander Beregalov" To: "Christoph Hellwig" X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Cc: "Arjan van de Ven" , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML In-Reply-To: <20081020163327.GA15651@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> X-Barracuda-Connect: mail-gx0-f18.google.com[209.85.217.18] X-Barracuda-Start-Time: 1224522786 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8347 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2008/10/20 Christoph Hellwig : > On Mon, Oct 20, 2008 at 06:58:09PM +0400, Alexander Beregalov wrote: >> Hi Christoph >> >> I have the same result with next-1020 and today's xfs-2.6.git/master >> ( >> commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 >> Author: David Chinner >> Date: Fri Oct 17 15:36:23 2008 +1000 >> Inode: Allow external list initialisation >> ) Ha, that kernel (xfs/master) has made my system dead locked. SysRQ-d: Show all locks held in the system 1 lock held by pdflush (&type->s_umount_key#18{----}, at writeback_inodes 1 lock held by login (&(&ip->i_iolock)->mr_lock){----} at xfs_ilock and so on ( many locks at xfs_ilock) >> >> Should I start bisecting? > > That would be extremely helpful! > > > And as mentioned in the other mail I still can't reproduce it, but I can > currently only test on x86-32, not x86-64. > From owner-xfs@oss.sgi.com Mon Oct 20 10:31:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KHVxj2008802 for ; Mon, 20 Oct 2008 10:31:59 -0700 X-ASG-Debug-ID: 1224524023-748c02910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from araks.spb.rgs.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7763C10B63D3 for ; Mon, 20 Oct 2008 10:33:43 -0700 (PDT) Received: from araks.spb.rgs.ru (araks.spb.rgs.ru [213.221.54.147]) by cuda.sgi.com with ESMTP id NkAOelq36CrMSUAi for ; Mon, 20 Oct 2008 10:33:43 -0700 (PDT) X-Drweb-SpamState: no X-Drweb-SpamScore: 0 X-ASG-Orig-Subj: Undeliverable mail: It is the SPAM: =?koi8-r?B?7k/3+eog50/kIMkg8k/25EVD9PdPIM5hIEP38fRP6iD6Re3sRSsg8A==?= =?koi8-r?B?1dRl22Vj1NfJZSDQbyDpb9LEYc7JyQ==?= Subject: Undeliverable mail: It is the SPAM: =?koi8-r?B?7k/3+eog50/kIMkg8k/25EVD9PdPIM5hIEP38fRP6iD6Re3sRSsg8A==?= =?koi8-r?B?1dRl22Vj1NfJZSDQbyDpb9LEYc7JyQ==?= From: To: Date: Mon, 20 Oct 2008 19:30:56 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===25837913====araks.spb.rgs.ru===_" X-Barracuda-Connect: araks.spb.rgs.ru[213.221.54.147] X-Barracuda-Start-Time: 1224524024 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4360 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8347 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===25837913====araks.spb.rgs.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' SMTP module(domain mologa.spb.rgs.ru) reports: host mologa.spb.rgs.ru says: 550 otd_23@mologa.spb.rgs.ru unknown user account --_===25837913====araks.spb.rgs.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; araks.spb.rgs.ru Original-Recipient: rfc822; Final-Recipient: rfc822; Action: failed Status: 5.0.0 --_===25837913====araks.spb.rgs.ru===_ Content-Type: text/rfc822-headers Received: by araks.spb.rgs.ru (CommuniGate Pro PIPE 5.0.9) with PIPE id 25822422; Mon, 20 Oct 2008 18:54:37 +0400 X-drweb-hash: Received: from [88.118.153.197] ([88.118.153.197] verified) by araks.spb.rgs.ru (CommuniGate Pro SMTP 5.0.9) with ESMTP id 25815223 for otd_23@spb.rgs.ru; Mon, 20 Oct 2008 18:20:43 +0400 Received-SPF: none receiver=araks.spb.rgs.ru; client-ip=88.118.153.197; envelope-from=xfs@oss.sgi.com Message-ID: <000601c932bf$04f6cad2$f16601b7@ujoabkc> From: =?koi8-r?B?9MHU2NHOwQ==?= To: Subject: It is the SPAM: =?koi8-r?B?7k/3+eog50/kIMkg8k/25EVD9PdPIM5hIEP38fRP6iD6Re3sRSsg8A==?= =?koi8-r?B?1dRl22Vj1NfJZSDQbyDpb9LEYc7JyQ==?= Date: Mon, 20 Oct 2008 12:33:18 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C932BF.04F4AAF5" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Drweb-SpamState: yes X-Drweb-SpamScore: 900 --_===25837913====araks.spb.rgs.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 10:38:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_64, MIME_8BIT_HEADER,MSGID_RANDY autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KHcSmr009584 for ; Mon, 20 Oct 2008 10:38:29 -0700 X-ASG-Debug-ID: 1224524412-7b7102720000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay1.vsu.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D1E85130FB0B for ; Mon, 20 Oct 2008 10:40:12 -0700 (PDT) Received: from relay1.vsu.ru (relay1.vsu.ru [62.76.169.14]) by cuda.sgi.com with ESMTP id WYGOZVqYAci72Jay for ; Mon, 20 Oct 2008 10:40:12 -0700 (PDT) Received: by relay1.vsu.ru (CommuniGate Pro PIPE 5.2.9) with PIPE id 127434586; Mon, 20 Oct 2008 21:40:11 +0400 X-drweb-hash: X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?7M/Tz9PF18HRIMnL0sEg1yDPxsnT?= Subject: Undeliverable mail: =?koi8-r?B?7M/Tz9PF18HRIMnL0sEg1yDPxsnT?= From: To: Date: Mon, 20 Oct 2008 21:30:01 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===127430983====relay1.vsu.ru===_" X-Barracuda-Connect: relay1.vsu.ru[62.76.169.14] X-Barracuda-Start-Time: 1224524413 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4780 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, MSGID_RANDY, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8349 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 MSGID_RANDY Message-Id has pattern used in spam 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===127430983====relay1.vsu.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' LIST module(list nocinfo@vsu.ru) reports: you have not been subscribed --_===127430983====relay1.vsu.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; relay1.vsu.ru Original-Recipient: rfc822; Final-Recipient: LIST; Action: failed Status: 5.0.0 --_===127430983====relay1.vsu.ru===_ Content-Type: text/rfc822-headers Received: by relay1.vsu.ru (CommuniGate Pro PIPE 5.2.9) with PIPE id 127430979; Mon, 20 Oct 2008 21:30:01 +0400 X-drweb-hash: Received: from xdslcs056.osnanet.de ([89.166.146.56] verified) by relay1.vsu.ru (CommuniGate Pro SMTP 5.2.8) with ESMTP id 127392942 for nocinfo-off@vsu.ru; Mon, 20 Oct 2008 19:29:56 +0400 Received-SPF: none receiver=relay1.vsu.ru; client-ip=89.166.146.56; envelope-from=xfs@oss.sgi.com Message-ID: <000901c932c9$07d66c87$1cf0a5a3@pbctfon> From: =?koi8-r?B?6cvSwQ==?= To: Subject: =?koi8-r?B?7M/Tz9PF18HRIMnL0sEg1yDPxsnT?= Date: Mon, 20 Oct 2008 13:47:24 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===127430983====relay1.vsu.ru===_-- From owner-xfs@oss.sgi.com Mon Oct 20 13:22:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KKMmMS030193 for ; Mon, 20 Oct 2008 13:22:48 -0700 X-ASG-Debug-ID: 1224534271-75da01650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from qb-out-1314.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BAE045201AD for ; Mon, 20 Oct 2008 13:24:31 -0700 (PDT) Received: from qb-out-1314.google.com (qb-out-1314.google.com [72.14.204.172]) by cuda.sgi.com with ESMTP id AHrrGZGvDEMdrfUs for ; Mon, 20 Oct 2008 13:24:31 -0700 (PDT) Received: by qb-out-1314.google.com with SMTP id e19so2126851qba.8 for ; Mon, 20 Oct 2008 13:24:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=W//1kTn4pcaGGhOA+74JKMQreBUAhuUeqdyij6rCNOs=; b=ffXQkUA7/NGeXk3Afh+dPpX2RXBP7/kF2vd5nOMedQKzbL+ut90xsWmmQC4+gIywz2 Ry94PMrS8WZOtzl8od4V0bMTyF3oa+Xf80Wz6yiPiymvJ4CPL71xfETAqQIXfqkIw3Js dAA2Rz17XSUdx1bYKmN//MHo2oYzzbH2ufGZY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=RosD0X2CLv6g14Ubv6RohFveMGyiWLntxki0Gq4xJvOwxwLp1ALsjtbMWhVqpFOp3C e2STsWdD0wQvhFQUesBsACHMvqPK2hHIQcmoWCHyJSKldJAuymnetvBeD4R3tzK2sk9K e4zbhQJNEWtgtuEPmYuwvAXNyChLEktqHajDA= Received: by 10.181.11.3 with SMTP id o3mr964754bki.172.1224534269643; Mon, 20 Oct 2008 13:24:29 -0700 (PDT) Received: by 10.180.230.7 with HTTP; Mon, 20 Oct 2008 13:24:29 -0700 (PDT) Message-ID: Date: Mon, 20 Oct 2008 22:24:29 +0200 From: Procurves To: xfs@oss.sgi.com X-ASG-Orig-Subj: Oops when mounting Subject: Oops when mounting MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Barracuda-Connect: qb-out-1314.google.com[72.14.204.172] X-Barracuda-Start-Time: 1224534272 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1483 1.0000 -1.1108 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.11 X-Barracuda-Spam-Status: No, SCORE=-1.11 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8356 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, I get this oops when mounting my xfs partition, this specific one is for 2.6.24.5 (Slackware 12.1 Install Disc): http://pastebin.com/f5f7f56a I also run it through ksymoops: http://pastebin.com/f42942ef9 The versions of the xfs-tools: xfsdump_2.2.48-1 xfsprogs_2.9.7-1 This seems to happen with both linux kernels 2.6.22.19 and 2.6.26.6 as well, I am however unable to retrive the oops from these. Also note that the xfs-tools used with these kernels probably are older than the ones above. The partition has now been reformatted as I have no spare time for this. I hope this in some way will help you guys with your development of xfs. Regards, p From owner-xfs@oss.sgi.com Mon Oct 20 14:39:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KLdmiv004861 for ; Mon, 20 Oct 2008 14:39:51 -0700 X-ASG-Debug-ID: 1224538893-6c0f00eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A2B31448FAE; Mon, 20 Oct 2008 14:41:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Pmagt8aJ3vUHnx8V; Mon, 20 Oct 2008 14:41:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ks2VJ-0006ny-6w; Mon, 20 Oct 2008 21:41:33 +0000 Date: Mon, 20 Oct 2008 17:41:33 -0400 From: Christoph Hellwig To: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] Re: another problem with latest code drops Subject: Re: [PATCH] Re: another problem with latest code drops Message-ID: <20081020214133.GA20531@infradead.org> References: <20081016222904.GA31761@disturbed> <48F7E7BA.4070209@sgi.com> <20081017012141.GJ25906@disturbed> <20081017020434.GD31761@disturbed> <20081017020718.GE31761@disturbed> <48FBEED9.30609@sgi.com> <20081020031757.GM31761@disturbed> <48FC0B16.9090102@sgi.com> <20081020052929.GN31761@disturbed> <20081020060522.GP31761@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081020060522.GP31761@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224538894 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8360 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 05:05:22PM +1100, Dave Chinner wrote: > On second thoughts, the inode has not been set up properly > by this stage, so we can't really even expect to be able to > call iput() on it. Hmmmm - maybe the only thing we can do > here is call security_inode_free() before xfs_idestroy. > > Christoph - any opinions on what the best thing to do is? Calling destroy_inode after exporting it seems most logical. If we want to undo init_inode_once we should have VFS functionality taking care of that, too. I've implemented this including some preparatory patches dealing with the bulkstat issue. It's half-way trough xfsqa so far. From owner-xfs@oss.sgi.com Mon Oct 20 14:41:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_14 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KLfPVs005177 for ; Mon, 20 Oct 2008 14:41:26 -0700 X-ASG-Debug-ID: 1224538990-6bf701020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D61A41448FD2 for ; Mon, 20 Oct 2008 14:43:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id blMXDbvu7MNvFQy2 for ; Mon, 20 Oct 2008 14:43:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ks2Ws-0006pD-LS for xfs@oss.sgi.com; Mon, 20 Oct 2008 21:43:10 +0000 Date: Mon, 20 Oct 2008 17:43:10 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: git tree updates.... Subject: Re: git tree updates.... Message-ID: <20081020214310.GA26172@infradead.org> References: <20081017054742.GH31761@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081017054742.GH31761@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224538990 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8360 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M While we at it, the b0rked m_vfsmount addition for DMAPI keeps on leaking into the git tree for -next.. From owner-xfs@oss.sgi.com Mon Oct 20 15:18:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMIsiQ010118 for ; Mon, 20 Oct 2008 15:18:55 -0700 X-ASG-Debug-ID: 1224541238-446a021d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE0F610BA2C7 for ; Mon, 20 Oct 2008 15:20:38 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id M56wPIOBZVWiscaC for ; Mon, 20 Oct 2008 15:20:38 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9KMKaIF023687 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 21 Oct 2008 00:20:36 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9KMKa7B023685 for xfs@oss.sgi.com; Tue, 21 Oct 2008 00:20:36 +0200 Date: Tue, 21 Oct 2008 00:20:36 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Subject: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081020222036.GA23662@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224541239 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_bulkstat only wants the dinode, offset and buffer from a given inode number. Instead of using xfs_itobp on a fake inode that is much easier done with xfs_inotobp, which just needs an imap_flag paramter to pass down the XFS_IMAP_BULKSTAT flag. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 17:56:26.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-20 17:56:37.000000000 +0200 @@ -222,25 +222,26 @@ xfs_imap_to_bp( * Use xfs_imap() to determine the size and location of the * buffer to read from disk. */ -STATIC int +int xfs_inotobp( xfs_mount_t *mp, xfs_trans_t *tp, xfs_ino_t ino, xfs_dinode_t **dipp, xfs_buf_t **bpp, - int *offset) + int *offset, + uint imap_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); if (error) return error; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, 0); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); if (error) return error; @@ -2046,7 +2046,7 @@ xfs_iunlink_remove( } next_ino = XFS_AGINO_TO_INO(mp, agno, next_agino); error = xfs_inotobp(mp, tp, next_ino, &last_dip, - &last_ibp, &last_offset); + &last_ibp, &last_offset, 0); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_inotobp() returned an error %d on %s. Returning error.", Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 17:56:26.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-20 17:56:37.000000000 +0200 @@ -158,7 +158,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -531,6 +531,9 @@ void xfs_mark_inode_dirty_sync(xfs_inod #endif /* __KERNEL__ */ +int xfs_inotobp(struct xfs_mount *, struct xfs_trans *, + xfs_ino_t, struct xfs_dinode **, + struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); Index: xfs-2.6/fs/xfs/xfs_itable.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_itable.c 2008-10-20 17:56:26.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_itable.c 2008-10-20 17:56:57.000000000 +0200 @@ -359,7 +359,6 @@ xfs_bulkstat( int ubused; /* bytes used by formatter */ xfs_buf_t *bp; /* ptr to on-disk inode cluster buf */ xfs_dinode_t *dip; /* ptr into bp for specific inode */ - xfs_inode_t *ip; /* ptr to in-core inode struct */ /* * Get the last inode value, see if there's nothing to do. @@ -585,6 +584,8 @@ xfs_bulkstat( if (flags & (BULKSTAT_FG_QUICK | BULKSTAT_FG_INLINE)) { + int offset; + ino = XFS_AGINO_TO_INO(mp, agno, agino); bno = XFS_AGB_TO_DADDR(mp, agno, @@ -595,19 +596,13 @@ xfs_bulkstat( */ if (bp) xfs_buf_relse(bp); - ip = xfs_inode_alloc(mp, ino); - if (!ip) { - bp = NULL; - rval = ENOMEM; - break; - } - error = xfs_itobp(mp, NULL, ip, - &dip, &bp, bno, - XFS_IMAP_BULKSTAT, - XFS_BUF_LOCK); + + error = xfs_inotobp(mp, NULL, ino, &dip, + &bp, &offset, + XFS_IMAP_BULKSTAT); + if (!error) - clustidx = ip->i_boffset / mp->m_sb.sb_inodesize; - xfs_idestroy(ip); + clustidx = offset / mp->m_sb.sb_inodesize; if (XFS_TEST_ERROR(error != 0, mp, XFS_ERRTAG_BULKSTAT_READ_CHUNK, XFS_RANDOM_BULKSTAT_READ_CHUNK)) { From owner-xfs@oss.sgi.com Mon Oct 20 15:18:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_65 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMIwPP010134 for ; Mon, 20 Oct 2008 15:18:58 -0700 X-ASG-Debug-ID: 1224541242-3bc600570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0EA4814490E3 for ; Mon, 20 Oct 2008 15:20:42 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id 59H1qfBQBEYbEAS0 for ; Mon, 20 Oct 2008 15:20:42 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9KMKeIF023701 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 21 Oct 2008 00:20:40 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9KMKeXf023699 for xfs@oss.sgi.com; Tue, 21 Oct 2008 00:20:40 +0200 Date: Tue, 21 Oct 2008 00:20:40 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] stop using xfs_itobp in xfs_iread Subject: [PATCH 2/3] stop using xfs_itobp in xfs_iread Message-ID: <20081020222040.GB23662@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224541243 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only caller of xfs_itobp that doesn't have i_blkno setup is now the initial inode read. It needs access to the whole xfs_imap so using xfs_inotobp is not an option. Instead opencode the buffer lookup in xfs_iread and kill all the functionality for the initial map from xfs_itobp. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 17:17:35.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-20 17:26:03.000000000 +0200 @@ -261,15 +261,11 @@ xfs_inotobp( * If a non-zero error is returned, then the contents of bpp and * dipp are undefined. * - * If the inode is new and has not yet been initialized, use xfs_imap() - * to determine the size and location of the buffer to read from disk. - * If the inode has already been mapped to its buffer and read in once, - * then use the mapping information stored in the inode rather than - * calling xfs_imap(). This allows us to avoid the overhead of looking - * at the inode btree for small block file systems (see xfs_dilocate()). - * We can tell whether the inode has been mapped in before by comparing - * its disk block address to 0. Only uninitialized inodes will have - * 0 for the disk block address. + * The inode is expected to already been mapped to its buffer and read + * in once, thus we can use the mapping information stored in the inode + * rather than calling xfs_imap(). This allows us to avoid the overhead + * of looking at the inode btree for small block file systems + * (see xfs_dilocate()). */ int xfs_itobp( @@ -278,40 +274,19 @@ xfs_itobp( xfs_inode_t *ip, xfs_dinode_t **dipp, xfs_buf_t **bpp, - xfs_daddr_t bno, - uint imap_flags, uint buf_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; - if (ip->i_blkno == (xfs_daddr_t)0) { - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); - if (error) - return error; + ASSERT(ip->i_blkno != 0); - /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. - */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - } else { - /* - * We've already mapped the inode once, so just use the - * mapping that we saved the first time. - */ - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - } - ASSERT(bno == 0 || bno == imap.im_blkno); + imap.im_blkno = ip->i_blkno; + imap.im_len = ip->i_len; + imap.im_boffset = ip->i_boffset; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, imap_flags); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); if (error) return error; @@ -883,6 +858,7 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; + xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -891,18 +867,33 @@ xfs_iread( /* * Get pointer's to the on-disk inode and the buffer containing it. - * If the inode number refers to a block outside the file system - * then xfs_itobp() will return NULL. In this case we should - * return NULL as well. Set i_blkno to 0 so that xfs_itobp() will - * know that this is a new incore inode. */ - error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); + imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &imap, + XFS_IMAP_LOOKUP | imap_flags); if (error) { xfs_idestroy(ip); return error; } /* + * Fill in the fields in the inode that will be used to + * map the inode to its buffer from now on. + */ + ip->i_blkno = imap.im_blkno; + ip->i_len = imap.im_len; + ip->i_boffset = imap.im_boffset; + ASSERT(bno == 0 || bno == imap.im_blkno); + + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); + if (error) { + xfs_idestroy(ip); + return error; + } + + dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + + /* * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ @@ -1891,7 +1882,7 @@ xfs_iunlink( * Here we put the head pointer into our next pointer, * and then we fall through to point the head at us. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -1999,7 +1990,7 @@ xfs_iunlink_remove( * of dealing with the buffer when there is no need to * change it. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2061,7 +2052,7 @@ xfs_iunlink_remove( * Now last_ibp points to the buffer previous to us on * the unlinked list. Pull us from the list. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2316,7 +2307,7 @@ xfs_ifree( xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -3229,7 +3220,7 @@ xfs_iflush( /* * Get the buffer containing the on-disk inode. */ - error = xfs_itobp(mp, NULL, ip, &dip, &bp, 0, 0, + error = xfs_itobp(mp, NULL, ip, &dip, &bp, noblock ? XFS_BUF_TRYLOCK : XFS_BUF_LOCK); if (error || !bp) { xfs_ifunlock(ip); Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 17:21:31.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-20 17:21:50.000000000 +0200 @@ -158,7 +158,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -536,7 +536,7 @@ int xfs_inotobp(struct xfs_mount *, str struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, - struct xfs_buf **, xfs_daddr_t, uint, uint); + struct xfs_buf **, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, struct xfs_dinode_core *); void xfs_dinode_to_disk(struct xfs_dinode_core *, Index: xfs-2.6/fs/xfs/xfs_log_recover.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_log_recover.c 2008-10-20 17:21:16.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_log_recover.c 2008-10-20 17:21:28.000000000 +0200 @@ -3223,8 +3223,7 @@ xlog_recover_process_iunlinks( * next inode in the bucket. */ error = xfs_itobp(mp, NULL, ip, &dip, - &ibp, 0, 0, - XFS_BUF_LOCK); + &ibp, XFS_BUF_LOCK); ASSERT(error || (dip != NULL)); } From owner-xfs@oss.sgi.com Mon Oct 20 15:19:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMJ4N5010191 for ; Mon, 20 Oct 2008 15:19:05 -0700 X-ASG-Debug-ID: 1224541247-3cb800db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from verein.lst.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 529A25216E8 for ; Mon, 20 Oct 2008 15:20:48 -0700 (PDT) Received: from verein.lst.de (verein.lst.de [213.95.11.210]) by cuda.sgi.com with ESMTP id HEqzwjT2ZAw3XpVi for ; Mon, 20 Oct 2008 15:20:48 -0700 (PDT) Received: from verein.lst.de (localhost [127.0.0.1]) by verein.lst.de (8.12.3/8.12.3/Debian-7.1) with ESMTP id m9KMKiIF023715 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Tue, 21 Oct 2008 00:20:44 +0200 Received: (from hch@localhost) by verein.lst.de (8.12.3/8.12.3/Debian-6.6) id m9KMKiAW023713 for xfs@oss.sgi.com; Tue, 21 Oct 2008 00:20:44 +0200 Date: Tue, 21 Oct 2008 00:20:44 +0200 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] free inodes using destroy_inode Subject: [PATCH 3/3] free inodes using destroy_inode Message-ID: <20081020222044.GC23662@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.28i X-Scanned-By: MIMEDefang 2.39 X-Barracuda-Connect: verein.lst.de[213.95.11.210] X-Barracuda-Start-Time: 1224541249 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words To make sure we free the security data inodes need to be freed using the proper VFS helper (which we also need to export for this). To make sure we don't corrupt the radix tree we need to add another special case to xfs_reclaim for inodes that haven't been fully initialized yet. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/inode.c =================================================================== --- xfs-2.6.orig/fs/inode.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/inode.c 2008-10-20 23:54:08.000000000 +0200 @@ -212,6 +212,7 @@ void destroy_inode(struct inode *inode) else kmem_cache_free(inode_cachep, (inode)); } +EXPORT_SYMBOL(destroy_inode); /* Index: xfs-2.6/fs/xfs/xfs_iget.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_iget.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_iget.c 2008-10-20 23:54:08.000000000 +0200 @@ -197,7 +197,7 @@ out_unlock: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); out_destroy: - xfs_idestroy(ip); + xfs_destroy_inode(ip); return error; } Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 23:54:05.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-20 23:54:08.000000000 +0200 @@ -872,10 +872,8 @@ xfs_iread( imap.im_blkno = bno; error = xfs_imap(mp, tp, ip->i_ino, &imap, XFS_IMAP_LOOKUP | imap_flags); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_destroy_inode; /* * Fill in the fields in the inode that will be used to @@ -887,10 +885,8 @@ xfs_iread( ASSERT(bno == 0 || bno == imap.im_blkno); error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_destroy_inode; dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); @@ -899,8 +895,6 @@ xfs_iread( * (nfs or dmi) has a stale handle. */ if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "dip->di_core.di_magic (0x%x) != " @@ -908,7 +902,8 @@ xfs_iread( be16_to_cpu(dip->di_core.di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ - return XFS_ERROR(EINVAL); + error = XFS_ERROR(EINVAL); + goto out_brelse; } /* @@ -922,14 +917,12 @@ xfs_iread( xfs_dinode_from_disk(&ip->i_d, &dip->di_core); error = xfs_iformat(ip, dip); if (error) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "xfs_iformat() returned error %d", error); #endif /* DEBUG */ - return error; + goto out_brelse; } } else { ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); @@ -995,6 +988,12 @@ xfs_iread( xfs_trans_brelse(tp, bp); *ipp = ip; return 0; + + out_brelse: + xfs_trans_brelse(tp, bp); + out_destroy_inode: + xfs_destroy_inode(ip); + return error; } /* Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:54:05.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-20 23:54:08.000000000 +0200 @@ -309,6 +309,12 @@ static inline struct inode *VFS_I(struct return &ip->i_vnode; } +static inline void xfs_destroy_inode(struct xfs_inode *ip) +{ + make_bad_inode(VFS_I(ip)); + return destroy_inode(VFS_I(ip)); +} + /* * i_flags helper functions */ Index: xfs-2.6/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_vnodeops.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_vnodeops.c 2008-10-20 23:55:31.000000000 +0200 @@ -2798,13 +2798,19 @@ int xfs_reclaim( xfs_inode_t *ip) { + struct inode *inode = VFS_I(ip); xfs_itrace_entry(ip); - ASSERT(!VN_MAPPED(VFS_I(ip))); + ASSERT(!VN_MAPPED(inode)); + + if (unlikely(inode->i_state & I_NEW)) { + xfs_idestroy(ip); + return 0; + } /* bad inode, get out here ASAP */ - if (VN_BAD(VFS_I(ip))) { + if (unlikely(is_bad_inode(inode))) { xfs_ireclaim(ip); return 0; } From owner-xfs@oss.sgi.com Mon Oct 20 15:22:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMMOUj011173 for ; Mon, 20 Oct 2008 15:22:24 -0700 X-ASG-Debug-ID: 1224541448-3d6d01050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC081521737 for ; Mon, 20 Oct 2008 15:24:08 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id AJN4ipIGmgqWgwCf for ; Mon, 20 Oct 2008 15:24:08 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9KMO8x2005277 for ; Mon, 20 Oct 2008 18:24:08 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9KMO60d013795 for ; Mon, 20 Oct 2008 18:24:07 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9KMO3fh004877 for ; Mon, 20 Oct 2008 18:24:06 -0400 Message-ID: <48FD0503.3090203@sandeen.net> Date: Mon, 20 Oct 2008 17:24:03 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Subject: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224541449 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Preliminary work to hook up fiemap, this allows us to pass in an arbitrary formatter to copy extent data back to userspace. The formatter takes info for 1 extent, a pointer to the user "thing*" and a pointer to a "filled" variable to indicate whether a userspace buffer did get filled in (for fiemap, hole "extents" are skipped). I'm just using the getbmapx struct as a "common denominator" because as far as I can see, it holds all info that any formatters will care about. ("*thing" because fiemap doesn't pass the user pointer around, but rather has a pointer to a fiemap info structure, and helpers associated with it) I'm still working on the fiemap hookup but wanted to put this out for comment. Thanks, -Eric linux-2.6/xfs_ioctl.c | 39 ++++++++---------------- xfs_bmap.c | 81 +++++++++++++++++++++++++++----------------------- xfs_bmap.h | 13 +++++--- xfs_fs.h | 12 ------- 4 files changed, 67 insertions(+), 78 deletions(-) Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.c +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c @@ -5742,9 +5742,9 @@ error0: STATIC int xfs_getbmapx_fix_eof_hole( xfs_inode_t *ip, /* xfs incore inode pointer */ - struct getbmap *out, /* output structure */ + struct getbmapx *out, /* output structure */ int prealloced, /* this is a file with - * preallocated data space */ + * preallocated data space */ __int64_t end, /* last block requested */ xfs_fsblock_t startblock) { @@ -5769,15 +5769,38 @@ xfs_getbmapx_fix_eof_hole( return 1; } +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + if (copy_to_user(*ap, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + *filled = 1; + return 0; +} + +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(ap, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + *filled = 1; + return 0; +} + /* - * Fcntl interface to xfs_bmapi. + * ioctl interface to xfs_bmapi. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int interface) /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg) /* formatter arg (user ptr etc) */ { __int64_t bmvend; /* last block requested */ int error; /* return value */ @@ -5790,19 +5813,20 @@ xfs_getbmap( int nexleft; /* # of user extents left */ int subnex; /* # of bmapi's can do */ int nmap; /* number of map entries */ - struct getbmap out; /* output structure */ + struct getbmapx out; /* output structure */ int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ - __int32_t oflags; /* getbmapx bmv_oflags field */ mp = ip->i_mount; + iflags = bmv->bmv_iflags; - whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (interface & BMV_IF_PREALLOC) != 0; + whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; + sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5817,7 +5841,7 @@ xfs_getbmap( * could misinterpret holes in a DMAPI file as true holes, * when in fact they may represent offline user data. */ - if ((interface & BMV_IF_NO_DMAPI_READ) == 0 && + if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_READ) && whichfork == XFS_DATA_FORK) { error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL); @@ -5924,52 +5948,35 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - nexleft--; - oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? + out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? BMV_OF_PREALLOC : 0; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); + out.bmv_unused1 = out.bmv_unused2 = 0; ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ goto unlock_and_return; } else { + int filled; /* extents filled by formatter */ + if (!xfs_getbmapx_fix_eof_hole(ip, &out, prealloced, bmvend, map[i].br_startblock)) { goto unlock_and_return; } - /* return either getbmap/getbmapx structure. */ - if (interface & BMV_IF_EXTENDED) { - struct getbmapx outx; - - GETBMAP_CONVERT(out,outx); - outx.bmv_oflags = oflags; - outx.bmv_unused1 = outx.bmv_unused2 = 0; - if (copy_to_user(ap, &outx, - sizeof(outx))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } else { - if (copy_to_user(ap, &out, - sizeof(out))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } + /* format results into user's buffer & advance */ + error = formatter(&arg, &out, &filled); + if (error) + goto unlock_and_return; + nexleft -= filled; bmv->bmv_offset = out.bmv_offset + out.bmv_length; bmv->bmv_length = MAX((__int64_t)0, (__int64_t)(bmvend - bmv->bmv_offset)); bmv->bmv_entries++; - ap = (interface & BMV_IF_EXTENDED) ? - (void __user *) - ((struct getbmapx __user *)ap + 1) : - (void __user *) - ((struct getbmap __user *)ap + 1); } } } while (nmap && nexleft && bmv->bmv_length); Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.h @@ -343,15 +343,20 @@ xfs_bunmapi( extents */ int *done); /* set if not done yet */ +/* bmap to userspace formatters - copy to user & advance pointer */ +typedef int (*xfs_bmap_format_t)(void __user **, struct getbmapx *, int *filled); +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled); +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled); + /* - * Fcntl interface to xfs_bmapi. + * ioctl interface to xfs_bmapi. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int iflags); /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg); /* formatter arg (user ptr etc) */ /* * Check if the endoff is outside the last extent. If so the caller will grow Index: linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1262,25 +1262,26 @@ xfs_ioc_getbmap( unsigned int cmd, void __user *arg) { - struct getbmap bm; - int iflags; + struct getbmapx bmx; int error; - if (copy_from_user(&bm, arg, sizeof(bm))) + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); - if (bm.bmv_count < 2) + if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); if (ioflags & IO_INVIS) - iflags |= BMV_IF_NO_DMAPI_READ; + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - error = xfs_getbmap(ip, &bm, (struct getbmap __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap __user *)arg+1); if (error) return -error; - if (copy_to_user(arg, &bm, sizeof(bm))) + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) return -XFS_ERROR(EFAULT); return 0; } @@ -1291,8 +1292,6 @@ xfs_ioc_getbmapx( void __user *arg) { struct getbmapx bmx; - struct getbmap bm; - int iflags; int error; if (copy_from_user(&bmx, arg, sizeof(bmx))) @@ -1301,26 +1300,16 @@ xfs_ioc_getbmapx( if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - /* - * Map input getbmapx structure to a getbmap - * structure for xfs_getbmap. - */ - GETBMAP_CONVERT(bmx, bm); - - iflags = bmx.bmv_iflags; - - if (iflags & (~BMV_IF_VALID)) + if (bmx.bmv_iflags & (~BMV_IF_VALID)) return -XFS_ERROR(EINVAL); - iflags |= BMV_IF_EXTENDED; - - error = xfs_getbmap(ip, &bm, (struct getbmapx __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx __user *)arg+1); if (error) return -error; - GETBMAP_CONVERT(bm, bmx); - - if (copy_to_user(arg, &bmx, sizeof(bmx))) + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); return 0; Index: linux-2.6.27.x86_64/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_fs.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_fs.h @@ -114,22 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) -#ifdef __KERNEL__ -#define BMV_IF_EXTENDED 0x40000000 /* getpmapx if set */ -#endif /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -/* Convert getbmap <-> getbmapx - move fields from p1 to p2. */ -#define GETBMAP_CONVERT(p1,p2) { \ - p2.bmv_offset = p1.bmv_offset; \ - p2.bmv_block = p1.bmv_block; \ - p2.bmv_length = p1.bmv_length; \ - p2.bmv_count = p1.bmv_count; \ - p2.bmv_entries = p1.bmv_entries; } - - /* * Structure for XFS_IOC_FSSETDM. * For use by backup and restore programs to set the XFS on-disk inode From owner-xfs@oss.sgi.com Mon Oct 20 15:32:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMWZ3p012636 for ; Mon, 20 Oct 2008 15:32:35 -0700 X-ASG-Debug-ID: 1224542060-51bc01d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0F4761310D4B for ; Mon, 20 Oct 2008 15:34:20 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id 4c84LhI7z6ArkcOG for ; Mon, 20 Oct 2008 15:34:20 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9KMYKjb006933 for ; Mon, 20 Oct 2008 18:34:20 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9KMYKiW015213 for ; Mon, 20 Oct 2008 18:34:20 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9KMYJGk005639 for ; Mon, 20 Oct 2008 18:34:19 -0400 Message-ID: <48FD076B.1000707@sandeen.net> Date: Mon, 20 Oct 2008 17:34:19 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 2/2, RFC] hook up fiemap & associated formatter Subject: [PATCH 2/2, RFC] hook up fiemap & associated formatter Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224542061 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 This starts hooking up fiemap. Reporting delalloc extents may still be a bit dodgey, and the interface is also supposed to flag the last extent in the file, which I've not yet quiiiite worked out how to do. But here's the start. Thanks, -Eric Index: linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c @@ -53,6 +53,7 @@ #include #include #include +#include /* * Bring the atime in the XFS inode uptodate. @@ -661,6 +662,78 @@ out_error: return error; } +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +STATIC int xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *filled) +{ + int error = 0; + struct fiemap_extent_info *fieinfo= *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + *filled = 0; + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error < 0) + return -error; + *filled = 1; + return 0; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + if (fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS)) + return -EBADR; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ /* XXX ERS needed? */ + if (length == ~0ULL) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + /* xfs_getbmap takes count as header + array */ + bm.bmv_count = fieinfo->fi_extents_max + 1; + bm.bmv_iflags = BMV_IF_PREALLOC; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -XFS_ERROR(error); + + return 0; +} + static const struct inode_operations xfs_inode_operations = { .permission = xfs_vn_permission, .truncate = xfs_vn_truncate, @@ -671,6 +744,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fallocate = xfs_vn_fallocate, + .fiemap = xfs_vn_fiemap, }; static const struct inode_operations xfs_dir_inode_operations = { Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.c +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c @@ -5819,6 +5819,7 @@ xfs_getbmap( * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int sh_delalloc; /* show delayed extents */ int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ @@ -5827,6 +5828,7 @@ xfs_getbmap( whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; + sh_delalloc = (iflags & BMV_IF_DELALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5897,7 +5899,7 @@ xfs_getbmap( xfs_ilock(ip, XFS_IOLOCK_SHARED); - if (whichfork == XFS_DATA_FORK && + if (!sh_delalloc && (whichfork == XFS_DATA_FORK) && (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ error = xfs_flush_pages(ip, (xfs_off_t)0, @@ -5930,7 +5932,7 @@ xfs_getbmap( bmv->bmv_entries = 0; - if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0) { + if (!sh_delalloc && (XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { error = 0; goto unlock_and_return; } @@ -5948,12 +5950,15 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? - BMV_OF_PREALLOC : 0; + out.bmv_oflags = 0; + if (map[i].br_state == XFS_EXT_UNWRITTEN) + out.bmv_oflags |= BMV_OF_PREALLOC; + else if (map[i].br_startblock == DELAYSTARTBLOCK) + out.bmv_oflags |= BMV_OF_DELALLOC; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); out.bmv_unused1 = out.bmv_unused2 = 0; - ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); + ASSERT(sh_delalloc || (map[i].br_startblock != DELAYSTARTBLOCK)); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ Index: linux-2.6.27.x86_64/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_fs.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_fs.h @@ -113,10 +113,13 @@ struct getbmapx { #define BMV_IF_ATTRFORK 0x1 /* return attr fork rather than data */ #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ -#define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) +#define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_VALID \ + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_DELALLOC 0x2 /* segment = delayed allocation */ /* * Structure for XFS_IOC_FSSETDM. From owner-xfs@oss.sgi.com Mon Oct 20 15:39:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMdGPJ013619 for ; Mon, 20 Oct 2008 15:39:16 -0700 X-ASG-Debug-ID: 1224542459-573202070001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ACC801311352 for ; Mon, 20 Oct 2008 15:41:00 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id HcsBW0MlQMOQ1IKe for ; Mon, 20 Oct 2008 15:41:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,454,1220193000"; d="scan'208";a="214577700" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 21 Oct 2008 09:09:38 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ks3PV-0004Hu-7J; Tue, 21 Oct 2008 09:39:37 +1100 Date: Tue, 21 Oct 2008 09:39:37 +1100 From: Dave Chinner To: Procurves Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Oops when mounting Subject: Re: Oops when mounting Message-ID: <20081020223937.GB21152@disturbed> Mail-Followup-To: Procurves , xfs@oss.sgi.com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224542461 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0249 1.0000 -1.8593 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.86 X-Barracuda-Spam-Status: No, SCORE=-1.86 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 10:24:29PM +0200, Procurves wrote: > Hi, > > I get this oops when mounting my xfs partition, this specific one is for > 2.6.24.5 (Slackware 12.1 Install Disc): > http://pastebin.com/f5f7f56a > > I also run it through ksymoops: > http://pastebin.com/f42942ef9 Seems like a corrupted log. Can you try adding this patch: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/xfs-2.6.git;a=commitdiff;h=d9477f0f0902890585ecd3181e22622c418f12d7 And seeing if that detects the corruption and aborts recovery? > The partition has now been reformatted as I have no spare time for this. > I hope this in some way will help you guys with your development of xfs. Well, maybe not..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 15:39:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KMdFd6013615 for ; Mon, 20 Oct 2008 15:39:16 -0700 X-ASG-Debug-ID: 1224542459-573202070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5FE281311352 for ; Mon, 20 Oct 2008 15:40:59 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 3yuJ7aIHh46bcAqB for ; Mon, 20 Oct 2008 15:40:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbAC7CAGHHXABeg X-IronPort-AV: E=Sophos;i="4.33,454,1220193000"; d="scan'208";a="214573915" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 21 Oct 2008 09:05:56 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ks3Lp-0004Cp-Q5; Tue, 21 Oct 2008 09:35:49 +1100 Date: Tue, 21 Oct 2008 09:35:49 +1100 From: Dave Chinner To: Alexander Beregalov Cc: Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081020223549.GA21152@disturbed> Mail-Followup-To: Alexander Beregalov , Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML References: <20081017164116.GA17375@infradead.org> <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224542460 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8363 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 09:13:05PM +0400, Alexander Beregalov wrote: > 2008/10/20 Christoph Hellwig : > > On Mon, Oct 20, 2008 at 06:58:09PM +0400, Alexander Beregalov wrote: > >> Hi Christoph > >> > >> I have the same result with next-1020 and today's xfs-2.6.git/master > >> ( > >> commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 > >> Author: David Chinner > >> Date: Fri Oct 17 15:36:23 2008 +1000 > >> Inode: Allow external list initialisation > >> ) > Ha, that kernel (xfs/master) has made my system dead locked. > SysRQ-d: > Show all locks held in the system > 1 lock held by pdflush > (&type->s_umount_key#18{----}, at writeback_inodes > 1 lock held by login > (&(&ip->i_iolock)->mr_lock){----} at xfs_ilock > and so on ( many locks at xfs_ilock) Curious. Can you post the full stack traces? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 16:14:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9KNEORh017510 for ; Mon, 20 Oct 2008 16:14:25 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 872738F8062; Mon, 20 Oct 2008 16:16:05 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA11068; Tue, 21 Oct 2008 10:16:02 +1100 Message-ID: <48FD1132.6080503@sgi.com> Date: Tue, 21 Oct 2008 10:16:02 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Miklos Szeredi , xfs-oss Subject: Re: XFS_ERROR use - was Re: [PATCH] prevent NULL returns from d_obtain_alias References: <20081015192839.GA867@lst.de> <20081016180947.GA26285@lst.de> <48F7D814.2080705@sgi.com> <20081017171000.GC18582@lst.de> <48FBD5AB.6090306@sgi.com> <20081020092346.GA14455@infradead.org> In-Reply-To: <20081020092346.GA14455@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Mon, Oct 20, 2008 at 11:49:47AM +1100, Timothy Shimmin wrote: >>> I have to revamp that whole >>> function anyway as it's extremly buggy in many ways, especially when >>> used to open directories (can lead to multiple dentries for a single >>> directory - ouch) and then I'll kill the other uses. >> Oh ok. >> >> In userspace, >> we use it for opening directories on xfsdump via jdm_open in order to >> do bulkstat driven dirent dumping. >> We also use it in xfsrestore - though I am not convinced we should - >> it was initially done for "performance" reasons apparently. > > I think the use of the API is fine, the problem is that the current > implemention is buggy. Yeah, I have no problem for xfsdump as it is driven by bulkstat but for xfsrestore it seems unnecessary. In fact, it can restore to other filesystems so it must only be using this in certain ways on restore. Having a look, yeah it is predicated by: if ( tranp->t_dstdirisxfspr ) and then just uses the fd for XFS_IOC_FSSETDM, XFS_IOC_FSSETXATTR for those xfs-specific things and in the same function it uses the path for non-xfs-specific: utime, chown, chmod So it seems unnecessary to me in restore. --Tim From owner-xfs@oss.sgi.com Mon Oct 20 17:59:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_14 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L0xsD6002057 for ; Mon, 20 Oct 2008 17:59:54 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 709718F8056; Mon, 20 Oct 2008 18:01:33 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA13367; Tue, 21 Oct 2008 12:01:30 +1100 Message-ID: <48FD37C5.9040309@sgi.com> Date: Tue, 21 Oct 2008 12:00:37 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: git tree updates.... References: <20081017054742.GH31761@disturbed> <20081020214310.GA26172@infradead.org> In-Reply-To: <20081020214310.GA26172@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > While we at it, the b0rked m_vfsmount addition for DMAPI keeps on > leaking into the git tree for -next.. Thanks for pointing that out - that shouldn't have happened. It wont be going to mainline. The OSS xfs trees are in a bit of a mess and have been for a while. I've been wanting to clean them up but figured it would be easier to wait until we've moved over to git internally and then clone new trees. From owner-xfs@oss.sgi.com Mon Oct 20 19:43:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L2hHAU012653 for ; Mon, 20 Oct 2008 19:43:17 -0700 X-ASG-Debug-ID: 1224557100-7b0700c80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7DC411449A7A for ; Mon, 20 Oct 2008 19:45:01 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id tUFOUO5m3DEcl2Qk for ; Mon, 20 Oct 2008 19:45:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,455,1220193000"; d="scan'208";a="214779133" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 21 Oct 2008 13:14:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ks7Eu-00020n-00; Tue, 21 Oct 2008 13:44:56 +1100 Date: Tue, 21 Oct 2008 13:44:55 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Subject: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081021024455.GB18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081020222036.GA23662@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081020222036.GA23662@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224557102 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8375 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 12:20:36AM +0200, Christoph Hellwig wrote: > xfs_bulkstat only wants the dinode, offset and buffer from a given > inode number. Instead of using xfs_itobp on a fake inode that is much > easier done with xfs_inotobp, which just needs an imap_flag paramter to > pass down the XFS_IMAP_BULKSTAT flag. Nice - that removes the only external user of xfs_inode_alloc() very cleanly. Looks ok to me. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 19:53:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L2rv71013929 for ; Mon, 20 Oct 2008 19:53:57 -0700 X-ASG-Debug-ID: 1224557741-01e401490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 36EFA5241E1 for ; Mon, 20 Oct 2008 19:55:41 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id PgRGlrP3BzL9Xm2Y for ; Mon, 20 Oct 2008 19:55:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,455,1220193000"; d="scan'208";a="214786372" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 21 Oct 2008 13:25:37 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ks7PE-0003we-E1; Tue, 21 Oct 2008 13:55:36 +1100 Date: Tue, 21 Oct 2008 13:55:36 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] stop using xfs_itobp in xfs_iread Subject: Re: [PATCH 2/3] stop using xfs_itobp in xfs_iread Message-ID: <20081021025536.GC18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081020222040.GB23662@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081020222040.GB23662@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224557743 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8376 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 12:20:40AM +0200, Christoph Hellwig wrote: > The only caller of xfs_itobp that doesn't have i_blkno setup is now > the initial inode read. It needs access to the whole xfs_imap so using > xfs_inotobp is not an option. Instead opencode the buffer lookup in > xfs_iread and kill all the functionality for the initial map from > xfs_itobp. Ok, looks good. Makes xfs_itobp() nice and simple now. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 20:05:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L35jjR015201 for ; Mon, 20 Oct 2008 20:05:45 -0700 X-ASG-Debug-ID: 1224558448-2b6400bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 753AC10BCB57 for ; Mon, 20 Oct 2008 20:07:29 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id HWt6CkyoaNuwv5DO for ; Mon, 20 Oct 2008 20:07:29 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,455,1220193000"; d="scan'208";a="214793710" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 21 Oct 2008 13:37:27 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ks7ag-00007p-NK; Tue, 21 Oct 2008 14:07:26 +1100 Date: Tue, 21 Oct 2008 14:07:26 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] free inodes using destroy_inode Subject: Re: [PATCH 3/3] free inodes using destroy_inode Message-ID: <20081021030726.GD18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081020222044.GC23662@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081020222044.GC23662@lst.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224558450 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8377 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Tue, Oct 21, 2008 at 12:20:44AM +0200, Christoph Hellwig wrote: > To make sure we free the security data inodes need to be freed using > the proper VFS helper (which we also need to export for this). To make > sure we don't corrupt the radix tree we need to add another special > case to xfs_reclaim for inodes that haven't been fully initialized yet. Yes, this should fix the problems destroying inodes in the not-quite-fully-instantiated state. Couple of things, though. > Index: xfs-2.6/fs/xfs/xfs_inode.c > =================================================================== > --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 23:54:05.000000000 +0200 > +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-20 23:54:08.000000000 +0200 > @@ -872,10 +872,8 @@ xfs_iread( > imap.im_blkno = bno; > error = xfs_imap(mp, tp, ip->i_ino, &imap, > XFS_IMAP_LOOKUP | imap_flags); > - if (error) { > - xfs_idestroy(ip); > - return error; > - } > + if (error) > + goto out_destroy_inode; ^ Extra whitespace. > @@ -887,10 +885,8 @@ xfs_iread( > ASSERT(bno == 0 || bno == imap.im_blkno); > > error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); > - if (error) { > - xfs_idestroy(ip); > - return error; > - } > + if (error) > + goto out_destroy_inode; ^ Ditto. > Index: xfs-2.6/fs/xfs/xfs_inode.h > =================================================================== > --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:54:05.000000000 +0200 > +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-20 23:54:08.000000000 +0200 > @@ -309,6 +309,12 @@ static inline struct inode *VFS_I(struct > return &ip->i_vnode; > } > > +static inline void xfs_destroy_inode(struct xfs_inode *ip) > +{ > + make_bad_inode(VFS_I(ip)); > + return destroy_inode(VFS_I(ip)); > +} Yes, makes sense to mark it bad first to avoid most of the reclaim code. > Index: xfs-2.6/fs/xfs/xfs_vnodeops.c > =================================================================== > --- xfs-2.6.orig/fs/xfs/xfs_vnodeops.c 2008-10-20 23:49:27.000000000 +0200 > +++ xfs-2.6/fs/xfs/xfs_vnodeops.c 2008-10-20 23:55:31.000000000 +0200 > @@ -2798,13 +2798,19 @@ int > xfs_reclaim( > xfs_inode_t *ip) > { > + struct inode *inode = VFS_I(ip); > > xfs_itrace_entry(ip); > > - ASSERT(!VN_MAPPED(VFS_I(ip))); > + ASSERT(!VN_MAPPED(inode)); > + > + if (unlikely(inode->i_state & I_NEW)) { > + xfs_idestroy(ip); > + return 0; > + } Can that happen? I thought xfs_iput_new() took care of clearing the I_NEW flag via unlock_new_inode() and so there is no way that flag can leak through to here. perhaps a comment explaining what the error path is that leads to needing this check is in order.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 20 20:16:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=BAYES_50,DATE_IN_PAST_12_24, J_CHICKENPOX_12,J_CHICKENPOX_14 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L3GdiA016628 for ; Mon, 20 Oct 2008 20:16:40 -0700 X-ASG-Debug-ID: 1224559101-7b0501f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from 3.kirovtelecom.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 590AE144A45D for ; Mon, 20 Oct 2008 20:18:21 -0700 (PDT) Received: from 3.kirovtelecom.ru (www.kirovtelecom.net [195.190.124.3]) by cuda.sgi.com with SMTP id lBIGNmijhEUKU7bH for ; Mon, 20 Oct 2008 20:18:21 -0700 (PDT) Received: (qmail 3782 invoked for bounce); 20 Oct 2008 14:01:34 -0000 Date: 20 Oct 2008 14:01:34 -0000 From: MAILER-DAEMON@3.kirovtelecom.ru To: xfs@oss.sgi.com X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: www.kirovtelecom.net[195.190.124.3] X-Barracuda-Start-Time: 1224559103 Message-Id: <20081021031821.590AE144A45D@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.3322 1.0000 -0.2182 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.17 X-Barracuda-Spam-Status: No, SCORE=1.17 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, BSF_SC0_TG035a, DATE_IN_PAST_12_24, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8376 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.88 DATE_IN_PAST_12_24 Date: is 12 to 24 hours before Received: date 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Hi. This is the qmail-send program at 3.kirovtelecom.ru. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : Sorry, no mailbox here by that name. vpopmail (#5.1.1) --- Below this line is a copy of the message. Return-Path: Received: (qmail 3708 invoked from network); 20 Oct 2008 14:01:32 -0000 Received: from unknown (HELO ?91.135.16.139?) (91.135.16.139) by 3.kirovtelecom.ru with SMTP; 20 Oct 2008 14:01:32 -0000 Message-ID: <000701c932c6$03ed0b24$27170ebc@evafdl> From: =?koi8-r?B?6dLJzsE=?= To: Subject: =?koi8-r?B?60FDQ+/3+UUg7/BF8kHj6ekuIPDv5O/0/kX07vnlIOzp40EuIOQgzw==?= =?koi8-r?B?IMsg1SDNIGUgziDUYczYzs9lIM/Gz9LNzGXOyWUsIMIg1SDIx2HM1A==?= =?koi8-r?B?ZdJjy8nKINXeZdQsIM4gYSDMIM8gx8/PwszP1mXOyWU=?= Date: Mon, 20 Oct 2008 13:28:50 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0004_01C932C6.03EA07AD" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0004_01C932C6.03EA07AD Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =F0=D2=C9=C7=CCa=DBa=C0=D4c=D1 =C2=D5=C8=C7a=CC=D4e=D2=D9, = =CEa=CC=CF=C7=CF=D7=D9=C5 =CB=CF=CEc=D5=CC=D8=D4a=CE=D4=D9, = a=D5=C4=C9=D4=CF=D2=D9, =D2=D5=CB=CF=D7=CF=C4=C9=D4e=CC=C9.=20 (=FE 9 5) 6=FE9 6766   24 =CF=CB=D4=D1=C2=D2=D1 2008 =C7=CF=C4a   =EBACC=EF=F7=F9E =EF=F0E=F2A=E3=E9=E9 =F2AC=FEE=F4=F9 c =F0=EF=E4=EF=F4=FEE=F4=EE=F9=ED=E9 =EC=E9=E3A=ED=E9.=20 ( =EB=EB=ED, =CEa=CC=C9=DE=CBa, =CB=CF=CDa=CE=C4=C9=D2=CF=D7=CB=C9, = =D0=D2e=C4c=D4a=D7=C9=D4e=CC=D8c=CB=C9e, =E7C=ED, = =C2a=CE=CB=CF=D7c=CB=C9e =CBa=D2=D4=D9 =C9 =C4=D2.) =E4 =CF =CB =D5 =CD e =CE =D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e, = =C2 =D5 =C8=C7a=CC=D4e=D2c=CB=C9=CA =D5=DEe=D4, =CE a =CC =CF = =C7=CF=CF=C2=CC=CF=D6e=CE=C9e   =EF =DEe=CD:   1.   =20 =EE=CF=D2=CDa=D4=C9=D7=CE=CFe =D2e=C7=D5=CC=C9=D2=CF=D7a=CE=C9e = =CBacc=CF=D7=D9=C8 =CF=D0e=D2a=C3=C9=CA =D7 =F2=E6. =F0=D2e=C4e=CC = =D2ac=DEe=D4=CF=D7 =CEa=CC=C9=DE=CE=D9=CD=C9 =C4e=CEe=D6=CE=D9=CD=C9 = c=D2e=C4c=D4=D7a=CD=C9 =CDe=D6=C4=D5 =C0=D2=C9=C4=C9=DEec=CB=C9=CD=C9 = =CC=C9=C3a=CD=C9 =C9 =C9=CE=C4=C9=D7=C9=C4=D5a=CC=D8=CE=D9=CD=C9 = =D0=D2e=C4=D0=D2=C9=CE=C9=CDa=D4e=CC=D1=CD=C9. = =EF=D4=D7e=D4c=D4=D7e=CE=CE=CFc=D4=D8 =DAa =CEa=D2=D5=DBe=CE=C9=D1 =D7 = =D2a=C2=CF=D4e c =CEa=CC=C9=DE=CE=D9=CD=C9 =C4e=CE=D8=C7a=CD=C9. 2.   =20 =EB=CF=CE=D4=D2=CF=CC=D8=CE=CF-=CBacc=CF=D7a=D1 =D4e=C8=CE=C9=CBa: = =D5c=CC=CF=D7=C9=D1 =D0=D2=C9=CDe=CEe=CE=C9=D1, =CE=CF=D7=D9=CA = =D0=CF=D2=D1=C4=CF=CB =D2e=C7=C9c=D4=D2a=C3=C9=C9 =EB=EB=F4, = =CF=D4=D7e=D4c=D4=D7e=CE=CE=CFc=D4=D8 =DAa = =CEe=D0=D2=C9=CDe=CEe=CE=C9e. =20 3.   =20 =EEa=CC=C9=DE=CEa=D1 =D7=D9=D2=D5=DE=CBa. =EEa =DE=D4=CF =CD=CF=D6=CE=CF = =D0=CF=D4=D2a=D4=C9=D4=D8 =CEa=CC=C9=DE=CE=D5=C0 =D7=D9=D2=D5=DE=CB=D5. = =EC=C9=CD=C9=D4 =CFc=D4a=D4=CBa =D0=CF =CBacce. =E8=D2a=CEe=CE=C9e = =C4e=CEe=D6=CE=D9=C8 c=D2e=C4c=D4=D7 =C9 = =CF=C2=CF=D2=D5=C4=CF=D7a=CE=C9e =CBacc=D9. =F7e=C4e=CE=C9e = =CBacc=CF=D7=CF=CA =CB=CE=C9=C7=C9.=20 4.   =20 =E4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e = =CBacc=CF=D7=D9=C8 =CF=D0e=D2a=C3=C9=CA.  =F0=CF=D2=D1=C4=CF=CB = =D7=D9=C4a=DE=C9 =CEa=CC=C9=DE=CE=D9=C8 =C4e=CEe=D6=CE=D9=C8 = c=D2e=C4c=D4=D7 =D0=CF=C4 =CF=D4=DEe=D4.=20 5.   =20 =F0=D2=C9=CF=C2=D2e=D4e=CE=C9e =D4=CF=D7a=D2=CF=D7, =D2a=C2=CF=D4, = =D5c=CC=D5=C7 =DAa =CEa=CC=C9=DE=CE=D9=CA =D2ac=DEe=D4 =DEe=D2e=DA = =D0=CF=C4=CF=D4=DEe=D4=CE=CFe =CC=C9=C3=CF: = =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e, = =D0=CF=D2=D1=C4=CF=CB =CF=D4=D2a=D6e=CE=C9=D1 =D7 = =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =D5=DEe=D4e =C9 =D7 =C3e=CC=D1=C8 = =CEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9=D1. 6.   =20 =EB=CF=CDa=CE=C4=C9=D2=CF=D7=CF=DE=CE=D9e =D2ac=C8=CF=C4=D9:  = =D2ac=DEe=D4, =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe = =CF=C6=CF=D2=CD=CCe=CE=C9e, =D0=CF=D2=D1=C4=CF=CB = =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 = =CEa=CC=CF=C7=CF=D7=CF=CD =D5=DEe=D4e. =EFc=CF=C2e=CE=CE=CFc=D4=C9 = =D2ac=DEe=D4=CF=D7 c =D0=CF=C4=CF=D4=DEe=D4=CE=D9=CD=C9 =CC=C9=C3a=CD=C9 = =D0=CF =DAa=C7=D2a=CE=CB=CF=CDa=CE=C4=C9=D2=CF=D7=CBa=CD. = =EB=CF=CD=D0e=CEca=C3=C9=D1 =D2ac=C8=CF=C4=CF=D7 =CEa = c=CC=D5=D6e=C2=CE=D9e =D0=CFe=DA=C4=CB=C9. = =EEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9e = =CB=CF=CDa=CE=C4=C9=D2=CF=D7=CF=DE=CE=D9=C8 =D2ac=C8=CF=C4=CF=D7 =C9 = =CB=CF=CD=D0e=CEca=C3=C9=CF=CE=CE=D9=C8 =D7=D9=D0=CCa=D4, = c=D7=D1=DAa=CE=CE=D9=C8 c=CF c=CC=D5=D6e=C2=CE=D9=CD=C9 = =D0=CFe=DA=C4=CBa=CD=C9 c=CF=D4=D2=D5=C4=CE=C9=CB=CF=D7. 7.   =20 =F2ac=C8=CF=C4=D9 =CEa =D0=D2=C9=CF=C2=D2e=D4e=CE=C9e =E7C=ED =DAa = =CEa=CC=C9=DE=CE=D9=CA =D2ac=DEe=D4:  =D2ac=DEe=D4, = =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e, = =D0=CF=D2=D1=C4=CF=CB =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 = =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 =CEa=CC=CF=C7=CF=D7=CF=CD = =D5=DEe=D4e.=20 8.   =20 =F0=D2e=C4c=D4a=D7=C9=D4e=CC=D8c=CB=C9e =D2ac=C8=CF=C4=D9: = =CF=D0=D2e=C4e=CCe=CE=C9e, =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe = =CF=C6=CF=D2=CD=CCe=CE=C9e, =D0=CF=D2=D1=C4=CF=CB = =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 = =CEa=CC=CF=C7=CF=D7=CF=CD =D5=DEe=D4e.=20 9.   =20 =E2a=CE=CB=CF=D7c=CB=C9e =CBa=D2=D4=D9. =F2ac=DEe=D4=D9 c = =D0=CF=C4=CF=D4=DEe=D4=CE=D9=CD=C9 =CC=C9=C3a=CD=C9 c = =C9c=D0=CF=CC=D8=DA=CF=D7a=CE=C9e=CD =C2a=CE=CB=CF=D7c=CB=C9=C8 = =CBa=D2=D4. 10. =20 =F7=CF=DA=D7=D2a=D4 =CEe=C9c=D0=CF=CC=D8=DA=CF=D7a=CE=CE=D9=C8 = =D0=CF=C4=CF=D4=DEe=D4=CE=D9=C8 c=D5=CD=CD.=20 11. =20 A=D7a=CEc=CF=D7=D9e =CF=D4=DEe=D4=D9. =EEa=C9=C2=CF=CCee =DEac=D4=CF = =D7c=D4=D2e=DEa=C0=DD=C9ec=D1 =CF=DB=C9=C2=CB=C9 =D0=D2=C9 = c=CFc=D4a=D7=CCe=CE=C9=C9 a=D7a=CEc=CF=D7=D9=C8 =CF=D4=DEe=D4=CF=D7. 12. =20 =EF=D4=D7e=D4=D9 =CEa =D7=CF=D0=D2=CFc=D9 =C9 = =D0=D2a=CB=D4=C9=DEec=CB=C9e =D2e=CB=CF=CDe=CE=C4a=C3=C9=C9.=20   C=D4=CF=C9=CD=CFc=D4=D8 =CB=CF=CEc. =D5c=CC=D5=C7: 5998 =D2=D5=C2., = =D7=CB=CC=C0=DEa=D1 =EE=E4C 18%. =F2ac=C8=CF=C4=D9 = =D0=D2=C9=DA=CEa=C0=D4c=D1 =C4=CC=D1 = =CEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9=D1 =D0=D2=C9=C2=D9=CC=C9. = =E4e=CAc=D4=D7=D5e=D4 c=C9c=D4e=CDa c=CB=C9=C4=CF=CB (=CF=D4 2 = =DEe=CC=CF=D7e=CB – 10%, =CF=D4 3-=C8 – 15 %, =C4a=CCee = 20%). C=CC=D5=DBa=D4e=CC=C9 =CF=C2ec=D0e=DE=C9=D7a=C0=D4c=D1 = =CB=CF=C6e-=D0a=D5=DA=CF=CA, =CF=C2e=C4=CF=CD, = =C9=CE=C6=CF=D2=CDa=C3=C9=CF=CE=CE=CF-=CDe=D4=CF=C4=C9=DEec=CB=C9=CD=C9 = =CDa=D4e=D2=C9a=CCa=CD=C9, =D0=C9c=D8=CDe=CE=CE=D9=CD=C9 = =D0=D2=C9=CEa=C4=CCe=D6=CE=CFc=D4=D1=CD=C9. =F0=CF = =CF=CB=CF=CE=DEa=CE=C9=C9 =DAa=CE=D1=D4=C9=CA =D7=D9=C4ae=D4c=D1 = ce=D2=D4=C9=C6=C9=CBa=D4 =CF =D0=CF=D7=D9=DBe=CE=C9=C9 = =CB=D7a=CC=C9=C6=C9=CBa=C3=C9=C9 =D0=CF =C4a=CE=CE=CF=CA =D4e=CDe. =EDec=D4=CF =D0=D2=CF=D7e=C4e=CE=C9=D1: =C7. =ED=CFc=CB=D7a =E4=CC=D1 =D0=D2=CF=C6ecc=C9=CF=CEa=CC=D8=CE=D9=C8 = =C2=D5=C8=C7a=CC=D4e=D2=CF=D7, a=D5=C4=C9=D4=CF=D2=CF=D7, = =CEa=CC=CF=C7=CF=D7=D9=C8 =CB=CF=CEc=D5=CC=D8=D4a=CE=D4=CF=D7: ce=D2=D4=C9=C6=C9=CBa=D4 =CEa 40(72) =DEac=CF=D7 =CF = e=D6e=C7=CF=C4=CE=CF=CD =D0=CF=D7=D9=DBe=CE=C9=C9 = =CB=D7a=CC=C9=C6=C9=CBa=C3=C9=C9. =F5=D4=CF=DE=CE=D1=CA=D4e = =C9=CE=C6=CF=D2=CDa=C3=C9=C0!   =EB=CF=CE=D4a=CB=D4=D9 :  =D4/=C6 (=FE95) 6=FE9 6766   A =D4a=CB=D6e =C4=D2=D5=C7=C9e =D0=D2e=C4=CC=CF=D6e=CE=C9=D1: 05 =CE=CF=D1=C2=D2=D1 ««=E4=CF=C7=CF=D7=CF=D2 + = =CEa=CC=CF=C7=C9» (=CEa=CC=CF=C7=CF=D7=D9e = =D0=CFc=CCe=C4c=D4=D7=C9=D1 =C8=CF=DA=D1=CAc=D4=D7e=CE=CE=D9=C8 = c=C4e=CC=CF=CB)»=20 06 =CE=CF=D1=C2=D2=D1 «=E6=C9=CC=C9a=CC=D9 =C9 =C9=CE=D9e = =CF=C2=CFc=CF=C2=CCe=CE=CE=D9e =D0=CF=C4=D2a=DA=C4e=CCe=CE=C9=D1: = =D0=D2a=D7=CF=D7=CF=CA c=D4a=D4=D5c, =CEa=CC=CF=C7=C9, = =C2=D5=C8=C7a=CC=D4e=D2c=CB=C9=CA =D5=DEe=D4»=20 13 =CE=CF=D1=C2=D2=D1 «=E4=EF=ECE=F7=EFE = C=F4=F2=EF=E9=F4E=EC=F8C=F4=F7=EF =DAac=D4=D2=CF=CA=DD=C9=CB=D5, = =DAa=CBa=DA=DE=C9=CB=D5, =C7e=CE=D0=CF=C4=D2=D1=C4=DE=C9=CB=D5, =C9 = =C4=D2. =EEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9e. =F0=D2a=D7=CF. = =EFc=CF=C2e=CE=CE=CFc=D4=C9 =D0=D2=C9=CDe=CEe=CE=C9=D1 = =E6e=C4e=D2a=CC=D8=CE=CF=C7=CF =DAa=CB=CF=CEa =F2=E6 «=EF=C2 = =D5=DEac=D4=C9=C9 =D7 =C4=CF=CCe=D7=CF=CD = c=D4=D2=CF=C9=D4e=CC=D8c=D4=D7e…» =CF=D4 30.12.2004 № = 214-=E6=FA, =D7 =D2e=C4a=CB=C3=C9=C9 =CF=D4 18.07.2006 № = 111-=E6=FA» (C=CD=C9=D2=CE=CF=D7a C.A.) 13 =CE=CF=D1=C2=D2=D1 «=EF=F0=F4=E9=ED=E9=FAA=E3=E9=F1 = «=FAA=F2=F0=ECA=F4=EE=F9=E8» =EEA=EC=EF=E7=EF=F7. =ED=C9=C6=D9 = =C9 =D2ea=CC=D8=CE=CFc=D4=D8»=20 14 =CE=CF=D1=C2=D2=D1 «=EEA=EC=EF=E7=EF=F7=F9=EA =EB=EF=E4E=EBC = =F2=E6 – 2009 =C7=CF=C4. (=EE=E4C, =CEa=CC=CF=C7 =CEa = =D0=D2=C9=C2=D9=CC=D8, =F5C=EE, E=EE=F7=E4, =EE=E4=E6=EC, EC=EE)»=20     ------=_NextPart_000_0004_01C932C6.03EA07AD Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=F0=D2=C9=C7=CCa=DBa=C0=D4c=D1=20 =C2=D5=C8=C7a=CC=D4e=D2=D9, =CEa=CC=CF=C7=CF=D7=D9=C5 = =CB=CF=CEc=D5=CC=D8=D4a=CE=D4=D9, a=D5=C4=C9=D4=CF=D2=D9, = =D2=D5=CB=CF=D7=CF=C4=C9=D4e=CC=C9.

(=FE=20 9 5)=20 6=FE9=20 6766

 

24 =CF=CB=D4=D1=C2=D2=D1 = 2008 =C7=CF=C4a

 

=EBACC=EF=F7=F9E=20 =EF=F0E=F2A=E3=E9=E9

=F2AC=FEE=F4=F9=20 c =F0=EF=E4=EF=F4=FEE=F4=EE=F9=ED=E9 =EC=E9=E3A=ED=E9. =

(=EB=EB=ED, = =CEa=CC=C9=DE=CBa,=20 =CB=CF=CDa=CE=C4=C9=D2=CF=D7=CB=C9, = =D0=D2e=C4c=D4a=D7=C9=D4e=CC=D8c=CB=C9e, =E7C=ED, = =C2a=CE=CB=CF=D7c=CB=C9e =CBa=D2=D4=D9 =C9=20 =C4=D2.)

=E4 =CF =CB =D5 =CD e=20 =CE =D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e, =C2 =D5 = =C8=C7a=CC=D4e=D2c=CB=C9=CA =D5=DEe=D4, =CE a =CC =CF = =C7=CF=CF=C2=CC=CF=D6e=CE=C9e

 

=EF=20 =DEe=CD:

 

1.   =20 =EE=CF=D2=CDa=D4=C9=D7=CE=CFe=20 =D2e=C7=D5=CC=C9=D2=CF=D7a=CE=C9e =CBacc=CF=D7=D9=C8 = =CF=D0e=D2a=C3=C9=CA =D7 =F2=E6. = =F0=D2e=C4e=CC =D2ac=DEe=D4=CF=D7=20 =CEa=CC=C9=DE=CE=D9=CD=C9 =C4e=CEe=D6=CE=D9=CD=C9 c=D2e=C4c=D4=D7a=CD=C9 = =CDe=D6=C4=D5 =C0=D2=C9=C4=C9=DEec=CB=C9=CD=C9 =CC=C9=C3a=CD=C9 =C9 = =C9=CE=C4=C9=D7=C9=C4=D5a=CC=D8=CE=D9=CD=C9=20 =D0=D2e=C4=D0=D2=C9=CE=C9=CDa=D4e=CC=D1=CD=C9. = =EF=D4=D7e=D4c=D4=D7e=CE=CE=CFc=D4=D8 =DAa =CEa=D2=D5=DBe=CE=C9=D1 =D7 = =D2a=C2=CF=D4e c =CEa=CC=C9=DE=CE=D9=CD=C9=20 =C4e=CE=D8=C7a=CD=C9.

2.   =20 =EB=CF=CE=D4=D2=CF=CC=D8=CE=CF-=CBacc=CF=D7a=D1=20 =D4e=C8=CE=C9=CBa: = =D5c=CC=CF=D7=C9=D1 =D0=D2=C9=CDe=CEe=CE=C9=D1,=20 =CE=CF=D7=D9=CA =D0=CF=D2=D1=C4=CF=CB =D2e=C7=C9c=D4=D2a=C3=C9=C9 = =EB=EB=F4, =CF=D4=D7e=D4c=D4=D7e=CE=CE=CFc=D4=D8 =DAa = =CEe=D0=D2=C9=CDe=CEe=CE=C9e. 

3.   =20 =EEa=CC=C9=DE=CEa=D1=20 =D7=D9=D2=D5=DE=CBa. =EEa = =DE=D4=CF =CD=CF=D6=CE=CF=20 =D0=CF=D4=D2a=D4=C9=D4=D8 =CEa=CC=C9=DE=CE=D5=C0 =D7=D9=D2=D5=DE=CB=D5. = =EC=C9=CD=C9=D4 =CFc=D4a=D4=CBa =D0=CF =CBacce. =E8=D2a=CEe=CE=C9e = =C4e=CEe=D6=CE=D9=C8 c=D2e=C4c=D4=D7 =C9=20 =CF=C2=CF=D2=D5=C4=CF=D7a=CE=C9e =CBacc=D9. =F7e=C4e=CE=C9e = =CBacc=CF=D7=CF=CA =CB=CE=C9=C7=C9.

4.   =20 =E4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe=20 =CF=C6=CF=D2=CD=CCe=CE=C9e = =CBacc=CF=D7=D9=C8=20 =CF=D0e=D2a=C3=C9=CA.  = =F0=CF=D2=D1=C4=CF=CB =D7=D9=C4a=DE=C9 =CEa=CC=C9=DE=CE=D9=C8=20 =C4e=CEe=D6=CE=D9=C8 c=D2e=C4c=D4=D7 =D0=CF=C4 =CF=D4=DEe=D4. =

5.   =20 =F0=D2=C9=CF=C2=D2e=D4e=CE=C9e = =D4=CF=D7a=D2=CF=D7,=20 =D2a=C2=CF=D4, =D5c=CC=D5=C7 =DAa =CEa=CC=C9=DE=CE=D9=CA =D2ac=DEe=D4 = =DEe=D2e=DA =D0=CF=C4=CF=D4=DEe=D4=CE=CFe =CC=C9=C3=CF: = =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe=20 =CF=C6=CF=D2=CD=CCe=CE=C9e, =D0=CF=D2=D1=C4=CF=CB = =CF=D4=D2a=D6e=CE=C9=D1 =D7 =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD = =D5=DEe=D4e =C9 =D7 =C3e=CC=D1=C8=20 =CEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9=D1.

6.   =20 =EB=CF=CDa=CE=C4=C9=D2=CF=D7=CF=DE=CE=D9e=20 =D2ac=C8=CF=C4=D9:  =D2ac=DEe=D4, = =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e,=20 =D0=CF=D2=D1=C4=CF=CB =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 = =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 =CEa=CC=CF=C7=CF=D7=CF=CD = =D5=DEe=D4e. =EFc=CF=C2e=CE=CE=CFc=D4=C9 =D2ac=DEe=D4=CF=D7 c=20 =D0=CF=C4=CF=D4=DEe=D4=CE=D9=CD=C9 =CC=C9=C3a=CD=C9 =D0=CF = =DAa=C7=D2a=CE=CB=CF=CDa=CE=C4=C9=D2=CF=D7=CBa=CD. = =EB=CF=CD=D0e=CEca=C3=C9=D1 =D2ac=C8=CF=C4=CF=D7 =CEa = c=CC=D5=D6e=C2=CE=D9e=20 =D0=CFe=DA=C4=CB=C9. =EEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9e = =CB=CF=CDa=CE=C4=C9=D2=CF=D7=CF=DE=CE=D9=C8 =D2ac=C8=CF=C4=CF=D7 =C9 = =CB=CF=CD=D0e=CEca=C3=C9=CF=CE=CE=D9=C8 =D7=D9=D0=CCa=D4,=20 c=D7=D1=DAa=CE=CE=D9=C8 c=CF c=CC=D5=D6e=C2=CE=D9=CD=C9 = =D0=CFe=DA=C4=CBa=CD=C9 = c=CF=D4=D2=D5=C4=CE=C9=CB=CF=D7.

7.   =20 =F2ac=C8=CF=C4=D9 =CEa=20 =D0=D2=C9=CF=C2=D2e=D4e=CE=C9e =E7C=ED =DAa = =CEa=CC=C9=DE=CE=D9=CA=20 =D2ac=DEe=D4:  = =D2ac=DEe=D4, =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe=20 =CF=C6=CF=D2=CD=CCe=CE=C9e, =D0=CF=D2=D1=C4=CF=CB = =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 = =CEa=CC=CF=C7=CF=D7=CF=CD =D5=DEe=D4e.=20

8.   =20 =F0=D2e=C4c=D4a=D7=C9=D4e=CC=D8c=CB=C9e=20 =D2ac=C8=CF=C4=D9: = =CF=D0=D2e=C4e=CCe=CE=C9e,=20 =C4=CF=CB=D5=CDe=CE=D4a=CC=D8=CE=CFe =CF=C6=CF=D2=CD=CCe=CE=C9e, = =D0=CF=D2=D1=C4=CF=CB =D0=D2=C9=DA=CEa=CE=C9=D1 =D7 = =C2=D5=C8=C7a=CC=D4e=D2c=CB=CF=CD =C9 =CEa=CC=CF=C7=CF=D7=CF=CD = =D5=DEe=D4e.=20

9.   =20 =E2a=CE=CB=CF=D7c=CB=C9e=20 =CBa=D2=D4=D9. = =F2ac=DEe=D4=D9 c=20 =D0=CF=C4=CF=D4=DEe=D4=CE=D9=CD=C9 =CC=C9=C3a=CD=C9 c = =C9c=D0=CF=CC=D8=DA=CF=D7a=CE=C9e=CD =C2a=CE=CB=CF=D7c=CB=C9=C8 = =CBa=D2=D4.

10. =20 =F7=CF=DA=D7=D2a=D4=20 =CEe=C9c=D0=CF=CC=D8=DA=CF=D7a=CE=CE=D9=C8 = =D0=CF=C4=CF=D4=DEe=D4=CE=D9=C8 c=D5=CD=CD.

11. =20 A=D7a=CEc=CF=D7=D9e=20 =CF=D4=DEe=D4=D9. = =EEa=C9=C2=CF=CCee =DEac=D4=CF=20 =D7c=D4=D2e=DEa=C0=DD=C9ec=D1 =CF=DB=C9=C2=CB=C9 =D0=D2=C9 = c=CFc=D4a=D7=CCe=CE=C9=C9 a=D7a=CEc=CF=D7=D9=C8 = =CF=D4=DEe=D4=CF=D7.

12. =20 =EF=D4=D7e=D4=D9 =CEa =D7=CF=D0=D2=CFc=D9 =C9=20 =D0=D2a=CB=D4=C9=DEec=CB=C9e =D2e=CB=CF=CDe=CE=C4a=C3=C9=C9. =

 


C=D4=CF=C9=CD=CFc=D4=D8=20 =CB=CF=CEc. =D5c=CC=D5=C7: 5998=20 =D2=D5=C2., =D7=CB=CC=C0=DEa=D1 =EE=E4C = 18%. =F2ac=C8=CF=C4=D9 =D0=D2=C9=DA=CEa=C0=D4c=D1 =C4=CC=D1 = =CEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9=D1 =D0=D2=C9=C2=D9=CC=C9.=20 =E4e=CAc=D4=D7=D5e=D4 c=C9c=D4e=CDa c=CB=C9=C4=CF=CB (=CF=D4 2=20 =DEe=CC=CF=D7e=CB – 10%, =CF=D4 3-=C8 – 15 %, =C4a=CCee = 20%).=20 C=CC=D5=DBa=D4e=CC=C9=20 =CF=C2ec=D0e=DE=C9=D7a=C0=D4c=D1 =CB=CF=C6e-=D0a=D5=DA=CF=CA, = =CF=C2e=C4=CF=CD, = =C9=CE=C6=CF=D2=CDa=C3=C9=CF=CE=CE=CF-=CDe=D4=CF=C4=C9=DEec=CB=C9=CD=C9 = =CDa=D4e=D2=C9a=CCa=CD=C9,=20 =D0=C9c=D8=CDe=CE=CE=D9=CD=C9 = =D0=D2=C9=CEa=C4=CCe=D6=CE=CFc=D4=D1=CD=C9. =F0=CF = =CF=CB=CF=CE=DEa=CE=C9=C9 =DAa=CE=D1=D4=C9=CA =D7=D9=C4ae=D4c=D1 = ce=D2=D4=C9=C6=C9=CBa=D4 =CF=20 =D0=CF=D7=D9=DBe=CE=C9=C9 =CB=D7a=CC=C9=C6=C9=CBa=C3=C9=C9 =D0=CF = =C4a=CE=CE=CF=CA =D4e=CDe.

=EDec=D4=CF = =D0=D2=CF=D7e=C4e=CE=C9=D1:=20 =C7.=20 =ED=CFc=CB=D7a

=E4=CC=D1=20 =D0=D2=CF=C6ecc=C9=CF=CEa=CC=D8=CE=D9=C8 =C2=D5=C8=C7a=CC=D4e=D2=CF=D7, = a=D5=C4=C9=D4=CF=D2=CF=D7, =CEa=CC=CF=C7=CF=D7=D9=C8 = =CB=CF=CEc=D5=CC=D8=D4a=CE=D4=CF=D7:=20 ce=D2=D4=C9=C6=C9=CBa=D4=20 =CEa 40(72) =DEac=CF=D7 =CF e=D6e=C7=CF=C4=CE=CF=CD = =D0=CF=D7=D9=DBe=CE=C9=C9 = =CB=D7a=CC=C9=C6=C9=CBa=C3=C9=C9. =F5=D4=CF=DE=CE=D1=CA=D4e = =C9=CE=C6=CF=D2=CDa=C3=C9=C0!

 

=EB=CF=CE=D4a=CB=D4=D9:  =D4/=C6=20 (=FE95) 6=FE9 6766

 


A =D4a=CB=D6e=20 =C4=D2=D5=C7=C9e = =D0=D2e=C4=CC=CF=D6e=CE=C9=D1:

05=20 =CE=CF=D1=C2=D2=D1=20 ««=E4=CF=C7=CF=D7=CF=D2 + =CEa=CC=CF=C7=C9» = (=CEa=CC=CF=C7=CF=D7=D9e =D0=CFc=CCe=C4c=D4=D7=C9=D1 = =C8=CF=DA=D1=CAc=D4=D7e=CE=CE=D9=C8 c=C4e=CC=CF=CB)»=20

06=20 =CE=CF=D1=C2=D2=D1=20 «=E6=C9=CC=C9a=CC=D9 =C9 =C9=CE=D9e =CF=C2=CFc=CF=C2=CCe=CE=CE=D9e = =D0=CF=C4=D2a=DA=C4e=CCe=CE=C9=D1: =D0=D2a=D7=CF=D7=CF=CA c=D4a=D4=D5c, = =CEa=CC=CF=C7=C9,=20 =C2=D5=C8=C7a=CC=D4e=D2c=CB=C9=CA =D5=DEe=D4»

13=20 =CE=CF=D1=C2=D2=D1=20 «=E4=EF=ECE=F7=EFE C=F4=F2=EF=E9=F4E=EC=F8C=F4=F7=EF = =DAac=D4=D2=CF=CA=DD=C9=CB=D5, =DAa=CBa=DA=DE=C9=CB=D5, = =C7e=CE=D0=CF=C4=D2=D1=C4=DE=C9=CB=D5, =C9 =C4=D2.=20 =EEa=CC=CF=C7=CF=CF=C2=CC=CF=D6e=CE=C9e. =F0=D2a=D7=CF. = =EFc=CF=C2e=CE=CE=CFc=D4=C9 =D0=D2=C9=CDe=CEe=CE=C9=D1 = =E6e=C4e=D2a=CC=D8=CE=CF=C7=CF =DAa=CB=CF=CEa =F2=E6 «=EF=C2=20 =D5=DEac=D4=C9=C9 =D7 =C4=CF=CCe=D7=CF=CD = c=D4=D2=CF=C9=D4e=CC=D8c=D4=D7e…» =CF=D4 30.12.2004 № = 214-=E6=FA, =D7 =D2e=C4a=CB=C3=C9=C9 =CF=D4=20 18.07.2006 № 111-=E6=FA» (C=CD=C9=D2=CE=CF=D7a = C.A.)

13=20 =CE=CF=D1=C2=D2=D1=20 «=EF=F0=F4=E9=ED=E9=FAA=E3=E9=F1 = «=FAA=F2=F0=ECA=F4=EE=F9=E8» =EEA=EC=EF=E7=EF=F7. =ED=C9=C6=D9 = =C9 =D2ea=CC=D8=CE=CFc=D4=D8»

14=20 =CE=CF=D1=C2=D2=D1=20 «=EEA=EC=EF=E7=EF=F7=F9=EA =EB=EF=E4E=EBC =F2=E6 – 2009 = =C7=CF=C4. (=EE=E4C, =CEa=CC=CF=C7 =CEa =D0=D2=C9=C2=D9=CC=D8, =F5C=EE, = E=EE=F7=E4, =EE=E4=E6=EC,=20 EC=EE)»=20

 

 

------=_NextPart_000_0004_01C932C6.03EA07AD-- From owner-xfs@oss.sgi.com Mon Oct 20 23:16:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6Gjms006858 for ; Mon, 20 Oct 2008 23:16:45 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 8093E8F80BD; Mon, 20 Oct 2008 23:18:27 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18151; Tue, 21 Oct 2008 17:18:24 +1100 Message-ID: <48FD7435.6010905@sgi.com> Date: Tue, 21 Oct 2008 17:18:29 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH 2/4] kill struct xfs_mount_args References: <20080525190741.GB13372@lst.de> <20080723080505.GA3417@lst.de> <20080828231735.GB19757@lst.de> <20081018123535.GA25304@lst.de> In-Reply-To: <20081018123535.GA25304@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Can we please get these patches in? They've been out for almost _five_ > month, and due to the nature of messing with the mount arguments they're > going to cause conflict for anything dealing with mount options. Not to > speak they've been blocking making any progress on the mount/unmount > path for these five month. > Ok looking at the whole series - [PATCH 1/4] don't leak m_fsname/m_rtname/m_logname Picked up by TAKE 981498 - don't leak m_fsname/m_rtname/m_logname http://oss.sgi.com/archives/xfs/2008-07/msg00388.html - [PATCH 2/4] kill struct xfs_mount_args Revision http://oss.sgi.com/archives/xfs/2008-07/msg00476.html Still applies ok, applying it to our tree. - [PATCH 3/4] fix the noquota mount option http://oss.sgi.com/archives/xfs/2008-05/msg00379.html Still applies ok, applying it to our tree. - [PATCH 4/4] fix biosize option http://oss.sgi.com/archives/xfs/2008-05/msg00380.html Still applies ok, applying it to our tree. Don From owner-xfs@oss.sgi.com Mon Oct 20 23:19:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6JJlw007336 for ; Mon, 20 Oct 2008 23:19:19 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id EFA6C908A5 for ; Mon, 20 Oct 2008 23:21:01 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18225 for ; Tue, 21 Oct 2008 17:21:00 +1100 Message-ID: <48FD74CC.907@sgi.com> Date: Tue, 21 Oct 2008 17:21:00 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss Subject: atime not written to disk Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi, Before I investigate further ;-), it appears that in XFS (seen in recent xfs-dev tree and on older issp release on default mkfs/mount options), that the atime is not being written out to disk in xfs, at least, in the simple scenario below. emu:/home/tes # echo bill >/mnt/test/bill emu:/home/tes # ls -l /mnt/test/bill -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill emu:/home/tes # ls -lu /mnt/test/bill -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill ... wait a bit to change the atime... emu:/home/tes # cat /mnt/test/bill bill emu:/home/tes # ls -lu /mnt/test/bill -rw-r--r-- 1 root root 5 2008-10-21 16:11 /mnt/test/bill emu:/home/tes # cd / emu:/ # umount /mnt/test emu:/ # mount /mnt/test emu:/mnt/test # ls -lu /mnt/test/bill -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill I believe that the atime is handled by the vfs and in xfs_iflush_int we sync up with the linux inode. Perhaps i_update_core needs to be set so that xfs_iflush_int will proceed and call xfs_synchronize_atime() and somehow that is not happening?? I haven't looked further yet, but I thought I'd ask on the list in case others, such as Christoph and Dave have thoughts on this. Thanks, Tim. From owner-xfs@oss.sgi.com Mon Oct 20 23:31:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6VGbP008931 for ; Mon, 20 Oct 2008 23:31:16 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id AF99A8F80BD; Mon, 20 Oct 2008 23:32:58 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18439; Tue, 21 Oct 2008 17:32:56 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id BE0FA1EDD8C; Tue, 21 Oct 2008 17:32:56 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 987246 - kill struct xfs_mount_args Message-Id: <20081021063256.BE0FA1EDD8C@chapter11.melbourne.sgi.com> Date: Tue, 21 Oct 2008 17:32:56 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) No need to parse the mount option into a structure before applying it to struct xfs_mount. The content of xfs_start_flags gets merged into xfs_parseargs. Calls inbetween don't care and can use mount members instead of the args struct. This patch uncovered that the mount option for shared filesystems wasn't ever exposed on Linux. The code to handle it is #if 0'ed in this patch pending a decision on this feature. I'll send a writeup about it to the list soon. Signed-off-by: Christoph Hellwig Date: Tue Oct 21 17:32:14 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32371a fs/xfs/xfs_vfsops.c - 1.581 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.581&r2=text&tr2=1.580&f=h - kill struct xfs_mount_args fs/xfs/xfs_clnt.h - 1.61 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_clnt.h.diff?r1=text&tr1=1.61&r2=text&tr2=1.60&f=h - kill struct xfs_mount_args fs/xfs/xfs_mount.h - 1.284 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.284&r2=text&tr2=1.283&f=h - kill struct xfs_mount_args fs/xfs/xfs_qmops.c - 1.19 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_qmops.c.diff?r1=text&tr1=1.19&r2=text&tr2=1.18&f=h - kill struct xfs_mount_args fs/xfs/xfs_dmops.c - 1.14 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dmops.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.13&f=h - kill struct xfs_mount_args fs/xfs/quota/xfs_qm_bhv.c - 1.30 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm_bhv.c.diff?r1=text&tr1=1.30&r2=text&tr2=1.29&f=h - kill struct xfs_mount_args fs/xfs/quota/xfs_qm.c - 1.77 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/quota/xfs_qm.c.diff?r1=text&tr1=1.77&r2=text&tr2=1.76&f=h - kill struct xfs_mount_args fs/xfs/linux-2.6/xfs_super.c - 1.464 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.464&r2=text&tr2=1.463&f=h - kill struct xfs_mount_args fs/xfs/linux-2.6/xfs_ksyms.c - 1.95 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.95&r2=text&tr2=1.94&f=h - kill struct xfs_mount_args fs/xfs/dmapi/xfs_dm.c - 1.80 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/dmapi/xfs_dm.c.diff?r1=text&tr1=1.80&r2=text&tr2=1.79&f=h - kill struct xfs_mount_args From owner-xfs@oss.sgi.com Mon Oct 20 23:33:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6XPKe009581 for ; Mon, 20 Oct 2008 23:33:25 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 175813040EB; Mon, 20 Oct 2008 23:35:03 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18490; Tue, 21 Oct 2008 17:35:02 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 9DDED1EDD85; Tue, 21 Oct 2008 17:35:02 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 987246 - fix the noquota mount option Message-Id: <20081021063502.9DDED1EDD85@chapter11.melbourne.sgi.com> Date: Tue, 21 Oct 2008 17:35:02 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Noquota should clear all mount options, and not just user and group quota. Probably doesn't matter very much in real life. Signed-off-by: Christoph Hellwig Date: Tue Oct 21 17:34:46 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32372a fs/xfs/linux-2.6/xfs_super.c - 1.465 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.465&r2=text&tr2=1.464&f=h - fix the noquota mount option From owner-xfs@oss.sgi.com Mon Oct 20 23:35:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6ZP8e010049 for ; Mon, 20 Oct 2008 23:35:25 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id A39499088E; Mon, 20 Oct 2008 23:37:07 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18528; Tue, 21 Oct 2008 17:37:06 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id 434F21EDD8C; Tue, 21 Oct 2008 17:37:06 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 987246 - fix biosize option Message-Id: <20081021063706.434F21EDD8C@chapter11.melbourne.sgi.com> Date: Tue, 21 Oct 2008 17:37:06 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) fix biosize option iosizelog shouldn't be the same as iosize but the logarithm of it. Then again the current biosize option doesn't make much sense to me as it doesn't set the preferred I/O size as mentioned in the comment next to it but rather the allocation size and thus is identical to the allocsize option (except for the missing logarithm). It's also not documented in Documentation/filesystems/xfs.txt or the mount manpage. Signed-off-by: Christoph Hellwig Date: Tue Oct 21 17:36:43 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32373a fs/xfs/linux-2.6/xfs_super.c - 1.466 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.466&r2=text&tr2=1.465&f=h - fix biosize option From owner-xfs@oss.sgi.com Mon Oct 20 23:47:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L6lXxm011741 for ; Mon, 20 Oct 2008 23:47:34 -0700 X-ASG-Debug-ID: 1224571756-30da034e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo201.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17158524D83; Mon, 20 Oct 2008 23:49:16 -0700 (PDT) Received: from tyo201.gate.nec.co.jp (TYO201.gate.nec.co.jp [202.32.8.193]) by cuda.sgi.com with ESMTP id G48A3xDDFoCNdi6R; Mon, 20 Oct 2008 23:49:16 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.160]) by tyo201.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9L6nEaE018803; Tue, 21 Oct 2008 15:49:14 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9L6nEp01098; Tue, 21 Oct 2008 15:49:14 +0900 (JST) Received: from matabe.jp.nec.com (matabe.jp.nec.com [10.26.220.20]) by mailsv4.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9L6nDUW001434; Tue, 21 Oct 2008 15:49:13 +0900 (JST) Received: from [10.64.168.199] ([10.64.168.199] [10.64.168.199]) by mail.jp.nec.com with ESMTP; Tue, 21 Oct 2008 15:49:13 +0900 Message-ID: <48FD7B69.3090600@wm.jp.nec.com> Date: Tue, 21 Oct 2008 15:49:13 +0900 From: Utako Kusaka User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Timothy Shimmin CC: xfs X-ASG-Orig-Subj: Re: atime not written to disk Subject: Re: atime not written to disk References: <48FD74CC.907@sgi.com> In-Reply-To: <48FD74CC.907@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: TYO201.gate.nec.co.jp[202.32.8.193] X-Barracuda-Start-Time: 1224571759 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8384 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, Your problem seems the same as mine. http://oss.sgi.com/archives/xfs/2007-10/msg00168.html Utako. Timothy Shimmin wrote: > Hi, > > Before I investigate further ;-), > it appears that in XFS (seen in recent xfs-dev tree and on older issp release > on default mkfs/mount options), > that the atime is not being written out to disk in xfs, > at least, in the simple scenario below. > > emu:/home/tes # echo bill >/mnt/test/bill > emu:/home/tes # ls -l /mnt/test/bill > -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill > emu:/home/tes # ls -lu /mnt/test/bill > -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill > > ... wait a bit to change the atime... > > emu:/home/tes # cat /mnt/test/bill > bill > emu:/home/tes # ls -lu /mnt/test/bill > -rw-r--r-- 1 root root 5 2008-10-21 16:11 /mnt/test/bill > > emu:/home/tes # cd / > emu:/ # umount /mnt/test > emu:/ # mount /mnt/test > emu:/mnt/test # ls -lu /mnt/test/bill > -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill > > I believe that the atime is handled by the vfs and in xfs_iflush_int > we sync up with the linux inode. > Perhaps i_update_core needs to be set so that xfs_iflush_int > will proceed and call xfs_synchronize_atime() and > somehow that is not happening?? > > I haven't looked further yet, but I thought I'd ask on the list > in case others, such as Christoph and Dave have thoughts on this. > > Thanks, > Tim. From owner-xfs@oss.sgi.com Tue Oct 21 00:33:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L7XAF5023668 for ; Tue, 21 Oct 2008 00:33:11 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 0373A908B1; Tue, 21 Oct 2008 00:34:49 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA19517; Tue, 21 Oct 2008 18:34:48 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id E9FFD1EDD8C; Tue, 21 Oct 2008 18:34:47 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 987246 - Trivial xfs_remove comment fixup Message-Id: <20081021073447.E9FFD1EDD8C@chapter11.melbourne.sgi.com> Date: Tue, 21 Oct 2008 18:34:47 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) The dp to ip comment should be for the unconditional xfs_droplink call, and the "." link obviously only exists for directories, so it should be in the is_dir conditional. Signed-off-by: Christoph Hellwig Date: Tue Oct 21 18:34:26 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: hch,dave@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32374a fs/xfs/xfs_vnodeops.c - 1.782 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.782&r2=text&tr2=1.781&f=h - Trivial xfs_remove comment fixup From owner-xfs@oss.sgi.com Tue Oct 21 00:34:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L7YZw1023895 for ; Tue, 21 Oct 2008 00:34:36 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 4446B908B8; Tue, 21 Oct 2008 00:36:20 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA19554; Tue, 21 Oct 2008 18:36:18 +1100 Message-ID: <48FD8676.7000305@sgi.com> Date: Tue, 21 Oct 2008 18:36:22 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH] trivial xfs_remove comment fixup References: <20080807215849.GA11345@lst.de> <20081018123623.GB25304@lst.de> In-Reply-To: <20081018123623.GB25304@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Ping? This is just a trivial comment fixup, shouldn't be that hard to > review.. This is to cleanup the comments from the xfs_rmd -> xfs_remove merge. Ok then, its in. > > On Thu, Aug 07, 2008 at 11:58:49PM +0200, Christoph Hellwig wrote: >> The dp to ip comment should be for the unconditional xfs_droplink >> call, and the "." link obviously only exists for directories, >> so it should be in the is_dir conditional. >> >> Signed-off-by: Christoph Hellwig >> >> Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c >> =================================================================== >> --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-08-06 17:26:37.000000000 -0300 >> +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-08-06 17:36:44.000000000 -0300 >> @@ -2014,7 +2014,7 @@ xfs_remove( >> goto out_bmap_cancel; >> >> /* >> - * Drop the link from dp to ip. >> + * Drop the "." link from ip to self. >> */ >> error = xfs_droplink(tp, ip); >> if (error) >> @@ -2029,7 +2029,7 @@ xfs_remove( >> } >> >> /* >> - * Drop the "." link from ip to self. >> + * Drop the link from dp to ip. >> */ >> error = xfs_droplink(tp, ip); >> if (error) > ---end quoted text--- > From owner-xfs@oss.sgi.com Tue Oct 21 01:05:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L85qKQ026349 for ; Tue, 21 Oct 2008 01:05:53 -0700 X-ASG-Debug-ID: 1224576457-5a0603ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 124DD52527A for ; Tue, 21 Oct 2008 01:07:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lytwNVs4WGB1rGX7 for ; Tue, 21 Oct 2008 01:07:37 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsCHB-0006j3-7G; Tue, 21 Oct 2008 08:07:37 +0000 Date: Tue, 21 Oct 2008 04:07:37 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Message-ID: <20081021080737.GA4193@infradead.org> References: <48FD0503.3090203@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FD0503.3090203@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224576458 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8385 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 20, 2008 at 05:24:03PM -0500, Eric Sandeen wrote: > Preliminary work to hook up fiemap, this allows us to pass in an > arbitrary formatter to copy extent data back to userspace. > > The formatter takes info for 1 extent, a pointer to the user "thing*" > and a pointer to a "filled" variable to indicate whether a userspace > buffer did get filled in (for fiemap, hole "extents" are skipped). > > I'm just using the getbmapx struct as a "common denominator" because > as far as I can see, it holds all info that any formatters will care > about. > > ("*thing" because fiemap doesn't pass the user pointer around, but rather > has a pointer to a fiemap info structure, and helpers associated with it) > > I'm still working on the fiemap hookup but wanted to put this out for comment. This looks good to me. > /* > - * Fcntl interface to xfs_bmapi. > + * ioctl interface to xfs_bmapi. > */ > /* > - * Fcntl interface to xfs_bmapi. > + * ioctl interface to xfs_bmapi. > */ Well, it will be for fiemap, too. And the comment doesn't make much sense either. Either remove it completely or replace it by something that makes sense. From owner-xfs@oss.sgi.com Tue Oct 21 01:11:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L8Bj5w027095 for ; Tue, 21 Oct 2008 01:11:47 -0700 X-ASG-Debug-ID: 1224576810-3d5501310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D7FB144B12B for ; Tue, 21 Oct 2008 01:13:30 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Ms36oApfLzDRRoo2 for ; Tue, 21 Oct 2008 01:13:30 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsCMr-0003qf-9N; Tue, 21 Oct 2008 08:13:29 +0000 Date: Tue, 21 Oct 2008 04:13:29 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Subject: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081021081329.GA23344@infradead.org> References: <20081020222036.GA23662@lst.de> <20081021024455.GB18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021024455.GB18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224576810 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8385 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 01:44:55PM +1100, Dave Chinner wrote: > On Tue, Oct 21, 2008 at 12:20:36AM +0200, Christoph Hellwig wrote: > > xfs_bulkstat only wants the dinode, offset and buffer from a given > > inode number. Instead of using xfs_itobp on a fake inode that is much > > easier done with xfs_inotobp, which just needs an imap_flag paramter to > > pass down the XFS_IMAP_BULKSTAT flag. > > Nice - that removes the only external user of xfs_inode_alloc() very > cleanly. Looks ok to me. Which means we should mark it static now. Updated patch below: Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-21 09:28:16.000000000 +0200 @@ -222,25 +222,26 @@ xfs_imap_to_bp( * Use xfs_imap() to determine the size and location of the * buffer to read from disk. */ -STATIC int +int xfs_inotobp( xfs_mount_t *mp, xfs_trans_t *tp, xfs_ino_t ino, xfs_dinode_t **dipp, xfs_buf_t **bpp, - int *offset) + int *offset, + uint imap_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); if (error) return error; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, 0); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); if (error) return error; @@ -792,7 +793,7 @@ xfs_dic2xflags( /* * Allocate and initialise an xfs_inode. */ -struct xfs_inode * +STATIC struct xfs_inode * xfs_inode_alloc( struct xfs_mount *mp, xfs_ino_t ino) @@ -2046,7 +2047,7 @@ xfs_iunlink_remove( } next_ino = XFS_AGINO_TO_INO(mp, agno, next_agino); error = xfs_inotobp(mp, tp, next_ino, &last_dip, - &last_ibp, &last_offset); + &last_ibp, &last_offset, 0); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_inotobp() returned an error %d on %s. Returning error.", Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 09:28:03.000000000 +0200 @@ -158,7 +158,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -514,7 +514,6 @@ int xfs_itruncate_finish(struct xfs_tra xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); -struct xfs_inode * xfs_inode_alloc(struct xfs_mount *, xfs_ino_t); void xfs_idestroy(xfs_inode_t *); void xfs_iextract(xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); @@ -531,6 +530,9 @@ void xfs_mark_inode_dirty_sync(xfs_inod #endif /* __KERNEL__ */ +int xfs_inotobp(struct xfs_mount *, struct xfs_trans *, + xfs_ino_t, struct xfs_dinode **, + struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); Index: xfs-2.6/fs/xfs/xfs_itable.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_itable.c 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_itable.c 2008-10-20 23:49:34.000000000 +0200 @@ -359,7 +359,6 @@ xfs_bulkstat( int ubused; /* bytes used by formatter */ xfs_buf_t *bp; /* ptr to on-disk inode cluster buf */ xfs_dinode_t *dip; /* ptr into bp for specific inode */ - xfs_inode_t *ip; /* ptr to in-core inode struct */ /* * Get the last inode value, see if there's nothing to do. @@ -585,6 +584,8 @@ xfs_bulkstat( if (flags & (BULKSTAT_FG_QUICK | BULKSTAT_FG_INLINE)) { + int offset; + ino = XFS_AGINO_TO_INO(mp, agno, agino); bno = XFS_AGB_TO_DADDR(mp, agno, @@ -595,19 +596,13 @@ xfs_bulkstat( */ if (bp) xfs_buf_relse(bp); - ip = xfs_inode_alloc(mp, ino); - if (!ip) { - bp = NULL; - rval = ENOMEM; - break; - } - error = xfs_itobp(mp, NULL, ip, - &dip, &bp, bno, - XFS_IMAP_BULKSTAT, - XFS_BUF_LOCK); + + error = xfs_inotobp(mp, NULL, ino, &dip, + &bp, &offset, + XFS_IMAP_BULKSTAT); + if (!error) - clustidx = ip->i_boffset / mp->m_sb.sb_inodesize; - xfs_idestroy(ip); + clustidx = offset / mp->m_sb.sb_inodesize; if (XFS_TEST_ERROR(error != 0, mp, XFS_ERRTAG_BULKSTAT_READ_CHUNK, XFS_RANDOM_BULKSTAT_READ_CHUNK)) { From owner-xfs@oss.sgi.com Tue Oct 21 01:24:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L8NwH6027939 for ; Tue, 21 Oct 2008 01:23:59 -0700 X-ASG-Debug-ID: 1224577543-4f5800b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1CC8A144AEBB for ; Tue, 21 Oct 2008 01:25:43 -0700 (PDT) Received: from mx1.suse.de (cantor.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id OM2b5XFgRJY0qZ1f for ; Tue, 21 Oct 2008 01:25:43 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from Relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 7ECC3429D3 for ; Tue, 21 Oct 2008 10:31:48 +0200 (CEST) Date: Tue, 21 Oct 2008 10:25:42 +0200 From: Nick Piggin To: xfs@oss.sgi.com X-ASG-Orig-Subj: [patch 1/2] xfs: remove old vmap cache Subject: [patch 1/2] xfs: remove old vmap cache Message-ID: <20081021082542.GA6974@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.9i X-Barracuda-Connect: cantor.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1224577544 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com XFS's vmap batching simply defers a number (up to 64) of vunmaps, and keeps track of them in a list. To purge the batch, it just goes through the list and calls vunamp on each one. This is pretty poor: a global TLB flush is generally still performed on each vunmap, with the most expensive parts of the operation being the broadcast IPIs and locking involved in the SMP callouts, and the locking involved in the vmap management -- none of these are avoided by just batching up the calls. I'm actually surprised it ever made much difference. (Now that the lazy vmap allocator is upstream, this description is not quite right, but the vunmap batching still doesn't seem to do much) Rip all this logic out of XFS completely. I will improve vmap performance and scalability directly in subsequent patch. Signed-off-by: Nick Piggin --- Index: linux-2.6/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_buf.c +++ linux-2.6/fs/xfs/linux-2.6/xfs_buf.c @@ -166,75 +166,6 @@ test_page_region( } /* - * Mapping of multi-page buffers into contiguous virtual space - */ - -typedef struct a_list { - void *vm_addr; - struct a_list *next; -} a_list_t; - -static a_list_t *as_free_head; -static int as_list_len; -static DEFINE_SPINLOCK(as_lock); - -/* - * Try to batch vunmaps because they are costly. - */ -STATIC void -free_address( - void *addr) -{ - a_list_t *aentry; - -#ifdef CONFIG_XEN - /* - * Xen needs to be able to make sure it can get an exclusive - * RO mapping of pages it wants to turn into a pagetable. If - * a newly allocated page is also still being vmap()ed by xfs, - * it will cause pagetable construction to fail. This is a - * quick workaround to always eagerly unmap pages so that Xen - * is happy. - */ - vunmap(addr); - return; -#endif - - aentry = kmalloc(sizeof(a_list_t), GFP_NOWAIT); - if (likely(aentry)) { - spin_lock(&as_lock); - aentry->next = as_free_head; - aentry->vm_addr = addr; - as_free_head = aentry; - as_list_len++; - spin_unlock(&as_lock); - } else { - vunmap(addr); - } -} - -STATIC void -purge_addresses(void) -{ - a_list_t *aentry, *old; - - if (as_free_head == NULL) - return; - - spin_lock(&as_lock); - aentry = as_free_head; - as_free_head = NULL; - as_list_len = 0; - spin_unlock(&as_lock); - - while ((old = aentry) != NULL) { - vunmap(aentry->vm_addr); - aentry = aentry->next; - kfree(old); - } -} - -/* * Internal xfs_buf_t object manipulation */ @@ -333,7 +264,7 @@ xfs_buf_free( uint i; if ((bp->b_flags & XBF_MAPPED) && (bp->b_page_count > 1)) - free_address(bp->b_addr - bp->b_offset); + vunmap(bp->b_addr - bp->b_offset); for (i = 0; i < bp->b_page_count; i++) { struct page *page = bp->b_pages[i]; @@ -455,8 +386,6 @@ _xfs_buf_map_pages( bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { - if (as_list_len > 64) - purge_addresses(); bp->b_addr = vmap(bp->b_pages, bp->b_page_count, VM_MAP, PAGE_KERNEL); if (unlikely(bp->b_addr == NULL)) @@ -1732,8 +1661,6 @@ xfsbufd( count++; } - if (as_list_len > 0) - purge_addresses(); if (count) blk_run_address_space(target->bt_mapping); From owner-xfs@oss.sgi.com Tue Oct 21 01:25:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L8PqHs028350 for ; Tue, 21 Oct 2008 01:25:52 -0700 X-ASG-Debug-ID: 1224577656-10c1026d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55F8C1311678 for ; Tue, 21 Oct 2008 01:27:36 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 1ECFHOZJbhB9Kxqh for ; Tue, 21 Oct 2008 01:27:36 -0700 (PDT) Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id DE06D4643C for ; Tue, 21 Oct 2008 10:33:41 +0200 (CEST) Date: Tue, 21 Oct 2008 10:27:35 +0200 From: Nick Piggin To: xfs@oss.sgi.com X-ASG-Orig-Subj: [patch 2/2] xfs: use scalable vmap API Subject: [patch 2/2] xfs: use scalable vmap API Message-ID: <20081021082735.GB6974@wotan.suse.de> References: <20081021082542.GA6974@wotan.suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021082542.GA6974@wotan.suse.de> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1224577657 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8386 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Implement XFS's large buffer support with the new vmap APIs. See the vmap rewrite (db64fe02) for some numbers. The biggest improvement that comes from using the new APIs is avoiding the global KVA allocation lock on every call. Signed-off-by: Nick Piggin --- Index: linux-2.6/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_buf.c +++ linux-2.6/fs/xfs/linux-2.6/xfs_buf.c @@ -264,7 +264,7 @@ xfs_buf_free( uint i; if ((bp->b_flags & XBF_MAPPED) && (bp->b_page_count > 1)) - vunmap(bp->b_addr - bp->b_offset); + vm_unmap_ram(bp->b_addr - bp->b_offset, bp->b_page_count); for (i = 0; i < bp->b_page_count; i++) { struct page *page = bp->b_pages[i]; @@ -386,8 +386,8 @@ _xfs_buf_map_pages( bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; bp->b_flags |= XBF_MAPPED; } else if (flags & XBF_MAPPED) { - bp->b_addr = vmap(bp->b_pages, bp->b_page_count, - VM_MAP, PAGE_KERNEL); + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, + -1, PAGE_KERNEL); if (unlikely(bp->b_addr == NULL)) return -ENOMEM; bp->b_addr += bp->b_offset; From owner-xfs@oss.sgi.com Tue Oct 21 02:05:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9L95O1M031538 for ; Tue, 21 Oct 2008 02:05:24 -0700 X-ASG-Debug-ID: 1224580028-390c02490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D22D525414 for ; Tue, 21 Oct 2008 02:07:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id fWYU1WFmVmVht74C for ; Tue, 21 Oct 2008 02:07:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsDCm-0005iT-Ax; Tue, 21 Oct 2008 09:07:08 +0000 Date: Tue, 21 Oct 2008 05:07:08 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] free inodes using destroy_inode Subject: Re: [PATCH 3/3] free inodes using destroy_inode Message-ID: <20081021090708.GA30463@infradead.org> References: <20081020222044.GC23662@lst.de> <20081021030726.GD18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021030726.GD18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224580029 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8387 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Tue, Oct 21, 2008 at 02:07:26PM +1100, Dave Chinner wrote: > ^ > Extra whitespace. > > ^ > Ditto. Fixed. > Yes, makes sense to mark it bad first to avoid most of the > reclaim code. > Can that happen? I thought xfs_iput_new() took care of clearing the > I_NEW flag via unlock_new_inode() and so there is no way that flag > can leak through to here. perhaps a comment explaining what the > error path is that leads to needing this check is in order.... The make_inode_bad isn't actually nessecary anymore - this was my first attempt at skipping the flushing in xfs_reclaim, but it was still too much as the radix tree removal for and inode that's not in the tree tripped up quite badly. So I use I_NEW here to detect these half setup inodes. Real I_NEW indoes still go through xfs_iput_new. Updated version that has a comment explaining all this below: Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/inode.c =================================================================== --- xfs-2.6.orig/fs/inode.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/inode.c 2008-10-20 23:54:08.000000000 +0200 @@ -212,6 +212,7 @@ void destroy_inode(struct inode *inode) else kmem_cache_free(inode_cachep, (inode)); } +EXPORT_SYMBOL(destroy_inode); /* Index: xfs-2.6/fs/xfs/xfs_iget.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_iget.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_iget.c 2008-10-20 23:54:08.000000000 +0200 @@ -197,7 +197,7 @@ out_unlock: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); out_destroy: - xfs_idestroy(ip); + xfs_destroy_inode(ip); return error; } Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 23:54:05.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-21 09:24:30.000000000 +0200 @@ -872,10 +872,8 @@ xfs_iread( imap.im_blkno = bno; error = xfs_imap(mp, tp, ip->i_ino, &imap, XFS_IMAP_LOOKUP | imap_flags); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_destroy_inode; /* * Fill in the fields in the inode that will be used to @@ -887,10 +885,8 @@ xfs_iread( ASSERT(bno == 0 || bno == imap.im_blkno); error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_destroy_inode; dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); @@ -899,8 +895,6 @@ xfs_iread( * (nfs or dmi) has a stale handle. */ if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "dip->di_core.di_magic (0x%x) != " @@ -908,7 +902,8 @@ xfs_iread( be16_to_cpu(dip->di_core.di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ - return XFS_ERROR(EINVAL); + error = XFS_ERROR(EINVAL); + goto out_brelse; } /* @@ -922,14 +917,12 @@ xfs_iread( xfs_dinode_from_disk(&ip->i_d, &dip->di_core); error = xfs_iformat(ip, dip); if (error) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "xfs_iformat() returned error %d", error); #endif /* DEBUG */ - return error; + goto out_brelse; } } else { ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); @@ -995,6 +988,12 @@ xfs_iread( xfs_trans_brelse(tp, bp); *ipp = ip; return 0; + + out_brelse: + xfs_trans_brelse(tp, bp); + out_destroy_inode: + xfs_destroy_inode(ip); + return error; } /* Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:54:05.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 09:24:42.000000000 +0200 @@ -309,6 +309,11 @@ static inline struct inode *VFS_I(struct return &ip->i_vnode; } +static inline void xfs_destroy_inode(struct xfs_inode *ip) +{ + return destroy_inode(VFS_I(ip)); +} + /* * i_flags helper functions */ Index: xfs-2.6/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_vnodeops.c 2008-10-20 23:49:27.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_vnodeops.c 2008-10-21 09:26:38.000000000 +0200 @@ -2798,13 +2798,29 @@ int xfs_reclaim( xfs_inode_t *ip) { + struct inode *inode = VFS_I(ip); xfs_itrace_entry(ip); - ASSERT(!VN_MAPPED(VFS_I(ip))); + ASSERT(!VN_MAPPED(inode)); + + /* + * If we get an uninitialized inode, immediate destroy it here and + * don't go through writeback or removing it from the radix-tree to + * which is has never been added. + * + * Note that I_NEW is a rather fragile way to detect this as I_NEW + * is still set by partially set-up inode that has been added to the + * radix-tree. But all those failure cases go through xfs_iput_new + * and thus never end up with I_NEW set here. + */ + if (unlikely(inode->i_state & I_NEW)) { + xfs_idestroy(ip); + return 0; + } /* bad inode, get out here ASAP */ - if (VN_BAD(VFS_I(ip))) { + if (unlikely(is_bad_inode(inode))) { xfs_ireclaim(ip); return 0; } From owner-xfs@oss.sgi.com Tue Oct 21 04:25:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.3 required=5.0 tests=BAYES_50,HTML_MESSAGE, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LBPbR0013962 for ; Tue, 21 Oct 2008 04:25:39 -0700 X-ASG-Debug-ID: 1224588441-232e03b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [61.137.137.209] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5AFDF525B53 for ; Tue, 21 Oct 2008 04:27:22 -0700 (PDT) Received: from [61.137.137.209] ([61.137.137.209]) by cuda.sgi.com with ESMTP id DPUdXNF5B22VLv8f for ; Tue, 21 Oct 2008 04:27:22 -0700 (PDT) Message-ID: <000601c9336f$05714f71$5aefb1be@aqyqbcha> From: "alfredo pat" To: X-ASG-Orig-Subj: =?koi8-r?B?8NLPxMGjzSDNxdPUz9LP1sTFzsnFIM7FxtTJ?= Subject: =?koi8-r?B?8NLPxMGjzSDNxdPUz9LP1sTFzsnFIM7FxtTJ?= Date: Tue, 21 Oct 2008 09:40:00 +0000 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Barracuda-Connect: UNKNOWN[61.137.137.209] X-Barracuda-Start-Time: 1224588443 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5666 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.85 X-Barracuda-Spam-Status: No, SCORE=0.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG035a, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8393 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 1745 =F0=D2=CF=C4=C1=A3=CD =CD=C5=D3=D4=CF=D2=CF=D6=C4=C5=CE=C9=C5 =CE=C5= =C6=D4=C9=20 =F0=D2=CF=C4=C1=A3=CD =C2=CC=CF=CB=C9=D2=D5=C0=DD=C9=CA (30%) =D0=C1=CB=C5= =D4 =C1=CB=C3=C9=CA =C4=C5=CA=D3=D4=D7=D5=C0=DD=C5=C7=CF =CD=C5=D3=D4=CF=D2= =CF=D6=C4=C5=CE=C9=D1 =CE=C5=C6=D4=C9 =CE=C1 =D4=C5=D2=D2=C9=D4=CF=D2=C9=C9= =F2=CF=D3=D3=C9=C9. =F2=C1=DA=CD=C5=D2 =D0=D2=CF=C4=C1=D7=C1=C5=CD=CF=C7= =CF =D0=C1=CB=C5=D4=C1 =C1=CB=C3=C9=CA =CD=CF=D6=C5=D4 =C2=D9=D4=D8 =D5=D7= =C5=CC=C9=DE=C5=CE. =D4=D2=C9 =D5=DE=C1=D3=D4=CB=C1 =D3 =C9=CE=C6=D2=C1=D3=D4=D2=D5=CB=D4=D5= =D2=CF=CA =D3=D5=CD=CD=C1=D2=CE=D9=CA =CF=C2=DF=C5=CD 21 =CD=CC=CE. =D4= =CF=CE=CE =CF=C2=D7=CF=C4=CE=C5=CE=CE=CF=D3=D4=D8 =CE=C9=DA=CB=C1=D1 = =CE=C5 =D0=D2=C9=CE=D5=C4=C9=D4=C5=CC=D8=CE=C1=D1 =C4=CF=C2=D9=DE=C1 =D0= =D1=D4=D8 =CC=C9=C3=C5=CE=DA=C9=CA =EF=C3=C5=CE=CB=C1 =C4=C1=CE=CE=CF=C7= =CF =D0=C1=CB=C5=D4=C1 =C1=D5=C4=C9=D4=CF=CD =CF=D4 2007=C7 =D2=C1=D7=CE=C1= 41 =CD=CC=CE.521 =D4=D9=D3. =C4=CF=CC=CC=C1=D2=CF=D7 =D0=D2=C9 =D3=D4=CF= =C9=CD=CF=D3=D4=C9 =CE=C5=C6=D4=C9 60$ =DA=C1 =C2=C1=D2=D2=C5=CC=D8.=20 =F3=D4=CF=C9=CD=CF=D3=D4=D8 =D0=C1=CB=C5=D4=C1 30 =CD=CC=CE. =C4=CF=CC=CC= =C1=D2=CF=D7. =20=20 =F2=C1=D3=D3=CD=CF=D4=D2=C9=CD =D0=D2=C5=C4=CC=CF=D6=C5=CE=C9=D1 =D0=CF= =D3=D2=C5=C4=CE=C9=CB=CF=D7 =C9 =CF=C2=C5=D3=D0=C5=DE=C9=CD =C9=C8 =C9=CE= =D4=C5=D2=C5=D3=D9.=20 =20=20 =F3=CF=CF=C2=DD=C9=CD =D7=D3=C0 =C4=CF=D0=CF=CC=CE=C9=D4=C5=CC=D8=CE=D5= =C0 =C9=CE=C6=CF=D2=CD=C1=C3=C9=C0, =D0=D2=C9 =D7=C1=DB=C5=CA =DA=C1=C9=CE= =D4=C5=D2=C5=D3=CF=D7=C1=CE=CE=CF=D3=D4=C9.=20 =F0=C9=D3=D8=CD=C1 =D3 =DA=C1=D0=D2=CF=D3=C1=CD=C9 =CE=C1=D0=D2=C1=D7=CC= =D1=CA=D4=C5 =CE=C1 neft@sosna-land.ru  =20 =20=20=20 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Tue Oct 21 04:40:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LBeVQD014882 for ; Tue, 21 Oct 2008 04:40:32 -0700 X-ASG-Debug-ID: 1224589336-1fc7037a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from an-out-0708.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1523C1311C32 for ; Tue, 21 Oct 2008 04:42:16 -0700 (PDT) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.243]) by cuda.sgi.com with ESMTP id qUF4xZqAbpvsFeoI for ; Tue, 21 Oct 2008 04:42:16 -0700 (PDT) Received: by an-out-0708.google.com with SMTP id d30so139333and.75 for ; Tue, 21 Oct 2008 04:42:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=FjOXZLW/fU5vwUh5a249aAwO50hbl5YWAM2cclJoTE0=; b=QjwiVwW+s3obBJz36C6cfez84nwcc02R9vJmPhe5k1a3lq+7FrIPBySosE7uGQGBIt e+DA7AYEmQJ0u6Wfjiksh29KqQ0+325aOLw8Mq0XP//u829v+ktxoNZpIuAwuUoqROBX SHnklVfJfxl+G7igSyPGuz0N6b4a++4zG5aiA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=ZMQb+2yckCT2V8lwfdzM+rYDmHVVkRYe9DdGFIEEdmPlkSOPUUVAPdHU3B+nTspeMW q/cR3xgeEJgsiz+/6jt5sJtOxOYzTR5DRzALUcl00MEdhZ5EFFkPVIAV7EbNLApmryEy XHnjnv/kDIqAwCH2ReX4e5kMugAjJyuDTMkco= Received: by 10.100.154.9 with SMTP id b9mr9699213ane.73.1224589336148; Tue, 21 Oct 2008 04:42:16 -0700 (PDT) Received: by 10.100.111.12 with HTTP; Tue, 21 Oct 2008 04:42:16 -0700 (PDT) Message-ID: Date: Tue, 21 Oct 2008 15:42:16 +0400 From: "Alexander Beregalov" To: lachlan@sgi.com, "Dave Chinner" , "Christoph Hellwig" , "Arjan van de Ven" , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) In-Reply-To: <20081020223549.GA21152@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> X-Barracuda-Connect: an-out-0708.google.com[209.85.132.243] X-Barracuda-Start-Time: 1224589337 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8393 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 2008/10/21 Dave Chinner : > On Mon, Oct 20, 2008 at 09:13:05PM +0400, Alexander Beregalov wrote: >> 2008/10/20 Christoph Hellwig : >> > On Mon, Oct 20, 2008 at 06:58:09PM +0400, Alexander Beregalov wrote: >> >> Hi Christoph >> >> >> >> I have the same result with next-1020 and today's xfs-2.6.git/master >> >> ( >> >> commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 >> >> Author: David Chinner >> >> Date: Fri Oct 17 15:36:23 2008 +1000 >> >> Inode: Allow external list initialisation >> >> ) >> Ha, that kernel (xfs/master) has made my system dead locked. >> SysRQ-d: >> Show all locks held in the system >> 1 lock held by pdflush >> (&type->s_umount_key#18{----}, at writeback_inodes >> 1 lock held by login >> (&(&ip->i_iolock)->mr_lock){----} at xfs_ilock >> and so on ( many locks at xfs_ilock) > > Curious. Can you post the full stack traces? I can not reproduce it, yet. Bisected to: dd509097cb0b76d3836385f80d6b2d6fd3b97757 is first bad commit commit dd509097cb0b76d3836385f80d6b2d6fd3b97757 Author: Lachlan McIlroy Date: Mon Sep 29 14:56:40 2008 +1000 [XFS] Unlock inode before calling xfs_idestroy() Lock debugging reported the ilock was being destroyed without being unlocked. We don't need to lock the inode until we are going to insert it into the radix tree. SGI-PV: 987246 SGI-Modid: xfs-linux-melb:xfs-kern:32159a Signed-off-by: Lachlan McIlroy Signed-off-by: Christoph Hellwig :040000 040000 b56d4b74bf0cbdd66d0e61c537b4bb2f7461084f 40773db6102a1e348a0a21b0e960cb33ffd0d419 M fs git bisect start 'fs/xfs' git bisect bad bfd2bd10da76378dc4afd87d7d204a1d3d70b347 Inode: Allow external list initialisation git bisect good 3fa8749e584b55f1180411ab1b51117190bac1e5 Linux 2.6.27 git bisect skip a55c8e45381bcc5588a544ba73580719887372eb git bisect skip 35afc673a41114eb650c6ae766010160dd982a7b git bisect skip 7a9ba9bb899933293604a2b3c5ca4f40ad5a92a8 git bisect skip c02afc5fa7433fbbc0a045afbb472533de0758de git bisect skip c0f47794ba870f0cd1dbe5c8fdbf56b86f5f2afa git bisect skip 7197197719eb94b527c6a422bf3fb682cdf89954 git bisect good e0fe783155e4f1c7106f3579c258b9f995330c19 git bisect bad 2472c6b938d2b3cb1698abe39cc90a3c1d7625b9 git bisect good 20c1bd2cc6d9311fb7d7d0eb91b46dc4a42b5d11 git bisect good 8e47c0b2427f0ea35984f02648163cc7a35d3592 git bisect good a1853934a9bef78aeb1aa7539c629cdb755edab2 git bisect bad 05de34dbbe744a4d235279f1493a8f05b903a4bb git bisect bad c4fa37724d18a3444bb4b4f77c4580b9dd525ed9 git bisect good 4b4577db477462ff6f41babcc3b3e7036a1ba27d git bisect bad dd509097cb0b76d3836385f80d6b2d6fd3b97757 From owner-xfs@oss.sgi.com Tue Oct 21 04:52:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LBq991015766 for ; Tue, 21 Oct 2008 04:52:09 -0700 X-ASG-Debug-ID: 1224590033-23dc03ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6E5041311D00 for ; Tue, 21 Oct 2008 04:53:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id BVYSEWhlD51TUian for ; Tue, 21 Oct 2008 04:53:53 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsFo9-0001C0-BJ for xfs@oss.sgi.com; Tue, 21 Oct 2008 11:53:53 +0000 Date: Tue, 21 Oct 2008 07:53:53 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/3] cleanup xfs_imap useage Subject: [PATCH 5/3] cleanup xfs_imap useage Message-ID: <20081021115353.GA2881@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224590034 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8393 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Embedd a struct xfs_imap into the xfs_inode as that's what we use xfs_imap and xfs_imap_to_bp on mostly. Remove the two superflous members of struct xfs_imap so that the inode size stays the same. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-21 11:50:56.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-21 11:58:37.000000000 +0200 @@ -23,7 +23,6 @@ #include "xfs_bit.h" #include "xfs_log.h" #include "xfs_inum.h" -#include "xfs_imap.h" #include "xfs_trans.h" #include "xfs_trans_priv.h" #include "xfs_sb.h" @@ -140,7 +139,7 @@ xfs_imap( xfs_mount_t *mp, xfs_trans_t *tp, xfs_ino_t ino, - xfs_imap_t *imap, + struct xfs_imap *imap, uint flags) { xfs_fsblock_t fsbno; @@ -156,8 +155,6 @@ xfs_imap( imap->im_blkno = XFS_FSB_TO_DADDR(mp, fsbno); imap->im_len = XFS_FSB_TO_BB(mp, len); - imap->im_agblkno = XFS_FSB_TO_AGBNO(mp, fsbno); - imap->im_ioffset = (ushort)off; imap->im_boffset = (ushort)(off << mp->m_sb.sb_inodelog); /* @@ -188,7 +185,7 @@ STATIC int xfs_imap_to_bp( xfs_mount_t *mp, xfs_trans_t *tp, - xfs_imap_t *imap, + struct xfs_imap *imap, xfs_buf_t **bpp, uint buf_flags, uint imap_flags) @@ -286,7 +283,7 @@ xfs_inotobp( int *offset, uint imap_flags) { - xfs_imap_t imap; + struct xfs_imap imap; xfs_buf_t *bp; int error; @@ -331,17 +328,12 @@ xfs_itobp( xfs_buf_t **bpp, uint buf_flags) { - xfs_imap_t imap; xfs_buf_t *bp; int error; - ASSERT(ip->i_blkno != 0); + ASSERT(ip->i_imap.im_blkno != 0); - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, buf_flags, 0); if (error) return error; @@ -352,7 +344,7 @@ xfs_itobp( return EAGAIN; } - *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); *bpp = bp; return 0; } @@ -855,9 +847,7 @@ xfs_inode_alloc( /* initialise the xfs inode */ ip->i_ino = ino; ip->i_mount = mp; - ip->i_blkno = 0; - ip->i_len = 0; - ip->i_boffset =0; + memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); ip->i_afp = NULL; memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); ip->i_flags = 0; @@ -913,7 +903,6 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; - xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -921,27 +910,23 @@ xfs_iread( return ENOMEM; /* - * Get pointer's to the on-disk inode and the buffer containing it. + * Fill in the location information in the in-core inode. */ - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); + ip->i_imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, imap_flags); if (error) goto out_destroy_inode; + ASSERT(bno == 0 || bno == ip->i_imap.im_blkno); + /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. + * Get pointers to the on-disk inode and the buffer containing it. */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - ASSERT(bno == 0 || bno == imap.im_blkno); - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, + XFS_BUF_LOCK, imap_flags); if (error) goto out_destroy_inode; - - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * If we got something that isn't an inode it means someone @@ -1942,7 +1927,7 @@ xfs_iunlink( ASSERT(be32_to_cpu(dip->di_next_unlinked) == NULLAGINO); /* both on-disk, don't endian flip twice */ dip->di_next_unlinked = agi->agi_unlinked[bucket_index]; - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -2054,7 +2039,7 @@ xfs_iunlink_remove( ASSERT(next_agino != 0); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -2117,7 +2102,7 @@ xfs_iunlink_remove( ASSERT(next_agino != agino); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -3296,7 +3281,7 @@ xfs_iflush_int( } /* set *dip = inode's place in the buffer */ - dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * Clear i_update_core before copying out the data. Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-21 11:49:04.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 11:56:52.000000000 +0200 @@ -84,6 +84,16 @@ typedef struct xfs_ifork { } xfs_ifork_t; /* + * Inode location information. Stored in the inode and passed to + * xfs_imap_to_bp() to get a buffer and dinode for a given inode. + */ +struct xfs_imap { + xfs_daddr_t im_blkno; /* starting BB of inode chunk */ + uint im_len; /* length in BBs of inode chunk */ + ushort im_boffset; /* inode offset in block in bytes */ +}; + +/* * This is the xfs in-core inode structure. * Most of the on-disk inode is embedded in the i_d field. * @@ -239,9 +249,7 @@ typedef struct xfs_inode { /* Inode location stuff */ xfs_ino_t i_ino; /* inode number (agno/agino)*/ - xfs_daddr_t i_blkno; /* blkno of inode buffer */ - ushort i_len; /* len of inode buffer */ - ushort i_boffset; /* off of inode in buffer */ + struct xfs_imap i_imap; /* location for xfs_imap() */ /* Extent information. */ xfs_ifork_t *i_afp; /* attribute fork pointer */ Index: xfs-2.6/fs/xfs/xfs_inode_item.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode_item.c 2008-10-21 11:49:01.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode_item.c 2008-10-21 11:52:20.000000000 +0200 @@ -943,9 +943,9 @@ xfs_inode_item_init( iip->ili_format.ilf_type = XFS_LI_INODE; iip->ili_format.ilf_ino = ip->i_ino; - iip->ili_format.ilf_blkno = ip->i_blkno; - iip->ili_format.ilf_len = ip->i_len; - iip->ili_format.ilf_boffset = ip->i_boffset; + iip->ili_format.ilf_blkno = ip->i_imap.im_blkno; + iip->ili_format.ilf_len = ip->i_imap.im_len; + iip->ili_format.ilf_boffset = ip->i_imap.im_boffset; } /* Index: xfs-2.6/fs/xfs/xfs_itable.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_itable.c 2008-10-21 11:49:00.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_itable.c 2008-10-21 11:52:20.000000000 +0200 @@ -69,7 +69,7 @@ xfs_bulkstat_one_iget( } ASSERT(ip != NULL); - ASSERT(ip->i_blkno != (xfs_daddr_t)0); + ASSERT(ip->i_imap.im_blkno != 0); dic = &ip->i_d; Index: xfs-2.6/fs/xfs/xfs_log_recover.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_log_recover.c 2008-10-21 11:49:04.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_log_recover.c 2008-10-21 11:52:20.000000000 +0200 @@ -36,7 +36,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" -#include "xfs_imap.h" #include "xfs_alloc.h" #include "xfs_ialloc.h" #include "xfs_log_priv.h" Index: xfs-2.6/fs/xfs/xfs_imap.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_imap.h 2008-10-21 11:51:12.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IMAP_H__ -#define __XFS_IMAP_H__ - -/* - * This is the structure passed to xfs_imap() to map - * an inode number to its on disk location. - */ -typedef struct xfs_imap { - xfs_daddr_t im_blkno; /* starting BB of inode chunk */ - uint im_len; /* length in BBs of inode chunk */ - xfs_agblock_t im_agblkno; /* logical block of inode chunk in ag */ - ushort im_ioffset; /* inode offset in block in "inodes" */ - ushort im_boffset; /* inode offset in block in bytes */ -} xfs_imap_t; - -#endif /* __XFS_IMAP_H__ */ From owner-xfs@oss.sgi.com Tue Oct 21 04:52:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LBqEoj015788 for ; Tue, 21 Oct 2008 04:52:14 -0700 X-ASG-Debug-ID: 1224590037-4da6027e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 23005525EA2 for ; Tue, 21 Oct 2008 04:53:57 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id o6qfE4FR8LONeCi1 for ; Tue, 21 Oct 2008 04:53:57 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsFoD-0001C6-DA for xfs@oss.sgi.com; Tue, 21 Oct 2008 11:53:57 +0000 Date: Tue, 21 Oct 2008 07:53:57 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/3] remove dead code for old inode item recovery Subject: [PATCH 4/3] remove dead code for old inode item recovery Message-ID: <20081021115357.GB2881@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224590038 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8393 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 We're removed the support for old-style inode items a while ago, and xlog_recover_do_inode_trans is now only called for XFS_LI_INODE items. That means we can remove the call to xfs_imap there and with it the XFS_IMAP_LOOKUP that is set by all other callers. We can also mark xfs_imap static now. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_log_recover.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_log_recover.c 2008-10-21 11:49:00.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_log_recover.c 2008-10-21 13:49:20.000000000 +0200 @@ -2245,7 +2245,6 @@ xlog_recover_do_inode_trans( xfs_inode_log_format_t *in_f; xfs_mount_t *mp; xfs_buf_t *bp; - xfs_imap_t imap; xfs_dinode_t *dip; xfs_ino_t ino; int len; @@ -2273,48 +2272,29 @@ xlog_recover_do_inode_trans( } ino = in_f->ilf_ino; mp = log->l_mp; - if (ITEM_TYPE(item) == XFS_LI_INODE) { - imap.im_blkno = (xfs_daddr_t)in_f->ilf_blkno; - imap.im_len = in_f->ilf_len; - imap.im_boffset = in_f->ilf_boffset; - } else { - /* - * It's an old inode format record. We don't know where - * its cluster is located on disk, and we can't allow - * xfs_imap() to figure it out because the inode btrees - * are not ready to be used. Therefore do not pass the - * XFS_IMAP_LOOKUP flag to xfs_imap(). This will give - * us only the single block in which the inode lives - * rather than its cluster, so we must make sure to - * invalidate the buffer when we write it out below. - */ - imap.im_blkno = 0; - error = xfs_imap(log->l_mp, NULL, ino, &imap, 0); - if (error) - goto error; - } /* * Inode buffers can be freed, look out for it, * and do not replay the inode. */ - if (xlog_check_buffer_cancelled(log, imap.im_blkno, imap.im_len, 0)) { + if (xlog_check_buffer_cancelled(log, in_f->ilf_blkno, + in_f->ilf_len, 0)) { error = 0; goto error; } - bp = xfs_buf_read_flags(mp->m_ddev_targp, imap.im_blkno, imap.im_len, - XFS_BUF_LOCK); + bp = xfs_buf_read_flags(mp->m_ddev_targp, in_f->ilf_blkno, + in_f->ilf_len, XFS_BUF_LOCK); if (XFS_BUF_ISERROR(bp)) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, - bp, imap.im_blkno); + bp, in_f->ilf_blkno); error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); goto error; } error = 0; ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset); /* * Make sure the place we're flushing out to really looks Index: xfs-2.6/fs/xfs/xfs_ialloc.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_ialloc.c 2008-10-21 11:49:01.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_ialloc.c 2008-10-21 11:49:04.000000000 +0200 @@ -1317,8 +1317,7 @@ xfs_dilocate( #endif /* DEBUG */ return XFS_ERROR(EINVAL); } - if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp)) || - !(flags & XFS_IMAP_LOOKUP)) { + if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp))) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); *bno = XFS_AGB_TO_FSB(mp, agno, agbno); Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-21 11:49:01.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-21 13:48:57.000000000 +0200 @@ -126,6 +126,60 @@ xfs_inobp_check( #endif /* + * Map inode to disk block and offset. + * + * mp -- the mount point structure for the current file system + * tp -- the current transaction + * ino -- the inode number of the inode to be located + * imap -- this structure is filled in with the information necessary + * to retrieve the given inode from disk + * flags -- flags to pass to xfs_dilocate + */ +STATIC int +xfs_imap( + xfs_mount_t *mp, + xfs_trans_t *tp, + xfs_ino_t ino, + xfs_imap_t *imap, + uint flags) +{ + xfs_fsblock_t fsbno; + int len; + int off; + int error; + + fsbno = imap->im_blkno ? + XFS_DADDR_TO_FSB(mp, imap->im_blkno) : NULLFSBLOCK; + error = xfs_dilocate(mp, tp, ino, &fsbno, &len, &off, flags); + if (error) + return error; + + imap->im_blkno = XFS_FSB_TO_DADDR(mp, fsbno); + imap->im_len = XFS_FSB_TO_BB(mp, len); + imap->im_agblkno = XFS_FSB_TO_AGBNO(mp, fsbno); + imap->im_ioffset = (ushort)off; + imap->im_boffset = (ushort)(off << mp->m_sb.sb_inodelog); + + /* + * If the inode number maps to a block outside the bounds + * of the file system then return NULL rather than calling + * read_buf and panicing when we get an error from the + * driver. + */ + if ((imap->im_blkno + imap->im_len) > + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " + "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " + " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", + (unsigned long long) imap->im_blkno, + (unsigned long long) imap->im_len, + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); + return EINVAL; + } + return 0; +} + +/* * Find the buffer associated with the given inode map * We do basic validation checks on the buffer once it has been * retrieved from disk. @@ -237,7 +291,7 @@ xfs_inotobp( int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags); if (error) return error; @@ -870,8 +924,7 @@ xfs_iread( * Get pointer's to the on-disk inode and the buffer containing it. */ imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); + error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); if (error) goto out_destroy_inode; @@ -2551,64 +2604,6 @@ xfs_idata_realloc( ASSERT(ifp->if_bytes <= XFS_IFORK_SIZE(ip, whichfork)); } - - - -/* - * Map inode to disk block and offset. - * - * mp -- the mount point structure for the current file system - * tp -- the current transaction - * ino -- the inode number of the inode to be located - * imap -- this structure is filled in with the information necessary - * to retrieve the given inode from disk - * flags -- flags to pass to xfs_dilocate indicating whether or not - * lookups in the inode btree were OK or not - */ -int -xfs_imap( - xfs_mount_t *mp, - xfs_trans_t *tp, - xfs_ino_t ino, - xfs_imap_t *imap, - uint flags) -{ - xfs_fsblock_t fsbno; - int len; - int off; - int error; - - fsbno = imap->im_blkno ? - XFS_DADDR_TO_FSB(mp, imap->im_blkno) : NULLFSBLOCK; - error = xfs_dilocate(mp, tp, ino, &fsbno, &len, &off, flags); - if (error) - return error; - - imap->im_blkno = XFS_FSB_TO_DADDR(mp, fsbno); - imap->im_len = XFS_FSB_TO_BB(mp, len); - imap->im_agblkno = XFS_FSB_TO_AGBNO(mp, fsbno); - imap->im_ioffset = (ushort)off; - imap->im_boffset = (ushort)(off << mp->m_sb.sb_inodelog); - - /* - * If the inode number maps to a block outside the bounds - * of the file system then return NULL rather than calling - * read_buf and panicing when we get an error from the - * driver. - */ - if ((imap->im_blkno + imap->im_len) > - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " - "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " - " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", - (unsigned long long) imap->im_blkno, - (unsigned long long) imap->im_len, - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); - return EINVAL; - } - return 0; -} - void xfs_idestroy_fork( xfs_inode_t *ip, Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-21 11:49:01.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 13:48:57.000000000 +0200 @@ -160,8 +160,7 @@ typedef struct xfs_icdinode { /* * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ -#define XFS_IMAP_LOOKUP 0x1 -#define XFS_IMAP_BULKSTAT 0x2 +#define XFS_IMAP_BULKSTAT 0x1 /* * Fork handling. Index: xfs-2.6/fs/xfs/xfs_imap.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_imap.h 2008-10-21 11:51:04.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_imap.h 2008-10-21 13:48:57.000000000 +0200 @@ -30,9 +30,4 @@ typedef struct xfs_imap { ushort im_boffset; /* inode offset in block in bytes */ } xfs_imap_t; -struct xfs_mount; -struct xfs_trans; -int xfs_imap(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - xfs_imap_t *, uint); - #endif /* __XFS_IMAP_H__ */ From owner-xfs@oss.sgi.com Tue Oct 21 05:07:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LC7L48017184 for ; Tue, 21 Oct 2008 05:07:22 -0700 X-ASG-Debug-ID: 1224590946-74d300c50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C5E0C10C0A56 for ; Tue, 21 Oct 2008 05:09:06 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id CT5ndBtbGSAAmVzc for ; Tue, 21 Oct 2008 05:09:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsG2r-0004jI-UG; Tue, 21 Oct 2008 12:09:05 +0000 Date: Tue, 21 Oct 2008 08:09:05 -0400 From: Christoph Hellwig To: Nick Piggin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [patch 1/2] xfs: remove old vmap cache Subject: Re: [patch 1/2] xfs: remove old vmap cache Message-ID: <20081021120905.GA13348@infradead.org> References: <20081021082542.GA6974@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021082542.GA6974@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224590946 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8394 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Looks good. From owner-xfs@oss.sgi.com Tue Oct 21 05:07:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LC7lRd017314 for ; Tue, 21 Oct 2008 05:07:47 -0700 X-ASG-Debug-ID: 1224590972-74cd00d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 08F0F10C0A62 for ; Tue, 21 Oct 2008 05:09:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id JDsCqzQyVL2gjvbE for ; Tue, 21 Oct 2008 05:09:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsG3I-0005UH-Bt; Tue, 21 Oct 2008 12:09:32 +0000 Date: Tue, 21 Oct 2008 08:09:32 -0400 From: Christoph Hellwig To: Nick Piggin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [patch 2/2] xfs: use scalable vmap API Subject: Re: [patch 2/2] xfs: use scalable vmap API Message-ID: <20081021120932.GB13348@infradead.org> References: <20081021082542.GA6974@wotan.suse.de> <20081021082735.GB6974@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021082735.GB6974@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224590973 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8394 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 10:27:35AM +0200, Nick Piggin wrote: > + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, > + -1, PAGE_KERNEL); What does the -1 stand for? From owner-xfs@oss.sgi.com Tue Oct 21 06:21:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LDL68f021855 for ; Tue, 21 Oct 2008 06:21:06 -0700 X-ASG-Debug-ID: 1224595371-0a0403850000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2AAEA10C10E0 for ; Tue, 21 Oct 2008 06:22:51 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id An3j2LDe9Gq0sy0D for ; Tue, 21 Oct 2008 06:22:51 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 6E01DA9ABFF; Tue, 21 Oct 2008 08:22:50 -0500 (CDT) Message-ID: <48FDD7AA.5050006@sandeen.net> Date: Tue, 21 Oct 2008 08:22:50 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions References: <48FD0503.3090203@sandeen.net> <20081021080737.GA4193@infradead.org> In-Reply-To: <20081021080737.GA4193@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224595372 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8397 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Mon, Oct 20, 2008 at 05:24:03PM -0500, Eric Sandeen wrote: ... >> /* >> - * Fcntl interface to xfs_bmapi. >> + * ioctl interface to xfs_bmapi. >> */ > >> /* >> - * Fcntl interface to xfs_bmapi. >> + * ioctl interface to xfs_bmapi. >> */ > > Well, it will be for fiemap, too. And the comment doesn't make much > sense either. Either remove it completely or replace it by something > that makes sense. > well aren't XFS_IOC_GETBMAP(X) and fiemap _both_ ioctl interfaces to xfs_bmapi? -Eric From owner-xfs@oss.sgi.com Tue Oct 21 06:29:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LDTKW9022468 for ; Tue, 21 Oct 2008 06:29:22 -0700 X-ASG-Debug-ID: 1224595864-0dc1015a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 43567144C359 for ; Tue, 21 Oct 2008 06:31:04 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id x6PjCa8JhPA6xkxO for ; Tue, 21 Oct 2008 06:31:04 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsHKC-0003PF-C1; Tue, 21 Oct 2008 13:31:04 +0000 Date: Tue, 21 Oct 2008 09:31:04 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: Christoph Hellwig , xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Message-ID: <20081021133104.GA10372@infradead.org> References: <48FD0503.3090203@sandeen.net> <20081021080737.GA4193@infradead.org> <48FDD7AA.5050006@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FDD7AA.5050006@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224595865 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8398 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 08:22:50AM -0500, Eric Sandeen wrote: > Christoph Hellwig wrote: > > On Mon, Oct 20, 2008 at 05:24:03PM -0500, Eric Sandeen wrote: > ... > > >> /* > >> - * Fcntl interface to xfs_bmapi. > >> + * ioctl interface to xfs_bmapi. > >> */ > > > >> /* > >> - * Fcntl interface to xfs_bmapi. > >> + * ioctl interface to xfs_bmapi. > >> */ > > > > Well, it will be for fiemap, too. And the comment doesn't make much > > sense either. Either remove it completely or replace it by something > > that makes sense. > > > > well aren't XFS_IOC_GETBMAP(X) and fiemap _both_ ioctl interfaces to > xfs_bmapi? Hmm, From the syscall point of view fiemap is indeed an ioctl, too. But then again the point of this function isn't do anything ioctl-related, but to allow to get a list of all extents for an inode and format them arbitrarily. From owner-xfs@oss.sgi.com Tue Oct 21 08:09:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LF90Ur028566 for ; Tue, 21 Oct 2008 08:09:01 -0700 X-ASG-Debug-ID: 1224601844-11ad02420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 82DED10C166D for ; Tue, 21 Oct 2008 08:10:44 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id EWM3bA8Tb6pKlNgu for ; Tue, 21 Oct 2008 08:10:44 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9LFAfx9018135; Tue, 21 Oct 2008 11:10:42 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9LFAfjI004902; Tue, 21 Oct 2008 11:10:41 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9LFAdMp007923; Tue, 21 Oct 2008 11:10:40 -0400 Message-ID: <48FDF0EF.3000807@sandeen.net> Date: Tue, 21 Oct 2008 10:10:39 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2, RFC] convert xfs_getbmap to take formatter functions References: <48FD0503.3090203@sandeen.net> <20081021080737.GA4193@infradead.org> <48FDD7AA.5050006@sandeen.net> <20081021133104.GA10372@infradead.org> In-Reply-To: <20081021133104.GA10372@infradead.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224601845 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8402 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Tue, Oct 21, 2008 at 08:22:50AM -0500, Eric Sandeen wrote: >> Christoph Hellwig wrote: >>> On Mon, Oct 20, 2008 at 05:24:03PM -0500, Eric Sandeen wrote: >> ... >> >>>> /* >>>> - * Fcntl interface to xfs_bmapi. >>>> + * ioctl interface to xfs_bmapi. >>>> */ >>>> /* >>>> - * Fcntl interface to xfs_bmapi. >>>> + * ioctl interface to xfs_bmapi. >>>> */ >>> Well, it will be for fiemap, too. And the comment doesn't make much >>> sense either. Either remove it completely or replace it by something >>> that makes sense. >>> >> well aren't XFS_IOC_GETBMAP(X) and fiemap _both_ ioctl interfaces to >> xfs_bmapi? > > Hmm, From the syscall point of view fiemap is indeed an ioctl, too. > But then again the point of this function isn't do anything > ioctl-related, but to allow to get a list of all extents for an inode > and format them arbitrarily. arright... if the comment is the only concern, I'm happy with that ;) -Eric From owner-xfs@oss.sgi.com Tue Oct 21 11:10:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_05,HTML_MESSAGE, J_CHICKENPOX_42,SUBJECT_FUZZY_TION autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LIA8LW012528 for ; Tue, 21 Oct 2008 11:10:10 -0700 X-ASG-Debug-ID: 1224612711-378702e90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ey-out-1920.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B427114535C2 for ; Tue, 21 Oct 2008 11:11:51 -0700 (PDT) Received: from ey-out-1920.google.com (ey-out-1920.google.com [74.125.78.145]) by cuda.sgi.com with ESMTP id Avp2CCEaFNWGPb6c for ; Tue, 21 Oct 2008 11:11:51 -0700 (PDT) Received: by ey-out-1920.google.com with SMTP id 21so795141eyc.32 for ; Tue, 21 Oct 2008 11:11:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=SIokl7lOSOdjp3hknMl/2VHY9s17Tirq547CRIxDti8=; b=PzHMPVVusgC1WhLDe/f4hwr2jrMd7THHuJsuztQD/RbV6Qw7WTybsy9K99EVeI76PD 3E6uuaMcSpQ/Nm3PIHnrXL8r/l3UoqgcuOAXsfIDRqLEqzheFbcRE0hdK0vJzkMjm+LS Ql8cMtwbw5Kffot0agGSLbZbKsVgrCEYkqlhE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=PvOPwLpgB9BM5+wX0hgmXCbazU6uU2m3VE37TMZFNGyFUL/N/vOfdBotra6BVCHHON 84OWzvbKtQSv6aPpyZJ6jI5kb8dq3g9hkrqBeKYzLme9jsDmGAkB5c+WleojZjrcMmTp KmX1qo5XBK7ptR4DIeXCvXaExBN0flnMJJxtU= Received: by 10.86.31.18 with SMTP id e18mr8291601fge.52.1224612710838; Tue, 21 Oct 2008 11:11:50 -0700 (PDT) Received: by 10.86.78.13 with HTTP; Tue, 21 Oct 2008 11:11:50 -0700 (PDT) Message-ID: <934a72850810211111g20accf8ey74f0bfb8ecf38532@mail.gmail.com> Date: Tue, 21 Oct 2008 20:11:50 +0200 From: "Johan Stenehall" To: xfs@oss.sgi.com X-ASG-Orig-Subj: Partition seems to have been zero:ed. For no reason. Subject: Partition seems to have been zero:ed. For no reason. MIME-Version: 1.0 X-Barracuda-Connect: ey-out-1920.google.com[74.125.78.145] X-Barracuda-Start-Time: 1224612713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0390 1.0000 -1.7693 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.36 X-Barracuda-Spam-Status: No, SCORE=-1.36 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE, SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8411 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 931 After a kernal upgrade My UUIDs in /etc/fstab stoped working so I changed them to /dev/sd* When rebooting again /dev/sdb2 didn't want to mount. I tried to manualy mount it without success and tried to run a xfs_repair on it. Got the following: http://pastebin.com/m44d3aa47 After that the partition still didn't want to mount. Had to overwrite the inprogress flag "xfs_db> write inprogress 0", That aloud me to mount the partition but it looked entirly empty. A very nice person, (thank you), on xfs@freenode tried to help me. However it seems like the entire disk, or part of it, have been zero:ed. Does anyone know if it's possible to recover from this? And if so how? Running Linux Ubuntu, 8.04 32-bit uname -r 2.6.24-21-generic xfs_repair -V xfs_repair version 2.9.4 Hope this information is sufficent. Thanks in advance for any answers // Johan (please forgive my english) [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Tue Oct 21 13:34:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LKYWxZ012039 for ; Tue, 21 Oct 2008 13:34:33 -0700 X-ASG-Debug-ID: 1224621376-7b6101d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D81225292C3 for ; Tue, 21 Oct 2008 13:36:16 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 5yPDJOP0ZC9siog0 for ; Tue, 21 Oct 2008 13:36:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,460,1220193000"; d="scan'208";a="215311804" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 07:06:14 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsNxd-0004M5-Au; Wed, 22 Oct 2008 07:36:13 +1100 Date: Wed, 22 Oct 2008 07:36:13 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Subject: Re: [PATCH 1/3] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081021203612.GL25906@disturbed> Mail-Followup-To: Christoph Hellwig , Christoph Hellwig , xfs@oss.sgi.com References: <20081020222036.GA23662@lst.de> <20081021024455.GB18495@disturbed> <20081021081329.GA23344@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021081329.GA23344@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224621377 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 04:13:29AM -0400, Christoph Hellwig wrote: > On Tue, Oct 21, 2008 at 01:44:55PM +1100, Dave Chinner wrote: > > On Tue, Oct 21, 2008 at 12:20:36AM +0200, Christoph Hellwig wrote: > > > xfs_bulkstat only wants the dinode, offset and buffer from a given > > > inode number. Instead of using xfs_itobp on a fake inode that is much > > > easier done with xfs_inotobp, which just needs an imap_flag paramter to > > > pass down the XFS_IMAP_BULKSTAT flag. > > > > Nice - that removes the only external user of xfs_inode_alloc() very > > cleanly. Looks ok to me. > > Which means we should mark it static now. Updated patch below: Looks good. BTW, the original patch series has run through xfsqa on my setup overnight without any problems. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 21 14:04:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LL4rmR014141 for ; Tue, 21 Oct 2008 14:04:53 -0700 X-ASG-Debug-ID: 1224623196-225000920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DDE5214554AA for ; Tue, 21 Oct 2008 14:06:37 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id aLQ5KGhv0HxRyavw for ; Tue, 21 Oct 2008 14:06:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,460,1220193000"; d="scan'208";a="215329535" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 07:36:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsOQz-0001MN-Cl; Wed, 22 Oct 2008 08:06:33 +1100 Date: Wed, 22 Oct 2008 08:06:33 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] free inodes using destroy_inode Subject: Re: [PATCH 3/3] free inodes using destroy_inode Message-ID: <20081021210633.GM25906@disturbed> Mail-Followup-To: Christoph Hellwig , Christoph Hellwig , xfs@oss.sgi.com References: <20081020222044.GC23662@lst.de> <20081021030726.GD18495@disturbed> <20081021090708.GA30463@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021090708.GA30463@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224623198 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Tue, Oct 21, 2008 at 05:07:08AM -0400, Christoph Hellwig wrote: > On Tue, Oct 21, 2008 at 02:07:26PM +1100, Dave Chinner wrote: > > ^ > > Extra whitespace. > > > > ^ > > Ditto. > > Fixed. > > > Yes, makes sense to mark it bad first to avoid most of the > > reclaim code. > > > Can that happen? I thought xfs_iput_new() took care of clearing the > > I_NEW flag via unlock_new_inode() and so there is no way that flag > > can leak through to here. perhaps a comment explaining what the > > error path is that leads to needing this check is in order.... > > The make_inode_bad isn't actually nessecary anymore - this was my first > attempt at skipping the flushing in xfs_reclaim, but it was still too > much as the radix tree removal for and inode that's not in the tree > tripped up quite badly. So I use I_NEW here to detect these half setup > inodes. Real I_NEW indoes still go through xfs_iput_new. Hmmmm - I still don't see that as possible. We don't set I_NEW until we are inside xfs_setup_inode(), which occurs after we insert the inode into the radix tree. xfs_setup_inode() also calls unlock_new_inode(), so the I_NEW flag is cleared before it returns, too. So I can't really see how this check in reclaim does anything.... AFAICT, once we've inserted the new inode into the radix tree, we can't get an error before xfs_setup_inode() is called - even in the allocation case. Hence once we're in the radix tree, xfs_iput_new() should be called to cleanup. All the cases that xfs_destroy_inode() handles are before the inode is inserted into the radix tree, so marking the XFS inode XFS_IBAD in xfs_destroy_inode() is probably a much more reliable way to detect immediate destroy cases in the reclaim code than relying on I_NEW...... Thoughts? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 21 14:20:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_42, SUBJECT_FUZZY_TION autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LLKIf6015741 for ; Tue, 21 Oct 2008 14:20:19 -0700 X-ASG-Debug-ID: 1224624121-2250019c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 156731B1057C for ; Tue, 21 Oct 2008 14:22:01 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id UwmZmOhGr3hwj4Nc for ; Tue, 21 Oct 2008 14:22:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,460,1220193000"; d="scan'208";a="215338510" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 07:52:00 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsOfu-0003QY-Jy; Wed, 22 Oct 2008 08:21:58 +1100 Date: Wed, 22 Oct 2008 08:21:58 +1100 From: Dave Chinner To: Johan Stenehall Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Partition seems to have been zero:ed. For no reason. Subject: Re: Partition seems to have been zero:ed. For no reason. Message-ID: <20081021212158.GN25906@disturbed> Mail-Followup-To: Johan Stenehall , xfs@oss.sgi.com References: <934a72850810211111g20accf8ey74f0bfb8ecf38532@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <934a72850810211111g20accf8ey74f0bfb8ecf38532@mail.gmail.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224624123 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0169 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8418 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: On Tue, Oct 21, 2008 at 08:11:50PM +0200, Johan Stenehall wrote: > After a kernal upgrade My UUIDs in /etc/fstab stoped working so I changed > them to /dev/sd* When rebooting again /dev/sdb2 didn't want to mount. I > tried to manualy mount it without success and tried to run a xfs_repair on > it. Got the following: http://pastebin.com/m44d3aa47 Are you using LVM or MD? i.e. did a volume get re-assembled incorrectly and hence the XFS tools saw random fragments of a filesystem? > After that the partition still didn't want to mount. Had to overwrite the > inprogress flag "xfs_db> write inprogress 0", That aloud me to mount the > partition but it looked entirly empty. > > A very nice person, (thank you), on xfs@freenode tried to help > me. However it seems like the entire disk, or part of it, have been zero:ed. > > Does anyone know if it's possible to recover from this? And if so how? Recovery is possible - it's called restoring from backups. You do have a backup, don't you? > Running Linux Ubuntu, 8.04 32-bit > uname -r > 2.6.24-21-generic > xfs_repair -V > xfs_repair version 2.9.4 Hmmmmm - haven't we have these symptoms reported by a couple of Ubuntu users now? There's been a few ppl reporting such problems of late.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 21 14:53:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LLrUk0017913 for ; Tue, 21 Oct 2008 14:53:30 -0700 X-ASG-Debug-ID: 1224626114-462301630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay2.tc-exe.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 678FA10C18A0 for ; Tue, 21 Oct 2008 14:55:15 -0700 (PDT) Received: from relay2.tc-exe.ru (relay2.tc-exe.ru [89.19.164.110]) by cuda.sgi.com with ESMTP id OIX6FCRhnW7l0YL0 for ; Tue, 21 Oct 2008 14:55:15 -0700 (PDT) Received: from mail.nkosino.ru (mail.tc-exe.ru [89.19.160.138]) by relay2.tc-exe.ru (Postfix) with ESMTP id 8336114AB2 for ; Tue, 21 Oct 2008 15:41:00 +0400 (MSD) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?4dLFzsTB1M/S2SDtz9PL19khIPDP08zFxM7R0SDXz9rNz9bOz9PU2A==?= =?koi8-r?B?INfZy9XQwSDQzyAxNTkt5vo=?= Subject: Undeliverable mail: =?koi8-r?B?4dLFzsTB1M/S2SDtz9PL19khIPDP08zFxM7R0SDXz9rNz9bOz9PU2A==?= =?koi8-r?B?INfZy9XQwSDQzyAxNTkt5vo=?= From: To: Date: Tue, 21 Oct 2008 15:40:16 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===157080406====mail.nkosino.ru===_" X-Barracuda-Connect: relay2.tc-exe.ru[89.19.164.110] X-Barracuda-Start-Time: 1224626116 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3502 1.0000 -0.1522 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.35 X-Barracuda-Spam-Status: No, SCORE=0.35 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, MAILTO_TO_SPAM_ADDR, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8419 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===157080406====mail.nkosino.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'marlad77@m-lan.ru' LOCAL module(account marlad77@m-lan.ru) reports: account is full (quota exceeded) --_===157080406====mail.nkosino.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; mail.nkosino.ru Original-Recipient: rfc822; Final-Recipient: LOCAL; Action: failed Status: 5.0.0 --_===157080406====mail.nkosino.ru===_ Content-Type: text/rfc822-headers Received: from [151.23.119.112] ([151.23.119.112] verified) by mail.nkosino.ru (CommuniGate Pro SMTP 4.3.10) with ESMTP id 157080237 for marlad77@m-lan.ru; Tue, 21 Oct 2008 15:39:58 +0400 Message-ID: <000a01c93371$066f3333$a8c0b789@boxbxswk> From: "brad vijaya" To: Subject: =?koi8-r?B?4dLFzsTB1M/S2SDtz9PL19khIPDP08zFxM7R0SDXz9rNz9bOz9PU2A==?= =?koi8-r?B?INfZy9XQwSDQzyAxNTkt5vo=?= Date: Tue, 21 Oct 2008 09:52:30 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C93371.066DA44C" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===157080406====mail.nkosino.ru===_-- From owner-xfs@oss.sgi.com Tue Oct 21 16:53:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_55 autolearn=no version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9LNrwV3030241 for ; Tue, 21 Oct 2008 16:53:59 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 0CA7A8F805D; Tue, 21 Oct 2008 16:55:39 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA12996; Wed, 22 Oct 2008 10:55:37 +1100 Message-ID: <48FE79F1.3000306@sgi.com> Date: Wed, 22 Oct 2008 10:55:13 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Jeremy Kerr CC: Christoph Hellwig , lachlan@sgi.com, Timothy Shimmin , xfs-oss Subject: Re: TAKE 988141 - Fix build error - use VFS_I() to access linux?inode from xfs inode References: <20081015021055.6B76358FA1E9@chook.melbourne.sgi.com> <200810151444.06375.jk@ozlabs.org> <20081021180349.GA542@infradead.org> <200810220937.04475.jk@ozlabs.org> In-Reply-To: <200810220937.04475.jk@ozlabs.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Jeremy Kerr wrote: > Hi Christoph, > >> Any progress on setting up a patchworks project for the xfs list? > > I'm still waiting for someone to reply to my previous request: oh sorry, I missed that request. > >> Also, I need the following to set up the patchworks project: >> >> * The List-ID (or X-Mailing-List) header added to list messages >> * The mailing list address. >> >> Alternatively, just forward me a message that's been through the >> list. I've changed cc: in this reply from xfs-dev@sgi.com to xfs@oss.sgi.com Thanks > > Cheers, > > > Jeremy From owner-xfs@oss.sgi.com Tue Oct 21 20:11:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M3BRLl010869 for ; Tue, 21 Oct 2008 20:11:28 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id B8ABF8F8073 for ; Tue, 21 Oct 2008 20:13:09 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA05909 for ; Wed, 22 Oct 2008 14:13:07 +1100 Message-ID: <48FEA83B.8090609@sgi.com> Date: Wed, 22 Oct 2008 14:12:43 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: xfs-oss Subject: cvs problem should be fixed ... Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit ... after the overnight sync, Melbourne time. -- Mark From owner-xfs@oss.sgi.com Tue Oct 21 22:22:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M5MC1t024185 for ; Tue, 21 Oct 2008 22:22:12 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 4EA59304066; Tue, 21 Oct 2008 22:23:52 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA09606; Wed, 22 Oct 2008 16:23:50 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16365) id E73FA1EDDE7; Wed, 22 Oct 2008 16:23:49 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 957103 - Checkin mainline change: use proper mnt_want_write calls for handle ioctl Message-Id: <20081022052349.E73FA1EDDE7@chapter11.melbourne.sgi.com> Date: Wed, 22 Oct 2008 16:23:49 +1100 (EST) From: donaldd@sgi.com (Donald Douwsma) Since 2.6.26 all writes to filesystems need to be enclosed by a mnt_want_write / mnt_drop_write pair instead of checking for IS_RDONLY. XFs was updated for this in mainline but the changes to xfs_ioctl.c were never megred back into the CVS tree. Mainline commit 42a74f206b914db13ee1f5ae932dcd91a77c8579 Signed-off-by: Dave Hansen Date: Wed Oct 22 16:20:31 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/donaldd/isms/2.6.x-xfs Inspected by: haveblue@us.ibm.com,hch The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32381a fs/xfs/linux-2.6/xfs_ioctl.c - 1.173 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.173&r2=text&tr2=1.172&f=h - use proper mnt_want_write calls for handle ioctl From owner-xfs@oss.sgi.com Tue Oct 21 22:22:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M5Mn59024288 for ; Tue, 21 Oct 2008 22:22:49 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 6507A304066; Tue, 21 Oct 2008 22:24:34 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA09636; Wed, 22 Oct 2008 16:24:32 +1100 Message-ID: <48FEB910.4020500@sgi.com> Date: Wed, 22 Oct 2008 16:24:32 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH] use proper mnt_want_write calls for handle ioctls References: <20080814203952.GB18704@lst.de> <20080912084431.GA22641@lst.de> <20080929074234.GA23785@lst.de> <20081018123739.GC25304@lst.de> In-Reply-To: <20081018123739.GC25304@lst.de> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Ping again. As said before this could cause filesystem corruption with > the SGI tree, and it's always been correct in mainline there shouldn't > be any reason to delay it. Done From owner-xfs@oss.sgi.com Tue Oct 21 22:47:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from relay.sgi.com (relay2.corp.sgi.com [192.26.58.22]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M5lUUl025618 for ; Tue, 21 Oct 2008 22:47:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 5286E304080; Tue, 21 Oct 2008 22:49:15 -0700 (PDT) Received: from [134.14.55.208] (snowcrash.melbourne.sgi.com [134.14.55.208]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA10378; Wed, 22 Oct 2008 16:49:13 +1100 Message-ID: <48FEBEDA.2040209@sgi.com> Date: Wed, 22 Oct 2008 16:49:14 +1100 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH] use XFS_I and VFS_I in xfs_dm.c References: <20080822014205.GA10805@lst.de> <20080929092135.GA27608@lst.de> In-Reply-To: <20080929092135.GA27608@lst.de> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > ping? A similar patch has already been checked into the tree (which hopefully should be working again). I can apply the 3 remaining changes, just mentioning it here for transparency. > > On Fri, Aug 22, 2008 at 03:42:05AM +0200, Christoph Hellwig wrote: >> Convert xfs_dm.c to use the XFS_I and VFI_I helper, or in some cases >> IHOLD/IRELE so that it still compiles with Dave's inode unification >> patch. It's only really required for the latter, but also a nice >> cleanup without it, so it should probably go in before that patch >> series. >> >> >> Signed-off-by: Christoph Hellwig >> >> Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c >> =================================================================== >> --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-08-19 22:42:31.000000000 -0300 >> +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-08-19 22:45:17.000000000 -0300 >> @@ -140,7 +140,7 @@ xfs_dm_send_data_event( >> int flags, >> int *lock_flags) >> { >> - struct inode *inode = ip->i_vnode; >> + struct inode *inode = VFS_I(ip); >> int error; >> uint16_t dmstate; >> Already in >> @@ -468,7 +468,7 @@ xfs_dm_bulkall_iget_one( >> return error; >> >> xfs_ip_to_stat(mp, ino, ip, &xbuf->dx_statinfo); >> - dm_ip_to_handle(ip->i_vnode, &handle); >> + dm_ip_to_handle(VFS_I(ip), &handle); >> xfs_dm_handle_to_xstat(xbuf, xstat_sz, &handle, sizeof(handle)); >> >> /* Drop ILOCK_SHARED for call to xfs_attr_get */ Already in >> @@ -476,7 +476,7 @@ xfs_dm_bulkall_iget_one( >> >> memset(&xbuf->dx_attrdata, 0, sizeof(dm_vardata_t)); >> error = xfs_attr_get(ip, attr_name, attr_buf, &value_len, ATTR_ROOT); >> - iput(ip->i_vnode); >> + IRELE(ip); >> >> DM_EA_XLATE_ERR(error); >> if (error && (error != ENOATTR)) { Fixed as - iput(ip->i_vnode); + iput(VFS_I(ip)); >> @@ -726,7 +726,7 @@ xfs_dm_bulkattr_iget_one( >> return error; >> >> xfs_ip_to_stat(mp, ino, ip, sbuf); >> - dm_ip_to_handle(ip->i_vnode, &handle); >> + dm_ip_to_handle(VFS_I(ip), &handle); >> xfs_dm_handle_to_stat(sbuf, stat_sz, &handle, sizeof(handle)); >> >> xfs_iput(ip, XFS_ILOCK_SHARED); Already in >> @@ -907,7 +907,7 @@ xfs_dm_f_set_eventlist( >> ip->i_d.di_dmevmask = (eventset & max_mask) | (ip->i_d.di_dmevmask & ~max_mask); >> >> xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); >> - igrab(ip->i_vnode); >> + IHOLD(ip); >> xfs_trans_commit(tp, 0); >> >> return(0); Fixed as + igrab(VFS_I(ip)) >> @@ -2731,7 +2731,7 @@ xfs_dm_send_destroy_event( >> dm_right_t vp_right) /* always DM_RIGHT_NULL */ >> { >> /* Returns positive errors to XFS */ >> - return -dm_send_destroy_event(ip->i_vnode, vp_right); >> + return -dm_send_destroy_event(VFS_I(ip), vp_right); >> } Already in >> >> @@ -2751,8 +2751,8 @@ xfs_dm_send_namesp_event( >> { >> /* Returns positive errors to XFS */ >> return -dm_send_namesp_event(event, mp ? mp->m_super : NULL, >> - ip1->i_vnode, vp1_right, >> - ip2 ? ip2->i_vnode : NULL, vp2_right, >> + VFS_I(ip1), vp1_right, >> + ip2 ? VFS_I(ip2) : NULL, vp2_right, >> name1, name2, >> mode, retcode, flags); >> } Already in >> @@ -2779,7 +2779,7 @@ xfs_dm_send_unmount_event( >> int retcode, /* errno, if unmount failed */ >> int flags) >> { >> - dm_send_unmount_event(mp->m_super, ip ? ip->i_vnode : NULL, >> + dm_send_unmount_event(mp->m_super, ip ? VFS_I(ip) : NULL, >> vfsp_right, mode, retcode, flags); >> } >> Already in >> @@ -2822,9 +2822,8 @@ xfs_dm_fh_to_inode( >> >> if (!dmfid->dm_fid_len) { >> /* filesystem handle */ >> - *inode = igrab(mp->m_rootip->i_vnode); >> - if (!*inode) >> - return -ENOENT; >> + IHOLD(mp->m_rootip); >> + *inode = VFS_I(mp->m_rootip); >> return 0; >> } >> Fixed As + *inode = igrab(VFS_I(mp->m_rootip)); >> @@ -2849,7 +2848,7 @@ xfs_dm_fh_to_inode( >> return -ENOENT; >> } >> >> - *inode = ip->i_vnode; >> + *inode = VFS_I(ip); >> xfs_iunlock(ip, XFS_ILOCK_SHARED); >> return 0; >> } Already in > ---end quoted text--- > From owner-xfs@oss.sgi.com Tue Oct 21 23:08:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M68Nlm026820 for ; Tue, 21 Oct 2008 23:08:24 -0700 X-ASG-Debug-ID: 1224655807-615e01200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AA22B10C5DA4 for ; Tue, 21 Oct 2008 23:10:07 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Ih4v2JjPh2qdlSYp for ; Tue, 21 Oct 2008 23:10:07 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,462,1220193000"; d="scan'208";a="215776301" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 16:40:04 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsWuw-0005MC-SK for xfs@oss.sgi.com; Wed, 22 Oct 2008 17:10:02 +1100 Date: Wed, 22 Oct 2008 17:10:02 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] Handle ENOMEM during log initialisation Subject: [PATCH] Handle ENOMEM during log initialisation Message-ID: <20081022061002.GG18495@disturbed> Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224655808 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8453 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- XFS: handle memory allocation failures during log initialisation When there is no memory left in the system, xfs_buf_get_noaddr() can fail. If this happens at mount time during xlog_alloc_log() we fail to catch the error and oops. Catch the error from xfs_buf_get_noaddr(), and allow other memory allocations to fail and catch those errors too. Report the error to the console and fail the mount with ENOMEM. Tested by manually injecting errors into xfs_buf_get_noaddr() and xlog_alloc_log(). Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 38 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 36 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5184017..1dfa5fe 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -563,6 +563,11 @@ xfs_log_mount( } mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); + if (!mp->m_log) { + cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!"); + error = ENOMEM; + goto out; + } /* * Initialize the AIL now we have a log. @@ -601,6 +606,7 @@ xfs_log_mount( return 0; error: xfs_log_unmount_dealloc(mp); +out: return error; } /* xfs_log_mount */ @@ -1217,7 +1223,9 @@ xlog_alloc_log(xfs_mount_t *mp, int i; int iclogsize; - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); + log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); + if (!log) + return NULL; log->l_mp = mp; log->l_targ = log_target; @@ -1249,6 +1257,8 @@ xlog_alloc_log(xfs_mount_t *mp, xlog_get_iclog_buffer_size(mp, log); bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_log; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); @@ -1276,12 +1286,17 @@ xlog_alloc_log(xfs_mount_t *mp, ASSERT(log->l_iclog_size >= 4096); for (i=0; i < log->l_iclog_bufs; i++) { *iclogp = (xlog_in_core_t *) - kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); + kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL); + if (!*iclogp) + goto out_free_iclog; + iclog = *iclogp; iclog->ic_prev = prev_iclog; prev_iclog = iclog; bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_iclog; if (!XFS_BUF_CPSEMA(bp)) ASSERT(0); XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); @@ -1323,6 +1338,25 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */ return log; + +out_free_iclog: + for (iclog = log->l_iclog; iclog; iclog = prev_iclog) { + prev_iclog = iclog->ic_next; + if (iclog->ic_bp) { + sv_destroy(&iclog->ic_force_wait); + sv_destroy(&iclog->ic_write_wait); + xfs_buf_free(iclog->ic_bp); + xlog_trace_iclog_dealloc(iclog); + } + kmem_free(iclog); + } + spinlock_destroy(&log->l_icloglock); + spinlock_destroy(&log->l_grant_lock); + xlog_trace_loggrant_dealloc(log); + xfs_buf_free(log->l_xbuf); +out_free_log: + kmem_free(log); + return NULL; } /* xlog_alloc_log */ From owner-xfs@oss.sgi.com Tue Oct 21 23:17:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M6HO0H027698 for ; Tue, 21 Oct 2008 23:17:24 -0700 X-ASG-Debug-ID: 1224656347-50f902fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C469E52B34E for ; Tue, 21 Oct 2008 23:19:08 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id nNH66BN5k8sA4FHq for ; Tue, 21 Oct 2008 23:19:08 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbAC6ZIdCgWs X-IronPort-AV: E=Sophos;i="4.33,462,1220193000"; d="scan'208";a="215782629" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 16:49:06 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsX3h-00038D-Hr; Wed, 22 Oct 2008 17:19:05 +1100 Date: Wed, 22 Oct 2008 17:19:05 +1100 From: Dave Chinner To: Peter Leckie , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081022061905.GI18495@disturbed> Mail-Followup-To: Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081015061917.GC25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224656349 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ping? Can this patch be applied to the new sync code before it is pushed to Linus? Cheers, Dave. On Wed, Oct 15, 2008 at 05:19:17PM +1100, Dave Chinner wrote: > On Wed, Oct 15, 2008 at 03:50:48PM +1000, Peter Leckie wrote: > > Dave Chinner wrote: > >> Update below. > >> > >> Cheers, > >> > >> Dave. > >> > > The original patch appeared to fix the issue, however the latest one > > Oops as follows: > > Well, I think the problem dhould be obvious - it's the same as > the first report - deferencing the linux inode without first having > a refernce on it. > > FWIW, if you apply the "combine linux/xfs inode" patch series, > this failure will go away. > > Updated patch below. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag > > If we are syncing data in xfs_sync_inodes_ag(), the VFS > inode must still be referencable as the dirty data state > is carried on the VFS inode. hence if we can't get a > reference via igrab(), the inode must be in reclaim which > implies that it has no dirty data attached. > > Leave such inodes to the reclaim code to flush the dirty > inode state to disk and so avoid attempting to access the > VFS inode when it may not exist in xfs_sync_inodes_ag(). > > Version 4: > o don't reference liinux inode untiil after igrab() succeeds > > Version 3: > o converted unlock/rele to an xfs_iput() call. > > Version 2: > o change igrab logic to be more linear > o remove initial reclaimable inode check now that we are using > igrab() failure to find reclaimable inodes > o assert that igrab failure occurs only on reclaimable inodes > o clean up inode locking - only grab the iolock if we are doing > a SYNC_DELWRI call and we have a dirty inode. > --- > fs/xfs/linux-2.6/xfs_sync.c | 75 ++++++++++-------------------------------- > 1 files changed, 18 insertions(+), 57 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c > index 08b2acf..39ed7f3 100644 > --- a/fs/xfs/linux-2.6/xfs_sync.c > +++ b/fs/xfs/linux-2.6/xfs_sync.c > @@ -63,25 +63,16 @@ xfs_sync_inodes_ag( > int error = 0; > int last_error = 0; > int fflag = XFS_B_ASYNC; > - int lock_flags = XFS_ILOCK_SHARED; > > if (flags & SYNC_DELWRI) > fflag = XFS_B_DELWRI; > if (flags & SYNC_WAIT) > fflag = 0; /* synchronous overrides all */ > > - if (flags & SYNC_DELWRI) { > - /* > - * We need the I/O lock if we're going to call any of > - * the flush/inval routines. > - */ > - lock_flags |= XFS_IOLOCK_SHARED; > - } > - > do { > struct inode *inode; > - boolean_t inode_refed; > xfs_inode_t *ip = NULL; > + int lock_flags = XFS_ILOCK_SHARED; > > /* > * use a gang lookup to find the next inode in the tree > @@ -109,22 +100,6 @@ xfs_sync_inodes_ag( > break; > } > > - /* > - * skip inodes in reclaim. Let xfs_syncsub do that for > - * us so we don't need to worry. > - */ > - if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { > - read_unlock(&pag->pag_ici_lock); > - continue; > - } > - > - /* bad inodes are dealt with elsewhere */ > - inode = VFS_I(ip); > - if (is_bad_inode(inode)) { > - read_unlock(&pag->pag_ici_lock); > - continue; > - } > - > /* nothing to sync during shutdown */ > if (XFS_FORCED_SHUTDOWN(mp)) { > read_unlock(&pag->pag_ici_lock); > @@ -132,42 +107,34 @@ xfs_sync_inodes_ag( > } > > /* > - * If we can't get a reference on the VFS_I, the inode must be > - * in reclaim. If we can get the inode lock without blocking, > - * it is safe to flush the inode because we hold the tree lock > - * and xfs_iextract will block right now. Hence if we lock the > - * inode while holding the tree lock, xfs_ireclaim() is > - * guaranteed to block on the inode lock we now hold and hence > - * it is safe to reference the inode until we drop the inode > - * locks completely. > + * If we can't get a reference on the inode, it must be > + * in reclaim. Leave it for the reclaim code to flush. > */ > - inode_refed = B_FALSE; > - if (igrab(inode)) { > - read_unlock(&pag->pag_ici_lock); > - xfs_ilock(ip, lock_flags); > - inode_refed = B_TRUE; > - } else { > - if (!xfs_ilock_nowait(ip, lock_flags)) { > - /* leave it to reclaim */ > - read_unlock(&pag->pag_ici_lock); > - continue; > - } > + inode = VFS_I(ip); > + if (!igrab(inode)) { > read_unlock(&pag->pag_ici_lock); > + continue; > + } > + read_unlock(&pag->pag_ici_lock); > + > + /* bad inodes are dealt with elsewhere */ > + if (is_bad_inode(inode)) { > + IRELE(ip); > + continue; > } > > /* > * If we have to flush data or wait for I/O completion > - * we need to drop the ilock that we currently hold. > - * If we need to drop the lock, insert a marker if we > - * have not already done so. > + * we need to hold the iolock. > */ > if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { > - xfs_iunlock(ip, XFS_ILOCK_SHARED); > + xfs_ilock(ip, XFS_IOLOCK_SHARED); > + lock_flags |= XFS_IOLOCK_SHARED; > error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); > if (flags & SYNC_IOWAIT) > vn_iowait(ip); > - xfs_ilock(ip, XFS_ILOCK_SHARED); > } > + xfs_ilock(ip, XFS_ILOCK_SHARED); > > if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { > if (flags & SYNC_WAIT) { > @@ -183,13 +150,7 @@ xfs_sync_inodes_ag( > xfs_ifunlock(ip); > } > } > - > - if (lock_flags) > - xfs_iunlock(ip, lock_flags); > - > - if (inode_refed) { > - IRELE(ip); > - } > + xfs_iput(ip, lock_flags); > > if (error) > last_error = error; > > > -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 21 23:18:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.3 required=5.0 tests=BAYES_50,HTML_MESSAGE, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M6IfB2028021 for ; Tue, 21 Oct 2008 23:18:43 -0700 X-ASG-Debug-ID: 1224656421-5777028c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [61.137.168.26] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 60D8D52B03B for ; Tue, 21 Oct 2008 23:20:22 -0700 (PDT) Received: from [61.137.168.26] ([61.137.168.26]) by cuda.sgi.com with ESMTP id lhJ9x48A9lTP0wcu for ; Tue, 21 Oct 2008 23:20:22 -0700 (PDT) Message-ID: <000701c9340e$04128a72$d5bd1491@kwsxie> From: =?koi8-r?B?4cbJ28Eg7c/Ty9fZ?= To: X-ASG-Orig-Subj: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= Subject: =?koi8-r?B?987JzcHOycUhIPDSxc3YxdLBIQ==?= Date: Wed, 22 Oct 2008 04:37:11 +0000 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Barracuda-Connect: UNKNOWN[61.137.168.26] X-Barracuda-Start-Time: 1224656427 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5191 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.85 X-Barracuda-Spam-Status: No, SCORE=0.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG035a, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 2566 =EC=E5=E7=E5=EE=E4=E1=F2=EE=F9=E5 =F3=F0=E5=EB=F4=E1=EB=EC=E9 =ED=EF= =F3=EB=F7=F9=20 (495) 2 2 9 3 5 0 0 =FA=C1=CB=C1=DA, =C4=CF=D3=D4=C1=D7=CB=C1=20 =E0=EE=EF=EE=E1 =E9 =E1=F7=EF=F3=F8 - 23 =CF=CB=D4=D1=C2=D2=D1=20 (=EC=C5=CE=CB=CF=CD, =D7 =C7=CC. =D2=CF=CC=D1=C8 =E4. =F0=E5=F7=E3=EF=F7 = =C9 =E1. =E2=EF=EC=F8=FB=EF=F7=E1)=20 --------------------------------------------------------------------------= ------------------------------------ =EB=EF=ED=E9=FE=E5=F3=EB=E9=EA =F4=E5=E1=F4=F2 "=EB=F7=E1=F2=F4=E5=F4= =E9"=20 =F2=E1=FA=E7=EF=F7=EF=F2=F9 =ED=F5=F6=FE=E9=EE =F3=F2=E5=E4=EE=E5=E7=EF =F7= =EF=FA=F2=E1=F3=F4=E1 =EF =F6=E5=EE=FD=E9=EE=E1=E8, =EB=E9=EE=EF =E9 =E1=EC= =E0=ED=E9=EE=E9=E5=F7=F9=E8 =F7=E9=EC=EB=E1=E8 - 22.10 =C9 11, 18, 19, 26.1= 1=20 ...=EF =DE=C5=CD =C7=CF=D7=CF=D2=D1=D4 =CD=D5=D6=DE=C9=CE=D9, =CB=CF=C7=C4= =C1 =CF=CE=C9 =CF=C4=CE=C9? =E2=C5=D3=D3=D0=CF=D2=CE=CF, =C2=C5=DA =D2=C1= =DA=C7=CF=D7=CF=D2=CF=D7 =CF =D3=C1=CD=C9=C8 =D6=C5=CE=DD=C9=CE=C1=C8 =CE= =C5 =CF=C2=CF=CA=C4=C5=D4=D3=D1 - =C1 =CB=C1=CB =D6=C5 =C2=C5=DA =CE=C9=C8!= =EE=CF, =D0=D2=C9=DE=C5=CD =D4=D5=D4 =C1=CC=C0=CD=C9=CE=C9=D7=D9=C5 =D7=C9= =CC=CB=C9, =CB=C9=CE=CF =C9 =D3=D2=C5=C4=C1 =CF=C2=C9=D4=C1=CE=C9=D1. =EE= =D5, =CC=C1=C4=CE=CF =CB=C9=CE=CF, =DC=D4=CF =D0=CF=CE=D1=D4=CE=CF. =EE=CF = =D7=C9=CC=CB=C9?!=20 =FD=E5=EC=EB=F5=EE=FE=E9=EB (=E2=CF=CC=D8=DB=CF=CA =D4=C5=C1=D4=D2) - 25.1= 0 (12.00)=20 =E5=F7=E7=E5=EE=E9=EA =E7=F2=E9=FB=EB=EF=F7=E5=E3 -"=F4=E9=F4=E1=EE= =E9=EB "- 2.11 ... =F3=D0=C5=CB=D4=C1=CB=CC=D8 =C9=C7=D2=C1=C0=D4 =C4= =D7=CF=C5 - =D3=C1=CD =CD=C1=D3=D4=C5=D2 (=E5.=E7=F2=E9=FB=EB=EF=F7=E5=E3 = =C9 =F0=E1=F7=E5=EC =EB=EF=EC=E5=F3=EE=E9=EB=EF=F7.) =EB=EF=EC=E5=F3=EE=E9= =EB=EF=F7 - =D0=D2=C9=D2=CF=D6=C4=C5=CE=CE=D9=CA =CB=CF=CD=C9=CB, =D5=CD=C5= =C0=DD=C9=CA =C7=CF=D7=CF=D2=C9=D4=D8 =D3=CD=C5=DB=CE=D9=C5 =D7=C5=DD=C9 = =D3 =C1=C2=D3=CF=CC=C0=D4=CE=CF =CB=C1=CD=C5=CE=CE=D9=CD =CC=C9=C3=CF=CD. = =F3=D0=C5=CB=D4=C1=CB=CC=D8 - =D0=C1=D2=CF=C4=C9=D1 =CE=C1 =D6=C1=CE=D2 =CC= =C5=CB=C3=C9=C9, =C7=C4=C5 =CC=C5=CB=D4=CF=D2 - =DB=CF=D5=CD=C5=CE =C9 =C9= =C4=C9=CF=D4, =C7=CF=D7=CF=D2=D1=DD=C9=CA =C1=D5=C4=C9=D4=CF=D2=C9=C9 =CF = =C7=D2=D1=C4=D5=DD=C5=CD =C1=D0=CF=CB=C1=CC=C9=D0=D3=C9=D3=C5. =E1 =D0=CF= =CC=D5=DE=C1=C5=D4=D3=D1 =C4=C9=CB=CF =D3=CD=C5=DB=CE=CF - =C4=C1 =D4=C1=CB= , =DE=D4=CF =DA=D2=C9=D4=C5=CC=D8 =D0=D2=CF=D3=D4=CF =D7=C1=CC=C9=D4=D3=D1 = =D3 =CB=D2=C5=D3=CC=C1 =C9 =CE=C5 =CD=CF=D6=C5=D4 =D3=C4=C5=D2=D6=C1=D4=D8 = =C9=D3=D4=C5=D2=C9=CB=D5.=20 =20=20=20 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Tue Oct 21 23:19:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M6J1tu028131 for ; Tue, 21 Oct 2008 23:19:02 -0700 X-ASG-Debug-ID: 1224656445-4d3c036b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BB5B52B377 for ; Tue, 21 Oct 2008 23:20:46 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id xxUGlLZApa1mDX2i for ; Tue, 21 Oct 2008 23:20:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,462,1220193000"; d="scan'208";a="215783578" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 16:50:45 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsX5I-0004Bt-MT for xfs@oss.sgi.com; Wed, 22 Oct 2008 17:20:44 +1100 Date: Wed, 22 Oct 2008 17:20:44 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS: remove i_gen from incore inode Subject: Re: [PATCH] XFS: remove i_gen from incore inode Message-ID: <20081022062044.GJ18495@disturbed> Mail-Followup-To: xfs@oss.sgi.com References: <1223417549-9920-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1223417549-9920-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224656447 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ping? On Wed, Oct 08, 2008 at 09:12:29AM +1100, Dave Chinner wrote: > i_gen is incremented in directory operations when the > directory is changed. It is never read or otherwise used > so it should be removed to help reduce the size of the > struct xfs_inode. > > The patch also removes a duplicate logging of the directory > inode core. We only need to do this once per transaction > so kill the one associated with the i_gen increment. > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_inode.h | 1 - > fs/xfs/xfs_rename.c | 12 ++---------- > fs/xfs/xfs_vnodeops.c | 29 ++--------------------------- > 3 files changed, 4 insertions(+), 38 deletions(-) > > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > index a8f1e68..5784f8e 100644 > --- a/fs/xfs/xfs_inode.h > +++ b/fs/xfs/xfs_inode.h > @@ -272,7 +272,6 @@ typedef struct xfs_inode { > unsigned short i_flags; /* see defined flags below */ > unsigned char i_update_core; /* timestamps/size is dirty */ > unsigned char i_update_size; /* di_size field is dirty */ > - unsigned int i_gen; /* generation count */ > unsigned int i_delayed_blks; /* count of delay alloc blks */ > > xfs_icdinode_t i_d; /* most of ondisk inode */ > diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c > index d700dac..02f0e8f 100644 > --- a/fs/xfs/xfs_rename.c > +++ b/fs/xfs/xfs_rename.c > @@ -367,19 +367,11 @@ xfs_rename( > &first_block, &free_list, spaceres); > if (error) > goto abort_return; > - xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > - /* > - * Update the generation counts on all the directory inodes > - * that we're modifying. > - */ > - src_dp->i_gen++; > + xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > xfs_trans_log_inode(tp, src_dp, XFS_ILOG_CORE); > - > - if (new_parent) { > - target_dp->i_gen++; > + if (new_parent) > xfs_trans_log_inode(tp, target_dp, XFS_ILOG_CORE); > - } > > /* > * If this is a synchronous mount, make sure that the > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > index 8b6812f..7a72b0a 100644 > --- a/fs/xfs/xfs_vnodeops.c > +++ b/fs/xfs/xfs_vnodeops.c > @@ -1625,8 +1625,6 @@ xfs_create( > xfs_trans_set_sync(tp); > } > > - dp->i_gen++; > - > /* > * Attach the dquot(s) to the inodes and modify them incore. > * These ids of the inode couldn't have changed since the new > @@ -1993,13 +1991,6 @@ xfs_remove( > } > xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > - /* > - * Bump the in memory generation count on the parent > - * directory so that other can know that it has changed. > - */ > - dp->i_gen++; > - xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > - > if (is_dir) { > /* > * Drop the link from ip's "..". > @@ -2017,8 +2008,8 @@ xfs_remove( > } else { > /* > * When removing a non-directory we need to log the parent > - * inode here for the i_gen update. For a directory this is > - * done implicitly by the xfs_droplink call for the ".." entry. > + * inode here. For a directory this is done implicitly > + * by the xfs_droplink call for the ".." entry. > */ > xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > } > @@ -2178,7 +2169,6 @@ xfs_link( > if (error) > goto abort_return; > xfs_ichgtime(tdp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > - tdp->i_gen++; > xfs_trans_log_inode(tp, tdp, XFS_ILOG_CORE); > > error = xfs_bumplink(tp, sip); > @@ -2355,18 +2345,10 @@ xfs_mkdir( > } > xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > - /* > - * Bump the in memory version number of the parent directory > - * so that other processes accessing it will recognize that > - * the directory has changed. > - */ > - dp->i_gen++; > - > error = xfs_dir_init(tp, cdp, dp); > if (error) > goto error2; > > - cdp->i_gen = 1; > error = xfs_bumplink(tp, dp); > if (error) > goto error2; > @@ -2653,13 +2635,6 @@ xfs_symlink( > xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > > /* > - * Bump the in memory version number of the parent directory > - * so that other processes accessing it will recognize that > - * the directory has changed. > - */ > - dp->i_gen++; > - > - /* > * If this is a synchronous mount, make sure that the > * symlink transaction goes to disk before returning to > * the user. > -- > 1.5.6.5 > > > -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 21 23:20:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=BAYES_00,HTML_MESSAGE, J_CHICKENPOX_21,J_CHICKENPOX_42,J_CHICKENPOX_43,SUBJECT_FUZZY_TION autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M6Ks5d028580 for ; Tue, 21 Oct 2008 23:20:54 -0700 X-ASG-Debug-ID: 1224656557-4d3d03990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fg-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A318252B38E for ; Tue, 21 Oct 2008 23:22:37 -0700 (PDT) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.159]) by cuda.sgi.com with ESMTP id ugOoVkEh4hSzby7M for ; Tue, 21 Oct 2008 23:22:37 -0700 (PDT) Received: by fg-out-1718.google.com with SMTP id l26so218720fgb.8 for ; Tue, 21 Oct 2008 23:22:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type:references; bh=57URlH6jzgQJ6vNonfouxsFH7Y5DVESZ/sjLCYfm2DI=; b=WmDh/0bi+jAbWdAcDqZylrbkoxlFQmspTg5wUNZxJtU0QbaQmr9w1wf99GYMRj9bDf dMpGJIFvClYvSgfDZQe6pmBRPFVkrteiFY1j9xVLb3lbU0QsF87U3hBp83f/SzfQNjYb /BsA5K0UDGnOAOTLxs3RDeA2TZc4US9UE30qU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:references; b=qPuN4QNVTkLOPVOPVpYVP7ejxNp2iJ1r+FwDoc69KHKHCIHeWzrLJp4P5+uRRcyvHT 3MjKgCGWSkCQvphuzw6FBcKGDbD2mdhAXPzoH0xlTjB6D+yEME6dDjbBVb7fnRQOG8vW 8cgfL6dgWVnt22zqh5q9F8l/ItX+mhOs6cjvE= Received: by 10.86.27.19 with SMTP id a19mr509957fga.56.1224656556688; Tue, 21 Oct 2008 23:22:36 -0700 (PDT) Received: by 10.86.78.13 with HTTP; Tue, 21 Oct 2008 23:22:36 -0700 (PDT) Message-ID: <934a72850810212322o205fecd3ya21b6306dc726f2@mail.gmail.com> Date: Wed, 22 Oct 2008 08:22:36 +0200 From: "Johan Stenehall" To: "Johan Stenehall" , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Partition seems to have been zero:ed. For no reason. Subject: Re: Partition seems to have been zero:ed. For no reason. In-Reply-To: <20081021212158.GN25906@disturbed> MIME-Version: 1.0 References: <934a72850810211111g20accf8ey74f0bfb8ecf38532@mail.gmail.com> <20081021212158.GN25906@disturbed> X-Barracuda-Connect: fg-out-1718.google.com[72.14.220.159] X-Barracuda-Start-Time: 1224656559 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4989 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.41 X-Barracuda-Spam-Status: No, SCORE=0.41 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE, SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: 0.00 HTML_MESSAGE BODY: HTML included in message Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-length: 2003 No LVM and since I don't know what MD are I guess not. It was a plain parition created with mkfs.xfs and fdisk. And no, no backups of the current partition, don't have enough diskspace anywere do to a hd backup and dvd's take to long time to burn. But nothing that importent was destroyed, it'l just take time to flac the cds again :). The same problem with UUID's stoping to work happend a year ago when upgrading kernal, so that is nothing new with ubuntu. That time I didn't lose any information. Thanks for the replay! // Johan 2008/10/21 Dave Chinner > On Tue, Oct 21, 2008 at 08:11:50PM +0200, Johan Stenehall wrote: > > After a kernal upgrade My UUIDs in /etc/fstab stoped working so I changed > > them to /dev/sd* When rebooting again /dev/sdb2 didn't want to mount. I > > tried to manualy mount it without success and tried to run a xfs_repair > on > > it. Got the following: http://pastebin.com/m44d3aa47 > > Are you using LVM or MD? i.e. did a volume get re-assembled > incorrectly and hence the XFS tools saw random fragments of a > filesystem? > > > After that the partition still didn't want to mount. Had to overwrite the > > inprogress flag "xfs_db> write inprogress 0", That aloud me to mount the > > partition but it looked entirly empty. > > > > A very nice person, (thank you), on xfs@freenode tried to > help > > me. However it seems like the entire disk, or part of it, have been > zero:ed. > > > > Does anyone know if it's possible to recover from this? And if so how? > > Recovery is possible - it's called restoring from backups. You do have a > backup, don't you? > > > Running Linux Ubuntu, 8.04 32-bit > > uname -r > > 2.6.24-21-generic > > xfs_repair -V > > xfs_repair version 2.9.4 > > Hmmmmm - haven't we have these symptoms reported by a couple of > Ubuntu users now? There's been a few ppl reporting such problems > of late.... > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Wed Oct 22 00:45:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_27, J_CHICKENPOX_33 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M7jS3u010065 for ; Wed, 22 Oct 2008 00:45:29 -0700 X-ASG-Debug-ID: 1224661609-1428029d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpout.eastlink.ca (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 86C6152B65E for ; Wed, 22 Oct 2008 00:46:50 -0700 (PDT) Received: from smtpout.eastlink.ca (smtpout.eastlink.ca [24.222.0.30]) by cuda.sgi.com with ESMTP id BhRL6PFMuNLvvP72 for ; Wed, 22 Oct 2008 00:46:50 -0700 (PDT) Received: from ip04.eastlink.ca ([24.222.39.52]) by mta02.eastlink.ca (Sun Java System Messaging Server 6.2-4.03 (built Sep 22 2005)) with ESMTP id <0K9400365QNOUNJ2@mta02.eastlink.ca> for xfs@oss.sgi.com; Wed, 22 Oct 2008 04:40:36 -0300 (ADT) Received: from unknown (HELO llama.cordes.ca) ([24.222.198.92]) by ip04.eastlink.ca with ESMTP; Wed, 22 Oct 2008 04:04:56 -0300 Received: from peter by llama.cordes.ca with local (Exim 3.36 #1 (Debian)) id 1KsYKV-0005c1-00 for ; Wed, 22 Oct 2008 04:40:31 -0300 Date: Wed, 22 Oct 2008 04:40:31 -0300 From: Peter Cordes X-ASG-Orig-Subj: small logs that fit in RAID controller cache are (sometimes) faster Subject: small logs that fit in RAID controller cache are (sometimes) faster To: xfs@oss.sgi.com Message-id: <20081022074031.GA19754@cordes.ca> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAB91/kgY3sZc/2dsb2JhbADGO4NQ X-IronPort-AV: E=Sophos;i="4.33,463,1220238000"; d="scan'208";a="337726465" User-Agent: Mutt/1.5.13 (2006-08-11) X-Barracuda-Connect: smtpout.eastlink.ca[24.222.0.30] X-Barracuda-Start-Time: 1224661611 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8460 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 I've been playing with external vs. internal logs, and log sizes, on a HW RAID controller w/256MB of battery-backed cache. I'm getting the impression that for a single-threaded untar workload at least, a small log (5 or 20MB) is actually faster 128MB. I think when the log is small enough relative to the RAID controller's write-back cache, the writes don't have to wait for actual disk. It's (maybe) like having the log on a ramdisk. Battery-backed write caches on RAID controllers make nobarrier safe (right?), so that's what I was using. With a 20MB external log (on an otherwise-idle RAID1, while the filestem is on a RAID6), during a small-file portion of the tar extraction, I saw log write speeds of over 100MB/s (average over 10s, with dstat, which is like iostat) 1 second peaks of 115MB/s. The disk's max sequential write is more like 80MB/s, which is the peak I was seeing with a 128MB log. The only workload I'm testing with varying log sizes is untarring /home onto a fresh filesystem, so single-threaded creation of 121744 files totalling 12.1GB. There were a few very large directories (10000 files) of mostly small files (25% < 512B, 50% < 1.5k, 95% < 32k, 99.5% < 100k)[1]. There are also some large files on the FS (maybe an ISO image or something). Watching disk throughput during the untar, there is a log-bound portion and a large-file portion that hardly has any log I/O. (The tar was compressed with lzop to 6.9GB, and read over gigE NFS. I primed the cache so there is no NFS traffic for about the first half of the test, and it's never read-limited. Max NFS read speed is > 100MB/s, and I never saw more than 50MB/s during the untar. (NFS server is one of the 16GB-RAM compute nodes, so easily caching the whole file for when the writes evict some of the tar.lzo from the cache on the master node.) Highest user-time CPU usage is about half of a single CPU, system time never hit a full CPU either, so those weren't limiting factors. untar times: 110s w/ a 128MB internal log (note that the max sequential write is at least ~3x higher for the RAID6 the internal log is on) 116s w/ a 128MB external log 113s with a 96MB external log 110s with a 64MB external log 115s with a 20MB external log 110s with a 5MB external log (although IIRC I did see 105s with a 5 or 20MB external log. Sorry, wasn't recording all the timings I did, since I wasn't planning to post... Also, sometimes I was seeing 130s times with the 128MB external log, but maybe that was before I was so consistent with my method for priming the cache, so it was being read-limited... Now I cat twice to /dev/null, then dd bs=1024k count=3200 to /dev/null to make sure the first half of the file really wants to stay in the cache.) I'm thinking of creating the FS with a 96MB external log, but I haven't tested with parallel workloads with logs < 128MB. This RAID array also holds /home (on the first 650GB of array), while this FS (/data) is the last 2.2TB. /home uses an internal log, so if someone's keeping /home busy and someone else is keeping /data busy, their logs won't both be going to the RAID6. (I also use agcount=8 on /data, agcount=7 on /home. Although I/O will probably be bursty, and not loading /home and /data at the same time, my main concern is to avoid scattering files in too many places. fewer AGs = more locality for a bunch of sequentially created files, right? I have 8 spindles in the RAID, so that seemed like a good amount of AGs. RAID6 doesn't like small scattered writes _at_ _all_.) Basically, I really want to ask if my mkfs parameters look good before I let users start filling up the filesystems and running jobs on the cluster, making it hard to redo the mkfs. Am I doing anything that looks silly? mkfs: (from xfsprogs 2.10.1 patches with the sw+agcount usability fix) mkfs.xfs -i attr=2 -d su=64k,sw=6,agcount=8 -n size=16k /dev/sdb2 -L data \ -l lazy-count=1,logdev=/dev/raid1/data-xfslog,size=$((1024*1024*96)) meta-data=/dev/sdb2 isize=256 agcount=8, agsize=70172688 blks = sectsz=512 attr=2 data = bsize=4096 blocks=561381403, imaxpct=5 = sunit=16 swidth=96 blks naming =version 2 bsize=16384 ascii-ci=0 log =/dev/raid1/data-xfslog bsize=4096 blocks=24576, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 mount -o noatime,usrquota,nobarrier,inode64,largeio,swalloc,logbsize=256k,logdev=/dev/raid1/data-xfslog noikeep is the default, since I don't use dmapi, otherwise I would include it, too. And yes, the XFS log is on LVM, near the start of the disk. BTW, is there a way to mount the root filesystem with inode64? If I put that in my fstab, it only tries to do it with a remount (which doesn't work), because I guess Ubuntu's initrd doesn't have mount options from /etc/fstab. I made my root fs 10GB, and with imaxpct=8, so the 32bit inode allocator should do ok. I found -n size=16k helps with random deletion speed, IIRC. I only use that on the big RAID6 filesystems, not / or /var/tmp, since users won't be making their huge data file directories anywhere else. Bonnie++ ends up with highly fragmented directories (xfs_bmap) after random-order file creation. /dev/sdb1 and /dev/sdb2 both have their starts full-stripe aligned (I used parted, and set unit s (sectors), since my strip width is 768sectors. I used a GPT disklabel, since DOS wraps at 2TB) The hardware is a Dell PERC 6/E on an 8-disk 500GB (Seagate) SATA 7200RPM RAID6 (PERC 6/E = LSI MegaRAID SAS 1078 w/256MB of battery backed cache. It talks to an External box of hard drives (MD1000) over a 4-lane (IIRC) SAS cable.) The computer is a Dell PE1950 (equipped with a single quad core 2GHz Harpertown CPU (12MB cache total), with 8GB of DDR2-667MHz on a 5000X chipset). Linux 2.6.27 (Ubuntu Intrepid server kernel, which uses the deadline scheduler by default. Otherwise running Ubuntu AMD64 Hardy (current stable), but it's new hardware that's better supported by a newer kernel.) The RAID1 (holding the external log) is on a PERC 6/I (similar hardware, but hooked up to the interal SATA backplane in the server, instead of the external MD1000.) I'm not sure if it's a separate card with its own 256MB of cache, or if it shares the 256MB with the RAID6 on the PERC 6/E. (I opened up the case when the machine first arrived (just sight-seeing, of course :), but I don't think I looked carefully enough to rule out there being another RAID controller somewhere...) If it's shared, that would explain why 128MB slows down. Otherwise, I don't know, since 128MB should still fit easily in the 256MB of cache. The RAID1 and RAID6 are both set for adaptive readahead in the controller BIOS, and with a 64kB stripe size on the RAID6. I use blockdev --setra 512 /dev/sda # the internal RAID1 blockdev --setra 8192 /dev/sdb # the RAID6 I don't have time to edit my other benchmark numbers into a presentable format right now (I have lots of bonnie++ single-threaded and parallel results for various XFS parameters), but if anyone wants them, email me and I'll post my notes. [1] This is pretty typical of what phylogenetics (trying to make evolutionary trees based on DNA sequences of current life) grad students and profs do on the cluster: generate output file for combinations of (random subsets of) data sets and parameters. Plus they compile software and extract tar files of source code, etc. Probably we're most likely to be I/O bound when reading, since most number crunching takes a lot of CPU for each output file, but summarizing the data at the end usually involves reading all the output files. But I don't want it to be slow when people untar something, or whatever. The machine is an NFS server (over bonded gigE) for a 650GB /home and a 2.2TB /data both on the same 8-disk RAID6. 12 compute nodes will run jobs that write to those FSes (usually slowly), while interactive users will mostly be local on the master node. The large amount of small files people usually generate is why I didn't go with LUSTRE. It, or PVFS, might still be useful to make a scratch filesystem out of the 500GB disks in each compute node, though. :) Thanks, -- #define X(x,y) x##y Peter Cordes ; e-mail: X(peter@cor , des.ca) "The gods confound the man who first found out how to distinguish the hours! Confound him, too, who in this place set up a sundial, to cut and hack my day so wretchedly into small pieces!" -- Plautus, 200 BC From owner-xfs@oss.sgi.com Wed Oct 22 00:57:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M7v0Lq011089 for ; Wed, 22 Oct 2008 00:57:01 -0700 X-ASG-Debug-ID: 1224662324-1fbd02ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEF6C10C62F1 for ; Wed, 22 Oct 2008 00:58:44 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id NtRglEoKjRKgGfGV for ; Wed, 22 Oct 2008 00:58:44 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbAC7CAGHHXABeg X-IronPort-AV: E=Sophos;i="4.33,463,1220193000"; d="scan'208";a="215840853" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 18:28:41 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsYc3-0004uz-05; Wed, 22 Oct 2008 18:58:39 +1100 Date: Wed, 22 Oct 2008 18:58:38 +1100 From: Dave Chinner To: Alexander Beregalov Cc: lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081022075838.GK18495@disturbed> Mail-Followup-To: Alexander Beregalov , lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML References: <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224662326 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8459 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Tue, Oct 21, 2008 at 03:42:16PM +0400, Alexander Beregalov wrote: > 2008/10/21 Dave Chinner : > > On Mon, Oct 20, 2008 at 09:13:05PM +0400, Alexander Beregalov wrote: > >> 2008/10/20 Christoph Hellwig : > >> > On Mon, Oct 20, 2008 at 06:58:09PM +0400, Alexander Beregalov wrote: > >> >> Hi Christoph > >> >> > >> >> I have the same result with next-1020 and today's xfs-2.6.git/master > >> >> ( > >> >> commit bfd2bd10da76378dc4afd87d7d204a1d3d70b347 > >> >> Author: David Chinner > >> >> Date: Fri Oct 17 15:36:23 2008 +1000 > >> >> Inode: Allow external list initialisation > >> >> ) > >> Ha, that kernel (xfs/master) has made my system dead locked. > >> SysRQ-d: > >> Show all locks held in the system > >> 1 lock held by pdflush > >> (&type->s_umount_key#18{----}, at writeback_inodes > >> 1 lock held by login > >> (&(&ip->i_iolock)->mr_lock){----} at xfs_ilock > >> and so on ( many locks at xfs_ilock) > > > > Curious. Can you post the full stack traces? > I can not reproduce it, yet. > > Bisected to: > dd509097cb0b76d3836385f80d6b2d6fd3b97757 is first bad commit > commit dd509097cb0b76d3836385f80d6b2d6fd3b97757 > Author: Lachlan McIlroy > Date: Mon Sep 29 14:56:40 2008 +1000 > > [XFS] Unlock inode before calling xfs_idestroy() > > Lock debugging reported the ilock was being destroyed without being > unlocked. We don't need to lock the inode until we are going to insert it > into the radix tree. Ah, OK, I see the problem, though I don't understand why I'm not seeing the might_sleep() triggering all the time given that I always build with: $ grep SLEEP .config CONFIG_DEBUG_SPINLOCK_SLEEP=y Basically the above commit moved xfs_ilock() inside radix_tree_preload()/radix_tree_preload_end(), which means we are taking a rwsem() while we have an elevated preempt count. I'll get a patch out to fix it. The question is why isn't this triggering for me during QA runs? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 01:15:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M8FUId012957 for ; Wed, 22 Oct 2008 01:15:30 -0700 X-ASG-Debug-ID: 1224663434-179603c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0737B52B9C5 for ; Wed, 22 Oct 2008 01:17:14 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 1ukvtEjfFhXQ3Blt for ; Wed, 22 Oct 2008 01:17:14 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,463,1220193000"; d="scan'208";a="215848092" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 18:47:13 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsYty-0000oT-Ts; Wed, 22 Oct 2008 19:17:10 +1100 Date: Wed, 22 Oct 2008 19:17:10 +1100 From: Dave Chinner To: Utako Kusaka Cc: Timothy Shimmin , xfs X-ASG-Orig-Subj: [PATCH, RFC] Re: atime not written to disk Subject: [PATCH, RFC] Re: atime not written to disk Message-ID: <20081022081710.GL18495@disturbed> Mail-Followup-To: Utako Kusaka , Timothy Shimmin , xfs References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FD7B69.3090600@wm.jp.nec.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224663436 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8460 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 21, 2008 at 03:49:13PM +0900, Utako Kusaka wrote: > Hi, > > Your problem seems the same as mine. > http://oss.sgi.com/archives/xfs/2007-10/msg00168.html > > Utako. > > Timothy Shimmin wrote: >> Hi, >> >> Before I investigate further ;-), >> it appears that in XFS (seen in recent xfs-dev tree and on older issp release >> on default mkfs/mount options), >> that the atime is not being written out to disk in xfs, >> at least, in the simple scenario below. >> >> emu:/home/tes # echo bill >/mnt/test/bill >> emu:/home/tes # ls -l /mnt/test/bill >> -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill >> emu:/home/tes # ls -lu /mnt/test/bill >> -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill >> >> ... wait a bit to change the atime... >> >> emu:/home/tes # cat /mnt/test/bill >> bill >> emu:/home/tes # ls -lu /mnt/test/bill >> -rw-r--r-- 1 root root 5 2008-10-21 16:11 /mnt/test/bill >> >> emu:/home/tes # cd / >> emu:/ # umount /mnt/test >> emu:/ # mount /mnt/test >> emu:/mnt/test # ls -lu /mnt/test/bill >> -rw-r--r-- 1 root root 5 2008-10-21 16:03 /mnt/test/bill As I mentioned on IRC, Tim, the following patch fixes the above test case. It will make XFS behave like other filesystems w.r.t. atime, instead of defaulting to relatime-like behaviour. This will have performance impact unless ppl now add the relatime mount option. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Implement ->dirty_inode callout Hook up ->dirty_inode so that when the VFS dirties an inode we can mark the XFS inode as "dirty with unlogged changes". This allows events such as touch_atime() to propagate the dirty state right through to XFS so it gets written back to disk. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_aops.c | 1 - fs/xfs/linux-2.6/xfs_iops.c | 14 +++----------- fs/xfs/linux-2.6/xfs_super.c | 23 +++++++++++++++++++++++ fs/xfs/xfs_inode_item.c | 14 +++++++++----- 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 8fbc97d..6f4ebd0 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -189,7 +189,6 @@ xfs_setfilesize( if (ip->i_d.di_size < isize) { ip->i_d.di_size = isize; - ip->i_update_core = 1; ip->i_update_size = 1; xfs_mark_inode_dirty_sync(ip); } diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 37bb101..b7deff9 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -117,19 +117,11 @@ xfs_ichgtime( } /* - * We update the i_update_core field _after_ changing - * the timestamps in order to coordinate properly with - * xfs_iflush() so that we don't lose timestamp updates. - * This keeps us from having to hold the inode lock - * while doing this. We use the SYNCHRONIZE macro to - * ensure that the compiler does not reorder the update - * of i_update_core above the timestamp updates above. + * Update complete - now make sure everyone knows that the inode + * is dirty. */ - if (sync_it) { - SYNCHRONIZE(); - ip->i_update_core = 1; + if (sync_it) xfs_mark_inode_dirty_sync(ip); - } } /* diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 3ae8051..a5570b5 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -928,6 +928,28 @@ xfs_fs_inode_init_once( } /* + * Dirty the XFS inode when mark_inode_dirty_sync() is called so that + * we catch unlogged VFS level updates to the inode. Care must be taken + * here - the transaction code calls mark_inode_dirty_sync() to mark the + * VFS inode dirty in a transaction and clears the i_update_core field; + * it must clear the field after calling mark_inode_dirty_sync() to + * correctly indicate that the dirty state has been propagated into the + * inode log item. + * + * We need the barrier() to maintain correct ordering between unlogged + * updates and the transaction commit code that clears the i_update_core + * field. This requires all updates to be completed before marking the + * inode dirty. + */ +STATIC void +xfs_fs_dirty_inode( + struct inode *inode) +{ + barrier(); + XFS_I(inode)->i_update_core = 1; +} + +/* * Attempt to flush the inode, this will actually fail * if the inode is pinned, but we dirty the inode again * at the point when it is unpinned after a log write, @@ -1712,6 +1734,7 @@ xfs_fs_get_sb( static struct super_operations xfs_super_operations = { .alloc_inode = xfs_fs_alloc_inode, .destroy_inode = xfs_fs_destroy_inode, + .dirty_inode = xfs_fs_dirty_inode, .write_inode = xfs_fs_write_inode, .clear_inode = xfs_fs_clear_inode, .put_super = xfs_fs_put_super, diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index aa9bf05..89d480c 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -232,6 +232,15 @@ xfs_inode_item_format( nvecs = 1; /* + * Make sure the linux inode is dirty. We do this before + * clearing i_update_core as the VFS will call back into + * XFS here and set i_update_core, so we need to dirty the + * inode first so that the ordering of i_update_core and + * unlogged modifications still works as described below. + */ + xfs_mark_inode_dirty_sync(ip); + + /* * Clear i_update_core if the timestamps (or any other * non-transactional modification) need flushing/logging * and we're about to log them with the rest of the core. @@ -275,11 +284,6 @@ xfs_inode_item_format( */ xfs_synchronize_atime(ip); - /* - * make sure the linux inode is dirty - */ - xfs_mark_inode_dirty_sync(ip); - vecp->i_addr = (xfs_caddr_t)&ip->i_d; vecp->i_len = sizeof(xfs_dinode_core_t); XLOG_VEC_SET_TYPE(vecp, XLOG_REG_TYPE_ICORE); From owner-xfs@oss.sgi.com Wed Oct 22 01:19:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M8JcG4013569 for ; Wed, 22 Oct 2008 01:19:38 -0700 X-ASG-Debug-ID: 1224663683-583d00430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from yw-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E3561215B43 for ; Wed, 22 Oct 2008 01:21:23 -0700 (PDT) Received: from yw-out-1718.google.com (yw-out-1718.google.com [74.125.46.155]) by cuda.sgi.com with ESMTP id l70wlgnipXCShC3h for ; Wed, 22 Oct 2008 01:21:23 -0700 (PDT) Received: by yw-out-1718.google.com with SMTP id 5so524697ywm.32 for ; Wed, 22 Oct 2008 01:21:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=eQV67Y7oPvbQYrGabOPUXm2DhltByG+0DUf1MUBM1SI=; b=r+cl6hRKSTtCGMGgCcou3WtYzN2J9kgHHwIipKtWybDEbVMFKfacnkrhmvCG5pV7vO s/1V1ZviHzFMg+Sp7SFaJnLhqHWphs6o5eqnCQ8sQwSyGVTBXRebVWF1Q4dYzRXXJSw5 vz+zcKZfHk0An6Qimf6ErYgyC95Pcugq4477I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=CM2Yd4kE9BquZna6e3vzi/F66a3zgbeaR1J8WTTZG6gbQprRJeS5G1fTKyCfdg3oYn CdcngHVQL4aJnkhGFe+uqh8U+ffFgx/Mu5eFYFbd2h7wvQjKRcfwUfAlNpVAJ5iGi23O Hr0yIHf25pF2TDPkoLNljf1fkcx5KrkIKkwh8= Received: by 10.100.105.15 with SMTP id d15mr4157237anc.31.1224663683104; Wed, 22 Oct 2008 01:21:23 -0700 (PDT) Received: by 10.100.111.12 with HTTP; Wed, 22 Oct 2008 01:21:23 -0700 (PDT) Message-ID: Date: Wed, 22 Oct 2008 12:21:23 +0400 From: "Alexander Beregalov" To: "Dave Chinner" , lachlan@sgi.com, "Christoph Hellwig" , "Arjan van de Ven" , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) In-Reply-To: <20081022075838.GK18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> X-Barracuda-Connect: yw-out-1718.google.com[74.125.46.155] X-Barracuda-Start-Time: 1224663684 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8461 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > Ah, OK, I see the problem, though I don't understand why I'm not > seeing the might_sleep() triggering all the time given that I always > build with: > > $ grep SLEEP .config > CONFIG_DEBUG_SPINLOCK_SLEEP=y > > Basically the above commit moved xfs_ilock() inside > radix_tree_preload()/radix_tree_preload_end(), which means we are > taking a rwsem() while we have an elevated preempt count. I'll > get a patch out to fix it. Could it cause the I/O dead lock or should I continue trying to reproduce it? From owner-xfs@oss.sgi.com Wed Oct 22 01:24:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M8O9UJ014188 for ; Wed, 22 Oct 2008 01:24:09 -0700 X-ASG-Debug-ID: 1224663953-583d00840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9FEE8FD217 for ; Wed, 22 Oct 2008 01:25:54 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id ZTEiE8Zh59kIGeRy for ; Wed, 22 Oct 2008 01:25:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,463,1220193000"; d="scan'208";a="215851136" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 18:55:52 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsZ2M-0003i1-TW; Wed, 22 Oct 2008 19:25:50 +1100 Date: Wed, 22 Oct 2008 19:25:50 +1100 From: Dave Chinner To: Alexander Beregalov , lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081022082550.GM18495@disturbed> Mail-Followup-To: Alexander Beregalov , lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML References: <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022075838.GK18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224663954 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8461 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Wed, Oct 22, 2008 at 06:58:38PM +1100, Dave Chinner wrote: > On Tue, Oct 21, 2008 at 03:42:16PM +0400, Alexander Beregalov wrote: > > Bisected to: > > dd509097cb0b76d3836385f80d6b2d6fd3b97757 is first bad commit > > commit dd509097cb0b76d3836385f80d6b2d6fd3b97757 > > Author: Lachlan McIlroy > > Date: Mon Sep 29 14:56:40 2008 +1000 > > > > [XFS] Unlock inode before calling xfs_idestroy() > > > > Lock debugging reported the ilock was being destroyed without being > > unlocked. We don't need to lock the inode until we are going to insert it > > into the radix tree. > > Ah, OK, I see the problem, though I don't understand why I'm not > seeing the might_sleep() triggering all the time given that I always > build with: > > $ grep SLEEP .config > CONFIG_DEBUG_SPINLOCK_SLEEP=y > > Basically the above commit moved xfs_ilock() inside > radix_tree_preload()/radix_tree_preload_end(), which means we are > taking a rwsem() while we have an elevated preempt count. I'll > get a patch out to fix it. Patch below (against the xfs master/linux-next branch) should fix the regression. I've just started QA on it. Can you please check that it works for you, Alexander? Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Can't lock inodes in radix tree preload region When we are inside a radix tree preload region, we cannot sleep. Recently we moved the inode locking inside the preload region for the inode radix tree. Fix that, and fix a missed unlock in another error path in the same code at the same time. Signed-off-by: Dave Chinner --- fs/xfs/xfs_iget.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index fbc6088..837cae7 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -159,18 +159,19 @@ xfs_iget_cache_miss( goto out_destroy; } + if (lock_flags) + xfs_ilock(ip, lock_flags); + /* * Preload the radix tree so we can insert safely under the - * write spinlock. + * write spinlock. Note that we cannot sleep inside the preload + * region. */ if (radix_tree_preload(GFP_KERNEL)) { error = EAGAIN; - goto out_destroy; + goto out_unlock; } - if (lock_flags) - xfs_ilock(ip, lock_flags); - mask = ~(((XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_inodelog)) - 1); first_index = agino & mask; write_lock(&pag->pag_ici_lock); @@ -181,7 +182,7 @@ xfs_iget_cache_miss( WARN_ON(error != -EEXIST); XFS_STATS_INC(xs_ig_dup); error = EAGAIN; - goto out_unlock; + goto out_preload_end; } /* These values _must_ be set before releasing the radix tree lock! */ @@ -193,9 +194,12 @@ xfs_iget_cache_miss( *ipp = ip; return 0; -out_unlock: +out_preload_end: write_unlock(&pag->pag_ici_lock); radix_tree_preload_end(); +out_unlock: + if (lock_flags) + xfs_iunlock(ip, lock_flags); out_destroy: xfs_destroy_inode(ip); return error; From owner-xfs@oss.sgi.com Wed Oct 22 01:26:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M8QoiM014560 for ; Wed, 22 Oct 2008 01:26:51 -0700 X-ASG-Debug-ID: 1224664115-5a0f00630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D1AAF52BA16 for ; Wed, 22 Oct 2008 01:28:36 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 1lCh9OI0agONGX5B for ; Wed, 22 Oct 2008 01:28:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LE2t/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,463,1220193000"; d="scan'208";a="215852022" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 22 Oct 2008 18:58:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsZ4v-0004IW-40; Wed, 22 Oct 2008 19:28:29 +1100 Date: Wed, 22 Oct 2008 19:28:29 +1100 From: Dave Chinner To: Alexander Beregalov Cc: lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081022082828.GN18495@disturbed> Mail-Followup-To: Alexander Beregalov , lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML References: <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224664116 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8460 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 22, 2008 at 12:21:23PM +0400, Alexander Beregalov wrote: > > Ah, OK, I see the problem, though I don't understand why I'm not > > seeing the might_sleep() triggering all the time given that I always > > build with: > > > > $ grep SLEEP .config > > CONFIG_DEBUG_SPINLOCK_SLEEP=y > > > > Basically the above commit moved xfs_ilock() inside > > radix_tree_preload()/radix_tree_preload_end(), which means we are > > taking a rwsem() while we have an elevated preempt count. I'll > > get a patch out to fix it. > Could it cause the I/O dead lock or should I continue trying to reproduce it? The deadlock wouldn't be produced by the same thing that produced the sleeping-in-atomic warning. The missed unlock that I also fixed in the patch I just sent could possibly have caused that, but I'm just speculating on that... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 02:10:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M9Abfd018135 for ; Wed, 22 Oct 2008 02:10:39 -0700 X-ASG-Debug-ID: 1224666742-5da101d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from yw-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 531F152BC02 for ; Wed, 22 Oct 2008 02:12:22 -0700 (PDT) Received: from yw-out-1718.google.com (yw-out-1718.google.com [74.125.46.153]) by cuda.sgi.com with ESMTP id F28n2xaXIjoCDRL5 for ; Wed, 22 Oct 2008 02:12:22 -0700 (PDT) Received: by yw-out-1718.google.com with SMTP id 5so527963ywm.32 for ; Wed, 22 Oct 2008 02:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=DbVjh/cHu7ZemzCg0hbJ1K82Ddf087kZbAQsRVL5tc4=; b=nXXSXte9c+GMRpOIwTMT6RMcvto3UgeTNRE1gyah+dpn+ucT6/AzniN3TK0biAMPAa HHCPwsbgaFPrFObxj/0z/J6iwgZyd+Msap5IvsTmArhlZaYcRnsViUQpIJ3pAnUWcwo1 /PBiqyEMFESDKSxhO9abvvzHh2n3lgIeQ0dmg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=lcGGHkXc+zYH/telubf3FmlYORJEXNslgtfcalerOLiVt2lD5+F9qBUJgXJ7g9tOLZ xFurc6F3AbbUh/gNR1+SPKbl+ouM2fi5VUNAkTkDuNjztHpRibLrJQVucoqF7379ZFud N5rgJU9jZtsBmq0b3+LjrwT3uOqAzQHP2tMc8= Received: by 10.100.42.4 with SMTP id p4mr11186143anp.91.1224666742199; Wed, 22 Oct 2008 02:12:22 -0700 (PDT) Received: by 10.100.111.12 with HTTP; Wed, 22 Oct 2008 02:12:22 -0700 (PDT) Message-ID: Date: Wed, 22 Oct 2008 13:12:22 +0400 From: "Alexander Beregalov" To: "Dave Chinner" , lachlan@sgi.com, "Christoph Hellwig" , "Arjan van de Ven" , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) In-Reply-To: <20081022082550.GM18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> <20081022082550.GM18495@disturbed> X-Barracuda-Connect: yw-out-1718.google.com[74.125.46.153] X-Barracuda-Start-Time: 1224666743 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8460 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 2008/10/22 Dave Chinner : > On Wed, Oct 22, 2008 at 06:58:38PM +1100, Dave Chinner wrote: >> On Tue, Oct 21, 2008 at 03:42:16PM +0400, Alexander Beregalov wrote: >> > Bisected to: >> > dd509097cb0b76d3836385f80d6b2d6fd3b97757 is first bad commit >> > commit dd509097cb0b76d3836385f80d6b2d6fd3b97757 >> > Author: Lachlan McIlroy >> > Date: Mon Sep 29 14:56:40 2008 +1000 >> > >> > [XFS] Unlock inode before calling xfs_idestroy() >> > >> > Lock debugging reported the ilock was being destroyed without being >> > unlocked. We don't need to lock the inode until we are going to insert it >> > into the radix tree. >> >> Ah, OK, I see the problem, though I don't understand why I'm not >> seeing the might_sleep() triggering all the time given that I always >> build with: >> >> $ grep SLEEP .config >> CONFIG_DEBUG_SPINLOCK_SLEEP=y >> >> Basically the above commit moved xfs_ilock() inside >> radix_tree_preload()/radix_tree_preload_end(), which means we are >> taking a rwsem() while we have an elevated preempt count. I'll >> get a patch out to fix it. > > Patch below (against the xfs master/linux-next branch) should fix the > regression. I've just started QA on it. Can you please check that > it works for you, Alexander? > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > XFS: Can't lock inodes in radix tree preload region > > When we are inside a radix tree preload region, we cannot > sleep. Recently we moved the inode locking inside the > preload region for the inode radix tree. Fix that, > and fix a missed unlock in another error path in the > same code at the same time. > > Signed-off-by: Dave Chinner Tested-by: Alexander Beregalov Yes, it fixes the issue. Thanks From owner-xfs@oss.sgi.com Wed Oct 22 02:28:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9M9SZO5019682 for ; Wed, 22 Oct 2008 02:28:35 -0700 X-ASG-Debug-ID: 1224667819-17cc00850000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2E1481458BC3 for ; Wed, 22 Oct 2008 02:30:20 -0700 (PDT) Received: from mx1.suse.de (mx1.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id LHu7H4Blbqh0RThk for ; Wed, 22 Oct 2008 02:30:20 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 6C2C842A31; Wed, 22 Oct 2008 11:30:18 +0200 (CEST) Date: Wed, 22 Oct 2008 11:30:18 +0200 From: Nick Piggin To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [patch 2/2] xfs: use scalable vmap API Subject: Re: [patch 2/2] xfs: use scalable vmap API Message-ID: <20081022093018.GD4359@wotan.suse.de> References: <20081021082542.GA6974@wotan.suse.de> <20081021082735.GB6974@wotan.suse.de> <20081021120932.GB13348@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021120932.GB13348@infradead.org> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: mx1.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1224667821 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Tue, Oct 21, 2008 at 08:09:32AM -0400, Christoph Hellwig wrote: > On Tue, Oct 21, 2008 at 10:27:35AM +0200, Nick Piggin wrote: > > + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, > > + -1, PAGE_KERNEL); > > What does the -1 stand for? Default node. From owner-xfs@oss.sgi.com Wed Oct 22 03:10:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MAA1pu022318 for ; Wed, 22 Oct 2008 03:10:02 -0700 X-ASG-Debug-ID: 1224670307-3a4900bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4EBD714576CE for ; Wed, 22 Oct 2008 03:11:47 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 2JC0yQVaGxDFWMfA for ; Wed, 22 Oct 2008 03:11:47 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ksags-0007Et-Ef for xfs@oss.sgi.com; Wed, 22 Oct 2008 10:11:46 +0000 Date: Wed, 22 Oct 2008 06:11:46 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Handle ENOMEM during log initialisation Subject: Re: [PATCH] Handle ENOMEM during log initialisation Message-ID: <20081022101146.GA11313@infradead.org> References: <20081022061002.GG18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022061002.GG18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224670307 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8468 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 22, 2008 at 05:10:02PM +1100, Dave Chinner wrote: > XFS: handle memory allocation failures during log initialisation > > When there is no memory left in the system, xfs_buf_get_noaddr() > can fail. If this happens at mount time during xlog_alloc_log() > we fail to catch the error and oops. > > Catch the error from xfs_buf_get_noaddr(), and allow other memory > allocations to fail and catch those errors too. Report the error > to the console and fail the mount with ENOMEM. > > Tested by manually injecting errors into xfs_buf_get_noaddr() and > xlog_alloc_log(). > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_log.c | 38 ++++++++++++++++++++++++++++++++++++-- > 1 files changed, 36 insertions(+), 2 deletions(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 5184017..1dfa5fe 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); > + log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); You might want to remove the cast when you touch that line anyway. > for (i=0; i < log->l_iclog_bufs; i++) { > *iclogp = (xlog_in_core_t *) > - kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); > + kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL); Same here. Modulo those nitpicks this looks good. From owner-xfs@oss.sgi.com Wed Oct 22 03:12:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MAC6Dv022698 for ; Wed, 22 Oct 2008 03:12:07 -0700 X-ASG-Debug-ID: 1224670432-3a8500b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 83FDD1459431; Wed, 22 Oct 2008 03:13:52 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id wcZWYTx1FC7h9sRI; Wed, 22 Oct 2008 03:13:52 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ksait-0007wF-B2; Wed, 22 Oct 2008 10:13:51 +0000 Date: Wed, 22 Oct 2008 06:13:51 -0400 From: Christoph Hellwig To: Alexander Beregalov , lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081022101351.GB11313@infradead.org> References: <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> <20081022082550.GM18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022082550.GM18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224670432 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8468 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 22, 2008 at 07:25:50PM +1100, Dave Chinner wrote: > > Basically the above commit moved xfs_ilock() inside > > radix_tree_preload()/radix_tree_preload_end(), which means we are > > taking a rwsem() while we have an elevated preempt count. I'll > > get a patch out to fix it. This really needs a warning. Then again I don't really understand this as the point of radix_tree_preload was that we can do the actual radix-tree under a lock, or not? Anyway, the patch looks correct to me, including the slightly unrelated hunk to fix the missing unlock and preload leak. From owner-xfs@oss.sgi.com Wed Oct 22 05:46:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MCkPfI005119 for ; Wed, 22 Oct 2008 05:46:25 -0700 X-ASG-Debug-ID: 1224679689-07b8037b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ns.roilcom.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 15ECE52C7CF for ; Wed, 22 Oct 2008 05:48:09 -0700 (PDT) Received: from ns.roilcom.ru (ns2.yola.roilcom.ru [217.22.160.5]) by cuda.sgi.com with ESMTP id i9PRDqofP3niNRe6 for ; Wed, 22 Oct 2008 05:48:09 -0700 (PDT) Received: from localhost (localhost) by ns.roilcom.ru (8.12.11/8.12.6) id m9MComTv045079; Wed, 22 Oct 2008 16:50:48 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Wed, 22 Oct 2008 16:50:48 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810221250.m9MComTv045079@ns.roilcom.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9MComTv045079.1224679848/ns.roilcom.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: ns2.yola.roilcom.ru[217.22.160.5] X-Barracuda-Start-Time: 1224679691 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4467 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.50 X-Barracuda-Spam-Status: No, SCORE=0.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9MComTv045079.1224679848/ns.roilcom.ru The original message was received at Wed, 22 Oct 2008 16:50:44 +0400 (MSD) from 4.Red-83-32-63.dynamicIP.rima-tde.net [83.32.63.4] ----- The following addresses had permanent fatal errors ----- (reason: Can't create output) ----- Transcript of session follows ----- procmail: Quota exceeded while writing "/var/mail/bogddmie" 550 5.0.0 ... Can't create output --m9MComTv045079.1224679848/ns.roilcom.ru Content-Type: message/delivery-status Reporting-MTA: dns; ns.roilcom.ru Received-From-MTA: DNS; 4.Red-83-32-63.dynamicIP.rima-tde.net Arrival-Date: Wed, 22 Oct 2008 16:50:44 +0400 (MSD) Final-Recipient: RFC822; d_bogdanov@rosneft.ru X-Actual-Recipient: RFC822; bogddmie@ns.roilcom.ru Action: failed Status: 5.3.0 Diagnostic-Code: X-Unix; 73 Last-Attempt-Date: Wed, 22 Oct 2008 16:50:48 +0400 (MSD) --m9MComTv045079.1224679848/ns.roilcom.ru Content-Type: text/rfc822-headers Return-Path: Received: from 4.Red-83-32-63.dynamicIP.rima-tde.net (4.Red-83-32-63.dynamicIP.rima-tde.net [83.32.63.4]) by ns.roilcom.ru (8.12.11/8.12.6) with ESMTP id m9MCogTv044884 for ; Wed, 22 Oct 2008 16:50:44 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000701c93444$014e4f67$c67b87a3@sgfol> From: =?koi8-r?B?9d7Fws7ZyiDjxc7U0g==?= To: Subject: =?koi8-r?B?98HMwNTOz8Ug0sXH1czJ0s/Xwc7JxSDJIMvPztTSz8zYIDIwMDgtMg==?= =?koi8-r?B?MDA5?= Date: Wed, 22 Oct 2008 11:00:43 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0004_01C93444.014884FA" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9MComTv045079.1224679848/ns.roilcom.ru-- From owner-xfs@oss.sgi.com Wed Oct 22 05:47:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MClNbI005292 for ; Wed, 22 Oct 2008 05:47:25 -0700 X-ASG-Debug-ID: 1224679747-462300cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from dialup.phys.msu.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EDDA110C68A2 for ; Wed, 22 Oct 2008 05:49:07 -0700 (PDT) Received: from dialup.phys.msu.ru (dialup.phys.msu.ru [193.232.122.34]) by cuda.sgi.com with ESMTP id e0plPGYIr9ulsioq for ; Wed, 22 Oct 2008 05:49:07 -0700 (PDT) Received: from localhost (localhost) by dialup.phys.msu.ru (8.13.1/8.13.1) id m9MCnqgH007527; Wed, 22 Oct 2008 16:49:52 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Wed, 22 Oct 2008 16:49:52 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810221249.m9MCnqgH007527@dialup.phys.msu.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9MCnqgH007527.1224679792/dialup.phys.msu.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: dialup.phys.msu.ru[193.232.122.34] X-Barracuda-Start-Time: 1224679748 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4234 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8479 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9MCnqgH007527.1224679792/dialup.phys.msu.ru The original message was received at Wed, 22 Oct 2008 16:49:47 +0400 (MSD) from p549D8A0F.dip0.t-ipconnect.de [84.157.138.15] ----- The following addresses had permanent fatal errors ----- (reason: 554 5.7.1 Content-Policy reject msg: Message rejected under suspicion of spam.; S9814229AbYJVMtC) ----- Transcript of session follows ----- ... while talking to mx2.yandex.ru.: >>> DATA <<< 554 5.7.1 Content-Policy reject msg: Message rejected under suspicion of spam.; S9814229AbYJVMtC 554 5.0.0 Service unavailable --m9MCnqgH007527.1224679792/dialup.phys.msu.ru Content-Type: message/delivery-status Reporting-MTA: dns; dialup.phys.msu.ru Received-From-MTA: DNS; p549D8A0F.dip0.t-ipconnect.de Arrival-Date: Wed, 22 Oct 2008 16:49:47 +0400 (MSD) Final-Recipient: RFC822; paraschuk@yandex.ru Action: failed Status: 5.7.1 Remote-MTA: DNS; mx2.yandex.ru Diagnostic-Code: SMTP; 554 5.7.1 Content-Policy reject msg: Message rejected under suspicion of spam.; S9814229AbYJVMtC Last-Attempt-Date: Wed, 22 Oct 2008 16:49:48 +0400 (MSD) --m9MCnqgH007527.1224679792/dialup.phys.msu.ru Content-Type: message/rfc822 Return-Path: Received: from p549D8A0F.dip0.t-ipconnect.de (p549D8A0F.dip0.t-ipconnect.de [84.157.138.15]) by dialup.phys.msu.ru (8.13.1/8.13.1) with ESMTP id m9MCnggH007453 for ; Wed, 22 Oct 2008 16:49:47 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000601c93444$01f18147$5334f18f@teytpdbs> From: =?koi8-r?B?8drZy8/Xz8og48XO1NI=?= To: Subject: =?koi8-r?B?98HWzs8h?= Date: Wed, 22 Oct 2008 11:01:31 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C93444.01EF7B04" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0003_01C93444.01EF7B04 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3= =C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB =F7=C1=CD =CE=C5=CF= =C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7= =CF =D1=DA=D9=CB=C1,=CE=CF =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE= =C9 =C4=CC=D1 =C5=C7=CF =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4= =C5 =CB =CE=C1=CD, =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0= =D0=D9 =D7 =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1! =F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4=D8 =D7=D3= =C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 =D0=CF=D2=D4= =D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1=CE=C7=CC=C9= =CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3=D0=C1=CE=D3= =CB=CF=C7=CF, =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2= =C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF! =F4=C5=CC =D7 =ED=CF=D3=CB=D7=C5: 6505150,9790754 =FA=C1=CE=D1=D4=C9=D1 =D7 =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9= =D7=CE=CF =C9 =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5= =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 =DA= =C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 =C6=D2=C1=CE=C3=D5=DA=D3=CB= =CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE= =C5=D2=CE=C5=C5. =FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1! =20=20=20 ------=_NextPart_000_0003_01C93444.01EF7B04 Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF= =C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3=C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF= =CD,=CB=C1=CB =F7=C1=CD =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF =D3=CF=D7=D3=C5= =CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF =C9=DA=D5=DE=C5=CE= =C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, =CD=D9 =D0=CF=C4=C2=C5= =D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5= =CD=D1!

=F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4= =D8 =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF= =C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1=CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4= =C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3=D0=C1=CE=D3=CB=CF=C7=CF, =D1=D0=CF=CE= =D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7= =CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF!

=F4=C5=CC =D7 =ED=CF= =D3=CB=D7=C5: 6505150,9790754

=FA=C1=CE=D1=D4=C9=D1 =D7 =C7=D2=D5=D0= =D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 =C9=CE=C4=C9=D7=C9=C4=D5= =C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB= =CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5= =D0=D0=C5 =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5= =CD=D1 =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5.
=FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1!

------=_NextPart_000_0003_01C93444.01EF7B04-- --m9MCnqgH007527.1224679792/dialup.phys.msu.ru-- From owner-xfs@oss.sgi.com Wed Oct 22 05:49:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MCnPQr005795 for ; Wed, 22 Oct 2008 05:49:26 -0700 X-ASG-Debug-ID: 1224679869-0be503210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from aha.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2261052C813 for ; Wed, 22 Oct 2008 05:51:10 -0700 (PDT) Received: from aha.ru (backend21.aha.ru [62.113.86.210]) by cuda.sgi.com with ESMTP id KhbgdhwBLrqsPlRO for ; Wed, 22 Oct 2008 05:51:10 -0700 (PDT) X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?98HMwNTOz8Ug0sXH1czJ0s/Xwc7JxSDJIMvPztTSz8zYIDIwMDgtMg==?= =?koi8-r?B?MDA5?= Subject: Undeliverable mail: =?koi8-r?B?98HMwNTOz8Ug0sXH1czJ0s/Xwc7JxSDJIMvPztTSz8zYIDIwMDgtMg==?= =?koi8-r?B?MDA5?= From: To: Date: Wed, 22 Oct 2008 16:51:06 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===124855994====backend21.aha.ru===_" X-Barracuda-Connect: backend21.aha.ru[62.113.86.210] X-Barracuda-Start-Time: 1224679871 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5005 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.25 X-Barracuda-Spam-Status: No, SCORE=1.25 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_RULE7568M, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.50 BSF_RULE7568M Custom Rule 7568M 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===124855994====backend21.aha.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to 'logcekaiolajcihicecnb@tabe.ru' SMTP module(domain [85.21.214.82]) reports: host 85.21.214.82 says: 550 5.1.1 User unknown --_===124855994====backend21.aha.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; backend21.aha.ru Original-Recipient: rfc822; Final-Recipient: rfc822; Action: failed Status: 5.0.0 --_===124855994====backend21.aha.ru===_ Content-Type: text/rfc822-headers Received: from [62.113.100.55] (HELO fr55.aha.ru) by backend21.aha.ru (CommuniGate Pro SMTP 4.3.11) with ESMTP id 124855907 for logcekaiolajcihicecnb@tabe.ru; Wed, 22 Oct 2008 16:51:02 +0400 Received: from [116.75.109.102] (unknown [116.75.109.102]) by fr55.aha.ru (Postfix) with ESMTP id 3A32B2405 for ; Wed, 22 Oct 2008 16:50:51 +0400 (MSD) Message-ID: <000801c93444$04796983$20534592@bkigpa> From: =?koi8-r?B?9d7Fws7ZyiDjxc7U0g==?= To: Subject: =?koi8-r?B?98HMwNTOz8Ug0sXH1czJ0s/Xwc7JxSDJIMvPztTSz8zYIDIwMDgtMg==?= =?koi8-r?B?MDA5?= Date: Wed, 22 Oct 2008 11:03:02 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C93444.0475606A" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===124855994====backend21.aha.ru===_-- From owner-xfs@oss.sgi.com Wed Oct 22 05:50:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_50 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MCoP7V006101 for ; Wed, 22 Oct 2008 05:50:26 -0700 X-ASG-Debug-ID: 1224679929-4ff300400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ns.msu.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 6F10510C6A6B for ; Wed, 22 Oct 2008 05:52:10 -0700 (PDT) Received: from ns.msu.ru (ns.msu.ru [193.232.112.1]) by cuda.sgi.com with SMTP id HSI7Y1aqxaVrX5A3 for ; Wed, 22 Oct 2008 05:52:10 -0700 (PDT) Received: (qmail 3770 invoked for bounce); 22 Oct 2008 12:52:09 -0000 Date: 22 Oct 2008 12:52:09 -0000 From: MAILER-DAEMON@ns.internal.msu.ru To: xfs@oss.sgi.com X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: ns.msu.ru[193.232.112.1] X-Barracuda-Start-Time: 1224679931 Message-Id: <20081022125210.6F10510C6A6B@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.3004 1.0000 -0.3466 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.34 X-Barracuda-Spam-Status: No, SCORE=-0.34 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8479 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Hi. This is the qmail-send program at ns.internal.msu.ru. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : 212.192.224.252 does not like recipient. Remote host said: 550 5.1.1 ... Mailbox is not available. Giving up on 212.192.224.252. --- Below this line is a copy of the message. Return-Path: Received: (qmail 2418 invoked from network); 22 Oct 2008 12:52:01 -0000 Received: from 32.red-83-33-221.dynamicip.rima-tde.net (83.33.221.32) by ns.msu.ru with SMTP; 22 Oct 2008 12:52:01 -0000 Message-ID: <000801c93444$01634ac5$a05f1c86@yirmjy> From: =?koi8-r?B?8drZy8/Xz8og48XO1NI=?= To: Subject: =?koi8-r?B?98HWzs8h?= Date: Wed, 22 Oct 2008 11:04:16 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0005_01C93444.01629959" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0005_01C93444.01629959 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 = =D0=CF=D3=C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB = =F7=C1=CD =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF = =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF = =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, = =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 = =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1! =F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4=D8 = =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 = =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1= =CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3= =D0=C1=CE=D3=CB=CF=C7=CF, = =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA= =D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF! =F4=C5=CC =D7 =ED=CF=D3=CB=D7=C5: 6505150,9790754 =FA=C1=CE=D1=D4=C9=D1 =D7 = =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 = =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 = =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 = =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 = =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 = =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5. =FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1! =20 ------=_NextPart_000_0005_01C93444.01629959 Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=E5=D3=CC=C9 =F7=C1=D3 = =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3=C5=DD=C1=C5=D4 = =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB =F7=C1=CD = =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF = =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF = =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, = =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 = =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1!

=F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 = =C5=D3=D4=D8 =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 = =CF=D4 =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,= =C1=CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9= =D3=D0=C1=CE=D3=CB=CF=C7=CF, = =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA= =D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF!

=F4=C5=CC =D7 = =ED=CF=D3=CB=D7=C5: 6505150,9790754

=FA=C1=CE=D1=D4=C9=D1 =D7 = =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 = =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 = =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 = =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 = =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 = =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5.
=FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 = =C3=C5=CE=D1=D4=D3=D1!

------=_NextPart_000_0005_01C93444.01629959-- From owner-xfs@oss.sgi.com Wed Oct 22 05:57:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MCvAK9006842 for ; Wed, 22 Oct 2008 05:57:11 -0700 X-ASG-Debug-ID: 1224680333-6acc01390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay2.telekom.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 098151B64072 for ; Wed, 22 Oct 2008 05:58:54 -0700 (PDT) Received: from relay2.telekom.ru (relay2.telekom.ru [194.190.209.40]) by cuda.sgi.com with ESMTP id 5RMglwolidkE24s9 for ; Wed, 22 Oct 2008 05:58:54 -0700 (PDT) Received: from localhost (localhost) by relay2.telekom.ru (8.13.6/8.13.6) id m9MCwrBJ003318; Wed, 22 Oct 2008 16:58:53 +0400 Date: Wed, 22 Oct 2008 16:58:53 +0400 From: Mail Delivery Subsystem Message-Id: <200810221258.m9MCwrBJ003318@relay2.telekom.ru> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9MCwrBJ003318.1224680333/relay2.telekom.ru" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: relay2.telekom.ru[194.190.209.40] X-Barracuda-Start-Time: 1224680336 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4784 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message This is a MIME-encapsulated message --m9MCwrBJ003318.1224680333/relay2.telekom.ru The original message was received at Wed, 22 Oct 2008 16:58:51 +0400 from [78.162.10.141] ----- The following addresses had permanent fatal errors ----- (reason: 550 5.1.1 User unknown) ----- Transcript of session follows ----- ... while talking to mail.apatit.com.: >>> DATA <<< 550 5.1.1 User unknown 550 5.1.1 ... User unknown <<< 503 5.5.2 Need Rcpt command. --m9MCwrBJ003318.1224680333/relay2.telekom.ru Content-Type: message/delivery-status Reporting-MTA: dns; relay2.telekom.ru Received-From-MTA: DNS; [78.162.10.141] Arrival-Date: Wed, 22 Oct 2008 16:58:51 +0400 Final-Recipient: RFC822; ashevelev@apatit.com Action: failed Status: 5.1.1 Remote-MTA: DNS; mail.apatit.com Diagnostic-Code: SMTP; 550 5.1.1 User unknown Last-Attempt-Date: Wed, 22 Oct 2008 16:58:53 +0400 --m9MCwrBJ003318.1224680333/relay2.telekom.ru Content-Type: message/rfc822 Return-Path: Received: from [78.162.10.141] ([78.162.10.141]) by relay2.telekom.ru (8.13.6/8.13.6) with ESMTP id m9MCwoBJ003279 for ; Wed, 22 Oct 2008 16:58:51 +0400 Message-ID: <000901c93445$055c276b$680622b1@jamjlpw> From: =?koi8-r?B?8drZy8/Xz8og48XO1NI=?= To: Subject: =?koi8-r?B?98HWzs8h?= Date: Wed, 22 Oct 2008 11:10:58 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0006_01C93445.0557EA00" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0006_01C93445.0557EA00 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3= =C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB =F7=C1=CD =CE=C5=CF= =C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7= =CF =D1=DA=D9=CB=C1,=CE=CF =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE= =C9 =C4=CC=D1 =C5=C7=CF =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4= =C5 =CB =CE=C1=CD, =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0= =D0=D9 =D7 =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1! =F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4=D8 =D7=D3= =C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 =D0=CF=D2=D4= =D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1=CE=C7=CC=C9= =CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3=D0=C1=CE=D3= =CB=CF=C7=CF, =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2= =C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF! =F4=C5=CC =D7 =ED=CF=D3=CB=D7=C5: 6505150,9790754 =FA=C1=CE=D1=D4=C9=D1 =D7 =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9= =D7=CE=CF =C9 =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5= =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 =DA= =C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 =C6=D2=C1=CE=C3=D5=DA=D3=CB= =CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE= =C5=D2=CE=C5=C5. =FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1! =20=20=20 ------=_NextPart_000_0006_01C93445.0557EA00 Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF= =C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3=C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF= =CD,=CB=C1=CB =F7=C1=CD =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF =D3=CF=D7=D3=C5= =CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF =C9=DA=D5=DE=C5=CE= =C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, =CD=D9 =D0=CF=C4=C2=C5= =D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5= =CD=D1!

=F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4= =D8 =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF= =C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1=CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4= =C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3=D0=C1=CE=D3=CB=CF=C7=CF, =D1=D0=CF=CE= =D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7= =CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF!

=F4=C5=CC =D7 =ED=CF= =D3=CB=D7=C5: 6505150,9790754

=FA=C1=CE=D1=D4=C9=D1 =D7 =C7=D2=D5=D0= =D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 =C9=CE=C4=C9=D7=C9=C4=D5= =C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB= =CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5= =D0=D0=C5 =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5= =CD=D1 =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5.
=FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1!

------=_NextPart_000_0006_01C93445.0557EA00-- --m9MCwrBJ003318.1224680333/relay2.telekom.ru-- From owner-xfs@oss.sgi.com Wed Oct 22 06:02:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, MIME_8BIT_HEADER autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MD24pU007353 for ; Wed, 22 Oct 2008 06:02:04 -0700 X-ASG-Debug-ID: 1224680629-5233005e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rfn.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CC6652CB0E for ; Wed, 22 Oct 2008 06:03:49 -0700 (PDT) Received: from rfn.ru (nut.rfn.ru [80.247.32.131]) by cuda.sgi.com with ESMTP id mRFqJO038VWPvCWb for ; Wed, 22 Oct 2008 06:03:49 -0700 (PDT) X-Virus-Scanned: by cgpav at rfn.ru X-ASG-Orig-Subj: Undeliverable mail: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= Subject: Undeliverable mail: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= From: To: Date: Wed, 22 Oct 2008 17:03:47 +0400 Message-ID: X-MAPI-Message-Class: REPORT.IPM.Note.NDR MIME-Version: 1.0 Content-Type: multipart/report; report-type="delivery-status"; boundary="_===160814408====rfn.ru===_" X-Barracuda-Connect: nut.rfn.ru[80.247.32.131] X-Barracuda-Start-Time: 1224680630 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5011 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_===160814408====rfn.ru===_ Content-Type: text/plain; charset="utf-8" Failed to deliver to '' SMTP module(domain @80.247.32.131:[80.247.46.52]) reports: host 80.247.46.52 says: 550 5.1.1 ... User unknown --_===160814408====rfn.ru===_ Content-Type: message/delivery-status Reporting-MTA: dns; rfn.ru Original-Recipient: rfc822; Final-Recipient: rfc822; Action: failed Status: 5.0.0 --_===160814408====rfn.ru===_ Content-Type: text/rfc822-headers Received: from host151-252-dynamic.20-87-r.retail.telecomitalia.it ([87.20.252.151] verified) by rfn.ru (CommuniGate Pro SMTP 4.2.8) with ESMTP id 160814072 for rt-428@rt.rfn.ru; Wed, 22 Oct 2008 17:03:45 +0400 Received-SPF: none receiver=rfn.ru; client-ip=87.20.252.151; envelope-from=xfs@oss.sgi.com Message-ID: <000601c93446$05a9ba27$59555eae@vhhmfrbm> From: "gideon arvandus" To: Subject: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= Date: Wed, 22 Oct 2008 11:16:16 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C93446.05A3CC8E" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --_===160814408====rfn.ru===_-- From owner-xfs@oss.sgi.com Wed Oct 22 06:06:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MD6Lfb007729 for ; Wed, 22 Oct 2008 06:06:21 -0700 X-ASG-Debug-ID: 1224680885-5717004d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from orientnet.ru (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 0465052CB76 for ; Wed, 22 Oct 2008 06:08:06 -0700 (PDT) Received: from orientnet.ru (mail.orientnet.ru [88.210.51.133]) by cuda.sgi.com with SMTP id BwUYbhuwblcxgGt4 for ; Wed, 22 Oct 2008 06:08:06 -0700 (PDT) Received: (qmail 78748 invoked for bounce); 22 Oct 2008 17:08:00 +0400 Date: 22 Oct 2008 17:08:00 +0400 From: MAILER-DAEMON@orientnet.ru To: xfs@oss.sgi.com X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: mail.orientnet.ru[88.210.51.133] X-Barracuda-Start-Time: 1224680887 Message-Id: <20081022130806.0465052CB76@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.4716 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8480 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Hi. This is the qmail-send program at orientnet.ru. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : user is over quota --- Below this line is a copy of the message. Return-Path: Received: (qmail 10126 invoked by uid 89); 22 Oct 2008 16:49:40 +0400 Received: from unknown (HELO ?123.165.7.198?) (123.165.7.198) by 0 with SMTP; 22 Oct 2008 16:49:40 +0400 Message-ID: <000a01c93444$01a3a444$d9e5acb7@todyfiw> From: =?koi8-r?B?8drZy8/Xz8og48XO1NI=?= To: Subject: =?koi8-r?B?98HWzs8h?= Date: Wed, 22 Oct 2008 11:02:16 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C93444.01A05B2D" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C93444.01A05B2D Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =E5=D3=CC=C9 =F7=C1=D3 =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 = =D0=CF=D3=C5=DD=C1=C5=D4 =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB = =F7=C1=CD =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF = =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF = =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, = =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 = =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1! =F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 =C5=D3=D4=D8 = =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 =CF=D4 = =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,=C1= =CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9=D3= =D0=C1=CE=D3=CB=CF=C7=CF, = =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA= =D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF! =F4=C5=CC =D7 =ED=CF=D3=CB=D7=C5: 6505150,9790754 =FA=C1=CE=D1=D4=C9=D1 =D7 = =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 = =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 = =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 = =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 = =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 = =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5. =FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 =C3=C5=CE=D1=D4=D3=D1! =20 ------=_NextPart_000_0007_01C93444.01A05B2D Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=E5=D3=CC=C9 =F7=C1=D3 = =D0=C5=D2=C9=CF=C4=C9=DE=C5=D3=CB=C9 =D0=CF=D3=C5=DD=C1=C5=D4 = =CD=D9=D3=CC=D8 =CF =D4=CF=CD,=CB=C1=CB =F7=C1=CD = =CE=C5=CF=C2=C8=CF=C4=C9=CD=D9 =DA=CE=C1=CE=C9=D1 = =C9=CE=CF=D3=D4=D2=C1=CE=CE=CF=C7=CF =D1=DA=D9=CB=C1,=CE=CF = =D3=CF=D7=D3=C5=CD =CE=C5=D4 =D7=D2=C5=CD=C5=CE=C9 =C4=CC=D1 =C5=C7=CF = =C9=DA=D5=DE=C5=CE=C9=D1, =D0=D2=C9=C8=CF=C4=C9=D4=C5 =CB =CE=C1=CD, = =CD=D9 =D0=CF=C4=C2=C5=D2=A3=CD =F7=C1=CD =C7=D2=D5=D0=D0=D9 =D7 = =D5=C4=CF=C2=CE=CF=C5 =D7=D2=C5=CD=D1!

=F7 =C3=C5=CE=D4=D2=C1=CC=D8=CE=CF=CA =DB=CB=CF=CC=C5 = =C5=D3=D4=D8 =D7=D3=C5 =C9=CE=CF=D3=D4=D2=C1=CE=CE=D9=C5 =D1=DA=D9=CB=C9 = =CF=D4 =D0=CF=D2=D4=D5=C7=C1=CC=D8=D3=CB=CF=C7=CF,=CE=C5=CD=C5=C3=CB=CF=C7=CF,= =C1=CE=C7=CC=C9=CA=D3=CB=CF=C7=CF,=C9=D4=C1=CC=D8=D1=CE=D3=CB=CF=C7=CF,=C9= =D3=D0=C1=CE=D3=CB=CF=C7=CF, = =D1=D0=CF=CE=D3=CB=CF=C7=CF,=DE=C5=DB=D3=CB=CF=C7=CF,=C6=D2=C1=CE=C3=D5=DA= =D3=CB=CF=C7=CF =C4=CF =D2=D5=D3=D3=CB=CF=C7=CF!

=F4=C5=CC =D7 = =ED=CF=D3=CB=D7=C5: 6505150,9790754

=FA=C1=CE=D1=D4=C9=D1 =D7 = =C7=D2=D5=D0=D0=C1=C8,=CB=CF=D2=D0=CF=D2=C1=D4=C9=D7=CE=CF =C9 = =C9=CE=C4=C9=D7=C9=C4=D5=C1=CC=D8=CE=CF.=E7=CF=D2=D1=DD=C9=C5 = =CD=C5=D3=D4=C1 =D0=CF =CE=C9=DA=CB=CF=CA =C3=C5=CE=C5 5000=D2=D5=C2 = =DA=C1 6=CE=C5=C4=C5=CC=D8 =D7 =C7=D2=D5=D0=D0=C5 = =C6=D2=C1=CE=C3=D5=DA=D3=CB=CF=C7=CF =D3 =CE=D5=CC=D1,=D7=D2=C5=CD=D1 = =DA=C1=CE=D1=D4=C9=CA =D7=C5=DE=C5=D2=CE=C5=C5.
=FA=CE=C1=CE=C9=D1 =D7=D3=C5=C7=C4=C1 = =C3=C5=CE=D1=D4=D3=D1!

------=_NextPart_000_0007_01C93444.01A05B2D-- From owner-xfs@oss.sgi.com Wed Oct 22 06:39:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MDdoYt010032 for ; Wed, 22 Oct 2008 06:39:50 -0700 X-ASG-Debug-ID: 1224682895-218000670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sargon.lncsa.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E03061B648F2 for ; Wed, 22 Oct 2008 06:41:35 -0700 (PDT) Received: from sargon.lncsa.com (sargon.lncsa.com [212.99.8.251]) by cuda.sgi.com with ESMTP id 13mJrh1NZiIQ6Geq for ; Wed, 22 Oct 2008 06:41:35 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by sargon.lncsa.com (Postfix) with ESMTP id ED5283015C1C for ; Wed, 22 Oct 2008 15:41:33 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at lncsa.com Received: from sargon.lncsa.com ([127.0.0.1]) by localhost (sargon.lncsa.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rtuax116gtKb for ; Wed, 22 Oct 2008 15:41:33 +0200 (CEST) Received: from [192.168.0.31] (donald.lncsa.com [192.168.0.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by sargon.lncsa.com (Postfix) with ESMTP id 839EB3015C1A for ; Wed, 22 Oct 2008 15:41:33 +0200 (CEST) Message-ID: <48FF2D8D.8040305@lncsa.com> Date: Wed, 22 Oct 2008 15:41:33 +0200 From: Laurent CARON User-Agent: Mozilla-Thunderbird 2.0.0.17 (X11/20081018) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: SPAM comming through xfs mailing list Subject: SPAM comming through xfs mailing list Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sargon.lncsa.com[212.99.8.251] X-Barracuda-Start-Time: 1224682895 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0177 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8482 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, I'm receiving lots of spam through xfs mailing list. Is it possible to only accept messages from subscribers or at least not broadcast messages from 'Mailer-Daemon' ? Thanks Laurent From owner-xfs@oss.sgi.com Wed Oct 22 08:04:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MF4TkF016224 for ; Wed, 22 Oct 2008 08:04:30 -0700 X-ASG-Debug-ID: 1224687974-748301be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from saeurebad.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BB6510C887E for ; Wed, 22 Oct 2008 08:06:14 -0700 (PDT) Received: from saeurebad.de (saeurebad.de [85.214.36.134]) by cuda.sgi.com with ESMTP id vJk4IKDW9fiqYeAV for ; Wed, 22 Oct 2008 08:06:14 -0700 (PDT) Received: by saeurebad.de (Postfix, from userid 107) id 5FC3F4A000A; Wed, 22 Oct 2008 17:06:12 +0200 (CEST) Received: from localhost (83-221-70-228.dynamic.primacom.net [83.221.70.228]) by saeurebad.de (Postfix) with ESMTP id D7D854A0008; Wed, 22 Oct 2008 17:06:11 +0200 (CEST) From: Johannes Weiner To: Alexander Beregalov Cc: lachlan@sgi.com, Christoph Hellwig , Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? References: <20081017165738.GA20818@infradead.org> <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> <20081022082550.GM18495@disturbed> Date: Wed, 22 Oct 2008 17:06:02 +0200 In-Reply-To: <20081022082550.GM18495@disturbed> (Dave Chinner's message of "Wed, 22 Oct 2008 19:25:50 +1100") Message-ID: <87y70gk6ud.fsf@saeurebad.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.3 X-Barracuda-Connect: saeurebad.de[85.214.36.134] X-Barracuda-Start-Time: 1224687976 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8489 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M Dave Chinner writes: > On Wed, Oct 22, 2008 at 06:58:38PM +1100, Dave Chinner wrote: >> On Tue, Oct 21, 2008 at 03:42:16PM +0400, Alexander Beregalov wrote: >> > Bisected to: >> > dd509097cb0b76d3836385f80d6b2d6fd3b97757 is first bad commit >> > commit dd509097cb0b76d3836385f80d6b2d6fd3b97757 >> > Author: Lachlan McIlroy >> > Date: Mon Sep 29 14:56:40 2008 +1000 >> > >> > [XFS] Unlock inode before calling xfs_idestroy() >> > >> > Lock debugging reported the ilock was being destroyed without being >> > unlocked. We don't need to lock the inode until we are going to insert it >> > into the radix tree. >> >> Ah, OK, I see the problem, though I don't understand why I'm not >> seeing the might_sleep() triggering all the time given that I always >> build with: >> >> $ grep SLEEP .config >> CONFIG_DEBUG_SPINLOCK_SLEEP=y >> >> Basically the above commit moved xfs_ilock() inside >> radix_tree_preload()/radix_tree_preload_end(), which means we are >> taking a rwsem() while we have an elevated preempt count. I'll >> get a patch out to fix it. > > Patch below (against the xfs master/linux-next branch) should fix the > regression. I've just started QA on it. Can you please check that > it works for you, Alexander? Ran into the same problem, the fix worked for me. Thank you. Hannes From owner-xfs@oss.sgi.com Wed Oct 22 09:26:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MGQlmK027031 for ; Wed, 22 Oct 2008 09:26:47 -0700 X-ASG-Debug-ID: 1224692912-74a802eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 49ED410C9370 for ; Wed, 22 Oct 2008 09:28:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id oWVQ7jZQpHCITCeI for ; Wed, 22 Oct 2008 09:28:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsgZT-0002Mu-Sh for xfs@oss.sgi.com; Wed, 22 Oct 2008 16:28:31 +0000 Date: Wed, 22 Oct 2008 12:28:31 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] free inodes using destroy_inode Subject: Re: [PATCH 3/3] free inodes using destroy_inode Message-ID: <20081022162831.GA25556@infradead.org> References: <20081020222044.GC23662@lst.de> <20081021030726.GD18495@disturbed> <20081021090708.GA30463@infradead.org> <20081021210633.GM25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081021210633.GM25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224692913 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8493 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Wed, Oct 22, 2008 at 08:06:33AM +1100, Dave Chinner wrote: > Hmmmm - I still don't see that as possible. We don't set I_NEW until > we are inside xfs_setup_inode(), which occurs after we insert > the inode into the radix tree. xfs_setup_inode() also calls > unlock_new_inode(), so the I_NEW flag is cleared before it returns, > too. So I can't really see how this check in reclaim does anything.... > > AFAICT, once we've inserted the new inode into the radix tree, > we can't get an error before xfs_setup_inode() is called - even > in the allocation case. Hence once we're in the radix tree, > xfs_iput_new() should be called to cleanup. > > All the cases that xfs_destroy_inode() handles are before the inode > is inserted into the radix tree, so marking the XFS inode XFS_IBAD > in xfs_destroy_inode() is probably a much more reliable way to > detect immediate destroy cases in the reclaim code than relying > on I_NEW...... I've put in some instrumentation and we indeed newer hit the I_NEW case. I also can't reproduce the problems I saw before anymore - in fact calling radix_tree_remove on an inode is explicitly fine per documentation and does work. I'll send a reworked patch that just uses make_inode_bad as this has passed xfsqa a few times now. I've also removed patch 2 for now a it's not a bug fix an I'll put it into my later series that cleans up a lot of mess in that area. From owner-xfs@oss.sgi.com Wed Oct 22 09:28:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MGSn9P027270 for ; Wed, 22 Oct 2008 09:28:49 -0700 X-ASG-Debug-ID: 1224693034-742a02cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CE5510C9745 for ; Wed, 22 Oct 2008 09:30:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id dAKx2DxJQOyUKmUZ for ; Wed, 22 Oct 2008 09:30:34 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsgbS-0006dW-Hm for xfs@oss.sgi.com; Wed, 22 Oct 2008 16:30:34 +0000 Date: Wed, 22 Oct 2008 12:30:34 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] stop using xfs_itobp in xfs_bulkstat Subject: [PATCH 1/2] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081022163034.GB25556@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224693035 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8493 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_bulkstat only wants the dinode, offset and buffer from a given inode number. Instead of using xfs_itobp on a fake inode which is complicated and currently leads to leaks of the security data just use xfs_inotobp which is designed to do exactly the kind of lookup xfs_bulkstat wants. The only thing that's missing in xfs_inotobp is a flags paramter that let's us pass down XFS_IMAP_BULKSTAT, but that can easily added. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-21 09:28:16.000000000 +0200 @@ -222,25 +222,26 @@ xfs_imap_to_bp( * Use xfs_imap() to determine the size and location of the * buffer to read from disk. */ -STATIC int +int xfs_inotobp( xfs_mount_t *mp, xfs_trans_t *tp, xfs_ino_t ino, xfs_dinode_t **dipp, xfs_buf_t **bpp, - int *offset) + int *offset, + uint imap_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); if (error) return error; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, 0); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); if (error) return error; @@ -792,7 +793,7 @@ xfs_dic2xflags( /* * Allocate and initialise an xfs_inode. */ -struct xfs_inode * +STATIC struct xfs_inode * xfs_inode_alloc( struct xfs_mount *mp, xfs_ino_t ino) @@ -2046,7 +2047,7 @@ xfs_iunlink_remove( } next_ino = XFS_AGINO_TO_INO(mp, agno, next_agino); error = xfs_inotobp(mp, tp, next_ino, &last_dip, - &last_ibp, &last_offset); + &last_ibp, &last_offset, 0); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_inotobp() returned an error %d on %s. Returning error.", Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 09:28:03.000000000 +0200 @@ -158,7 +158,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -514,7 +514,6 @@ int xfs_itruncate_finish(struct xfs_tra xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); -struct xfs_inode * xfs_inode_alloc(struct xfs_mount *, xfs_ino_t); void xfs_idestroy(xfs_inode_t *); void xfs_iextract(xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); @@ -531,6 +530,9 @@ void xfs_mark_inode_dirty_sync(xfs_inod #endif /* __KERNEL__ */ +int xfs_inotobp(struct xfs_mount *, struct xfs_trans *, + xfs_ino_t, struct xfs_dinode **, + struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); Index: xfs-2.6/fs/xfs/xfs_itable.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_itable.c 2008-10-20 23:49:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_itable.c 2008-10-20 23:49:34.000000000 +0200 @@ -359,7 +359,6 @@ xfs_bulkstat( int ubused; /* bytes used by formatter */ xfs_buf_t *bp; /* ptr to on-disk inode cluster buf */ xfs_dinode_t *dip; /* ptr into bp for specific inode */ - xfs_inode_t *ip; /* ptr to in-core inode struct */ /* * Get the last inode value, see if there's nothing to do. @@ -585,6 +584,8 @@ xfs_bulkstat( if (flags & (BULKSTAT_FG_QUICK | BULKSTAT_FG_INLINE)) { + int offset; + ino = XFS_AGINO_TO_INO(mp, agno, agino); bno = XFS_AGB_TO_DADDR(mp, agno, @@ -595,19 +596,13 @@ xfs_bulkstat( */ if (bp) xfs_buf_relse(bp); - ip = xfs_inode_alloc(mp, ino); - if (!ip) { - bp = NULL; - rval = ENOMEM; - break; - } - error = xfs_itobp(mp, NULL, ip, - &dip, &bp, bno, - XFS_IMAP_BULKSTAT, - XFS_BUF_LOCK); + + error = xfs_inotobp(mp, NULL, ino, &dip, + &bp, &offset, + XFS_IMAP_BULKSTAT); + if (!error) - clustidx = ip->i_boffset / mp->m_sb.sb_inodesize; - xfs_idestroy(ip); + clustidx = offset / mp->m_sb.sb_inodesize; if (XFS_TEST_ERROR(error != 0, mp, XFS_ERRTAG_BULKSTAT_READ_CHUNK, XFS_RANDOM_BULKSTAT_READ_CHUNK)) { From owner-xfs@oss.sgi.com Wed Oct 22 09:29:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MGTiYl027562 for ; Wed, 22 Oct 2008 09:29:44 -0700 X-ASG-Debug-ID: 1224693089-74b602f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 14A8510C97BA for ; Wed, 22 Oct 2008 09:31:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id aMyFgyB2T1COXOfs for ; Wed, 22 Oct 2008 09:31:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KsgcL-0000Lu-Dm for xfs@oss.sgi.com; Wed, 22 Oct 2008 16:31:29 +0000 Date: Wed, 22 Oct 2008 12:31:29 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] free partially initialized inodes using destroy_inode Subject: [PATCH 2/2] free partially initialized inodes using destroy_inode Message-ID: <20081022163129.GC25556@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224693090 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8493 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words To make sure we free the security data inodes need to be freed using the proper VFS helper (which we also need to export for this). We mark these inodes bad so we can skip the flush path for them. Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/inode.c =================================================================== --- xfs-2.6.orig/fs/inode.c 2008-10-22 17:57:30.000000000 +0200 +++ xfs-2.6/fs/inode.c 2008-10-22 17:58:22.000000000 +0200 @@ -212,6 +212,7 @@ void destroy_inode(struct inode *inode) else kmem_cache_free(inode_cachep, (inode)); } +EXPORT_SYMBOL(destroy_inode); /* Index: xfs-2.6/fs/xfs/xfs_iget.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_iget.c 2008-10-22 17:57:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_iget.c 2008-10-22 17:58:22.000000000 +0200 @@ -201,7 +201,7 @@ out_unlock: if (lock_flags) xfs_iunlock(ip, lock_flags); out_destroy: - xfs_idestroy(ip); + xfs_destroy_inode(ip); return error; } Index: xfs-2.6/fs/xfs/xfs_inode.c =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.c 2008-10-22 17:57:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.c 2008-10-22 17:58:22.000000000 +0200 @@ -898,18 +898,14 @@ xfs_iread( * know that this is a new incore inode. */ error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); - if (error) { - xfs_idestroy(ip); - return error; - } + if (error) + goto out_destroy_inode; /* * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "dip->di_core.di_magic (0x%x) != " @@ -917,7 +913,8 @@ xfs_iread( be16_to_cpu(dip->di_core.di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ - return XFS_ERROR(EINVAL); + error = XFS_ERROR(EINVAL); + goto out_brelse; } /* @@ -931,14 +928,12 @@ xfs_iread( xfs_dinode_from_disk(&ip->i_d, &dip->di_core); error = xfs_iformat(ip, dip); if (error) { - xfs_idestroy(ip); - xfs_trans_brelse(tp, bp); #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " "xfs_iformat() returned error %d", error); #endif /* DEBUG */ - return error; + goto out_brelse; } } else { ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); @@ -1004,6 +999,12 @@ xfs_iread( xfs_trans_brelse(tp, bp); *ipp = ip; return 0; + + out_brelse: + xfs_trans_brelse(tp, bp); + out_destroy_inode: + xfs_destroy_inode(ip); + return error; } /* Index: xfs-2.6/fs/xfs/xfs_inode.h =================================================================== --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-22 17:57:30.000000000 +0200 +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-22 18:00:15.000000000 +0200 @@ -310,6 +310,23 @@ static inline struct inode *VFS_I(struct } /* + * Get rid of a partially initialized inode. + * + * We have to go through destroy_inode to make sure allocations + * from init_inode_always like the security data are undone. + * + * We mark the inode dirty so that it takes the short cut in + * the reclaim path instead of going through the flush path + * which doesn't make sense for an inode that has never seen the + * light of day. + */ +static inline void xfs_destroy_inode(struct xfs_inode *ip) +{ + make_bad_inode(VFS_I(ip)); + return destroy_inode(VFS_I(ip)); +} + +/* * i_flags helper functions */ static inline void From owner-xfs@oss.sgi.com Wed Oct 22 10:38:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MHcgZT031247 for ; Wed, 22 Oct 2008 10:38:43 -0700 X-ASG-Debug-ID: 1224697227-2be3010b0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hs-out-0708.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A86751ED96 for ; Wed, 22 Oct 2008 10:40:27 -0700 (PDT) Received: from hs-out-0708.google.com (hs-out-0708.google.com [64.233.178.246]) by cuda.sgi.com with ESMTP id pchyPg9Gx7AEUeRo for ; Wed, 22 Oct 2008 10:40:27 -0700 (PDT) Received: by hs-out-0708.google.com with SMTP id n78so1222826hsc.4 for ; Wed, 22 Oct 2008 10:40:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type:content-transfer-encoding :content-disposition; bh=vrrd21RkZm6YgGC8g476/bnQPkyN8V/AUydfX7pnc+I=; b=HZ8/M22fdqQ+Lpm1JkARMOG+UQKZQS+WGPXFV6Z6M11VOgxnIFIzS0HyKx6ssMNDZ0 8r9wvixrDjJQkF4PtPfN5sJ2vL6UgBNnVUP0WHhbHO/cvXxUCJ8KFwwORMIepUSL6P1k RwgHfQ3PBAbZX/f3rm8ThZBB317DJbtAuzKxs= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type :content-transfer-encoding:content-disposition; b=NsN/BA9zevIoISd2VowNET+fh9jz4H6ZpY04KH3jGcpvLss5QslZE+AfgKOkz0SRvF AyplOxCGgqlnZoeh4CmcWLHi3I9CpHO0h7EWjKnm88ah9PBKHagrAaWRv4/ZDhEoVVz0 nbYsPRSJBoGx1qGGxJAWAzxgV+EahCbcoqxp4= Received: by 10.100.142.19 with SMTP id p19mr5746014and.61.1224697226555; Wed, 22 Oct 2008 10:40:26 -0700 (PDT) Received: by 10.100.141.5 with HTTP; Wed, 22 Oct 2008 10:40:26 -0700 (PDT) Message-ID: <5d96567b0810221040m17d73871iff00d56bf07479c2@mail.gmail.com> Date: Wed, 22 Oct 2008 19:40:26 +0200 From: Raz To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: does XFS supports hole punching ? Subject: does XFS supports hole punching ? MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Barracuda-Connect: hs-out-0708.google.com[64.233.178.246] X-Barracuda-Start-Time: 1224697228 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2465 1.0000 -0.5920 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.59 X-Barracuda-Spam-Status: No, SCORE=-0.59 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8498 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I want to punch a hole in an exiting file. thank you raz From owner-xfs@oss.sgi.com Wed Oct 22 10:56:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MHuAVx032385 for ; Wed, 22 Oct 2008 10:56:11 -0700 X-ASG-Debug-ID: 1224698275-71d001c50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 050A910CFF53 for ; Wed, 22 Oct 2008 10:57:56 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id UNLL0VDcHGn4VSIm for ; Wed, 22 Oct 2008 10:57:56 -0700 (PDT) Received: from funky.thebarn.com (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m9MHNoDB033895; Wed, 22 Oct 2008 12:23:51 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <48FF61A5.4020205@thebarn.com> Date: Wed, 22 Oct 2008 12:23:49 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Laurent CARON CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: SPAM comming through xfs mailing list Subject: Re: SPAM comming through xfs mailing list References: <48FF2D8D.8040305@lncsa.com> In-Reply-To: <48FF2D8D.8040305@lncsa.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8470/Wed Oct 22 10:13:42 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1224698277 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4237 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8499 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Laurent CARON wrote: > Hi, > > I'm receiving lots of spam through xfs mailing list. I'm looking into it. > > Is it possible to only accept messages from subscribers ya that option gets rejected each time it comes up, most list people find it to restricting and is an issue for people that do not post from the same email they subscribe with. > or at least not broadcast messages from 'Mailer-Daemon' ? This is clever spam to look like bounce email. > > Thanks > > Laurent > From owner-xfs@oss.sgi.com Wed Oct 22 11:45:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.3.0-r574664 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MIjFdO002822 for ; Wed, 22 Oct 2008 11:45:17 -0700 X-ASG-Debug-ID: 1224701218-71d303ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ninsei.hu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D03C810D04C6 for ; Wed, 22 Oct 2008 11:46:58 -0700 (PDT) Received: from ninsei.hu (ninsei.hu [212.92.23.158]) by cuda.sgi.com with ESMTP id ZekjUvkL9CIqZs76 for ; Wed, 22 Oct 2008 11:46:58 -0700 (PDT) Received: from kyra (pb-d-128-141-48-108.cern.ch [128.141.48.108]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by chatsubo.ninsei.hu (Postfix) with ESMTP id A03B97833 for ; Wed, 22 Oct 2008 20:46:53 +0200 (CEST) Received: by kyra (Postfix, from userid 114) id C5036204A1BD; Wed, 22 Oct 2008 20:46:31 +0200 (CEST) Received: by kyra (Postfix, from userid 32266) id 76575204A352; Wed, 22 Oct 2008 20:36:36 +0200 (CEST) Date: Wed, 22 Oct 2008 20:36:36 +0200 From: KELEMEN Peter To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs_repair: print superblock offsets and denial reasons Subject: [PATCH] xfs_repair: print superblock offsets and denial reasons Message-ID: <20081022183636.GE20550@kyra> Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Errors-To: Peter.Kelemen@free.fr Organization: CERN European Laboratory for Particle Physics, Switzerland X-GPG-KeyID: 1024D/9FF0CABE 2004-04-03 X-GPG-Fingerprint: 6C9E 5917 3B06 E4EE 6356 7BF0 8F3E CAB6 9FF0 CABE X-Comment: Personal opinion. Paragraphs might have been reformatted. X-Copyright: Forwarding or publishing without permission is prohibited. X-Accept-Language: hu,en User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Barracuda-Connect: ninsei.hu[212.92.23.158] X-Barracuda-Start-Time: 1224701220 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Example output (without the scanning dots): Phase 1 - find and verify superblock. bad primary superblock - bad magic number !!! attempting to find secondary superblock... found candidate secondary superblock... offset: 62498275328 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 156246212608 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 249994149888 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 343742087168 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 437490024448 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 531237961728 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 624985899008 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 718733836288 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 812481773568 reason: 16 unable to verify superblock, continuing... found candidate secondary superblock... offset: 906229710848 reason: 16 unable to verify superblock, continuing... Sorry, could not find valid secondary superblock Exiting now. Signed-off-by: KELEMEN Peter Index: xfsprogs/repair/sb.c =================================================================== RCS file: /cvs/xfs-cmds/xfsprogs/repair/sb.c,v retrieving revision 1.22 diff -u -r1.22 sb.c --- xfsprogs/repair/sb.c 8 Sep 2008 06:18:43 -0000 1.22 +++ xfsprogs/repair/sb.c 22 Oct 2008 18:13:26 -0000 @@ -96,6 +96,7 @@ int dirty; int retval; int bsize; + int reason; /* why sb cannot be verified */ do_warn(_("\nattempting to find secondary superblock...\n")); @@ -140,6 +141,7 @@ continue; do_warn(_("found candidate secondary superblock...\n")); + do_warn("offset: %Lu\n", off); /* * found one. now verify it by looking @@ -149,12 +151,13 @@ rsb->sb_inprogress = 0; clear_sunit = 1; - if (verify_set_primary_sb(rsb, 0, &dirty) == XR_OK) { + if ((reason = verify_set_primary_sb(rsb, 0, &dirty)) == XR_OK) { do_warn( _("verified secondary superblock...\n")); done = 1; retval = 1; } else { + do_warn("reason: %d\n", reason); do_warn( _("unable to verify superblock, continuing...\n")); } From owner-xfs@oss.sgi.com Wed Oct 22 14:08:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9ML8nUN020197 for ; Wed, 22 Oct 2008 14:08:49 -0700 X-ASG-Debug-ID: 1224709831-458301400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 182331216714 for ; Wed, 22 Oct 2008 14:10:32 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id QM45hcLP3HI8uC94 for ; Wed, 22 Oct 2008 14:10:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216162427" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 07:40:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KskyK-0002qp-Js; Thu, 23 Oct 2008 08:10:28 +1100 Date: Thu, 23 Oct 2008 08:10:28 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Alexander Beregalov , lachlan@sgi.com, Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML X-ASG-Orig-Subj: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Subject: Re: BUG: sleeping function called from invalid context at kernel/rwsem.c:131 XFS? (was: Re: linux-next: Tree for October 17) Message-ID: <20081022211028.GO18495@disturbed> Mail-Followup-To: Christoph Hellwig , Alexander Beregalov , lachlan@sgi.com, Arjan van de Ven , xfs@oss.sgi.com, linux-next@vger.kernel.org, LKML References: <20081017203710.GA27187@infradead.org> <20081017135510.7127c4e7@infradead.org> <20081020163327.GA15651@infradead.org> <20081020223549.GA21152@disturbed> <20081022075838.GK18495@disturbed> <20081022082550.GM18495@disturbed> <20081022101351.GB11313@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022101351.GB11313@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224709835 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 06:13:51AM -0400, Christoph Hellwig wrote: > On Wed, Oct 22, 2008 at 07:25:50PM +1100, Dave Chinner wrote: > > > Basically the above commit moved xfs_ilock() inside > > > radix_tree_preload()/radix_tree_preload_end(), which means we are > > > taking a rwsem() while we have an elevated preempt count. I'll > > > get a patch out to fix it. > > This really needs a warning. Then again I don't really understand this > as the point of radix_tree_preload was that we can do the actual > radix-tree under a lock, or not? Right - the preload allows us to do GFP_KERNEL allocations for radix tree nodes and use a spinlock for inserts into the tree. We could drop the preload stuff if we initialised the radix tree to use GFP_ATOMIC allocations for radix tree nodes, but that is more likely to lead to insert failures under low memory conditions compared to the preload method. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 14:16:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MLGJfH021028 for ; Wed, 22 Oct 2008 14:16:19 -0700 X-ASG-Debug-ID: 1224710284-42de01be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4AD7B10D1431 for ; Wed, 22 Oct 2008 14:18:04 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id KYb5D8W6P6gTbysC for ; Wed, 22 Oct 2008 14:18:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216166335" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 07:48:02 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ksl5c-0003Nb-JQ; Thu, 23 Oct 2008 08:18:00 +1100 Date: Thu, 23 Oct 2008 08:18:00 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] Handle ENOMEM during log initialisation Subject: Re: [PATCH] Handle ENOMEM during log initialisation Message-ID: <20081022211800.GP18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081022061002.GG18495@disturbed> <20081022101146.GA11313@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022101146.GA11313@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224710285 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 06:11:46AM -0400, Christoph Hellwig wrote: > On Wed, Oct 22, 2008 at 05:10:02PM +1100, Dave Chinner wrote: > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > > index 5184017..1dfa5fe 100644 > > --- a/fs/xfs/xfs_log.c > > +++ b/fs/xfs/xfs_log.c > > > - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); > > + log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); > > You might want to remove the cast when you touch that line anyway. Ok. Removed those two casts. Updated patch below. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: handle memory allocation failures during log initialisation When there is no memory left in the system, xfs_buf_get_noaddr() can fail. If this happens at mount time during xlog_alloc_log() we fail to catch the error and oops. Catch the error from xfs_buf_get_noaddr(), and allow other memory allocations to fail and catch those errors too. Report the error to the console and fail the mount with ENOMEM. Tested by manually injecting errors into xfs_buf_get_noaddr() and xlog_alloc_log(). Signed-off-by: Dave Chinner --- Version 2: o remove unnecessary casts of the returned pointer from kmem_zalloc() fs/xfs/xfs_log.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5184017..92c20a8 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -563,6 +563,11 @@ xfs_log_mount( } mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); + if (!mp->m_log) { + cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!"); + error = ENOMEM; + goto out; + } /* * Initialize the AIL now we have a log. @@ -601,6 +606,7 @@ xfs_log_mount( return 0; error: xfs_log_unmount_dealloc(mp); +out: return error; } /* xfs_log_mount */ @@ -1217,7 +1223,9 @@ xlog_alloc_log(xfs_mount_t *mp, int i; int iclogsize; - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); + log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); + if (!log) + return NULL; log->l_mp = mp; log->l_targ = log_target; @@ -1249,6 +1257,8 @@ xlog_alloc_log(xfs_mount_t *mp, xlog_get_iclog_buffer_size(mp, log); bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_log; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); @@ -1275,13 +1285,17 @@ xlog_alloc_log(xfs_mount_t *mp, iclogsize = log->l_iclog_size; ASSERT(log->l_iclog_size >= 4096); for (i=0; i < log->l_iclog_bufs; i++) { - *iclogp = (xlog_in_core_t *) - kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); + *iclogp = kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL); + if (!*iclogp) + goto out_free_iclog; + iclog = *iclogp; iclog->ic_prev = prev_iclog; prev_iclog = iclog; bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_iclog; if (!XFS_BUF_CPSEMA(bp)) ASSERT(0); XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); @@ -1323,6 +1337,25 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */ return log; + +out_free_iclog: + for (iclog = log->l_iclog; iclog; iclog = prev_iclog) { + prev_iclog = iclog->ic_next; + if (iclog->ic_bp) { + sv_destroy(&iclog->ic_force_wait); + sv_destroy(&iclog->ic_write_wait); + xfs_buf_free(iclog->ic_bp); + xlog_trace_iclog_dealloc(iclog); + } + kmem_free(iclog); + } + spinlock_destroy(&log->l_icloglock); + spinlock_destroy(&log->l_grant_lock); + xlog_trace_loggrant_dealloc(log); + xfs_buf_free(log->l_xbuf); +out_free_log: + kmem_free(log); + return NULL; } /* xlog_alloc_log */ From owner-xfs@oss.sgi.com Wed Oct 22 14:18:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MLIp6l021424 for ; Wed, 22 Oct 2008 14:18:51 -0700 X-ASG-Debug-ID: 1224710436-367c02920000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9033210D1503 for ; Wed, 22 Oct 2008 14:20:36 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id S5iFDDgeqDDJFmm5 for ; Wed, 22 Oct 2008 14:20:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216168922" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 07:50:35 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ksl86-0003RV-8i; Thu, 23 Oct 2008 08:20:34 +1100 Date: Thu, 23 Oct 2008 08:20:34 +1100 From: Dave Chinner To: Raz Cc: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: does XFS supports hole punching ? Subject: Re: does XFS supports hole punching ? Message-ID: <20081022212034.GQ18495@disturbed> Mail-Followup-To: Raz , linux-xfs@oss.sgi.com References: <5d96567b0810221040m17d73871iff00d56bf07479c2@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5d96567b0810221040m17d73871iff00d56bf07479c2@mail.gmail.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224710437 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0649 1.0000 -1.6071 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 07:40:26PM +0200, Raz wrote: > I want to punch a hole in an exiting file. Yes. Check the man page for xfsctl(3) and read up on XFS_IOC_FREESP64. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 14:25:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MLPoVv021986 for ; Wed, 22 Oct 2008 14:25:50 -0700 X-ASG-Debug-ID: 1224710855-175203af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7DB1B53033B for ; Wed, 22 Oct 2008 14:27:35 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id JUGhSGLW6oNM7JB1 for ; Wed, 22 Oct 2008 14:27:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216172148" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 07:57:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KslEr-0003bE-7D; Thu, 23 Oct 2008 08:27:33 +1100 Date: Thu, 23 Oct 2008 08:27:33 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] stop using xfs_itobp in xfs_bulkstat Subject: Re: [PATCH 1/2] stop using xfs_itobp in xfs_bulkstat Message-ID: <20081022212733.GR18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081022163034.GB25556@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022163034.GB25556@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224710856 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8512 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 12:30:34PM -0400, Christoph Hellwig wrote: > xfs_bulkstat only wants the dinode, offset and buffer from a given > inode number. Instead of using xfs_itobp on a fake inode which is > complicated and currently leads to leaks of the security data just use > xfs_inotobp which is designed to do exactly the kind of lookup > xfs_bulkstat wants. The only thing that's missing in xfs_inotobp is > a flags paramter that let's us pass down XFS_IMAP_BULKSTAT, but that can > easily added. Looks good. > Index: xfs-2.6/fs/xfs/xfs_inode.h > =================================================================== > --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-20 23:49:30.000000000 +0200 > +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-21 09:28:03.000000000 +0200 > @@ -158,7 +158,7 @@ typedef struct xfs_icdinode { > #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ > > /* > - * Flags for xfs_itobp(), xfs_imap() and xfs_dilocate(). > + * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). > */ Not really important, but for consistency that should be "xfs_inotobp()". Perhaps just fix that in the followup patch that removes the imap_flags from xfs_itobp() so this can go straight in without another round trip. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 14:29:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MLT6of022405 for ; Wed, 22 Oct 2008 14:29:06 -0700 X-ASG-Debug-ID: 1224711051-3be702b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 72BE610D1717 for ; Wed, 22 Oct 2008 14:30:51 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id EpoaxF4SEJh5uES8 for ; Wed, 22 Oct 2008 14:30:51 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216173868" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 08:00:50 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KslI1-0003gJ-Js; Thu, 23 Oct 2008 08:30:49 +1100 Date: Thu, 23 Oct 2008 08:30:49 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] free partially initialized inodes using destroy_inode Subject: Re: [PATCH 2/2] free partially initialized inodes using destroy_inode Message-ID: <20081022213049.GS18495@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081022163129.GC25556@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022163129.GC25556@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224711052 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 12:31:29PM -0400, Christoph Hellwig wrote: > To make sure we free the security data inodes need to be freed using > the proper VFS helper (which we also need to export for this). We mark > these inodes bad so we can skip the flush path for them. Looks good, except for one minor mistake in a comment: > Index: xfs-2.6/fs/xfs/xfs_inode.h > =================================================================== > --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-22 17:57:30.000000000 +0200 > +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-22 18:00:15.000000000 +0200 > @@ -310,6 +310,23 @@ static inline struct inode *VFS_I(struct > } > > /* > + * Get rid of a partially initialized inode. > + * > + * We have to go through destroy_inode to make sure allocations > + * from init_inode_always like the security data are undone. > + * > + * We mark the inode dirty so that it takes the short cut in ^^^^^ "bad" > + * the reclaim path instead of going through the flush path > + * which doesn't make sense for an inode that has never seen the > + * light of day. > + */ > +static inline void xfs_destroy_inode(struct xfs_inode *ip) > +{ > + make_bad_inode(VFS_I(ip)); > + return destroy_inode(VFS_I(ip)); > +} > + > +/* > * i_flags helper functions > */ > static inline void I don't think this needs another round of review just to fix the comment, so it can probably go straight in if the committer can touch up that comment. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 14:58:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MLw7Y9024434 for ; Wed, 22 Oct 2008 14:58:08 -0700 X-ASG-Debug-ID: 1224712792-657b014d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BEA655306B4 for ; Wed, 22 Oct 2008 14:59:52 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id YZ3O8Sc3iWOU0JaW for ; Wed, 22 Oct 2008 14:59:52 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,466,1220193000"; d="scan'208";a="216190485" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 08:29:51 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kslk5-0004KW-Tc; Thu, 23 Oct 2008 08:59:49 +1100 Date: Thu, 23 Oct 2008 08:59:49 +1100 From: Dave Chinner To: Peter Cordes Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: small logs that fit in RAID controller cache are (sometimes) faster Subject: Re: small logs that fit in RAID controller cache are (sometimes) faster Message-ID: <20081022215949.GT18495@disturbed> Mail-Followup-To: Peter Cordes , xfs@oss.sgi.com References: <20081022074031.GA19754@cordes.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022074031.GA19754@cordes.ca> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224712793 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8514 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 04:40:31AM -0300, Peter Cordes wrote: > I've been playing with external vs. internal logs, and log sizes, on > a HW RAID controller w/256MB of battery-backed cache. I'm getting the > impression that for a single-threaded untar workload at least, a small > log (5 or 20MB) is actually faster 128MB. I think when the log is > small enough relative to the RAID controller's write-back cache, the > writes don't have to wait for actual disk. It's (maybe) like having > the log on a ramdisk. Battery-backed write caches on RAID controllers > make nobarrier safe (right?), so that's what I was using. [snip lots of stuff] Basically it comes down to the fact that the default (internal 128MB log) is pretty much the fastest option when you have a battery backed cache, right? > untar times: > 110s w/ a 128MB internal log (note that the max sequential write is > at least ~3x higher for the RAID6 the internal log is on) > 116s w/ a 128MB external log > 113s with a 96MB external log > 110s with a 64MB external log > 115s with a 20MB external log > 110s with a 5MB external log In general, a small log is going to limit your transaction parallelism. You are running a single threaded workload, so that's not a big deal. Note that with a 16k directory block size, the transaction reservation sizes are in the order of 3MB, which means that with a 5MB log you'll completely serialise directory modifications. IOWs, don't do it. Larger logs are better because they allow many transactions to be executed in parallel - something that happens alot on a fileserver. Also, large logs allow writeback of metadata to be avoided when it is frequently modified and relogged. Metadata writeback is typically a small random write pattern.... > I'm thinking of creating the FS with a 96MB external log, but I > haven't tested with parallel workloads with logs < 128MB. This RAID > array also holds /home (on the first 650GB of array), while this FS > (/data) is the last 2.2TB. /home uses an internal log, so if > someone's keeping /home busy and someone else is keeping /data busy, > their logs won't both be going to the RAID6. That's pretty much irrelevant if you have a couple hundred MB of write cache - the write cache will buffer each sequential log I/O stream until they span full RAID stripes and then it will sync them to disk as efficiently as possible. That's why the 128MB internal log performs so well...... > (I also use agcount=8 on > /data, agcount=7 on /home. Although I/O will probably be bursty, and > not loading /home and /data at the same time, my main concern is to > avoid scattering files in too many places. fewer AGs = more locality > for a bunch of sequentially created files, right? I have 8 spindles > in the RAID, so that seemed like a good amount of AGs. RAID6 doesn't > like small scattered writes _at_ _all_.) AGs are for allocation parallelism. That is, only one allocation or free can be taking place in an AG at once. If you have lots of threads banging on the filesystem, you need enough AGs to prevent modifcation of the free space trees being the bottleneck. The data in each AG will be packed as tightly as possible.... BTW, there is no real correlation between spindle count and # of AGs for stripe based volumes as all AGs span all spindles. If you have a linear concatenation, then you have the case where the number of AGs should match or be a multiple of the number of spindles. The allows AGs to operate completely independently of each other.... > Basically, I really want to ask if my mkfs parameters look good > before I let users start filling up the filesystems and running jobs > on the cluster, making it hard to redo the mkfs. Am I doing anything > that looks silly? Oh, it's a cluster that will be banging on the filesystem? That's a parallel workload. See above comments about log size and agcount for parallelism. ;) > BTW, is there a way to mount the root filesystem with inode64? If I > put that in my fstab, it only tries to do it with a remount (which > doesn't work), because I guess Ubuntu's initrd doesn't have mount > options from /etc/fstab. I made my root fs 10GB, and with imaxpct=8, > so the 32bit inode allocator should do ok. The inode64 allocator is used on all filesystems smaller than 1TB. inode32 only takes over when filesystems grow larger than that. > I found -n size=16k helps with random deletion speed, IIRC. I only Helps with lots of directory operations - the btrees are wider and shallower which means less I/O for lookups, less allocations and deletions of btree blocks, etc. > use that on the big RAID6 filesystems, not / or /var/tmp, since users > won't be making their huge data file directories anywhere else. > Bonnie++ ends up with highly fragmented directories (xfs_bmap) after > random-order file creation. And the larger directory block sizes reduces fragmentation.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 15:28:24 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MMSOFT026661 for ; Wed, 22 Oct 2008 15:28:24 -0700 X-ASG-Debug-ID: 1224714608-14e401880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2DDD310D2031 for ; Wed, 22 Oct 2008 15:30:09 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id eJ7AvOYk6A9VbI5C for ; Wed, 22 Oct 2008 15:30:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,467,1220193000"; d="scan'208";a="216212234" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 09:00:07 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsmDN-0005eL-7P; Thu, 23 Oct 2008 09:30:05 +1100 Date: Thu, 23 Oct 2008 09:30:05 +1100 From: Dave Chinner To: Linda Walsh Cc: LKML , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only Subject: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only Message-ID: <20081022223005.GV18495@disturbed> Mail-Followup-To: Linda Walsh , LKML , xfs@oss.sgi.com References: <48FED90F.7030809@tlinx.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FED90F.7030809@tlinx.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224714610 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Oct 22, 2008 at 12:41:03AM -0700, Linda Walsh wrote: > I am having to stay at 2.6.26.5 for now on my main home server. > > Going to 2.6.27 (and just trying 2.6.27.2), I'm have two VERY weird (would > appear to be user-land probs from symptoms), problems. > > 1) Samba -- the system is a Samba domain controller. When I boot using > the 2.6.27.2 kernel (or .0 before), I can no longer mount any file systems > from my windows client. ..... > > 2) My root disk comes up READ-ONLY. It uses XFS. I am NOT able to remount > read/write (mount -o remount,rw /, fails writing to Read-only /etc/mtab, > mount -n -o remount,rw doesn't give an error message, but doesn't make the > drive R/W. Root fs is on an adaptec FAST-SCSI (80MB/s) with an 18MB Seagate > (root, disk is oldest disk on the system). That XFS problem should be fixed in 2.6.27.3, whenever that is going to be released. It was sent and ACK'd by the stable team a week ago, but for some reason missed 2.6.27.2. Most likely is that the Samba problem will be caused by the smbd not being able to write to it's databases when clients try to connect because of the read-only root fs. If you want to patch your kernel, the patch is here: http://oss.sgi.com/archives/xfs/2008-10/msg00284.html Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 15:40:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MMeunv027489 for ; Wed, 22 Oct 2008 15:40:56 -0700 X-ASG-Debug-ID: 1224715358-73ad02620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17C8D12C3CE1 for ; Wed, 22 Oct 2008 15:42:38 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id SkfrfmqAlTPEEs6W for ; Wed, 22 Oct 2008 15:42:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,467,1220193000"; d="scan'208";a="216221413" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 09:12:37 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KsmPT-0005vw-DT; Thu, 23 Oct 2008 09:42:35 +1100 Date: Thu, 23 Oct 2008 09:42:35 +1100 From: Dave Chinner To: Linda Walsh , LKML , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only Subject: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only Message-ID: <20081022224235.GW18495@disturbed> Mail-Followup-To: Linda Walsh , LKML , xfs@oss.sgi.com References: <48FED90F.7030809@tlinx.org> <20081022223005.GV18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022223005.GV18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224715362 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 09:30:05AM +1100, Dave Chinner wrote: > On Wed, Oct 22, 2008 at 12:41:03AM -0700, Linda Walsh wrote: > > I am having to stay at 2.6.26.5 for now on my main home server. > > > > Going to 2.6.27 (and just trying 2.6.27.2), I'm have two VERY weird (would > > appear to be user-land probs from symptoms), problems. > > > > 1) Samba -- the system is a Samba domain controller. When I boot using > > the 2.6.27.2 kernel (or .0 before), I can no longer mount any file systems > > from my windows client. > ..... > > > > 2) My root disk comes up READ-ONLY. It uses XFS. I am NOT able to remount > > read/write (mount -o remount,rw /, fails writing to Read-only /etc/mtab, > > mount -n -o remount,rw doesn't give an error message, but doesn't make the > > drive R/W. Root fs is on an adaptec FAST-SCSI (80MB/s) with an 18MB Seagate > > (root, disk is oldest disk on the system). > > That XFS problem should be fixed in 2.6.27.3, whenever that is going > to be released. It was sent and ACK'd by the stable team a week ago, > but for some reason missed 2.6.27.2. 2.6.27.3 was released as I was writing this, so the fix is available now. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 16:39:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9MNdw83003034 for ; Wed, 22 Oct 2008 16:39:59 -0700 X-ASG-Debug-ID: 1224718900-087c02e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ninsei.hu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E0317530EE1 for ; Wed, 22 Oct 2008 16:41:43 -0700 (PDT) Received: from ninsei.hu (ninsei.hu [212.92.23.158]) by cuda.sgi.com with ESMTP id D9uVRJ0oekFPJAwC for ; Wed, 22 Oct 2008 16:41:43 -0700 (PDT) Received: from kyra (lns-bzn-35-82-250-224-246.adsl.proxad.net [82.250.224.246]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by chatsubo.ninsei.hu (Postfix) with ESMTP id 51FF17830 for ; Thu, 23 Oct 2008 01:41:35 +0200 (CEST) Received: by kyra (Postfix, from userid 32266) id A2E7320C0EF5; Thu, 23 Oct 2008 01:41:28 +0200 (CEST) Date: Thu, 23 Oct 2008 01:41:28 +0200 From: KELEMEN Peter To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified Subject: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified Message-ID: <20081022234128.GC4395@kyra> Mail-Followup-To: xfs@oss.sgi.com References: <20081022183636.GE20550@kyra> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022183636.GE20550@kyra> Errors-To: Peter.Kelemen@free.fr Organization: CERN European Laboratory for Particle Physics, Switzerland X-GPG-KeyID: 1024D/9FF0CABE 2004-04-03 X-GPG-Fingerprint: 6C9E 5917 3B06 E4EE 6356 7BF0 8F3E CAB6 9FF0 CABE X-Comment: Personal opinion. Paragraphs might have been reformatted. X-Copyright: Forwarding or publishing without permission is prohibited. X-Accept-Language: hu,en User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Barracuda-Connect: ninsei.hu[212.92.23.158] X-Barracuda-Start-Time: 1224718904 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0173 1.0000 -1.9082 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8519 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8470/Wed Oct 22 08:13:42 2008 on oss.sgi.com X-Virus-Status: Clean Eric has pointed out that verify_set_primary_sb() will either return 1 or XR_INSUFF_SEC_SB. Move the check lower into verify_set_primary_sb() by checking the return value of verify_sb(). Example output: found candidate secondary superblock... verifying sb at 31249334272: bad magic number (1) verifying sb at 62498668544: bad magic number (1) verifying sb at 93748002816: bad magic number (1) verifying sb at 124997337088: bad magic number (1) unable to verify superblock, continuing... Signed-off-by: KELEMEN Peter Index: xfsprogs/repair/sb.c =================================================================== RCS file: /cvs/xfs-cmds/xfsprogs/repair/sb.c,v retrieving revision 1.22 diff -u -u -r1.22 sb.c --- xfsprogs/repair/sb.c 8 Sep 2008 06:18:43 -0000 1.22 +++ xfsprogs/repair/sb.c 22 Oct 2008 23:17:27 -0000 @@ -683,6 +683,7 @@ int num_ok; int retval; int round; + int reason; /* why the sb check failed */ /* * select the number of secondaries to try for @@ -727,7 +728,7 @@ goto out; } - if (verify_sb(sb, 0) == XR_OK) { + if ((reason = verify_sb(sb, 0)) == XR_OK) { /* * save away geometry info. * don't bother checking the sb @@ -740,6 +741,9 @@ get_sb_geometry(&geo, sb); list = add_geo(list, &geo, agno); num_ok++; + } else { + do_warn("verifying sb at %Lu: %s (%d)\n", + off, err_string(reason), reason); } } } From owner-xfs@oss.sgi.com Wed Oct 22 19:31:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N2VGt5016158 for ; Wed, 22 Oct 2008 19:31:16 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 163F69088E; Wed, 22 Oct 2008 19:32:55 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA14764; Thu, 23 Oct 2008 13:32:52 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id A278258AE1E5; Thu, 23 Oct 2008 13:32:52 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - Can't lock inodes in radix tree preload region Message-Id: <20081023023252.A278258AE1E5@chook.melbourne.sgi.com> Date: Thu, 23 Oct 2008 13:32:52 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean Can't lock inodes in radix tree preload region When we are inside a radix tree preload region, we cannot sleep. Recently we moved the inode locking inside the preload region for the inode radix tree. Fix that, and fix a missed unlock in another error path in the same code at the same time. Signed-off-by: Dave Chinner Date: Thu Oct 23 13:32:28 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-ail Inspected by: hch Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32385a fs/xfs/xfs_iget.c - 1.254 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.254&r2=text&tr2=1.253&f=h - Can't lock inodes in radix tree preload region From owner-xfs@oss.sgi.com Wed Oct 22 19:51:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N2pDqM019585 for ; Wed, 22 Oct 2008 19:51:14 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 723C18F80FD; Wed, 22 Oct 2008 19:52:56 -0700 (PDT) Received: from itchy.melbourne.sgi.com (itchy.melbourne.sgi.com [134.14.55.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA15198; Thu, 23 Oct 2008 13:52:53 +1100 From: Niv Sardi To: Utako Kusaka Cc: Timothy Shimmin , xfs Subject: Re: [PATCH, RFC] Re: atime not written to disk References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> <20081022081710.GL18495@disturbed> Date: Thu, 23 Oct 2008 13:52:44 +1100 In-Reply-To: <20081022081710.GL18495@disturbed> (Dave Chinner's message of "Wed, 22 Oct 2008 19:17:10 +1100") Message-ID: User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean Dave Chinner writes: [...] > As I mentioned on IRC, Tim, the following patch fixes the above test > case. It will make XFS behave like other filesystems w.r.t. atime, > instead of defaulting to relatime-like behaviour. This will have > performance impact unless ppl now add the relatime mount option. ^^^^^^^^^^^^^^^^^^^ I don't really like it, and don't think there is a real justification to do it. Why not only do: -- Niv Sardi From owner-xfs@oss.sgi.com Wed Oct 22 19:51:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N2pn8b019857 for ; Wed, 22 Oct 2008 19:51:51 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 9B93F8F80F7; Wed, 22 Oct 2008 19:53:34 -0700 (PDT) Received: from itchy.melbourne.sgi.com (itchy.melbourne.sgi.com [134.14.55.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA15218; Thu, 23 Oct 2008 13:53:32 +1100 From: Niv Sardi To: Utako Kusaka Cc: Timothy Shimmin , xfs Subject: Re: [PATCH, RFC] Re: atime not written to disk In-Reply-To: <20081022081710.GL18495@disturbed> (Dave Chinner's message of "Wed, 22 Oct 2008 19:17:10 +1100") References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> <20081022081710.GL18495@disturbed> User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (x86_64-pc-linux-gnu) Date: Thu, 23 Oct 2008 13:53:23 +1100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean --=-=-= Dave Chinner writes: [...] > As I mentioned on IRC, Tim, the following patch fixes the above test > case. It will make XFS behave like other filesystems w.r.t. atime, > instead of defaulting to relatime-like behaviour. This will have > performance impact unless ppl now add the relatime mount option. ^^^^^^^^^^^^^^^^^^^ I don't really like it, and don't think there is a real justification to do it. Why not only do: --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Mark-core-as-dirty-when-atime-updated-needed-for-XFS.patch >From 96be907a11f2cad0d6c8696737bb144b1275ce5a Mon Sep 17 00:00:00 2001 From: Niv Sardi Date: Thu, 23 Oct 2008 13:41:09 +1100 Subject: [PATCH] Mark core as dirty when atime updated needed for XFS inode Currently we're not writting atime updates back to disk on unmount if it's the only change that happened. One solution would be to implement ->dirty_inode() but that might be overkill and has a perf hit, instead just tag as needed for update in reclaim() Signed-off-by: Niv Sardi --- fs/xfs/xfs_vnodeops.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index e257f65..828d398 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -2840,6 +2840,7 @@ int xfs_reclaim( xfs_inode_t *ip) { + struct inode *inode = VFS_I(ip); xfs_itrace_entry(ip); @@ -2856,10 +2857,13 @@ xfs_reclaim( ASSERT(XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0); /* - * Make sure the atime in the XFS inode is correct before freeing the - * Linux inode. + * Mark dirty and update atime only if different from the linux inode one. */ - xfs_synchronize_atime(ip); + if (! timespec_equal(&inode->i_atime, + (struct timespec *) &ip->i_d.di_atime)) { + xfs_synchronize_atime(ip); + ip->i_update_core = 1; + } /* * If we have nothing to flush with this inode then complete the -- 1.5.6.2 --=-=-= -- Niv Sardi --=-=-=-- From owner-xfs@oss.sgi.com Wed Oct 22 20:22:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N3MUrF028821 for ; Wed, 22 Oct 2008 20:22:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 74DA28F8087; Wed, 22 Oct 2008 20:24:12 -0700 (PDT) Received: from [134.14.55.216] (wererabbit.melbourne.sgi.com [134.14.55.216]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA15686; Thu, 23 Oct 2008 14:24:10 +1100 Message-ID: <48FFFC5F.2030307@sgi.com> Date: Thu, 23 Oct 2008 14:23:59 +1000 From: Peter Leckie User-Agent: Thunderbird 2.0.0.16 (X11/20080707) MIME-Version: 1.0 To: Dave Chinner , xfs@oss.sgi.com Subject: Re: crash with latest code drop. References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <20081022061905.GI18495@disturbed> In-Reply-To: <20081022061905.GI18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean Hey Dave I'll push it now, I assume it's ok to go in with out the check for a inode first as the combine linux/XFS inode patch is in. Thanks, Pete Dave Chinner wrote: > Ping? > > Can this patch be applied to the new sync code before it is pushed > to Linus? > > Cheers, > > Dave. > > On Wed, Oct 15, 2008 at 05:19:17PM +1100, Dave Chinner wrote: > >> On Wed, Oct 15, 2008 at 03:50:48PM +1000, Peter Leckie wrote: >> >>> Dave Chinner wrote: >>> >>>> Update below. >>>> >>>> Cheers, >>>> >>>> Dave. >>>> >>>> >>> The original patch appeared to fix the issue, however the latest one >>> Oops as follows: >>> >> Well, I think the problem dhould be obvious - it's the same as >> the first report - deferencing the linux inode without first having >> a refernce on it. >> >> FWIW, if you apply the "combine linux/xfs inode" patch series, >> this failure will go away. >> >> Updated patch below. >> >> Cheers, >> >> Dave. >> -- >> Dave Chinner >> david@fromorbit.com >> >> XFS: avoid all reclaimable inodes in xfs_sync_inodes_ag >> >> If we are syncing data in xfs_sync_inodes_ag(), the VFS >> inode must still be referencable as the dirty data state >> is carried on the VFS inode. hence if we can't get a >> reference via igrab(), the inode must be in reclaim which >> implies that it has no dirty data attached. >> >> Leave such inodes to the reclaim code to flush the dirty >> inode state to disk and so avoid attempting to access the >> VFS inode when it may not exist in xfs_sync_inodes_ag(). >> >> Version 4: >> o don't reference liinux inode untiil after igrab() succeeds >> >> Version 3: >> o converted unlock/rele to an xfs_iput() call. >> >> Version 2: >> o change igrab logic to be more linear >> o remove initial reclaimable inode check now that we are using >> igrab() failure to find reclaimable inodes >> o assert that igrab failure occurs only on reclaimable inodes >> o clean up inode locking - only grab the iolock if we are doing >> a SYNC_DELWRI call and we have a dirty inode. >> --- >> fs/xfs/linux-2.6/xfs_sync.c | 75 ++++++++++-------------------------------- >> 1 files changed, 18 insertions(+), 57 deletions(-) >> >> diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c >> index 08b2acf..39ed7f3 100644 >> --- a/fs/xfs/linux-2.6/xfs_sync.c >> +++ b/fs/xfs/linux-2.6/xfs_sync.c >> @@ -63,25 +63,16 @@ xfs_sync_inodes_ag( >> int error = 0; >> int last_error = 0; >> int fflag = XFS_B_ASYNC; >> - int lock_flags = XFS_ILOCK_SHARED; >> >> if (flags & SYNC_DELWRI) >> fflag = XFS_B_DELWRI; >> if (flags & SYNC_WAIT) >> fflag = 0; /* synchronous overrides all */ >> >> - if (flags & SYNC_DELWRI) { >> - /* >> - * We need the I/O lock if we're going to call any of >> - * the flush/inval routines. >> - */ >> - lock_flags |= XFS_IOLOCK_SHARED; >> - } >> - >> do { >> struct inode *inode; >> - boolean_t inode_refed; >> xfs_inode_t *ip = NULL; >> + int lock_flags = XFS_ILOCK_SHARED; >> >> /* >> * use a gang lookup to find the next inode in the tree >> @@ -109,22 +100,6 @@ xfs_sync_inodes_ag( >> break; >> } >> >> - /* >> - * skip inodes in reclaim. Let xfs_syncsub do that for >> - * us so we don't need to worry. >> - */ >> - if (xfs_iflags_test(ip, (XFS_IRECLAIM|XFS_IRECLAIMABLE))) { >> - read_unlock(&pag->pag_ici_lock); >> - continue; >> - } >> - >> - /* bad inodes are dealt with elsewhere */ >> - inode = VFS_I(ip); >> - if (is_bad_inode(inode)) { >> - read_unlock(&pag->pag_ici_lock); >> - continue; >> - } >> - >> /* nothing to sync during shutdown */ >> if (XFS_FORCED_SHUTDOWN(mp)) { >> read_unlock(&pag->pag_ici_lock); >> @@ -132,42 +107,34 @@ xfs_sync_inodes_ag( >> } >> >> /* >> - * If we can't get a reference on the VFS_I, the inode must be >> - * in reclaim. If we can get the inode lock without blocking, >> - * it is safe to flush the inode because we hold the tree lock >> - * and xfs_iextract will block right now. Hence if we lock the >> - * inode while holding the tree lock, xfs_ireclaim() is >> - * guaranteed to block on the inode lock we now hold and hence >> - * it is safe to reference the inode until we drop the inode >> - * locks completely. >> + * If we can't get a reference on the inode, it must be >> + * in reclaim. Leave it for the reclaim code to flush. >> */ >> - inode_refed = B_FALSE; >> - if (igrab(inode)) { >> - read_unlock(&pag->pag_ici_lock); >> - xfs_ilock(ip, lock_flags); >> - inode_refed = B_TRUE; >> - } else { >> - if (!xfs_ilock_nowait(ip, lock_flags)) { >> - /* leave it to reclaim */ >> - read_unlock(&pag->pag_ici_lock); >> - continue; >> - } >> + inode = VFS_I(ip); >> + if (!igrab(inode)) { >> read_unlock(&pag->pag_ici_lock); >> + continue; >> + } >> + read_unlock(&pag->pag_ici_lock); >> + >> + /* bad inodes are dealt with elsewhere */ >> + if (is_bad_inode(inode)) { >> + IRELE(ip); >> + continue; >> } >> >> /* >> * If we have to flush data or wait for I/O completion >> - * we need to drop the ilock that we currently hold. >> - * If we need to drop the lock, insert a marker if we >> - * have not already done so. >> + * we need to hold the iolock. >> */ >> if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { >> - xfs_iunlock(ip, XFS_ILOCK_SHARED); >> + xfs_ilock(ip, XFS_IOLOCK_SHARED); >> + lock_flags |= XFS_IOLOCK_SHARED; >> error = xfs_flush_pages(ip, 0, -1, fflag, FI_NONE); >> if (flags & SYNC_IOWAIT) >> vn_iowait(ip); >> - xfs_ilock(ip, XFS_ILOCK_SHARED); >> } >> + xfs_ilock(ip, XFS_ILOCK_SHARED); >> >> if ((flags & SYNC_ATTR) && !xfs_inode_clean(ip)) { >> if (flags & SYNC_WAIT) { >> @@ -183,13 +150,7 @@ xfs_sync_inodes_ag( >> xfs_ifunlock(ip); >> } >> } >> - >> - if (lock_flags) >> - xfs_iunlock(ip, lock_flags); >> - >> - if (inode_refed) { >> - IRELE(ip); >> - } >> + xfs_iput(ip, lock_flags); >> >> if (error) >> last_error = error; >> >> >> >> > > From owner-xfs@oss.sgi.com Wed Oct 22 20:57:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N3vr1t030746 for ; Wed, 22 Oct 2008 20:57:53 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 24D118F8110; Wed, 22 Oct 2008 20:59:38 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA16241; Thu, 23 Oct 2008 14:59:37 +1100 Message-ID: <4900048B.3080706@sgi.com> Date: Thu, 23 Oct 2008 14:58:51 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig , xfs@oss.sgi.com Subject: Re: [PATCH 2/2] free partially initialized inodes using destroy_inode References: <20081022163129.GC25556@infradead.org> <20081022213049.GS18495@disturbed> In-Reply-To: <20081022213049.GS18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Wed, Oct 22, 2008 at 12:31:29PM -0400, Christoph Hellwig wrote: >> To make sure we free the security data inodes need to be freed using >> the proper VFS helper (which we also need to export for this). We mark >> these inodes bad so we can skip the flush path for them. > > Looks good, except for one minor mistake in a comment: > >> Index: xfs-2.6/fs/xfs/xfs_inode.h >> =================================================================== >> --- xfs-2.6.orig/fs/xfs/xfs_inode.h 2008-10-22 17:57:30.000000000 +0200 >> +++ xfs-2.6/fs/xfs/xfs_inode.h 2008-10-22 18:00:15.000000000 +0200 >> @@ -310,6 +310,23 @@ static inline struct inode *VFS_I(struct >> } >> >> /* >> + * Get rid of a partially initialized inode. >> + * >> + * We have to go through destroy_inode to make sure allocations >> + * from init_inode_always like the security data are undone. >> + * >> + * We mark the inode dirty so that it takes the short cut in > ^^^^^ > "bad" > >> + * the reclaim path instead of going through the flush path >> + * which doesn't make sense for an inode that has never seen the >> + * light of day. >> + */ >> +static inline void xfs_destroy_inode(struct xfs_inode *ip) >> +{ >> + make_bad_inode(VFS_I(ip)); >> + return destroy_inode(VFS_I(ip)); >> +} >> + >> +/* >> * i_flags helper functions >> */ >> static inline void > > I don't think this needs another round of review just to fix the > comment, so it can probably go straight in if the committer can > touch up that comment. Will do. Thanks guys. From owner-xfs@oss.sgi.com Wed Oct 22 21:19:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N4JN5c032511 for ; Wed, 22 Oct 2008 21:19:23 -0700 X-ASG-Debug-ID: 1224735666-4d3301180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 49BC510D4068 for ; Wed, 22 Oct 2008 21:21:06 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id DWEjCeXdCa80ZBcZ for ; Wed, 22 Oct 2008 21:21:06 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,468,1220193000"; d="scan'208";a="216528899" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 14:50:55 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ksrgr-0005J2-T1; Thu, 23 Oct 2008 15:20:53 +1100 Date: Thu, 23 Oct 2008 15:20:53 +1100 From: Dave Chinner To: Niv Sardi Cc: Utako Kusaka , Timothy Shimmin , xfs X-ASG-Orig-Subj: Re: [PATCH, RFC] Re: atime not written to disk Subject: Re: [PATCH, RFC] Re: atime not written to disk Message-ID: <20081023042053.GY18495@disturbed> Mail-Followup-To: Niv Sardi , Utako Kusaka , Timothy Shimmin , xfs References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> <20081022081710.GL18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224735669 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8537 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 01:53:23PM +1100, Niv Sardi wrote: > Dave Chinner writes: > [...] > > As I mentioned on IRC, Tim, the following patch fixes the above test > > case. It will make XFS behave like other filesystems w.r.t. atime, > > instead of defaulting to relatime-like behaviour. This will have > > performance impact unless ppl now add the relatime mount option. > ^^^^^^^^^^^^^^^^^^^ > > I don't really like it, and don't think there is a real justification to > do it. You probably missed the context of that patch (which I mentioned on IRC to Tim). That was that it is part of a larger patch set that tracks dirty state in the XFS inode radix tree. In that case, the ->dirty_inode callout is used to set a tag in the per-ag inode radix tree. I want to do it this way so there is a single place that the dirty tag is set, whether it is due to an unlogged change (XFS or VFS) or a transaction commit.... Also, if you read the referenced thread, Christoph made the comment that the VFS was not letting us know that the inode had been dirtied and that we really needed to know about that. The patch I sent isn't intended to do this, not as a fix for atime updates... > Why not only do: > > From 96be907a11f2cad0d6c8696737bb144b1275ce5a Mon Sep 17 00:00:00 2001 > From: Niv Sardi > Date: Thu, 23 Oct 2008 13:41:09 +1100 > Subject: [PATCH] Mark core as dirty when atime updated needed for XFS inode > > Currently we're not writting atime updates back to disk on unmount > if it's the only change that happened. One solution would be to implement > ->dirty_inode() but that might be overkill and has a perf hit, instead > just tag as needed for update in reclaim() > > Signed-off-by: Niv Sardi > --- > fs/xfs/xfs_vnodeops.c | 10 +++++++--- > 1 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > index e257f65..828d398 100644 > --- a/fs/xfs/xfs_vnodeops.c > +++ b/fs/xfs/xfs_vnodeops.c > @@ -2840,6 +2840,7 @@ int > xfs_reclaim( > xfs_inode_t *ip) > { > + struct inode *inode = VFS_I(ip); > > xfs_itrace_entry(ip); > > @@ -2856,10 +2857,13 @@ xfs_reclaim( > ASSERT(XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0); > > /* > - * Make sure the atime in the XFS inode is correct before freeing the > - * Linux inode. > + * Mark dirty and update atime only if different from the linux inode one. > */ > - xfs_synchronize_atime(ip); > + if (! timespec_equal(&inode->i_atime, > + (struct timespec *) &ip->i_d.di_atime)) { > + xfs_synchronize_atime(ip); > + ip->i_update_core = 1; > + } This doesn't avoid the performance problem - it simply shifts it to the reclaim code. Think about it - you traverse a million inodes stat()ing them all (the nightly backup). Instead of having the now dirty inodes written back as you go along, you wait until memory reclaim turfs them out to mark them dirty and then write them back. This means memory reclaim goes *much slower* because reclaiming the memory now has to wait for I/O to complete. The speed of inode reclaim is already a problem when we only have clean inodes. If we now have to write back all these inodes, we'll get at best a couple of thousand inodes cleaned a second (with current writeback algorithms) and it could be as little as 50 inodes/s when software RAID5 on SATA disks is involved. That means reclaim will be very slow, as will unmount. This could make low memory situations effectively unrecoverable when the inode caches dominate memory usage (e.g. your build servers after the nightly backup has run). Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 22:37:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N5bWFI005348 for ; Wed, 22 Oct 2008 22:37:32 -0700 X-ASG-Debug-ID: 1224740356-319902d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 418C41464706 for ; Wed, 22 Oct 2008 22:39:17 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 1Q4BUxNLxiadZLe9 for ; Wed, 22 Oct 2008 22:39:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,468,1220193000"; d="scan'208";a="216580441" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 23 Oct 2008 16:09:15 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kssue-0006GC-UV; Thu, 23 Oct 2008 16:39:12 +1100 Date: Thu, 23 Oct 2008 16:39:12 +1100 From: Dave Chinner To: Peter Leckie Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: crash with latest code drop. Subject: Re: crash with latest code drop. Message-ID: <20081023053912.GZ18495@disturbed> Mail-Followup-To: Peter Leckie , xfs@oss.sgi.com References: <48F54C20.8060704@sgi.com> <20081015011857.GS10716@disturbed> <20081015022948.GA20966@infradead.org> <20081015031645.GA25906@disturbed> <20081015032431.GA7426@infradead.org> <20081015035116.GB25906@disturbed> <48F584B8.8060907@sgi.com> <20081015061917.GC25906@disturbed> <20081022061905.GI18495@disturbed> <48FFFC5F.2030307@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48FFFC5F.2030307@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224740358 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1327 1.0000 -1.2002 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.20 X-Barracuda-Spam-Status: No, SCORE=-1.20 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 02:23:59PM +1000, Peter Leckie wrote: > Hey Dave I'll push it now, I assume it's ok to go in with out the check > for a inode first > as the combine linux/XFS inode patch is in. Yes, it's safe to go in as it stands. Thanks. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 22 23:05:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N65cxN007495 for ; Wed, 22 Oct 2008 23:05:38 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 2D99990890; Wed, 22 Oct 2008 23:07:17 -0700 (PDT) Received: from chapter11.melbourne.sgi.com (chapter11.melbourne.sgi.com [134.14.54.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA18582; Thu, 23 Oct 2008 17:07:16 +1100 Received: by chapter11.melbourne.sgi.com (Postfix, from userid 16380) id 5F5931EDDEF; Thu, 23 Oct 2008 17:07:16 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 987246 - fs/xfs/linux-2.6/xfs_sync.c Message-Id: <20081023060716.5F5931EDDEF@chapter11.melbourne.sgi.com> Date: Thu, 23 Oct 2008 17:07:16 +1100 (EST) From: pleckie@sgi.com (Peter Leckie) X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean avoid all reclaimable inodes in xfs_sync_inodes_ag If we are syncing data in xfs_sync_inodes_ag(), the VFS inode must still be referencable as the dirty data state is carried on the VFS inode. hence if we can't get a reference via igrab(), the inode must be in reclaim which implies that it has no dirty data attached. Leave such inodes to the reclaim code to flush the dirty inode state to disk and so avoid attempting to access the VFS inode when it may not exist in xfs_sync_inodes_ag(). Version 4: o don't reference liinux inode untiil after igrab() succeeds Version 3: o converted unlock/rele to an xfs_iput() call. Version 2: o change igrab logic to be more linear o remove initial reclaimable inode check now that we are using igrab() failure to find reclaimable inodes o assert that igrab failure occurs only on reclaimable inodes o clean up inode locking - only grab the iolock if we are doing a SYNC_DELWRI call and we have a dirty inode. Date: Thu Oct 23 17:06:31 EST 2008 Workarea: chapter11.melbourne.sgi.com:/scratch/pleckie/2.6.x-xfs Inspected by: pleckie,david@fromorbit.com,hch@infradead.org The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32391a fs/xfs/linux-2.6/xfs_sync.c - 1.24 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sync.c.diff?r1=text&tr1=1.24&r2=text&tr2=1.23&f=h - avoid all reclaimable inodes in xfs_sync_inodes_ag From owner-xfs@oss.sgi.com Wed Oct 22 23:50:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N6o7kX010985 for ; Wed, 22 Oct 2008 23:50:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 916399088F; Wed, 22 Oct 2008 23:51:52 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA19393; Thu, 23 Oct 2008 17:51:49 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B56AE58AE1E5; Thu, 23 Oct 2008 17:51:49 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - stop using xfs_itobp in xfs_bulkstat Message-Id: <20081023065149.B56AE58AE1E5@chook.melbourne.sgi.com> Date: Thu, 23 Oct 2008 17:51:49 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean stop using xfs_itobp in xfs_bulkstat xfs_bulkstat only wants the dinode, offset and buffer from a given inode number. Instead of using xfs_itobp on a fake inode which is complicated and currently leads to leaks of the security data just use xfs_inotobp which is designed to do exactly the kind of lookup xfs_bulkstat wants. The only thing that's missing in xfs_inotobp is a flags paramter that let's us pass down XFS_IMAP_BULKSTAT, but that can easily added. Signed-off-by: Christoph Hellwig Date: Thu Oct 23 17:51:16 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-hch Inspected by: david@fromorbit.com Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32397a fs/xfs/xfs_itable.c - 1.173 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_itable.c.diff?r1=text&tr1=1.173&r2=text&tr2=1.172&f=h fs/xfs/xfs_inode.c - 1.535 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.535&r2=text&tr2=1.534&f=h fs/xfs/xfs_inode.h - 1.266 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.266&r2=text&tr2=1.265&f=h - stop using xfs_itobp in xfs_bulkstat From owner-xfs@oss.sgi.com Thu Oct 23 00:05:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,SUBJ_ALL_CAPS autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N75ovZ014711 for ; Thu, 23 Oct 2008 00:05:50 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 567C68F80DE; Thu, 23 Oct 2008 00:07:30 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA19719; Thu, 23 Oct 2008 18:07:28 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 9927358AE1E5; Thu, 23 Oct 2008 18:07:28 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - Message-Id: <20081023070728.9927358AE1E5@chook.melbourne.sgi.com> Date: Thu, 23 Oct 2008 18:07:28 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean free partially initialized inodes using destroy_inode To make sure we free the security data inodes need to be freed using the proper VFS helper (which we also need to export for this). We mark these inodes bad so we can skip the flush path for them. Signed-off-by: Christoph Hellwig Date: Thu Oct 23 17:55:04 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-hch Inspected by: david@fromorbit.com Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32398a fs/xfs/xfs_iget.c - 1.255 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.255&r2=text&tr2=1.254&f=h fs/xfs/xfs_inode.c - 1.536 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.536&r2=text&tr2=1.535&f=h fs/xfs/xfs_inode.h - 1.267 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.267&r2=text&tr2=1.266&f=h - free partially initialized inodes using destroy_inode From owner-xfs@oss.sgi.com Thu Oct 23 00:06:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N766gb014757 for ; Thu, 23 Oct 2008 00:06:07 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 66B228F80DE; Thu, 23 Oct 2008 00:07:52 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA19723; Thu, 23 Oct 2008 18:07:51 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 094B158AE1E5; Thu, 23 Oct 2008 18:07:51 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - free partially initialized inodes using destroy_inode Message-Id: <20081023070751.094B158AE1E5@chook.melbourne.sgi.com> Date: Thu, 23 Oct 2008 18:07:51 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean free partially initialized inodes using destroy_inode To make sure we free the security data inodes need to be freed using the proper VFS helper (which we also need to export for this). We mark these inodes bad so we can skip the flush path for them. Signed-off-by: Christoph Hellwig Date: Thu Oct 23 17:55:05 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-hch Inspected by: david@fromorbit.com Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: 2.6.x-xfs-melb:linux:32398b fs/inode.c - 1.29 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/fs/inode.c.diff?r1=text&tr1=1.29&r2=text&tr2=1.28&f=h - free partially initialized inodes using destroy_inode From owner-xfs@oss.sgi.com Thu Oct 23 01:07:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N87KpR023819 for ; Thu, 23 Oct 2008 01:07:20 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 3E38E908C2 for ; Thu, 23 Oct 2008 01:09:01 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA20721 for ; Thu, 23 Oct 2008 19:09:00 +1100 Message-ID: <49003EFF.4090404@sgi.com> Date: Thu, 23 Oct 2008 19:08:15 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs-oss Subject: assertion failure with latest xfs Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean Just encountered this after pulling in the latest changes. We are trying to initialise an inode that should have an i_count of 1 but instead it is 2. I was running XFSQA test 167 when it happened. Stack traceback for pid 25318 0xffff88004201ddc0 25318 25228 1 3 R 0xffff88004201e228 *fsstress sp ip Function (args) 0xffff88000f409ab8 0xffffffff811c9265 assfail+0x1a (invalid, invalid, invalid) 0xffff88000f409af0 0xffffffff811c3cd5 xfs_setup_inode+0x56 (0xffff88006e1fbc00) 0xffff88000f409b20 0xffffffff8119d7a7 xfs_ialloc+0x53a (0xffff88006c8fd880, 0xffff880069990780, invalid, invalid, 0x100000000, invalid, 0xffff880000000000, 0x1, 0xffff88000f409c28) 0xffff88000f409bb0 0xffffffff811b4952 xfs_dir_ialloc+0xa0 (0xffff88000f409d00, 0xffff880069990780, invalid, invalid, 0x100000000, 0x0, 0xffff880000000000, 0xffff880000000001, 0xffff88000f409d08) 0xffff88000f409c70 0xffffffff811b8a87 xfs_create+0x325 (0xffff880069990780, 0xffff88000f409d68, invalid, invalid, 0xffff88000f409d80, 0x0) 0xffff88000f409d50 0xffffffff811c36eb xfs_vn_mknod+0x14f (0xffff880069990a20, 0xffff88007f564000, invalid, invalid) 0xffff88000f409dc0 0xffffffff811c37db xfs_vn_create+0xb 0xffff88000f409dd0 0xffffffff810b27fe vfs_create+0xdf (0xffff880069990a20, 0xffff88007f564000, invalid, 0xffff88000f409e48) 0xffff88000f409e10 0xffffffff810b4a21 do_filp_open+0x214 (invalid, 0xffff880076003180, invalid, invalid) 0xffff88000f409f30 0xffffffff810a7e9a do_sys_open+0x53 (invalid, invalid, invalid, invalid) 0xffff88000f409f70 0xffffffff810a7f43 sys_open+0x1b (invalid, invalid, invalid) not matched: from 0xffffffff8100bfb2 to 0xffffffff8100c02a drop_through 0 bb_jmp[7] bb_special_case: Invalid bb_reg_state.memory, missing trailing entries bb_special_case: on transfer to int_with_check system_call_fastpath has memory parameters but no register parameters. Assuming it is a 'pass through' function that does not refer to its register parameters and setting 6 register parameters kdb_bb: 0xffffffff8100bf3b [kernel]system_call_fastpath failed at 0xffffffff8100bfcd Using old style backtrace, unreliable with no arguments sp ip Function (args) 0xffff88000f409a70 0xffffffff8104bffe up+0xf [3]more> 0xffff88000f409ab8 0xffffffff811c9265 assfail+0x1a 0xffff88000f409ae0 0xffffffff811c9265 assfail+0x1a 0xffff88000f409af0 0xffffffff811c3cd5 xfs_setup_inode+0x56 0xffff88000f409b20 0xffffffff8119d7a7 xfs_ialloc+0x53a 0xffff88000f409bb0 0xffffffff811b4952 xfs_dir_ialloc+0xa0 0xffff88000f409c70 0xffffffff811b8a87 xfs_create+0x325 0xffff88000f409d50 0xffffffff811c36eb xfs_vn_mknod+0x14f 0xffff88000f409dc0 0xffffffff811c37db xfs_vn_create+0xb 0xffff88000f409dd0 0xffffffff810b27fe vfs_create+0xdf 0xffff88000f409e10 0xffffffff810b4a21 do_filp_open+0x214 0xffff88000f409e40 0xffffffff810a3581 init_object+0x6e 0xffff88000f409ed0 0xffffffff8155fb01 _spin_unlock+0x26 0xffff88000f409f30 0xffffffff810a7e9a do_sys_open+0x53 0xffff88000f409f38 0xffffffff811f2fc9 selinux_file_free_security+0x1e 0xffff88000f409f70 0xffffffff810a7f43 sys_open+0x1b [3]kdb> [3]kdb> dmesg 20 <4>[ 4349.936786] XFS: correcting sb_features alignment problem <5>[ 4349.947784] XFS mounting filesystem sda4 <7>[ 4350.022280] Ending clean XFS mount for filesystem: sda4 <5>[ 4351.670370] XFS mounting filesystem sda3 <7>[ 4351.795964] Ending clean XFS mount for filesystem: sda3 <5>[ 4353.889829] XFS mounting filesystem sda3 <7>[ 4354.016496] Ending clean XFS mount for filesystem: sda3 <5>[ 4356.163284] XFS mounting filesystem sda3 <7>[ 4356.283840] Ending clean XFS mount for filesystem: sda3 <4>[ 4357.884887] XFS: correcting sb_features alignment problem <5>[ 4357.895876] XFS mounting filesystem sda4 <7>[ 4357.970481] Ending clean XFS mount for filesystem: sda4 <5>[ 4359.714421] XFS mounting filesystem sda3 <7>[ 4359.835486] Ending clean XFS mount for filesystem: sda3 <4>[ 4361.442033] XFS: correcting sb_features alignment problem <5>[ 4361.453021] XFS mounting filesystem sda4 <7>[ 4361.527472] Ending clean XFS mount for filesystem: sda4 <4>[ 4460.233979] Assertion failed: atomic_read(&inode->i_count) == 1, file: fs/xfs/linux-2.6/xfs_iops.c, line: 783 <0>[ 4460.253826] ------------[ cut here ]------------ <2>[ 4460.254764] kernel BUG at fs/xfs/support/debug.c:81! [3]kdb> [3]kdb> xnode 0xffff88006e1fbc00 mount 0xffff88007748f3f0 vnode 0xffff88006e1fbea0 dev 800004 ino 134342909[2:1e8f:d] blkno 0x399cb80 len 0x10 boffset 0x1d00 transp 0xffff88006c8fd880 &itemp 0xffff88002f4ee690 &lock 0xffff88006e1fbc88 &iolock 0xffff88006e1fbcf0 &flush 0xffff88006e1fbd58 (1) pincount 0x0 udquotp 0x0000000000000000 gdquotp 0x0000000000000000 new_size 0 flags 0x140 update_core 0 update size 0 gen 0x0 delayed blks 0size 0 trace 0xffff88007449a000 bmap_trace 0xffff88007449a060 bmbt trace 0xffff88007449a0c0 rw trace 0xffff88007449a120 ilock trace 0xffff88007449a180 dir trace 0xffff88007449a1e0 data fork bytes 0x0 real_bytes 0x0 lastex 0x0 u1:extents 0x0000000000000000 broot 0x0000000000000000 broot_bytes 0x0 ext_max 9 flags 0x2 u2 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 attr fork empty [3]more> magic 0x494e mode 0100666 (r---rw-rw-rw-) version 0x2 format 0x2 (extents) nlink 1 uid 0 gid 0 projid 0 flushiter 0 atime 1224743591:233524184 mtime 1224743591d:233524184 ctime 1224743591:233524184 size 0 nblocks 0 extsize 0x0 nextents 0x0 anextents 0x0 forkoff 0 aformat 0x2 (extents) dmevmask 0x0 dmstate 0x0 flags 0x0 <> gen 0x47f454b --> itrace @ 0xffff88006e1fbc00/0xffff88007449a000 exit from xfs_iget.alloc i_count = 1 cpu = 3 pid = 25318 ra = xfs_trans_iget+0x205 [3]kdb> [3]kdb> inode 0xffff88006e1fbea0 struct inode at 0xffff88006e1fbea0 i_ino = 134342909 i_count = 2 i_size 0 i_mode = 00 i_nlink = 1 i_rdev = 0x0 i_hash.nxt = 0x0000000000000000 i_hash.pprev = 0xffffc200002f9328 i_list.nxt = 0xffff880069990a20 i_list.prv = 0xffffffff817c3810 i_dentry.nxt = 0xffff88006e1fbe38 i_dentry.prv = 0xffff88006e1fbe38 i_sb = 0xffff88007748b1b0 i_op = 0xffffffff81eeab80 i_data = 0xffff88006e1fc088 nrpages = 0 i_fop= 0xffffffff81eeaaa0 i_flock = 0x0000000000000000 i_mapping = 0xffff88006e1fc088 i_flags 0x0 i_state 0x88 [I_NEW I_LOCK] fs specific info @ 0xffff88006e1fc288 From owner-xfs@oss.sgi.com Thu Oct 23 01:16:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9N8GVAQ024751 for ; Thu, 23 Oct 2008 01:16:31 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 357DB90897 for ; Thu, 23 Oct 2008 01:18:16 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA20936 for ; Thu, 23 Oct 2008 19:18:15 +1100 Message-ID: <4900412A.2050802@sgi.com> Date: Thu, 23 Oct 2008 19:17:30 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs-oss Subject: deadlock with latest xfs Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8471/Wed Oct 22 15:07:26 2008 on oss.sgi.com X-Virus-Status: Clean another problem with latest xfs I ran fsstress with 1024 threads and they all locked up within a few minutes. Some of the stacktraces are stuck in the log Stack traceback for pid 6675 0xffff881003436d60 6675 6648 0 1 D 0xffff8810034371c8 fsstress sp ip Function (args) 0xffff8810034e56d8 0xffffffff8155d9d6 thread_return 0xffff8810034e5770 0xffffffff8155de7f schedule_timeout+0x22 (0x7fffffffffffffff) 0xffff8810034e57e0 0xffffffff811a57bc xlog_grant_log_space+0x10a (0xffff881026beb230, 0xffff8807dc582d68) 0xffff8810034e5850 0xffffffff811a5b88 xfs_log_reserve+0x160 (0xffff88100d085b18, invalid, invalid, 0xffff8807d6ae5c40, invalid, invalid, 0x10) 0xffff8810034e5890 0xffffffff811b0de6 xfs_trans_reserve+0x173 (0xffff8807d6ae5c00, invalid, invalid, invalid, invalid, 0x2) 0xffff8810034e58e0 0xffffffff8119fab7 xfs_iomap_write_direct+0x204 (0xffff8808a4220000, 0xe3000, invalid, invalid, 0xffff8810034e5a38, 0xffff8810034e5a64, 0xffffc20000000001) 0xffff8810034e59e0 0xffffffff811a0588 xfs_iomap+0x282 (0xffff8808a4220000, 0xe3000, invalid, invalid, 0xffff8810034e5ab8, 0xffff8810034e5af4) 0xffff8810034e5aa0 0xffffffff811bc134 __xfs_get_blocks+0xa3 (0xffff8808a42202a0, invalid, 0xffff881026a8b830, invalid, invalid, invalid) 0xffff8810034e5b30 0xffffffff811bc29a xfs_get_blocks_direct+0x15 0xffff8810034e5b40 0xffffffff810d21b6 __blockdev_direct_IO+0x53c (invalid, invalid, 0xffff8808a42202a0, invalid, invalid, 0xd6c00, 0x1, 0xffffffff811bc285, 0xffffffff811bd031) 0xffff8810034e5be0 0xffffffff811bdcc0 xfs_vm_direct_IO+0xeb (invalid, 0xffff8810034e5de8, 0xffff8810034e5ed8, 0xd6c00, 0x1) 0xffff8810034e5c50 0xffffffff8107d42a generic_file_direct_write+0xfd (0xffff8810034e5de8, 0xffff8810034e5ed8, 0xffff8810034e5d78, 0xd6c00, 0xffff8810034e5e68, invalid, 0xce00) 0xffff8810034e5cb0 0xffffffff811c536f xfs_write+0x579 (0xffff8808a4220000, 0xffff8810034e5de8, 0xffff8810034e5ed8, 0x1, 0xffff8810034e5e68, 0x34e5e6800000005) 0xffff8810034e5dc0 0xffffffff811c0e00 __xfs_file_write+0x4c (invalid, invalid, invalid, invalid, invalid) 0xffff8810034e5dd0 0xffffffff811c0e26 xfs_file_aio_write+0x11 (invalid, invalid, invalid, invalid) 0xffff8810034e5de0 0xffffffff810a96ec do_sync_write+0xe2 (0xffff880fff69d680, 0x7f60ef402000, 0xce00, 0xffff8810034e5f48) 0xffff8810034e5f10 0xffffffff810a9ee8 vfs_write+0xae (0xffff880fff69d680, 0x7f60ef402000, invalid, 0xffff8810034e5f48) 0xffff8810034e5f40 0xffffffff810aa3f8 sys_write+0x47 (invalid, 0x7f60ef402000, 0xce00) But most of the fsstress threads are stuck with stacktraces like this one Stack traceback for pid 6674 0xffff881003435dc0 6674 6648 0 3 D 0xffff881003436228 fsstress sp ip Function (args) 0xffff8810034e3848 0xffffffff8155d9d6 thread_return 0xffff8810034e38e0 0xffffffff8155de07 io_schedule+0x5c 0xffff8810034e3900 0xffffffff8107c1fc sync_page+0x3f (invalid) 0xffff8810034e3910 0xffffffff8155e09a __wait_on_bit+0x45 (0xffff880028071cc0, 0xffff8810034e3958, 0xffffffff8107c1bd, invalid) 0xffff8810034e3950 0xffffffff8107c442 wait_on_page_bit+0x6e (0xffffe2003a7de578, invalid) 0xffff8810034e39b0 0xffffffff81082e57 write_cache_pages+0x191 (0xffff880c3dab6a08, 0xffff8810034e3b18, 0xffffffff81082966, 0xffff880c3dab6a08) 0xffff8810034e3ab0 0xffffffff81083019 generic_writepages+0x22 (invalid) 0xffff8810034e3ac0 0xffffffff811bdb52 xfs_vm_writepages+0x46 (0xffff880c3dab6a08, 0xffff8810034e3b18) 0xffff8810034e3af0 0xffffffff8108304a do_writepages+0x2b (invalid, 0xffff8810034e3b18) 0xffff8810034e3b10 0xffffffff8107cafd __filemap_fdatawrite_range+0x5b (invalid, 0x0, 0x7fffffffffffffff, invalid) 0xffff8810034e3b70 0xffffffff8107ccad filemap_fdatawrite+0x1a 0xffff8810034e3b80 0xffffffff8107cccb filemap_write_and_wait+0x1c (0xffff880c3dab6a08) 0xffff8810034e3ba0 0xffffffff811c1296 xfs_flushinval_pages+0x4e (0xffff880c3dab6580, 0x78000) 0xffff8810034e3bd0 0xffffffff811b5718 xfs_free_file_space+0x196 (0xffff880c3dab6580, 0x78a52, 0x894ec, invalid) 0xffff8810034e3ce0 0xffffffff811b771a xfs_change_file_space+0x163 (0xffff880c3dab6580, invalid, 0xffff8810034e3d98, invalid, 0x0, invalid) 0xffff8810034e3d90 0xffffffff811c1faf xfs_ioc_space+0xab (0xffff880c3dab6580, invalid, 0xffff880fffbfb500, invalid, invalid, invalid) 0xffff8810034e3e00 0xffffffff811c2e8e xfs_ioctl+0x296 (0xffff880c3dab6580, 0xffff880fffbfb500, invalid, invalid, 0x7ffff7a32c20) 0xffff8810034e3e80 0xffffffff811c1173 xfs_file_ioctl+0x36 (invalid, invalid, invalid) 0xffff8810034e3eb0 0xffffffff810b5c42 vfs_ioctl+0x2a (0xffff880fffbfb500, invalid, 0x7ffff7a32c20) 0xffff8810034e3ee0 0xffffffff810b5eee do_vfs_ioctl+0x25f (invalid, invalid, invalid, 0x7ffff7a32c20) 0xffff8810034e3f30 0xffffffff810b5f62 sys_ioctl+0x57 (invalid, invalid, 0x7ffff7a32c20) The system has plenty of memory available. The deadlock is reproducible. From owner-xfs@oss.sgi.com Thu Oct 23 06:51:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NDpRdU000386 for ; Thu, 23 Oct 2008 06:51:29 -0700 X-ASG-Debug-ID: 1224769993-2c7d01fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F1CD710D85A9 for ; Thu, 23 Oct 2008 06:53:13 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id jnDh5yaoGkvXESDS for ; Thu, 23 Oct 2008 06:53:13 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 9943EAC359B for ; Thu, 23 Oct 2008 08:53:11 -0500 (CDT) Message-ID: <490081C6.1030301@sandeen.net> Date: Thu, 23 Oct 2008 08:53:10 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified Subject: Re: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified References: <20081022183636.GE20550@kyra> <20081022234128.GC4395@kyra> In-Reply-To: <20081022234128.GC4395@kyra> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224769993 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8568 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8472/Thu Oct 23 02:53:25 2008 on oss.sgi.com X-Virus-Status: Clean KELEMEN Peter wrote: > Eric has pointed out that verify_set_primary_sb() will either > return 1 or XR_INSUFF_SEC_SB. Move the check lower into > verify_set_primary_sb() by checking the return value of > verify_sb(). Example output: > > found candidate secondary superblock... > verifying sb at 31249334272: bad magic number (1) > verifying sb at 62498668544: bad magic number (1) > verifying sb at 93748002816: bad magic number (1) > verifying sb at 124997337088: bad magic number (1) > unable to verify superblock, continuing... > This looks better :) You may want to add even more info... while it's just searching block by block, if it finds a candidate, I'd print the sector offset for that candidate (your first output line). And rather than "verifying sb at..." you might do something like "comparing to sb N at offset X": + } else { + do_warn("comparing with sb %d at sector %Lu failed: %s (%d)\n", + agno, off, err_string(reason), reason); because at this point it's using the geometry of the candidate sb to see if it can be used to find enough other valid sb's.... -Eric > Signed-off-by: KELEMEN Peter > > Index: xfsprogs/repair/sb.c > =================================================================== > RCS file: /cvs/xfs-cmds/xfsprogs/repair/sb.c,v > retrieving revision 1.22 > diff -u -u -r1.22 sb.c > --- xfsprogs/repair/sb.c 8 Sep 2008 06:18:43 -0000 1.22 > +++ xfsprogs/repair/sb.c 22 Oct 2008 23:17:27 -0000 > @@ -683,6 +683,7 @@ > int num_ok; > int retval; > int round; > + int reason; /* why the sb check failed */ > > /* > * select the number of secondaries to try for > @@ -727,7 +728,7 @@ > goto out; > } > > - if (verify_sb(sb, 0) == XR_OK) { > + if ((reason = verify_sb(sb, 0)) == XR_OK) { > /* > * save away geometry info. > * don't bother checking the sb > @@ -740,6 +741,9 @@ > get_sb_geometry(&geo, sb); > list = add_geo(list, &geo, agno); > num_ok++; > + } else { > + do_warn("verifying sb at %Lu: %s (%d)\n", > + off, err_string(reason), reason); > } > } > } > > From owner-xfs@oss.sgi.com Thu Oct 23 07:22:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NEMp2O004649 for ; Thu, 23 Oct 2008 07:22:53 -0700 X-ASG-Debug-ID: 1224771876-1bac03e00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 90CD310DB0CF for ; Thu, 23 Oct 2008 07:24:37 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id Mz1Q2pEhiDhd4fKM for ; Thu, 23 Oct 2008 07:24:37 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id A0BD2AC359B for ; Thu, 23 Oct 2008 09:24:36 -0500 (CDT) Message-ID: <49008923.7030208@sandeen.net> Date: Thu, 23 Oct 2008 09:24:35 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified Subject: Re: [PATCH V2] xfs_repair: print superblock offsets and why they can't be verified References: <20081022183636.GE20550@kyra> <20081022234128.GC4395@kyra> <490081C6.1030301@sandeen.net> In-Reply-To: <490081C6.1030301@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224771877 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8570 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8472/Thu Oct 23 02:53:25 2008 on oss.sgi.com X-Virus-Status: Clean Eric Sandeen wrote: > KELEMEN Peter wrote: >> Eric has pointed out that verify_set_primary_sb() will either >> return 1 or XR_INSUFF_SEC_SB. Move the check lower into >> verify_set_primary_sb() by checking the return value of >> verify_sb(). Example output: >> >> found candidate secondary superblock... >> verifying sb at 31249334272: bad magic number (1) >> verifying sb at 62498668544: bad magic number (1) >> verifying sb at 93748002816: bad magic number (1) >> verifying sb at 124997337088: bad magic number (1) >> unable to verify superblock, continuing... >> > > This looks better :) You may want to add even more info... > > while it's just searching block by block, if it finds a candidate, I'd > print the sector offset for that candidate (your first output line). > > And rather than "verifying sb at..." you might do something like > "comparing to sb N at offset X": > > + } else { > + do_warn("comparing with sb %d at sector %Lu failed: %s (%d)\n", > + agno, off, err_string(reason), reason); Sorry, that was a pre-coffee email :) The units are bytes, not sectors, aren't they... in any case, printing the (proper) units for the values would be helpful. -Eric From owner-xfs@oss.sgi.com Thu Oct 23 10:30:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NHU3Qe022270 for ; Thu, 23 Oct 2008 10:30:07 -0700 X-ASG-Debug-ID: 1224783109-202c00550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4CB9146B0B8; Thu, 23 Oct 2008 10:31:49 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3BVVWlRztDCW9ovy; Thu, 23 Oct 2008 10:31:49 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kt42H-0008QO-33; Thu, 23 Oct 2008 17:31:49 +0000 Date: Thu, 23 Oct 2008 13:31:49 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: assertion failure with latest xfs Subject: Re: assertion failure with latest xfs Message-ID: <20081023173149.GA30316@infradead.org> References: <49003EFF.4090404@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49003EFF.4090404@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224783109 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8583 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8476/Thu Oct 23 07:46:06 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 07:08:15PM +1000, Lachlan McIlroy wrote: > Just encountered this after pulling in the latest changes. We are trying to > initialise an inode that should have an i_count of 1 but instead it is 2. I > was running XFSQA test 167 when it happened. I think the assert is incorrect. The inode has been added to the radix tree in xfs_iget_cache_miss, and starting from that point an igrab can kick in from the sync code and bump the refcount. From owner-xfs@oss.sgi.com Thu Oct 23 13:34:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,TVD_SPACE_RATIO autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NKY7lq005939 for ; Thu, 23 Oct 2008 13:34:08 -0700 X-ASG-Debug-ID: 1224794153-294202fc0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hedwig.laszlosystems.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D73C146D12E for ; Thu, 23 Oct 2008 13:35:53 -0700 (PDT) Received: from hedwig.laszlosystems.com (hedwig.laszlosystems.com [198.144.202.72]) by cuda.sgi.com with ESMTP id mGXE7cc9xCMCWxWS for ; Thu, 23 Oct 2008 13:35:53 -0700 (PDT) Received: from blacksteel.corp.laszlosystems.com (blacksteel.corp.laszlosystems.com [192.168.43.27]) (authenticated bits=0) by hedwig.laszlosystems.com (8.14.0/8.14.0) with ESMTP id m9NKZox5032531 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Thu, 23 Oct 2008 13:35:50 -0700 Message-Id: <2D897A41-8C76-44CD-B310-40A7C741CF1A@laszlosystems.com> From: Joseph Silverman To: linux-xfs@oss.sgi.com Content-Type: text/plain Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v929.2) X-ASG-Orig-Subj: subscribe Subject: subscribe Date: Thu, 23 Oct 2008 13:35:50 -0700 X-Mailer: Apple Mail (2.929.2) X-Synonym: Copied by Synonym (http://www.modulo.ro/synonym) to: mail-archive X-Barracuda-Connect: hedwig.laszlosystems.com[198.144.202.72] X-Barracuda-Start-Time: 1224794154 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8594 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean From owner-xfs@oss.sgi.com Thu Oct 23 13:55:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NKthlM007179 for ; Thu, 23 Oct 2008 13:55:43 -0700 X-ASG-Debug-ID: 1224795448-05b9015b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8D45E10DF1F4; Thu, 23 Oct 2008 13:57:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id pFxkGVBK4k8bfkvN; Thu, 23 Oct 2008 13:57:28 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kt7FI-00010x-Av; Thu, 23 Oct 2008 20:57:28 +0000 Date: Thu, 23 Oct 2008 16:57:28 -0400 From: Christoph Hellwig To: Lachlan McIlroy Cc: xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081023205727.GA28490@infradead.org> References: <4900412A.2050802@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4900412A.2050802@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224795449 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8595 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: > another problem with latest xfs Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based git tree? It does looks more like a VM issue than a XFS issue to me. From owner-xfs@oss.sgi.com Thu Oct 23 13:56:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NKuGms007274 for ; Thu, 23 Oct 2008 13:56:17 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 37F6D90889 for ; Thu, 23 Oct 2008 13:58:00 -0700 (PDT) Received: from [134.15.251.4] (melb-sw-corp-251-4.corp.sgi.com [134.15.251.4]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id HAA11969 for ; Fri, 24 Oct 2008 07:57:58 +1100 Message-ID: <4900F34C.2090205@sgi.com> Date: Fri, 24 Oct 2008 07:57:32 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: xfs-oss Subject: [Fwd: [xfs-masters] [Bug 11813] New: xfs filesystem exported via nfs don't work in 2.6.27.3] Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean looks like we better do something urgently to fix this. Any suggestions Christoph? Cheers -------- Original Message -------- Subject: [xfs-masters] [Bug 11813] New: xfs filesystem exported via nfs don't work in 2.6.27.3 Date: Thu, 23 Oct 2008 12:32:51 -0700 (PDT) From: bugme-daemon@bugzilla.kernel.org Reply-To: xfs-masters@oss.sgi.com To: xfs-masters@oss.sgi.com http://bugzilla.kernel.org/show_bug.cgi?id=11813 Summary: xfs filesystem exported via nfs don't work in 2.6.27.3 Product: File System Version: 2.5 KernelVersion: 2.6.27.3 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: XFS AssignedTo: xfs-masters@oss.sgi.com ReportedBy: francois.valenduc@tvcablenet.be Latest working kernel version: 2.6.27.2 Earliest failing kernel version: 2.6.27.3 Distribution: Gentoo Hardware Environment: Software Environment: Problem Description: With kernel 2.6.27.3, it's impossible to use a xfs filesystem exported via NFS. I am using gentoo and I share a portage tree mounted on an xfs filesystem via NFS. Each time packages are fetched, the emerge process is blocked. It seems the problematic commit is the following: commit c068663ae65e507814545b59a8e2090f48a85613 Author: Christoph Hellwig Date: Sun Oct 12 14:30:44 2008 +0200 xfs: fix remount rw with unrecognized options commit 6c5e51dae2c37127e00be392f40842e08077e96a upstream When we skip unrecognized options in xfs_fs_remount we should just break out of the switch and not return because otherwise we may skip clearing the xfs-internal read-only flag. This will only show up on some operations like touch because most read-only checks are done by the VFS which thinks this filesystem is r/w. Eventually we should replace the XFS read-only flag with a helper that always checks the VFS flag to make sure they can never get out of sync. Bug reported and fix verified by Marcel Beister on #xfs. Bug fix verified by updated xfstests/189. If I revert it, the problem doesn't occur. Steps to reproduce: -- Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Thu Oct 23 15:19:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NMJjmX012419 for ; Thu, 23 Oct 2008 15:19:45 -0700 X-ASG-Debug-ID: 1224800489-3ced017b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D42D536E24 for ; Thu, 23 Oct 2008 15:21:30 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Gx8heJimDw7uB4hC for ; Thu, 23 Oct 2008 15:21:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,472,1220193000"; d="scan'208";a="216963581" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 08:51:28 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kt8YY-0004OQ-Dj; Fri, 24 Oct 2008 09:21:26 +1100 Date: Fri, 24 Oct 2008 09:21:26 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: assertion failure with latest xfs Subject: Re: assertion failure with latest xfs Message-ID: <20081023222126.GA18495@disturbed> Mail-Followup-To: Christoph Hellwig , Lachlan McIlroy , xfs-oss References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081023173149.GA30316@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224800491 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8600 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 01:31:49PM -0400, Christoph Hellwig wrote: > On Thu, Oct 23, 2008 at 07:08:15PM +1000, Lachlan McIlroy wrote: > > Just encountered this after pulling in the latest changes. We are trying to > > initialise an inode that should have an i_count of 1 but instead it is 2. I > > was running XFSQA test 167 when it happened. > > I think the assert is incorrect. The inode has been added to the radix > tree in xfs_iget_cache_miss, and starting from that point an igrab can > kick in from the sync code and bump the refcount. Actually, it was put there for a reason. The generic code doesn't allow new inodes to be found in the cache until the I_LOCK flag is cleared. This is done by calling wait_on_inode() after a successful lookup (which waits on I_LOCK) and unlock_new_inode() clears the I_LOCK|I_NEW bits and wakes anyone who was waiting on that inode via wake_up_inode(). So the assert was put there to catch potential races in lookup where a second process does a successful igrab() before the inode is fully initialised. I think the race is in dealing with cache hits and recycling a XFS_IRECLAIMABLE inode. We set the XFS_INEW flag there under the radix tree read lock, which means we can have parallel lookups on the same inode that goes: thread 1 thread 2 test XFS_INEW -> not set test XFS_IRECLAIMABLE -> set test XFS_INEW -> not set set XFS_INEW clear XFS_IRECLAIMABLE test XFS_IRECLAIMABLE -> not set xfs_setup_inode() -> i_state = I_NEW|I_LOCK igrab(inode) -> I_CLEAR not set -> refcount = 2 -> inode_add_to_lists -> assert(refcount == 1) ..... -> clear XFS_INEW -> unlock_new_inode() -> clear I_NEW|I_LOCK I thought I'd handled this race with the ordering of setting/clearing XFS_INEW/XFS_IRECLAIMABLE. Clearly not. I'll add a comment to this ordering because it is key to actually detecting the race condition so we can handle it. Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't drop the reference we got if we found an unlinked inode after the igrab() (the ENOENT case). I'll fix that as well. Patch below that I'm currently running through xfsqa. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Fix race when looking up reclaimable inodes If we get a race looking up a reclaimable inode, we can end up with the winner proceeding to use the inode before it has been completely re-initialised. This is a Bad Thing. Fix the race by checking whether we are still initialising the inod eonce we have a reference to it, and if so wait for the initialisation to complete before continuing. While there, fix a leaked reference count in the same code when encountering an unlinked inode and we are not doing a lookup for a create operation. --- fs/xfs/linux-2.6/xfs_linux.h | 1 + fs/xfs/xfs_iget.c | 32 ++++++++++++++++++++++---------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_linux.h b/fs/xfs/linux-2.6/xfs_linux.h index cc0f7b3..947dfa1 100644 --- a/fs/xfs/linux-2.6/xfs_linux.h +++ b/fs/xfs/linux-2.6/xfs_linux.h @@ -77,6 +77,7 @@ #include #include #include +#include #include #include diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 837cae7..bf4dc5e 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -52,7 +52,7 @@ xfs_iget_cache_hit( int lock_flags) __releases(pag->pag_ici_lock) { struct xfs_mount *mp = ip->i_mount; - int error = 0; + int error = EAGAIN; /* * If INEW is set this inode is being set up @@ -60,7 +60,6 @@ xfs_iget_cache_hit( * Pause and try again. */ if (xfs_iflags_test(ip, (XFS_INEW|XFS_IRECLAIM))) { - error = EAGAIN; XFS_STATS_INC(xs_ig_frecycle); goto out_error; } @@ -73,7 +72,6 @@ xfs_iget_cache_hit( * error immediately so we don't remove it from the reclaim * list and potentially leak the inode. */ - if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { error = ENOENT; goto out_error; @@ -91,27 +89,42 @@ xfs_iget_cache_hit( error = ENOMEM; goto out_error; } + + /* + * We must set the XFS_INEW flag before clearing the + * XFS_IRECLAIMABLE flag so that if a racing lookup does + * not find the XFS_IRECLAIMABLE above but has the igrab() + * below succeed we can safely check XFS_INEW to detect + * that this inode is still being initialised. + */ xfs_iflags_set(ip, XFS_INEW); xfs_iflags_clear(ip, XFS_IRECLAIMABLE); /* clear the radix tree reclaim flag as well. */ __xfs_inode_clear_reclaim_tag(mp, pag, ip); - read_unlock(&pag->pag_ici_lock); } else if (!igrab(VFS_I(ip))) { /* If the VFS inode is being torn down, pause and try again. */ - error = EAGAIN; XFS_STATS_INC(xs_ig_frecycle); goto out_error; - } else { - /* we've got a live one */ - read_unlock(&pag->pag_ici_lock); + } else if (xfs_iflags_test(ip, XFS_INEW)) { + /* + * We are racing with another cache hit that is + * currently recycling this inode out of the XFS_IRECLAIMABLE + * state. Wait for the initialisation to complete before + * continuing. + */ + wait_on_inode(VFS_I(ip)); } if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { error = ENOENT; - goto out; + iput(VFS_I(ip)); + goto out_error; } + /* We've got a live one. */ + read_unlock(&pag->pag_ici_lock); + if (lock_flags != 0) xfs_ilock(ip, lock_flags); @@ -122,7 +135,6 @@ xfs_iget_cache_hit( out_error: read_unlock(&pag->pag_ici_lock); -out: return error; } From owner-xfs@oss.sgi.com Thu Oct 23 15:26:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NMQn5o013027 for ; Thu, 23 Oct 2008 15:26:49 -0700 X-ASG-Debug-ID: 1224800912-438c017f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 766511454982 for ; Thu, 23 Oct 2008 15:28:33 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 7bEEJxCl3hpo3mMC for ; Thu, 23 Oct 2008 15:28:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,473,1220193000"; d="scan'208";a="216968046" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 08:58:31 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kt8fO-0007P3-GA; Fri, 24 Oct 2008 09:28:30 +1100 Date: Fri, 24 Oct 2008 09:28:30 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Lachlan McIlroy , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081023222830.GB18495@disturbed> Mail-Followup-To: Christoph Hellwig , Lachlan McIlroy , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081023205727.GA28490@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224800915 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8600 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 04:57:28PM -0400, Christoph Hellwig wrote: > On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: > > another problem with latest xfs > > Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based > git tree? It does looks more like a VM issue than a XFS issue to me. I hit this immediately after I upgraded to a 2.6.28 base tree from a 2.6.27-rc9. I couldn't get to the bottom of it - it did look like a lost I/O or VM lockup but I haven't seen it since so I haven't been able to do anything more.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 15:28:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NMSQG7013386 for ; Thu, 23 Oct 2008 15:28:26 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id E73678F8115 for ; Thu, 23 Oct 2008 15:30:09 -0700 (PDT) Received: from [134.15.251.4] (melb-sw-corp-251-4.corp.sgi.com [134.15.251.4]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA15139 for ; Fri, 24 Oct 2008 09:30:08 +1100 Message-ID: <490108E6.7060502@sgi.com> Date: Fri, 24 Oct 2008 09:29:42 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: xfs-oss Subject: XFS performance tracking and regression monitoring Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean We're about to deploy a system+jbod dedicated for performance regression tracking. The idea is to build the XFS dev branch nightly, run a bunch of self contained benchmarks, and generate a progressive daily report - date on the X-axis, with (perhaps) wallclock runtime on the y-axis. The aim is to track relative XFS performance on a daily basis for various workloads on identical h/w. If each workload runs for approx the same duration, the reports can all share the same generic y-axis. THe long term trend should have a positive gradient. Regressions can be date correlated with commits. Comments, benchmark suggestions? ANyone already running this? Know of a test harness and/or report generator? Or will we just roll our own - seems conceptually fairly simple. Thanks -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Thu Oct 23 15:30:38 2008 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NMUa9H013781 for ; Thu, 23 Oct 2008 15:30:38 -0700 X-ASG-Debug-ID: 1224801142-4abf01f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FDF410E3BFE; Thu, 23 Oct 2008 15:32:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DJDyzTLLmZudsgsq; Thu, 23 Oct 2008 15:32:22 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kt8j7-0000o0-VG; Thu, 23 Oct 2008 22:32:21 +0000 Date: Thu, 23 Oct 2008 18:32:21 -0400 From: Christoph Hellwig To: Mark Goodwin Cc: xfs-oss , francois.valenduc@tvcablenet.be X-ASG-Orig-Subj: Re: [Fwd: [xfs-masters] [Bug 11813] New: xfs filesystem exported via nfs don't work in 2.6.27.3] Subject: Re: [Fwd: [xfs-masters] [Bug 11813] New: xfs filesystem exported via nfs don't work in 2.6.27.3] Message-ID: <20081023223221.GA32629@infradead.org> References: <4900F34C.2090205@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4900F34C.2090205@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224801143 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8599 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8480/Thu Oct 23 11:39:52 2008 on oss.sgi.com X-Virus-Status: Clean On Fri, Oct 24, 2008 at 07:57:32AM +1000, Mark Goodwin wrote: > looks like we better do something urgently to fix this. > Any suggestions Christoph? Francois Valenduc wrote on Bugzilla: > With kernel 2.6.27.3, it's impossible to use a xfs filesystem exported via > NFS. I am using gentoo and I share a portage tree mounted on an xfs > filesystem > via NFS. Each time packages are fetched, the emerge process is blocked. It > seems the problematic commit is the following: > > commit c068663ae65e507814545b59a8e2090f48a85613 I can't reproduce this, and intuitively this doesn't make sense. The symptoms are the ones one would see due to the bug that is fixed by this commit. From owner-xfs@oss.sgi.com Thu Oct 23 16:06:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NN6A3V015850 for ; Thu, 23 Oct 2008 16:06:11 -0700 X-ASG-Debug-ID: 1224803275-438c037a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2D20C1B15255 for ; Thu, 23 Oct 2008 16:07:55 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id C5igyAkawCfxfHuT for ; Thu, 23 Oct 2008 16:07:55 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9NN7sQa010768 for ; Thu, 23 Oct 2008 19:07:54 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9NN7swc019876 for ; Thu, 23 Oct 2008 19:07:54 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9NN7rmG002381 for ; Thu, 23 Oct 2008 19:07:53 -0400 Message-ID: <490103C9.9080900@sandeen.net> Date: Thu, 23 Oct 2008 18:07:53 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 1/2] convert xfs_getbmap to take formatter functions Subject: [PATCH 1/2] convert xfs_getbmap to take formatter functions Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224803276 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8601 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 X-Virus-Scanned: ClamAV 0.91.2/8481/Thu Oct 23 14:30:18 2008 on oss.sgi.com X-Virus-Status: Clean Preliminary work to hook up fiemap, this allows us to pass in an arbitrary formatter to copy extent data back to userspace. The formatter takes info for 1 extent, a pointer to the user "thing*" and a pointer to a "filled" variable to indicate whether a userspace buffer did get filled in (for fiemap, hole "extents" are skipped). I'm just using the getbmapx struct as a "common denominator" because as far as I can see, it holds all info that any formatters will care about. ("*thing" because fiemap doesn't pass the user pointer around, but rather has a pointer to a fiemap info structure, and helpers associated with it) Signed-off-by: Eric Sandeen --- linux-2.6/xfs_ioctl.c | 39 ++++++++---------------- xfs_bmap.c | 81 +++++++++++++++++++++++++++----------------------- xfs_bmap.h | 13 +++++--- xfs_fs.h | 12 ------- 4 files changed, 67 insertions(+), 78 deletions(-) Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.c +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c @@ -5742,9 +5742,9 @@ error0: STATIC int xfs_getbmapx_fix_eof_hole( xfs_inode_t *ip, /* xfs incore inode pointer */ - struct getbmap *out, /* output structure */ + struct getbmapx *out, /* output structure */ int prealloced, /* this is a file with - * preallocated data space */ + * preallocated data space */ __int64_t end, /* last block requested */ xfs_fsblock_t startblock) { @@ -5769,15 +5769,38 @@ xfs_getbmapx_fix_eof_hole( return 1; } +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + if (copy_to_user(*ap, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + *filled = 1; + return 0; +} + +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(ap, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + *filled = 1; + return 0; +} + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int interface) /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg) /* formatter arg (user ptr etc) */ { __int64_t bmvend; /* last block requested */ int error; /* return value */ @@ -5790,19 +5813,20 @@ xfs_getbmap( int nexleft; /* # of user extents left */ int subnex; /* # of bmapi's can do */ int nmap; /* number of map entries */ - struct getbmap out; /* output structure */ + struct getbmapx out; /* output structure */ int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ - __int32_t oflags; /* getbmapx bmv_oflags field */ mp = ip->i_mount; + iflags = bmv->bmv_iflags; - whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (interface & BMV_IF_PREALLOC) != 0; + whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; + sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5817,7 +5841,7 @@ xfs_getbmap( * could misinterpret holes in a DMAPI file as true holes, * when in fact they may represent offline user data. */ - if ((interface & BMV_IF_NO_DMAPI_READ) == 0 && + if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_READ) && whichfork == XFS_DATA_FORK) { error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL); @@ -5924,52 +5948,35 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - nexleft--; - oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? + out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? BMV_OF_PREALLOC : 0; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); + out.bmv_unused1 = out.bmv_unused2 = 0; ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ goto unlock_and_return; } else { + int filled; /* extents filled by formatter */ + if (!xfs_getbmapx_fix_eof_hole(ip, &out, prealloced, bmvend, map[i].br_startblock)) { goto unlock_and_return; } - /* return either getbmap/getbmapx structure. */ - if (interface & BMV_IF_EXTENDED) { - struct getbmapx outx; - - GETBMAP_CONVERT(out,outx); - outx.bmv_oflags = oflags; - outx.bmv_unused1 = outx.bmv_unused2 = 0; - if (copy_to_user(ap, &outx, - sizeof(outx))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } else { - if (copy_to_user(ap, &out, - sizeof(out))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } + /* format results into user's buffer & advance */ + error = formatter(&arg, &out, &filled); + if (error) + goto unlock_and_return; + nexleft -= filled; bmv->bmv_offset = out.bmv_offset + out.bmv_length; bmv->bmv_length = MAX((__int64_t)0, (__int64_t)(bmvend - bmv->bmv_offset)); bmv->bmv_entries++; - ap = (interface & BMV_IF_EXTENDED) ? - (void __user *) - ((struct getbmapx __user *)ap + 1) : - (void __user *) - ((struct getbmap __user *)ap + 1); } } } while (nmap && nexleft && bmv->bmv_length); Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.h @@ -343,15 +343,20 @@ xfs_bunmapi( extents */ int *done); /* set if not done yet */ +/* bmap to userspace formatters - copy to user & advance pointer */ +typedef int (*xfs_bmap_format_t)(void __user **, struct getbmapx *, int *filled); +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled); +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled); + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int iflags); /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg); /* formatter arg (user ptr etc) */ /* * Check if the endoff is outside the last extent. If so the caller will grow Index: linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1262,25 +1262,26 @@ xfs_ioc_getbmap( unsigned int cmd, void __user *arg) { - struct getbmap bm; - int iflags; + struct getbmapx bmx; int error; - if (copy_from_user(&bm, arg, sizeof(bm))) + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); - if (bm.bmv_count < 2) + if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); if (ioflags & IO_INVIS) - iflags |= BMV_IF_NO_DMAPI_READ; + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - error = xfs_getbmap(ip, &bm, (struct getbmap __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap __user *)arg+1); if (error) return -error; - if (copy_to_user(arg, &bm, sizeof(bm))) + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) return -XFS_ERROR(EFAULT); return 0; } @@ -1291,8 +1292,6 @@ xfs_ioc_getbmapx( void __user *arg) { struct getbmapx bmx; - struct getbmap bm; - int iflags; int error; if (copy_from_user(&bmx, arg, sizeof(bmx))) @@ -1301,26 +1300,16 @@ xfs_ioc_getbmapx( if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - /* - * Map input getbmapx structure to a getbmap - * structure for xfs_getbmap. - */ - GETBMAP_CONVERT(bmx, bm); - - iflags = bmx.bmv_iflags; - - if (iflags & (~BMV_IF_VALID)) + if (bmx.bmv_iflags & (~BMV_IF_VALID)) return -XFS_ERROR(EINVAL); - iflags |= BMV_IF_EXTENDED; - - error = xfs_getbmap(ip, &bm, (struct getbmapx __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx __user *)arg+1); if (error) return -error; - GETBMAP_CONVERT(bm, bmx); - - if (copy_to_user(arg, &bmx, sizeof(bmx))) + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); return 0; Index: linux-2.6.27.x86_64/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_fs.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_fs.h @@ -114,22 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) -#ifdef __KERNEL__ -#define BMV_IF_EXTENDED 0x40000000 /* getpmapx if set */ -#endif /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -/* Convert getbmap <-> getbmapx - move fields from p1 to p2. */ -#define GETBMAP_CONVERT(p1,p2) { \ - p2.bmv_offset = p1.bmv_offset; \ - p2.bmv_block = p1.bmv_block; \ - p2.bmv_length = p1.bmv_length; \ - p2.bmv_count = p1.bmv_count; \ - p2.bmv_entries = p1.bmv_entries; } - - /* * Structure for XFS_IOC_FSSETDM. * For use by backup and restore programs to set the XFS on-disk inode From owner-xfs@oss.sgi.com Thu Oct 23 16:12:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NNC7W9016381 for ; Thu, 23 Oct 2008 16:12:07 -0700 X-ASG-Debug-ID: 1224803633-5508030e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AF545537485 for ; Thu, 23 Oct 2008 16:13:53 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id EOo8Iji3HDVARz6w for ; Thu, 23 Oct 2008 16:13:53 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9NNDrjY011490 for ; Thu, 23 Oct 2008 19:13:53 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9NNDqCY020642 for ; Thu, 23 Oct 2008 19:13:52 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9NNDpfR002743 for ; Thu, 23 Oct 2008 19:13:52 -0400 Message-ID: <4901052F.5090002@redhat.com> Date: Thu, 23 Oct 2008 18:13:51 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 2/2] hook up fiemap & associated formatter Subject: [PATCH 2/2] hook up fiemap & associated formatter Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224803633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8601 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 X-Virus-Scanned: ClamAV 0.91.2/8481/Thu Oct 23 14:30:18 2008 on oss.sgi.com X-Virus-Status: Clean Hook up the fiemap ioctl. This simply adds the fiemap inode_operation, which for us converts the fiemap values & flags into a getbmapx structure which can be sent to xfs_getbmap. The formatter then copies the bmv array back into the user's fiemap buffer. This does *not* yet do delalloc; it still syncs the file just as xfs_bmap always did. That will come later; I'd like to get the basic hookup out for review & committed so that we have something for 2.6.28. This adds another output flag, BMV_OF_LAST to indicate if we've hit the last extent in the inode. This potentially saves an extra call from userspace to see when the whole mapping is done. If we wanted to be clever-er, we could also return mapping data for in-inode attributes, but I'm not terribly motivated to do that just yet. :) Signed-off-by: Eric Sandeen --- Index: linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c @@ -53,6 +53,7 @@ #include #include #include +#include /* * Bring the atime in the XFS inode uptodate. @@ -661,6 +662,74 @@ out_error: return error; } +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +STATIC int xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *filled) +{ + int error = 0; + struct fiemap_extent_info *fieinfo= *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + *filled = 0; + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + if (bmv->bmv_oflags & BMV_OF_LAST) + fiemap_flags |= FIEMAP_EXTENT_LAST; + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error < 0) + return -error; + *filled = 1; + return 0; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + if (fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS)) + return -EBADR; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ + if (length == FIEMAP_MAX_OFFSET) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + /* xfs_getbmap takes count as header + array */ + bm.bmv_count = fieinfo->fi_extents_max + 1; + bm.bmv_iflags = BMV_IF_PREALLOC; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -XFS_ERROR(error); + + return 0; +} + static const struct inode_operations xfs_inode_operations = { .permission = xfs_vn_permission, .truncate = xfs_vn_truncate, @@ -671,6 +740,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fallocate = xfs_vn_fallocate, + .fiemap = xfs_vn_fiemap, }; static const struct inode_operations xfs_dir_inode_operations = { Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.c +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c @@ -5750,6 +5750,9 @@ xfs_getbmapx_fix_eof_hole( { __int64_t fixlen; xfs_mount_t *mp; /* file system mount point */ + xfs_ifork_t *ifp; /* inode fork pointer */ + xfs_extnum_t lastx; /* last extent pointer */ + xfs_fileoff_t fileblock; /* logical mapping offset */ if (startblock == HOLESTARTBLOCK) { mp = ip->i_mount; @@ -5764,6 +5767,11 @@ xfs_getbmapx_fix_eof_hole( } } else { out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset); + ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); + if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) && + (lastx == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t)) - 1)) + out->bmv_oflags |= BMV_OF_LAST; } return 1; @@ -5957,6 +5965,7 @@ xfs_getbmap( if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ + out.bmv_oflags |= BMV_OF_LAST; goto unlock_and_return; } else { int filled; /* extents filled by formatter */ Index: linux-2.6.27.x86_64/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_fs.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_fs.h @@ -117,6 +117,7 @@ struct getbmapx { /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_LAST 0x4 /* segment is the last in the file */ /* * Structure for XFS_IOC_FSSETDM. From owner-xfs@oss.sgi.com Thu Oct 23 16:34:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9NNY2sj022235 for ; Thu, 23 Oct 2008 16:34:03 -0700 X-ASG-Debug-ID: 1224804946-3df500500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B43901B1546F for ; Thu, 23 Oct 2008 16:35:47 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id BWxxuucl92hTtCOA for ; Thu, 23 Oct 2008 16:35:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,473,1220193000"; d="scan'208";a="217011622" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 10:05:40 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kt9iN-0000xE-2V; Fri, 24 Oct 2008 10:35:39 +1100 Date: Fri, 24 Oct 2008 10:35:39 +1100 From: Dave Chinner To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2] convert xfs_getbmap to take formatter functions Message-ID: <20081023233538.GG18495@disturbed> Mail-Followup-To: Eric Sandeen , xfs mailing list References: <490103C9.9080900@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490103C9.9080900@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224804948 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0187 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8602 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8481/Thu Oct 23 14:30:18 2008 on oss.sgi.com X-Virus-Status: Clean On Thu, Oct 23, 2008 at 06:07:53PM -0500, Eric Sandeen wrote: > Preliminary work to hook up fiemap, this allows us to pass in an > arbitrary formatter to copy extent data back to userspace. Is there a fiemap test program around anywhere? If so, would it be appropriate to include it in xfstests and write a quick regression test for it? We'd probably need to also check xfs_bmap gives the same output as fiemap.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 17:12:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O0CHk1023685 for ; Thu, 23 Oct 2008 17:12:17 -0700 X-ASG-Debug-ID: 1224807242-61c3007b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ishtar.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AFE1B1B15AC8 for ; Thu, 23 Oct 2008 17:14:03 -0700 (PDT) Received: from ishtar.tlinx.org (ishtar.tlinx.org [64.81.245.74]) by cuda.sgi.com with ESMTP id ZbNEcreHNJcIWzrd for ; Thu, 23 Oct 2008 17:14:03 -0700 (PDT) Received: from [192.168.3.11] (Athena [192.168.3.11]) by ishtar.tlinx.org (8.14.1/8.12.10/SuSE Linux 0.7) with ESMTP id m9O0DmOe003021; Thu, 23 Oct 2008 17:13:49 -0700 Message-ID: <4901133B.6010404@tlinx.org> Date: Thu, 23 Oct 2008 17:13:47 -0700 From: Linda Walsh User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: LKML , xfs@oss.sgi.com CC: david@fromorbit.com X-ASG-Orig-Subj: Solved: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only Subject: Solved: Re: 2.6.27.[0,2] problems (v. 2.6.26.5): Samba & root-read-only References: <48FED90F.7030809@tlinx.org> <20081022223005.GV18495@disturbed> In-Reply-To: <20081022223005.GV18495@disturbed> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[64.81.245.74] X-Barracuda-Start-Time: 1224807243 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0513 1.0000 -1.6917 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.69 X-Barracuda-Spam-Status: No, SCORE=-1.69 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8604 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8481/Thu Oct 23 14:30:18 2008 on oss.sgi.com X-Virus-Status: Clean *Double Bingo*...2.6.27.3 fixed both probs! Thanks!! Dave Chinner wrote: > On Wed, Oct 22, 2008 at 12:41:03AM -0700, Linda Walsh wrote: > > Going to 2.6.27 (and just trying 2.6.27.2), two VERY weird problems. > 1) Samba boot using the 2.6.27.2 kernel (or .0 before), I can no > longer mount any file systems from my windows client. > 2) My root disk comes up READ-ONLY. It uses XFS. > ------ > That XFS problem should be fixed in 2.6.27.3, > > Most likely is that the Samba problem will be caused by the smbd > not being able to write to it's databases when clients try > to connect because of the read-only root fs. > > Dave. > From owner-xfs@oss.sgi.com Thu Oct 23 17:42:24 2008 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O0gNv9025408 for ; Thu, 23 Oct 2008 17:42:24 -0700 X-ASG-Debug-ID: 1224809049-7935011b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 21D5B1B159B4 for ; Thu, 23 Oct 2008 17:44:09 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id gYbGmc9QoHzIy2Bo for ; Thu, 23 Oct 2008 17:44:09 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 2795DAC359B; Thu, 23 Oct 2008 19:44:09 -0500 (CDT) Message-ID: <49011A58.9040403@sandeen.net> Date: Thu, 23 Oct 2008 19:44:08 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Eric Sandeen , xfs mailing list X-ASG-Orig-Subj: Re: [PATCH 1/2] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2] convert xfs_getbmap to take formatter functions References: <490103C9.9080900@sandeen.net> <20081023233538.GG18495@disturbed> In-Reply-To: <20081023233538.GG18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224809050 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV 0.91.2/8481/Thu Oct 23 14:30:18 2008 on oss.sgi.com X-Virus-Status: Clean Dave Chinner wrote: > On Thu, Oct 23, 2008 at 06:07:53PM -0500, Eric Sandeen wrote: >> Preliminary work to hook up fiemap, this allows us to pass in an >> arbitrary formatter to copy extent data back to userspace. > > Is there a fiemap test program around anywhere? > > If so, would it be appropriate to include it in xfstests and write > a quick regression test for it? We'd probably need to also check > xfs_bmap gives the same output as fiemap.... I have a very hacky app/test that can exercise the interface; there is nothing, as far as I know, that will create "every" possible combination of output and test for correct output ... but yes, this interface should get at least something in the test suite. -Eric > Cheers, > > Dave. From owner-xfs@oss.sgi.com Thu Oct 23 21:40:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O4ejwD006523 for ; Thu, 23 Oct 2008 21:40:45 -0700 X-ASG-Debug-ID: 1224823243-0d1d00790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B6A6610E664C for ; Thu, 23 Oct 2008 21:40:43 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id jFAfi6DuSb6kIiIO for ; Thu, 23 Oct 2008 21:40:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,474,1220193000"; d="scan'208";a="217200571" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 14:24:18 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtDke-0007MT-Ec; Fri, 24 Oct 2008 14:54:16 +1100 Date: Fri, 24 Oct 2008 14:54:11 +1100 From: Dave Chinner To: Mark Goodwin Cc: xfs-oss X-ASG-Orig-Subj: Re: XFS performance tracking and regression monitoring Subject: Re: XFS performance tracking and regression monitoring Message-ID: <20081024035411.GH18495@disturbed> Mail-Followup-To: Mark Goodwin , xfs-oss References: <490108E6.7060502@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490108E6.7060502@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224823244 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0198 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8620 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 24, 2008 at 09:29:42AM +1000, Mark Goodwin wrote: > We're about to deploy a system+jbod dedicated for performance > regression tracking. The idea is to build the XFS dev branch > nightly, run a bunch of self contained benchmarks, and generate > a progressive daily report - date on the X-axis, with (perhaps) > wallclock runtime on the y-axis. wallclock runtime is not indicative of relative performance for many benchmarks. e.g. dbench runs for a fixed time and then gives a throughput number as it's output. It's the throughput you want to compare..... > The aim is to track relative XFS performance on a daily basis > for various workloads on identical h/w. If each workload runs for > approx the same duration, the reports can all share the same > generic y-axis. THe long term trend should have a positive > gradient. If you are measuring walltime, then you should see a negative gradient as an indication of improvement.... > Regressions can be date correlated with commits. For the benchmarks to be useful as regression tests, then the harness really needs to be profiling and gathering statistics at the same time so that we might be able to determine what caused the regression... > Comments, benchmark suggestions? The usual set - bonnie++, postmark, ffsb, fio, sio, etc. Then some artificial tests that stress scalability like speed of creating 1m small files with long names in a directory, the speed of a cold cache read of the directory, the speed of a hot-cache read of the directory, time to stat all the files (cold and hot cache), time to remove all the files, etc. And then how well it scales as you do this with more threads and directories in parallel... > ANyone already running this? > Know of a test harness and/or report generator? Perhap you might want to look more closely at FFSB - it has a fairly interesting automated test harness. e.g. it was used to produce these: http://btrfs.boxacle.net/ And you can probably set up custom workloads to cover all the things that the standard benchmarks do..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 21:42:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O4gKAY006762 for ; Thu, 23 Oct 2008 21:42:20 -0700 X-ASG-Debug-ID: 1224814180-4f5801200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from larry.melbourne.sgi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id A14A11B16131 for ; Thu, 23 Oct 2008 19:09:41 -0700 (PDT) Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by cuda.sgi.com with SMTP id m7tbcWR624DjmnUN for ; Thu, 23 Oct 2008 19:09:41 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA22354; Fri, 24 Oct 2008 13:09:38 +1100 Message-ID: <49013C47.4090601@sgi.com> Date: Fri, 24 Oct 2008 13:08:55 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> In-Reply-To: <20081023205727.GA28490@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: larry.melbourne.sgi.com[134.14.52.130] X-Barracuda-Start-Time: 1224814182 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8612 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: >> another problem with latest xfs > > Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based > git tree? It does looks more like a VM issue than a XFS issue to me. > It's with the 2.6.27-rc8 based ptools tree. Prior to checking in these patches: Can't lock inodes in radix tree preload region stop using xfs_itobp in xfs_bulkstat free partially initialized inodes using destroy_inode I was able to stress a system for about 4 hours before it ran out of memory. Now I hit the deadlock within a few minutes. I need to roll back to find which patch changed the behaviour. From owner-xfs@oss.sgi.com Thu Oct 23 21:52:04 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O4q42f007296 for ; Thu, 23 Oct 2008 21:52:04 -0700 X-ASG-Debug-ID: 1224823922-703003180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D3E3538372 for ; Thu, 23 Oct 2008 21:52:02 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id eUPYpkXHBKmxRPud for ; Thu, 23 Oct 2008 21:52:02 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id A6F44AC359B for ; Thu, 23 Oct 2008 23:01:11 -0500 (CDT) Message-ID: <49014887.6050309@sandeen.net> Date: Thu, 23 Oct 2008 23:01:11 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 3/2] delalloc support for xfs fiemap Subject: [PATCH 3/2] delalloc support for xfs fiemap Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224823923 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8621 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ok, got the kinks worked out of the delalloc portion of the fiemap hookup I think. This introduces a new input flag (BMV_IF_DELALLOC) and output flag (BMV_OF_DELALLOC) to request & show the delayed allocation segments. Signed-off-by: Eric Sandeen --- Index: linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6.27.x86_64/fs/xfs/linux-2.6/xfs_iops.c @@ -685,6 +685,10 @@ STATIC int xfs_fiemap_format( if (bmv->bmv_oflags & BMV_OF_PREALLOC) fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } if (bmv->bmv_oflags & BMV_OF_LAST) fiemap_flags |= FIEMAP_EXTENT_LAST; @@ -722,6 +726,8 @@ xfs_vn_fiemap( bm.bmv_iflags = BMV_IF_PREALLOC; if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); if (error) Index: linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_bmap.c +++ linux-2.6.27.x86_64/fs/xfs/xfs_bmap.c @@ -5827,6 +5827,7 @@ xfs_getbmap( * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int sh_delalloc; /* show delayed extents */ int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ @@ -5835,6 +5836,7 @@ xfs_getbmap( whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; + sh_delalloc = (iflags & BMV_IF_DELALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5905,7 +5907,7 @@ xfs_getbmap( xfs_ilock(ip, XFS_IOLOCK_SHARED); - if (whichfork == XFS_DATA_FORK && + if (!sh_delalloc && (whichfork == XFS_DATA_FORK) && (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ error = xfs_flush_pages(ip, (xfs_off_t)0, @@ -5938,9 +5940,11 @@ xfs_getbmap( bmv->bmv_entries = 0; - if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0) { - error = 0; - goto unlock_and_return; + if ((XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { + if (!sh_delalloc || whichfork == XFS_ATTR_FORK) { + error = 0; + goto unlock_and_return; + } } nexleft = nex; @@ -5956,12 +5960,16 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? - BMV_OF_PREALLOC : 0; + out.bmv_oflags = 0; + if (map[i].br_state == XFS_EXT_UNWRITTEN) + out.bmv_oflags |= BMV_OF_PREALLOC; + else if (map[i].br_startblock == DELAYSTARTBLOCK) + out.bmv_oflags |= BMV_OF_DELALLOC; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); out.bmv_unused1 = out.bmv_unused2 = 0; - ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); + ASSERT(sh_delalloc || + (map[i].br_startblock != DELAYSTARTBLOCK)); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ Index: linux-2.6.27.x86_64/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6.27.x86_64.orig/fs/xfs/xfs_fs.h +++ linux-2.6.27.x86_64/fs/xfs/xfs_fs.h @@ -113,10 +113,13 @@ struct getbmapx { #define BMV_IF_ATTRFORK 0x1 /* return attr fork rather than data */ #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ -#define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) +#define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_VALID \ + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_DELALLOC 0x2 /* segment = delayed allocation */ #define BMV_OF_LAST 0x4 /* segment is the last in the file */ /* From owner-xfs@oss.sgi.com Thu Oct 23 22:24:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O5OVU7008479 for ; Thu, 23 Oct 2008 22:24:32 -0700 X-ASG-Debug-ID: 1224825867-270e03a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8A3CB1B16630 for ; Thu, 23 Oct 2008 22:24:27 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id ZmZsmeaZwG3LhKLt for ; Thu, 23 Oct 2008 22:24:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,475,1220193000"; d="scan'208";a="217273564" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 15:54:22 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtF9m-0001Kr-Ms; Fri, 24 Oct 2008 16:24:18 +1100 Date: Fri, 24 Oct 2008 16:24:18 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081024052418.GO25906@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49013C47.4090601@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224825870 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8623 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 24, 2008 at 01:08:55PM +1000, Lachlan McIlroy wrote: > Christoph Hellwig wrote: >> On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: >>> another problem with latest xfs >> >> Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based >> git tree? It does looks more like a VM issue than a XFS issue to me. >> > > It's with the 2.6.27-rc8 based ptools tree. Prior to checking > in these patches: > > Can't lock inodes in radix tree preload region > stop using xfs_itobp in xfs_bulkstat > free partially initialized inodes using destroy_inode > > I was able to stress a system for about 4 hours before it ran out > of memory. Now I hit the deadlock within a few minutes. I need > to roll back to find which patch changed the behaviour. Does it go away when you add the "XFS: Fix race when looking up reclaimable inodes" I sent this morning? Also, is there a thread stuck in xfs_setfilesize() waiting on an ilock during I/O completion? i.e. did the log hang because I/O completion is stuck waiting on an ilock that is held by a thread waiting on I/O completion? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 22:29:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O5TYVM008956 for ; Thu, 23 Oct 2008 22:29:34 -0700 X-ASG-Debug-ID: 1224826172-547001870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E225A1B167E2 for ; Thu, 23 Oct 2008 22:29:33 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id wNHTxStWCJ0VJk0F for ; Thu, 23 Oct 2008 22:29:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,475,1220193000"; d="scan'208";a="217277854" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 15:59:31 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtFEo-0001Sr-BY; Fri, 24 Oct 2008 16:29:30 +1100 Date: Fri, 24 Oct 2008 16:29:30 +1100 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 3/2] delalloc support for xfs fiemap Subject: Re: [PATCH 3/2] delalloc support for xfs fiemap Message-ID: <20081024052930.GI18495@disturbed> Mail-Followup-To: Eric Sandeen , xfs-oss References: <49014887.6050309@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49014887.6050309@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224826173 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8623 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 23, 2008 at 11:01:11PM -0500, Eric Sandeen wrote: > Ok, got the kinks worked out of the delalloc portion of the > fiemap hookup I think. > > This introduces a new input flag (BMV_IF_DELALLOC) and output > flag (BMV_OF_DELALLOC) to request & show the delayed allocation > segments. .... > @@ -5827,6 +5827,7 @@ xfs_getbmap( > * preallocated data space */ > int sh_unwritten; /* true, if unwritten */ > /* extents listed separately */ > + int sh_delalloc; /* show delayed extents */ > int iflags; /* interface flags */ > int bmapi_flags; /* flags for xfs_bmapi */ Do we really need this "sh_delalloc" flag? Checking for (iflags & BMV_IF_DELALLOC) is fine by me, same for replacing sh_unwritten. I've never really liked the "sh" abbreviation for "show".... Otherwise it looks ok. Perhaps we should also add delalloc extent display to xfs_bmap.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 22:38:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O5cI5Q009557 for ; Thu, 23 Oct 2008 22:38:20 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 7E71C90889; Thu, 23 Oct 2008 22:38:14 -0700 (PDT) Received: from itchy.melbourne.sgi.com (itchy.melbourne.sgi.com [134.14.55.96]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA28405; Fri, 24 Oct 2008 16:38:11 +1100 From: Niv Sardi To: Utako Kusaka Cc: Timothy Shimmin , xfs Subject: Re: [PATCH, RFC] Re: atime not written to disk References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> <20081022081710.GL18495@disturbed> <20081023042053.GY18495@disturbed> Date: Fri, 24 Oct 2008 16:37:59 +1100 In-Reply-To: <20081023042053.GY18495@disturbed> (Dave Chinner's message of "Thu, 23 Oct 2008 15:20:53 +1100") Message-ID: User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Dave Chinner writes: > On Thu, Oct 23, 2008 at 01:53:23PM +1100, Niv Sardi wrote: >> Dave Chinner writes: >> [...] >> > As I mentioned on IRC, Tim, the following patch fixes the above test >> > case. It will make XFS behave like other filesystems w.r.t. atime, >> > instead of defaulting to relatime-like behaviour. This will have >> > performance impact unless ppl now add the relatime mount option. >> ^^^^^^^^^^^^^^^^^^^ >> >> I don't really like it, and don't think there is a real justification to >> do it. > > You probably missed the context of that patch (which I mentioned on > IRC to Tim). Thank you for the refresh. > That was that it is part of a larger patch set that tracks dirty state > in the XFS inode radix tree. In that case, the ->dirty_inode callout > is used to set a tag in the per-ag inode radix tree. I want to > do it this way so there is a single place that the dirty tag > is set, whether it is due to an unlogged change (XFS or VFS) or > a transaction commit.... So, to refrase, you have a patchset, that will use that callback better, and then we will not need the patch you actually sent ? why not wait for that patchset, this is not exactly a critical bug
 > Also, if you read the referenced thread, Christoph made the comment > that the VFS was not letting us know that the inode had been dirtied and > that we really needed to know about that. The patch I sent isn't > intended to do this, not as a fix for atime updates... >> Why not only do: [
] > This doesn't avoid the performance problem - it simply shifts it to > the reclaim code. Think about it - you traverse a million inodes > stat()ing them all (the nightly backup). Instead of having the now > dirty inodes written back as you go along, you wait until memory > reclaim turfs them out to mark them dirty and then write them back. > This means memory reclaim goes *much slower* because reclaiming the > memory now has to wait for I/O to complete. yep, I just read the code, do we have a way to know that we are unmounting ? maybe the good way to do it is to only write atime on unmount ? the call trace is: [xfs]xfs_fs_clear_inode+0xd4 clear_inode+0x7d dispose_list+0x5b invalidate_inodes+0xe0 generic_shutdown_super+0x3a kill_block_super+0x15 deactivate_super+0x62 mntput_no_expire+0xe9 sys_umount+0x2d1 So it doesn't look obvious to me, but sure there is a way to know if we're in umount right ? I'm concerned about the overhead, with your patch, that we'll be writting things even if nothing has changed, not sure about how many times ->dirty_inodes is called and such. I don't like the idea to slow things down for everyone or force people to use realtime Cheers, -- Niv Sardi From owner-xfs@oss.sgi.com Thu Oct 23 23:08:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O68BfJ011108 for ; Thu, 23 Oct 2008 23:08:13 -0700 X-ASG-Debug-ID: 1224828490-1add03830000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 81D19538780 for ; Thu, 23 Oct 2008 23:08:10 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id G39SoEeukCGtC8Ly for ; Thu, 23 Oct 2008 23:08:10 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,475,1220193000"; d="scan'208";a="217307034" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 16:38:08 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtFqA-0002S5-Vn; Fri, 24 Oct 2008 17:08:06 +1100 Date: Fri, 24 Oct 2008 17:08:06 +1100 From: Dave Chinner To: Niv Sardi Cc: Utako Kusaka , Timothy Shimmin , xfs X-ASG-Orig-Subj: Re: [PATCH, RFC] Re: atime not written to disk Subject: Re: [PATCH, RFC] Re: atime not written to disk Message-ID: <20081024060806.GJ18495@disturbed> Mail-Followup-To: Niv Sardi , Utako Kusaka , Timothy Shimmin , xfs References: <48FD74CC.907@sgi.com> <48FD7B69.3090600@wm.jp.nec.com> <20081022081710.GL18495@disturbed> <20081023042053.GY18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224828491 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8625 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' On Fri, Oct 24, 2008 at 04:37:59PM +1100, Niv Sardi wrote: > Dave Chinner writes: > > > On Thu, Oct 23, 2008 at 01:53:23PM +1100, Niv Sardi wrote: > >> Dave Chinner writes: > >> [...] > >> > As I mentioned on IRC, Tim, the following patch fixes the above test > >> > case. It will make XFS behave like other filesystems w.r.t. atime, > >> > instead of defaulting to relatime-like behaviour. This will have > >> > performance impact unless ppl now add the relatime mount option. > >> ^^^^^^^^^^^^^^^^^^^ > >> > >> I don't really like it, and don't think there is a real justification to > >> do it. > > > > You probably missed the context of that patch (which I mentioned on > > IRC to Tim). > > Thank you for the refresh. > > > That was that it is part of a larger patch set that tracks dirty state > > in the XFS inode radix tree. In that case, the ->dirty_inode callout > > is used to set a tag in the per-ag inode radix tree. I want to > > do it this way so there is a single place that the dirty tag > > is set, whether it is due to an unlogged change (XFS or VFS) or > > a transaction commit.... > > So, to refrase, you have a patchset, that will use that callback better, > and then we will not need the patch you actually sent ? why not wait for > that patchset, this is not exactly a critical bug
 No, that patch is part of the patchset. In fact - it's the first patch in the patchset of 4 patches. The following patches are: xfs-iradix-set-dirty-tag xfs-iradix-use-dirty-tag-for-clustering xfs-iradix-use-dirty-tag-for-sync i.e. using the radix tree for finding sequential dirty inode clusters for writeback.... It's not complete yet, because I'm trying to decide if it is better to avoid inode writeback from ->write_inode altogether and only do optimised ascending order inode writeback from from xfs_sync_inodes() and/or AIL tail pushing.... > >> Why not only do: > [
] > > This doesn't avoid the performance problem - it simply shifts it to > > the reclaim code. Think about it - you traverse a million inodes > > stat()ing them all (the nightly backup). Instead of having the now > > dirty inodes written back as you go along, you wait until memory > > reclaim turfs them out to mark them dirty and then write them back. > > This means memory reclaim goes *much slower* because reclaiming the > > memory now has to wait for I/O to complete. > > yep, I just read the code, do we have a way to know that we are > unmounting ? maybe the good way to do it is to only write atime on > unmount ? the call trace is: if (!(sb->s_flags & MS_ACTIVE)) { /* we are unmounting */ } Even so, we don't want unmount to take hours - especially in the situation that unmounts that would trigger this problem often occur in planned maintenance windows that aren't hours long..... > I'm concerned about the overhead, with your patch, that we'll be > writting things even if nothing has changed, not sure about how many We'll won't write an inode if it hasn't changed. The VFS calling mark_inode_dirty_sync() is not "nothing". > times ->dirty_inodes is called and such. I don't like the idea to slow > things down for everyone or force people to use realtime I didn't suggest we force ppl to use relatime - I suggested that we default to it behind the covers and then pay attention to all dirty events coming form the VFS. This should result in practically no increase in the number of atime-only inode writes.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 23 23:12:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O6CjO6011421 for ; Thu, 23 Oct 2008 23:12:45 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 2A27E8F8116; Thu, 23 Oct 2008 23:12:41 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA29501; Fri, 24 Oct 2008 17:12:40 +1100 Message-ID: <4901754D.9020109@sgi.com> Date: Fri, 24 Oct 2008 17:12:13 +1000 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Mark Goodwin , xfs-oss Subject: Re: XFS performance tracking and regression monitoring References: <490108E6.7060502@sgi.com> <20081024035411.GH18495@disturbed> In-Reply-To: <20081024035411.GH18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Fri, Oct 24, 2008 at 09:29:42AM +1000, Mark Goodwin wrote: >> We're about to deploy a system+jbod dedicated for performance >> regression tracking. The idea is to build the XFS dev branch >> nightly, run a bunch of self contained benchmarks, and generate >> a progressive daily report - date on the X-axis, with (perhaps) >> wallclock runtime on the y-axis. > > wallclock runtime is not indicative of relative performance > for many benchmarks. e.g. dbench runs for a fixed time and > then gives a throughput number as it's output. It's the throughput > you want to compare..... either, or. Both are differential. I want to keep this really simple, just provide high level tracking on *when* a performance regression may have been introduced but only with broad indicators. I don't think anyone is regularly tracking this for XFS and we should be. >> The aim is to track relative XFS performance on a daily basis >> for various workloads on identical h/w. If each workload runs for >> approx the same duration, the reports can all share the same >> generic y-axis. THe long term trend should have a positive >> gradient. > > If you are measuring walltime, then you should see a negative > gradient as an indication of improvement.... yes :) what I ment, but was thinking "positively" >> Regressions can be date correlated with commits. > > For the benchmarks to be useful as regression tests, then the > harness really needs to be profiling and gathering statistics at the > same time so that we might be able to determine what caused the > regression... I would regard that as follow-up once an issue has been identified. My proposal is too simple to be useful for diagnosis, but it should be enough to provide heads-up. That's the aim to start with. The same h/w can also be set up for more sophisticated measurements in the longer term. >> Comments, benchmark suggestions? > > The usual set - bonnie++, postmark, ffsb, fio, sio, etc. > > Then some artificial tests that stress scalability like speed of > creating 1m small files with long names in a directory, the speed of > a cold cache read of the directory, the speed of a hot-cache read of > the directory, time to stat all the files (cold and hot cache), > time to remove all the files, etc. And then how well it scales > as you do this with more threads and directories in parallel... yeah OK, bits and pieces of the the above, enough to provide broad heads-up. >> ANyone already running this? >> Know of a test harness and/or report generator? > > Perhap you might want to look more closely at FFSB - it has a > fairly interesting automated test harness. e.g. it was used to > produce these: > > http://btrfs.boxacle.net/ > > And you can probably set up custom workloads to cover all the things > that the standard benchmarks do..... I'll poke around on those pages for some ideas. Thanks for the reply. From owner-xfs@oss.sgi.com Thu Oct 23 23:48:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O6mA7o013127 for ; Thu, 23 Oct 2008 23:48:10 -0700 X-ASG-Debug-ID: 1224830888-3fa402560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 726BE5387F3 for ; Thu, 23 Oct 2008 23:48:08 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 2q55Srm8wEEtnCYh for ; Thu, 23 Oct 2008 23:48:08 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,475,1220193000"; d="scan'208";a="217331001" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 24 Oct 2008 17:18:05 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtGSq-0003en-BX; Fri, 24 Oct 2008 17:48:04 +1100 Date: Fri, 24 Oct 2008 17:48:04 +1100 From: Dave Chinner To: Lachlan McIlroy , Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081024064804.GQ25906@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081024052418.GO25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224830889 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8628 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Fri, Oct 24, 2008 at 04:24:18PM +1100, Dave Chinner wrote: > On Fri, Oct 24, 2008 at 01:08:55PM +1000, Lachlan McIlroy wrote: > > Christoph Hellwig wrote: > >> On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: > >>> another problem with latest xfs > >> > >> Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based > >> git tree? It does looks more like a VM issue than a XFS issue to me. > >> > > > > It's with the 2.6.27-rc8 based ptools tree. Prior to checking > > in these patches: > > > > Can't lock inodes in radix tree preload region > > stop using xfs_itobp in xfs_bulkstat > > free partially initialized inodes using destroy_inode > > > > I was able to stress a system for about 4 hours before it ran out > > of memory. Now I hit the deadlock within a few minutes. I need > > to roll back to find which patch changed the behaviour. > > Does it go away when you add the "XFS: Fix race when looking up > reclaimable inodes" I sent this morning? > > Also, is there a thread stuck in xfs_setfilesize() waiting on an > ilock during I/O completion? > > i.e. did the log hang because I/O completion is stuck waiting on > an ilock that is held by a thread waiting on I/O completion? OK, I just hung a single-threaded rm -rf after this completed: # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress It has hung with this trace: # echo w > /proc/sysrq-trigger [42954211.590000] SysRq : Show Blocked State [42954211.590000] task PC stack pid father [42954211.590000] rm D 00000000407219f0 0 2504 1155 [42954211.590000] 604692d8 6002e40a 808ad040 79484000 79487850 60014f0d 808ad040 6032b3e0 [42954211.590000] 79484000 6c8a2808 60468e00 808ad040 794878a0 60324b21 79484000 00000250 [42954211.590000] 79484000 79484000 7fffffffffffffff 79045e88 80014d28 80014df8 79487900 60324e6d <6>Call Trace: [42954211.590000] 794877f8: [<6002e40a>] update_curr+0x3a/0x50 [42954211.590000] 79487818: [<60014f0d>] _switch_to+0x6d/0xe0 [42954211.590000] 79487858: [<60324b21>] schedule+0x171/0x2c0 [42954211.590000] 794878a8: [<60324e6d>] schedule_timeout+0xad/0xf0 [42954211.590000] 794878c8: [<60326e98>] _spin_unlock_irqrestore+0x18/0x20 [42954211.590000] 79487908: [<60195455>] xlog_grant_log_space+0x245/0x470 [42954211.590000] 79487920: [<60030ba0>] default_wake_function+0x0/0x10 [42954211.590000] 79487978: [<601957a2>] xfs_log_reserve+0x122/0x140 [42954211.590000] 794879c8: [<601a36e7>] xfs_trans_reserve+0x147/0x2e0 [42954211.590000] 794879f8: [<60087374>] kmem_cache_alloc+0x84/0x100 [42954211.590000] 79487a38: [<601ab01f>] xfs_inactive_symlink_rmt+0x9f/0x450 [42954211.590000] 79487a88: [<601ada94>] kmem_zone_zalloc+0x34/0x50 [42954211.590000] 79487aa8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 [42954211.590000] 79487ac8: [<601a3b52>] xfs_trans_alloc+0xa2/0xb0 [42954211.590000] 79487ad8: [<60326ea9>] _spin_unlock+0x9/0x10 [42954211.590000] 79487ae8: [<601a85ef>] xfs_inode_is_filestream+0x5f/0x80 [42954211.590000] 79487b28: [<601ab597>] xfs_inactive+0x1c7/0x530 [42954211.590000] 79487b78: [<601b94ec>] xfs_fs_clear_inode+0x3c/0x70 [42954211.590000] 79487b98: [<6009e881>] clear_inode+0x91/0x150 [42954211.590000] 79487bb8: [<6009f05f>] generic_delete_inode+0xff/0x130 [42954211.590000] 79487bd8: [<6009f20d>] generic_drop_inode+0x17d/0x1a0 [42954211.590000] 79487bf8: [<6009e317>] iput+0x57/0x90 [42954211.590000] 79487c18: [<60095be3>] do_unlinkat+0x113/0x1c0 [42954211.590000] 79487c98: [<60098e90>] sys_getdents+0x110/0x150 [42954211.590000] 79487cd8: [<60095ded>] sys_unlinkat+0x1d/0x40 [42954211.590000] 79487ce8: [<60018150>] handle_syscall+0x50/0x80 [42954211.590000] 79487d08: [<6002b05e>] userspace+0x48e/0x550 [42954211.590000] 79487f58: [<600269a7>] save_registers+0x17/0x40 [42954211.590000] 79487fc8: [<60014df2>] fork_handler+0x62/0x70 [42954211.590000] Which implies that the log tail is not moving forward. I'm about to jump on a plane, so I won't be able to look at this until tomorrow.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 24 00:47:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O7lI1Q023364 for ; Fri, 24 Oct 2008 00:47:18 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id CD72F8F8128; Fri, 24 Oct 2008 00:47:14 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA02214; Fri, 24 Oct 2008 18:47:12 +1100 Message-ID: <49018B66.9050608@sgi.com> Date: Fri, 24 Oct 2008 18:46:30 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> In-Reply-To: <20081024052418.GO25906@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Fri, Oct 24, 2008 at 01:08:55PM +1000, Lachlan McIlroy wrote: >> Christoph Hellwig wrote: >>> On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: >>>> another problem with latest xfs >>> Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based >>> git tree? It does looks more like a VM issue than a XFS issue to me. >>> >> It's with the 2.6.27-rc8 based ptools tree. Prior to checking >> in these patches: >> >> Can't lock inodes in radix tree preload region >> stop using xfs_itobp in xfs_bulkstat >> free partially initialized inodes using destroy_inode >> >> I was able to stress a system for about 4 hours before it ran out >> of memory. Now I hit the deadlock within a few minutes. I need >> to roll back to find which patch changed the behaviour. > > Does it go away when you add the "XFS: Fix race when looking up > reclaimable inodes" I sent this morning? I haven't had a chance to test it yet - will do that on Monday. > > Also, is there a thread stuck in xfs_setfilesize() waiting on an > ilock during I/O completion? Haven't seen one but then I haven't looked through all 1024 stuck threads. > > i.e. did the log hang because I/O completion is stuck waiting on > an ilock that is held by a thread waiting on I/O completion? It could be. I was hoping that if I found the offending mod it would be easier to find out what caused the problem. I pulled out each of the changes listed above in turn and I can still hit the problem. From owner-xfs@oss.sgi.com Fri Oct 24 01:19:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_50,HTML_MESSAGE, KB_RATWARE_OUTLOOK_08,MIME_8BIT_HEADER autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O8J6dq025677 for ; Fri, 24 Oct 2008 01:19:07 -0700 X-ASG-Debug-ID: 1224836344-23da00220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [121.139.167.94] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4E08C1B16E84 for ; Fri, 24 Oct 2008 01:19:04 -0700 (PDT) Received: from [121.139.167.94] ([121.139.167.94]) by cuda.sgi.com with ESMTP id FOKpqPpXqFJqk4vo for ; Fri, 24 Oct 2008 01:19:04 -0700 (PDT) Message-ID: <000a01c935b0$07ceb475$a3801c8e@rvdjovqe> From: "bren gerard" To: X-ASG-Orig-Subj: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= Subject: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= Date: Fri, 24 Oct 2008 06:29:25 +0000 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Barracuda-Connect: UNKNOWN[121.139.167.94] X-Barracuda-Start-Time: 1224836346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4521 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG035a, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8629 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 321 =F2=C5=C7=C9=D3=D4=D2=C1=C3=C9=D1 =D4=CF=D7=C1=D2=CE=D9=C8 = =DA=CE=C1=CB=CF=D7, =D0=C1=D4=C5=CE=D4=CF=D7, =C1=D7=D4=CF=D2=D3=CB=C9=C5 = =D0=D2=C1=D7=C1=20 =D4./ =FE95 / 6 29 • 9 • 6I I=20 =D4. +7 / =FE99 / 4=EF 8 • 9 • 6 83 =20 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Fri Oct 24 01:37:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_40,HTML_MESSAGE, TVD_FROM_1 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9O8awSY026583 for ; Fri, 24 Oct 2008 01:37:00 -0700 X-ASG-Debug-ID: 1224837411-38cd00160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sh163.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 90036192A5E1 for ; Fri, 24 Oct 2008 01:36:52 -0700 (PDT) Received: from sh163.net (maila.sh163.net [202.96.194.141]) by cuda.sgi.com with ESMTP id cLikgXxxEYszOPDp for ; Fri, 24 Oct 2008 01:36:52 -0700 (PDT) Received: (rockmail 23307 invoked for bounce); 24 Oct 2008 08:36:49 -0000 Date: 24 Oct 2008 08:36:49 -0000 From: MAILER-DAEMON@maila.sh163.net To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="_Boundary_1224837409_7848@maila.sh163.net" X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: maila.sh163.net[202.96.194.141] X-Barracuda-Start-Time: 1224837417 Message-Id: <20081024083652.90036192A5E1@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.4831 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, HTML_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8631 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message --_Boundary_1224837409_7848@maila.sh163.net Hi. This is Rockmail at maila.sh163.net. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : The users mailfolder is over the allowed quota (size). --- Enclosed is a copy of the message. --_Boundary_1224837409_7848@maila.sh163.net Content-Type: message/rfc822 Return-Path: Received: (rockmail 23287 invoked from network); 24 Oct 2008 08:36:49 -0000 Received: from unknown (HELO rg1.sh163.net) ([202.96.194.147]) (envelope-sender ) by 0 (Rockmail 2.0) for ; 24 Oct 2008 08:36:49 -0000 Received: from ppp-172-201.21-151.libero.it (EHLO ppp-172-201.21-151.libero.it) ([151.21.201.172]) by rg1.sh163.net (MOS 3.8.2-GA FastPath queued) with ESMTP id VIF59829; Fri, 24 Oct 2008 16:35:08 +0800 (CST) Message-ID: <000a01c935b3$03a45f3d$5dfeeeb4@tfabwgo> From: "far shirley" To: Subject: =?koi8-r?B?8sXHydPU0sHDydEg1M/XwdLO2cgg2s7By8/X?= Date: Fri, 24 Oct 2008 06:49:25 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C935B3.039F4C7F" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Junkmail-Status: score=10/50, host=rg1.sh163.net X-Junkmail-SD-Raw: score=unknown, refid=str=0001.0A090205.49018921.01F4,ss=1,fgs=0, ip=151.21.201.172, so=2006-09-22 03:48:54, dmn=5.7.1/2008-09-02 This is a multi-part message in MIME format. ------=_NextPart_000_0007_01C935B3.039F4C7F Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =F2=C5=C7=C9=D3=D4=D2=C1=C3=C9=D1 =D4=CF=D7=C1=D2=CE=D9=C8 = =DA=CE=C1=CB=CF=D7, =D0=C1=D4=C5=CE=D4=CF=D7, =C1=D7=D4=CF=D2=D3=CB=C9=C5 = =D0=D2=C1=D7=C1=20 =D4./ =FE95 / 6 29 • 9 • 6I I=20 =D4. +7 / =FE99 / 4=EF 8 • 9 • 6 83 =20 ------=_NextPart_000_0007_01C935B3.039F4C7F Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=F2=C5=C7=C9=D3=D4=D2=C1=C3=C9=D1 =D4=CF=D7=C1= =D2=CE=D9=C8 =DA=CE=C1=CB=CF=D7, =D0=C1=D4=C5=CE=D4=CF=D7, =C1=D7=D4=CF=D2= =D3=CB=C9=C5=20 =D0=D2=C1=D7=C1

=D4./ =FE95 / 6 29 • 9 • 6I I <= BR> =D4. +7 / =FE99 / 4=EF 8 9 6=20 83

------=_NextPart_000_0007_01C935B3.039F4C7F-- --_Boundary_1224837409_7848@maila.sh163.net-- From owner-xfs@oss.sgi.com Fri Oct 24 06:01:25 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9OD1N9r001068 for ; Fri, 24 Oct 2008 06:01:24 -0700 X-ASG-Debug-ID: 1224853277-062403890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EBD58146E407 for ; Fri, 24 Oct 2008 06:01:17 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id Sq2ik35Je4BbKCv2 for ; Fri, 24 Oct 2008 06:01:17 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id EE070AC359B; Fri, 24 Oct 2008 08:01:16 -0500 (CDT) Message-ID: <4901C71C.9060509@sandeen.net> Date: Fri, 24 Oct 2008 08:01:16 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Eric Sandeen , xfs-oss X-ASG-Orig-Subj: Re: [PATCH 3/2] delalloc support for xfs fiemap Subject: Re: [PATCH 3/2] delalloc support for xfs fiemap References: <49014887.6050309@sandeen.net> <20081024052930.GI18495@disturbed> In-Reply-To: <20081024052930.GI18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224853281 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > On Thu, Oct 23, 2008 at 11:01:11PM -0500, Eric Sandeen wrote: >> Ok, got the kinks worked out of the delalloc portion of the >> fiemap hookup I think. >> >> This introduces a new input flag (BMV_IF_DELALLOC) and output >> flag (BMV_OF_DELALLOC) to request & show the delayed allocation >> segments. > .... >> @@ -5827,6 +5827,7 @@ xfs_getbmap( >> * preallocated data space */ >> int sh_unwritten; /* true, if unwritten */ >> /* extents listed separately */ >> + int sh_delalloc; /* show delayed extents */ >> int iflags; /* interface flags */ >> int bmapi_flags; /* flags for xfs_bmapi */ > > Do we really need this "sh_delalloc" flag? Checking for > (iflags & BMV_IF_DELALLOC) is fine by me, same for replacing > sh_unwritten. I've never really liked the "sh" abbreviation for > "show".... Sure, I'd agree with that, though some of the tests for sh_$FOO are a bit wordy already ... I'll make the change, though. > Otherwise it looks ok. Perhaps we should also add delalloc extent > display to xfs_bmap.... Yep, that'd be good. BTW thanks for the help looking through the bmap flag stuff! I'll resend the whole series; there are some 80+ char lines etc to fix up as well. Thanks, -Eric > Cheers, > > Dave. From owner-xfs@oss.sgi.com Fri Oct 24 06:02:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,MISSING_MIMEOLE autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9OD2F8l001263 for ; Fri, 24 Oct 2008 06:02:15 -0700 X-ASG-Debug-ID: 1224853332-0b1603520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from truetug.info (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E239146E432 for ; Fri, 24 Oct 2008 06:02:13 -0700 (PDT) Received: from truetug.info (truetug.info [82.146.61.203]) by cuda.sgi.com with ESMTP id ouzXoCOIC60toWOM for ; Fri, 24 Oct 2008 06:02:13 -0700 (PDT) Received: from localhost (localhost) by truetug.info (8.14.3/8.14.2) id m9OCMXEM005097; Fri, 24 Oct 2008 17:02:11 +0400 (MSD) (envelope-from MAILER-DAEMON) Date: Fri, 24 Oct 2008 17:02:11 +0400 (MSD) From: Mail Delivery Subsystem Message-Id: <200810241302.m9OCMXEM005097@truetug.info> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9OCMXEM005097.1224853331/truetug.info" X-ASG-Orig-Subj: Warning: could not send message for past 4 hours Subject: ***** SUSPECTED SPAM ***** Warning: could not send message for past 4 hours Auto-Submitted: auto-generated (warning-timeout) X-Barracuda-Connect: truetug.info[82.146.61.203] X-Barracuda-Start-Time: 1224853334 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1388 1.0000 -1.1650 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Tag: HEADER (^X-Barracuda-Connect: .*\.info\[.*) X-Barracuda-Spam-Score: -1.16 X-Barracuda-Spam-Status: No, SCORE=-1.16 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, INFO_TLD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 INFO_TLD URI: Contains an URL in the INFO top-level domain 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message X-Priority: 5 (Lowest) X-MSMail-Priority: Low Importance: Low X-Barracuda-Spam-Flag: YES This is a MIME-encapsulated message --m9OCMXEM005097.1224853331/truetug.info ********************************************** ** THIS IS A WARNING MESSAGE ONLY ** ** YOU DO NOT NEED TO RESEND YOUR MESSAGE ** ********************************************** The original message was received at Fri, 24 Oct 2008 12:40:48 +0400 (MSD) from 89-139-72-155.bb.netvision.net.il [89.139.72.155] ----- Transcript of session follows ----- ... while talking to local: >>> DATA <<< 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded \virtuser_1024... Deferred: 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded Warning: message still undelivered after 4 hours Will keep trying until message is 5 days old --m9OCMXEM005097.1224853331/truetug.info Content-Type: message/delivery-status Reporting-MTA: dns; truetug.info Arrival-Date: Fri, 24 Oct 2008 12:40:48 +0400 (MSD) Final-Recipient: RFC822; mail@grafimex.ru X-Actual-Recipient: RFC822; virtuser_1024@truetug.info Action: delayed Status: 4.2.0 Diagnostic-Code: SMTP; 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded Last-Attempt-Date: Fri, 24 Oct 2008 17:02:11 +0400 (MSD) Will-Retry-Until: Wed, 29 Oct 2008 11:40:48 +0400 (MSD) --m9OCMXEM005097.1224853331/truetug.info Content-Type: text/rfc822-headers Return-Path: Received: from 89-139-72-155.bb.netvision.net.il (89-139-72-155.bb.netvision.net.il [89.139.72.155]) by truetug.info (8.14.3/8.14.2) with ESMTP id m9O8ecOj066996 for ; Fri, 24 Oct 2008 12:40:48 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000a01c935b4$0419a775$71530ba4@iuqwygul> From: =?koi8-r?B?4cbJ28Eg7c/Ty9fZ?= To: Subject: =?koi8-r?B?987JzcHOycUhIPTJ1MHOycsh?= Date: Fri, 24 Oct 2008 06:52:53 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C935B4.0416C9D8" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9OCMXEM005097.1224853331/truetug.info-- From owner-xfs@oss.sgi.com Fri Oct 24 08:38:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9OFc3U2018106 for ; Fri, 24 Oct 2008 08:38:03 -0700 X-ASG-Debug-ID: 1224862680-1cbc00020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C411914704FC; Fri, 24 Oct 2008 08:38:00 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id DUAafFt9KeHM8LLB; Fri, 24 Oct 2008 08:38:00 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9OFc0X7004933; Fri, 24 Oct 2008 11:38:00 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9OFbxiv010355; Fri, 24 Oct 2008 11:37:59 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9OFbwP9006945; Fri, 24 Oct 2008 11:37:58 -0400 Message-ID: <4901EBD6.4070306@sandeen.net> Date: Fri, 24 Oct 2008 10:37:58 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Mark Goodwin , xfs-oss X-ASG-Orig-Subj: Re: XFS performance tracking and regression monitoring Subject: Re: XFS performance tracking and regression monitoring References: <490108E6.7060502@sgi.com> <20081024035411.GH18495@disturbed> In-Reply-To: <20081024035411.GH18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1224862682 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0168 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8651 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > Perhap you might want to look more closely at FFSB - it has a > fairly interesting automated test harness. e.g. it was used to > produce these: > > http://btrfs.boxacle.net/ > > And you can probably set up custom workloads to cover all the things > that the standard benchmarks do..... I was going to suggest that too, those are some nifty charts. :) ffsb takes workload recipes so you can make it do a large variety of things... -Eric From owner-xfs@oss.sgi.com Fri Oct 24 15:43:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9OMhnPK013821 for ; Fri, 24 Oct 2008 15:43:49 -0700 X-ASG-Debug-ID: 1224888226-24ee02840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Mail.Odessa.Net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CCC6353E5DE for ; Fri, 24 Oct 2008 15:43:47 -0700 (PDT) Received: from Mail.Odessa.Net (Mail.TM.Odessa.UA [195.66.204.50]) by cuda.sgi.com with ESMTP id 7JWe5P8f7lGcRoSO for ; Fri, 24 Oct 2008 15:43:47 -0700 (PDT) Received: (qmail 48601 invoked for bounce); 24 Oct 2008 22:43:53 -0000 Date: 24 Oct 2008 22:43:53 -0000 From: mail-daemon@mail.odessa.net To: xfs@oss.sgi.com X-ASG-Orig-Subj: failure notice Subject: failure notice X-Barracuda-Connect: Mail.TM.Odessa.UA[195.66.204.50] X-Barracuda-Start-Time: 1224888228 Message-Id: <20081024224347.CCC6353E5DE@cuda.sgi.com> X-Barracuda-Bayes: INNOCENT GLOBAL 0.0901 1.0000 -1.4521 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.45 X-Barracuda-Spam-Status: No, SCORE=-1.45 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, BSF_SC0_TG035a, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8664 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message Hi. This is the qmail-send program at mail.odessa.net. I'm afraid I wasn't able to deliver your message to the following addresses. This is a permanent error; I've given up. Sorry it didn't work out. : user is over quota --- Below this line is a copy of the message. Return-Path: Received: (qmail 47691 invoked by uid 89); 24 Oct 2008 22:43:24 -0000 Received: from colo14-31.users.colocall.net (HELO fox.tophost.com.ua) (62.149.14.31) by mail.tm.odessa.ua with (DHE-RSA-AES256-SHA encrypted) SMTP; 24 Oct 2008 22:43:24 -0000 Received-SPF: none (mail.tm.odessa.ua: domain at oss.sgi.com does not designate permitted sender hosts) Received: from host8-71-dynamic.8-87-r.retail.telecomitalia.it (host8-71-dynamic.8-87-r.retail.telecomitalia.it [87.8.71.8]) by fox.tophost.com.ua (Postfix) with ESMTP id 771E41CF4E51 for ; Fri, 24 Oct 2008 11:33:20 +0300 (EEST) Message-ID: <000501c935b3$0225c494$49d353b3@vbrrthc> From: =?koi8-r?B?9NXSwcfFztTT1NfP?= To: Subject: =?koi8-r?B?8s/WxMXT1NfFztPLycUgy8HOycvVzNkg1yDwz8TNz9PLz9fYxQ==?= Date: Fri, 24 Oct 2008 06:45:57 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0002_01C935B3.021FC1A6" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 This is a multi-part message in MIME format. ------=_NextPart_000_0002_01C935B3.021FC1A6 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: quoted-printable =F2=CF=D6=C4=C5=D3=D4=D7=C5=CE=D3=CB=C9=C5 = =CB=C1=CE=C9=CB=D5=CC=D9 =D7 =F0=CF=C4=CD=CF=D3=CB=CF=D7=D8=C5=20 =E7=C1=D2=C1=CE=D4=C9=D2=CF=D7=C1=CE=CE=D9=C5 =CE=CF=CD=C5=D2=C1!!!=20 Land travel=20 915-24-27 234-40-69 234-40-68=20 =F0=C1=CE=D3=C9=CF=CE=C1=D4 "=ED=C3=C5=CE=D3=CB" 320 =CB=CD . =CF=D4 =ED=CF=D3=CB=D7=D9 (=EF=D2=CC=CF=D7=D3=CB=C1=D1 = =CF=C2=CC=C1=D3=D4=D8) (=C2=C1=D3=D3=C5=CA=CE, = =C7=CF=D2=CE=CF=CC=D9=D6=CE=D9=CA =C3=C5=CE=D4=D2,( = =C2=C9=CC=D8=D1=D2=C4, =D3=C1=D5=CE=C1 =C9 =D4.=C4.)=20 04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)=20 =C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 12000=D2 =D3 = =DE=C5=CC . / =DA=C1=C5=DA=C4=20 =F3=C1=CE=C1=D4=CF=D2=C9=CA "=E4=D2=D5=D6=C2=C1" 60 =CB=CD . =D0=CF =EB=C1=DB=C9=D2=D3=CB=CF=CD=D5 =DB=CF=D3=D3=C5 = (=C2=C1=D3=D3=C5=CA=CE, =D4=D2=C5=CE=C1=D6=C5=D2=CE=D9=CA =DA=C1=CC, = =C2=C9=CC=D8=D1=D2=C4, =CC=D9=D6=C9,=20 =D3=C1=D5=CE=C1 =C9 =D4.=C4.)=20 04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)=20 =D4=D2=A3=C8-=C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 10800=D2 =D3 =DE=C5=CC . / = =DA=C1=C5=DA=C4=20 =F0=C1=CE=D3=C9=CF=CE=C1=D4 "=E2=C5=D2=A3=DA=CB=C1" =D0=CF =EC=C5=CE=C9=CE=C7=D2=C1=C4=D3=CB=CF=CD=D5 =DB=CF=D3=D3=C5 50 = =CB=CD .(=C2=C1=D3=D3=C5=CA=CE, =D4=D2=C5=CE=C1=D6=C5=D2=CE=D9=CA = =DA=C1=CC, =C2=C9=CC=D8=D1=D2=C4, =CC=D9=D6=C9,=D4=C5=CE=CE=C9=D3, = =D3=C1=D5=CE=C1 =C9 =D4. =C4.)=20 04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)=20 =C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 10800=D2 =D3 = =DE=C5=CC . / =DA=C1=C5=DA=C4=20 =F0=C1=CE=D3=C9=CF=CE=C1=D4 "=EC=C5=D3=CE=C1=D1 = =CF=D0=D5=DB=CB=C1" 80 =CB=CD . =D0=CF =F3=C9=CD=C6=C5=D2=CF=D0=CF=CC=D8=D3=CB=CF=CD=D5 = =DB=CF=D3=D3=C5 (=C2=C1=D3=D3=C5=CA=CE, =CC=CF=DB=C1=C4=C9, = =D3=C1=D5=CE=C1 =C9 =D4. =C4.)=20 03.01.09(=D5=D6=C9=CE)-09.01.09(=CF=C2=C5=C4)=20 =CD=C5=D3=D4=CF =D7 =C4=D7=D5=C8=CD=C5=D3=D4=CE=CF=CD =CE=CF=CD=C5=D2=C5 = 9900=D2 =D3 =DE=C5=CC . / =DA=C1=C5=DA=C4=20 =F3=C1=CE=C1=D4=CF=D2=C9=CA "=EB=C1=DB=C9=D2=D3=CB=C9=C5 = =D2=CF=C4=CE=C9=DE=CB=C9" 110 =CB=CD . =D0=CF =EB=C1=DB=C9=D2=D3=CB=CF=CD=D5 =DB=CF=D3=D3=C5 = (=C2=C1=D3=D3=C5=CA=CE, =C2=C9=CC=D8=D1=D2=C4, =D3=C1=D5=CE=C1, = =CC=D9=D6=C9, =CC=CF=DB=C1=C4=C9 =C9 =D4.=C4.)=20 02.01.09(18.00)-08.01.09(16.00)=20 =C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 14400=D2 =D3 = =DE=C5=CC . / =DA=C1=C5=DA=C4=20 =CF=C4=CE=CF=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 14400=D2 =D3 = =DE=C5=CC ./ =DA=C1=C5=DA=C4=20 =E5=D3=D4=D8 =D7 =CE=C1=CC=C9=DE=C9=C9 =EE=CF=D7=CF=C7=CF=C4=CE=C9=C9 = =D0=D2=CF=C7=D2=C1=CD=CD=D9=20 =F4=D5=D2=C1=C7=C5=CE=D3=D4=D7=CF "=EC=C5=CE=C4 =D4=D2=DC=D7=C5=CC = "=CD. =F4=C1=C7=C1=CE=D3=CB=C1=D1=20 =F4=C5=CC. 915-24-27; 234-40-68; 234-40-69.=20 =20 ------=_NextPart_000_0002_01C935B3.021FC1A6 Content-Type: text/html; charset="koi8-r" Content-Transfer-Encoding: quoted-printable

=F2=CF=D6=C4=C5=D3=D4=D7=C5=CE=D3=CB=C9=C5 = =CB=C1=CE=C9=CB=D5=CC=D9 =D7 =F0=CF=C4=CD=CF=D3=CB=CF=D7=D8=C5 =
=E7=C1=D2=C1=CE=D4=C9=D2=CF=D7=C1=CE=CE=D9=C5 =CE=CF=CD=C5=D2=C1!!! =
Land travel

915-24-27 = 234-40-69 234-40-68

= =F0=C1=CE=D3=C9=CF=CE=C1=D4 "=ED=C3=C5=CE=D3=CB"
320 =CB=CD . =CF=D4 =ED=CF=D3=CB=D7=D9 (=EF=D2=CC=CF=D7=D3=CB=C1=D1 = =CF=C2=CC=C1=D3=D4=D8) (=C2=C1=D3=D3=C5=CA=CE, = =C7=CF=D2=CE=CF=CC=D9=D6=CE=D9=CA =C3=C5=CE=D4=D2, ( =C2=C9=CC=D8=D1=D2=C4, =D3=C1=D5=CE=C1 =C9 =D4.=C4.)
04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)
=C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 12000=D2 = =D3 =DE=C5=CC . / =DA=C1=C5=DA=C4

= =F3=C1=CE=C1=D4=CF=D2=C9=CA "=E4=D2=D5=D6=C2=C1"
60 =CB=CD . =D0=CF =EB=C1=DB=C9=D2=D3=CB=CF=CD=D5 =DB=CF=D3=D3=C5 = (=C2=C1=D3=D3=C5=CA=CE, =D4=D2=C5=CE=C1=D6=C5=D2=CE=D9=CA =DA=C1=CC, = =C2=C9=CC=D8=D1=D2=C4, =CC=D9=D6=C9,
=D3=C1=D5=CE=C1 =C9 =D4.=C4.)
04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)
=D4=D2=A3=C8-=C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 10800=D2 =D3 =DE=C5=CC . / = =DA=C1=C5=DA=C4

= =F0=C1=CE=D3=C9=CF=CE=C1=D4 = "=E2=C5=D2=A3=DA=CB=C1"
=D0=CF =EC=C5=CE=C9=CE=C7=D2=C1=C4=D3=CB=CF=CD=D5 =DB=CF=D3=D3=C5 50 = =CB=CD .(=C2=C1=D3=D3=C5=CA=CE, =D4=D2=C5=CE=C1=D6=C5=D2=CE=D9=CA = =DA=C1=CC, =C2=C9=CC=D8=D1=D2=C4, =CC=D9=D6=C9, =D4=C5=CE=CE=C9=D3, =D3=C1=D5=CE=C1 =C9 =D4. =C4.)
04.01.09(=CF=C2=C5=C4)-10.01.09(=CF=C2=C5=C4)
=C4=D7=D5=C8=CD=C5=D3=D4=CE=D9=CA =CE=CF=CD=C5=D2 =D3 = =D5=C4=CF=C2=D3=D4=D7=C1=CD=C9 =D7 =CE=CF=CD=C5=D2=C5 10800=D2 = =D3 =DE=C5=CC . / =DA=C1=C5=DA=C4

= =E5=D3=D4=D8 =D7 =CE=C1=CC=C9=DE=C9=C9 =EE=CF=D7=CF=C7=CF=C4=CE=C9=C9 = =D0=D2=CF=C7=D2=C1=CD=CD=D9

=F4=D5=D2=C1=C7=C5=CE=D3=D4=D7=CF = "=EC=C5=CE=C4 =D4=D2=DC=D7=C5=CC "=CD. = =F4=C1=C7=C1=CE=D3=CB=C1=D1
=F4=C5=CC. 915-24-27; 234-40-68; 234-40-69.

------=_NextPart_000_0002_01C935B3.021FC1A6-- From owner-xfs@oss.sgi.com Sat Oct 25 05:05:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PC5SIG017454 for ; Sat, 25 Oct 2008 05:05:28 -0700 X-ASG-Debug-ID: 1224936323-57a102810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 83AD212A7BB6 for ; Sat, 25 Oct 2008 05:05:24 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id oEgeXIEeZalRecar for ; Sat, 25 Oct 2008 05:05:24 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 7F4371D8E00; Sat, 25 Oct 2008 08:05:23 -0400 (EDT) Date: Sat, 25 Oct 2008 08:05:23 -0400 (EDT) From: Justin Piszcz To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfs_db: out of memory (2.9.8) Subject: xfs_db: out of memory (2.9.8) Message-ID: User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1224936324 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8701 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- For the root partition I get "out of memory" when I try to check for fragmentation. # xfs_db -c frag -f /dev/md2 xfs_db: out of memory # xfs_db -V xfs_db version 2.9.8 # mount | grep "/dev/md2" /dev/md2 on / type xfs (rw,noatime) # xfs_info /dev/md2 meta-data=/dev/root isize=256 agcount=16, agsize=2024942 blks = sectsz=512 attr=0 data = bsize=4096 blocks=32399072, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal bsize=4096 blocks=15819, version=1 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 # xfs_db -c frag -f /dev/md3 actual 228842, ideal 223767, fragmentation factor 2.22% Any idea? Justin. From owner-xfs@oss.sgi.com Sat Oct 25 05:50:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PCodFG020640 for ; Sat, 25 Oct 2008 05:50:39 -0700 X-ASG-Debug-ID: 1224939038-30aa00390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B188544D78 for ; Sat, 25 Oct 2008 05:50:39 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 0vblrw9pngfqisx1 for ; Sat, 25 Oct 2008 05:50:39 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 52871AC358F; Sat, 25 Oct 2008 07:50:38 -0500 (CDT) Message-ID: <4903161D.9040204@sandeen.net> Date: Sat, 25 Oct 2008 07:50:37 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Justin Piszcz CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_db: out of memory (2.9.8) Subject: Re: xfs_db: out of memory (2.9.8) References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224939039 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Justin Piszcz wrote: > For the root partition I get "out of memory" when I try to check for > fragmentation. > > # xfs_db -c frag -f /dev/md2 > xfs_db: out of memory "-f" means "stored in a file" > # mount | grep "/dev/md2" > /dev/md2 on / type xfs (rw,noatime) It looks like you're cheating your way around: xfs_db: /dev/md2 contains a mounted filesystem fatal error -- couldn't initialize XFS library I'm not sure if that matters in this respect, though. You could use gdb to find out which allocation is failing. > # xfs_db -V > xfs_db version 2.9.8 > > Any idea? Don't worry so much about that fragmentation stat? :) -Eric > Justin. > > From owner-xfs@oss.sgi.com Sat Oct 25 05:58:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PCw8vP021311 for ; Sat, 25 Oct 2008 05:58:08 -0700 X-ASG-Debug-ID: 1224939487-18f702770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5BDDB1B1A10C for ; Sat, 25 Oct 2008 05:58:07 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id kyF9fvDA3m9HX7fb for ; Sat, 25 Oct 2008 05:58:07 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 8CD3B18FF2; Sat, 25 Oct 2008 08:58:07 -0400 (EDT) Date: Sat, 25 Oct 2008 08:58:07 -0400 (EDT) From: Justin Piszcz To: Eric Sandeen cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_db: out of memory (2.9.8) Subject: Re: xfs_db: out of memory (2.9.8) In-Reply-To: <4903161D.9040204@sandeen.net> Message-ID: References: <4903161D.9040204@sandeen.net> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1224939488 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, 25 Oct 2008, Eric Sandeen wrote: > Justin Piszcz wrote: >> For the root partition I get "out of memory" when I try to check for >> fragmentation. >> >> # xfs_db -c frag -f /dev/md2 >> xfs_db: out of memory > > "-f" means "stored in a file" > >> # mount | grep "/dev/md2" >> /dev/md2 on / type xfs (rw,noatime) > > It looks like you're cheating your way around: > > xfs_db: /dev/md2 contains a mounted filesystem > > fatal error -- couldn't initialize XFS library > > I'm not sure if that matters in this respect, though. > > You could use gdb to find out which allocation is failing. > >> # xfs_db -V >> xfs_db version 2.9.8 >> > >> Any idea? > > Don't worry so much about that fragmentation stat? :) > > -Eric > >> Justin. >> >> > .. but it used to work :( Loaded symbols for /lib/libgcc_s.so.1 Error while mapping shared library sections: ease: No such file or directory. (no debugging symbols found) Core was generated by `xfs_db -c frag -r /dev/md2'. Program terminated with signal 6, Aborted. [New process 17097] #0 0x00007f913f9b0ef5 in raise () from /lib/libc.so.6 (gdb) bt #0 0x00007f913f9b0ef5 in raise () from /lib/libc.so.6 #1 0x00007f913f9b2413 in abort () from /lib/libc.so.6 #2 0x00007f913f9ed3e8 in ?? () from /lib/libc.so.6 #3 0x00007f913f9f2968 in ?? () from /lib/libc.so.6 #4 0x00007f913f9f4a76 in free () from /lib/libc.so.6 #5 0x0000000000415d33 in ?? () #6 0x00000000004137ef in ?? () #7 0x0000000000412af3 in ?? () #8 0x0000000000413933 in ?? () #9 0x0000000000412af3 in ?? () #10 0x0000000000412d81 in ?? () #11 0x0000000000414af6 in ?? () #12 0x00007f913f99d1a6 in __libc_start_main () from /lib/libc.so.6 #13 0x0000000000402839 in ?? () #14 0x00007fff487544f8 in ?? () #15 0x000000000000001c in ?? () #16 0x0000000000000005 in ?? () #17 0x00007fff48755f10 in ?? () #18 0x00007fff48755f17 in ?? () #19 0x00007fff48755f1a in ?? () #20 0x00007fff48755f1f in ?? () #21 0x00007fff48755f22 in ?? () #22 0x0000000000000000 in ?? () (gdb) Same thing with 2.10.1: read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\7G"..., 16384) = 16384 lseek(3, 704512, SEEK_SET) = 704512 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\21H"..., 16384) = 16384 lseek(3, 745472, SEEK_SET) = 745472 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\34\0\0\0\0\0\0@"..., 16384) = 16384 mmap(NULL, 421888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4de5c60000 munmap(0x7f4de5c60000, 421888) = 0 mmap(NULL, 475136, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4de5c53000 munmap(0x7f4de5c53000, 475136) = 0 brk(0x195b000) = 0x195b000 mmap(NULL, 76083200, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4de08b9000 munmap(0x7f4de08b9000, 76083200) = 0 mmap(NULL, 21008228352, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4900e46000 munmap(0x7f4900e46000, 21008228352) = 0 mmap(NULL, 23702343680, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f48604f7000 munmap(0x7f48604f7000, 23702343680) = 0 lseek(3, 835584, SEEK_SET) = 835584 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\4H"..., 16384) = 16384 lseek(3, 1015808, SEEK_SET) = 1015808 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2H"..., 16384) = 16384 lseek(3, 1597440, SEEK_SET) = 1597440 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2H"..., 16384) = 16384 lseek(3, 1613824, SEEK_SET) = 1613824 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2H"..., 16384) = 16384 lseek(3, 1638400, SEEK_SET) = 1638400 read(3, "IN\241\377\1\1\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\5I"..., 16384) = 16384 lseek(3, 1851392, SEEK_SET) = 1851392 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2H"..., 16384) = 16384 lseek(3, 1867776, SEEK_SET) = 1867776 read(3, "IN\201\244\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2H"..., 16384) = 16384 lseek(3, 1933312, SEEK_SET) = 1933312 read(3, "INA\355\1\1\0\2\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0KH"..., 16384) = 16384 lseek(3, 1966080, SEEK_SET) = 1966080 read(3, "IN\201\264\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2I"..., 16384) = 16384 lseek(3, 1982464, SEEK_SET) = 1982464 read(3, "IN\201\264\1\2\0\1\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\2I"..., 16384) = 16384 lseek(3, 2260992, SEEK_SET) = 2260992 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\2\0\0\0\0\0"..., 16384) = 16384 mmap(NULL, 31221911552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory) brk(0x746873000) = 0x195b000 mmap(NULL, 31222042624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory) rt_sigprocmask(SIG_BLOCK, [INT], NULL, 8) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 23), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4de5cdb000 write(1, "xfs_db: out of memory\n"..., 22xfs_db: out of memory ) = 22 rt_sigprocmask(SIG_UNBLOCK, [INT], NULL, 8) = 0 exit_group(4) = ? xfs_db version 2.10.1 Justin. From owner-xfs@oss.sgi.com Sat Oct 25 06:07:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_44 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PD7RPb022076 for ; Sat, 25 Oct 2008 06:07:27 -0700 X-ASG-Debug-ID: 1224940046-438b010f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8215812A7E6C for ; Sat, 25 Oct 2008 06:07:26 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id mQnrrXwMZtZZURGy for ; Sat, 25 Oct 2008 06:07:26 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 51B2CA9ABD2; Sat, 25 Oct 2008 08:07:26 -0500 (CDT) Message-ID: <49031A0D.9040906@sandeen.net> Date: Sat, 25 Oct 2008 08:07:25 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Justin Piszcz CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_db: out of memory (2.9.8) Subject: Re: xfs_db: out of memory (2.9.8) References: <4903161D.9040204@sandeen.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224940047 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Justin Piszcz wrote: > > On Sat, 25 Oct 2008, Eric Sandeen wrote: > >> Justin Piszcz wrote: >>> For the root partition I get "out of memory" when I try to check for >>> fragmentation. >>> >>> # xfs_db -c frag -f /dev/md2 >>> xfs_db: out of memory >> "-f" means "stored in a file" >> >>> # mount | grep "/dev/md2" >>> /dev/md2 on / type xfs (rw,noatime) >> It looks like you're cheating your way around: >> >> xfs_db: /dev/md2 contains a mounted filesystem >> >> fatal error -- couldn't initialize XFS library >> >> I'm not sure if that matters in this respect, though. >> >> You could use gdb to find out which allocation is failing. >> >>> # xfs_db -V >>> xfs_db version 2.9.8 >>> >>> Any idea? >> Don't worry so much about that fragmentation stat? :) >> >> -Eric >> >>> Justin. >>> >>> > > .. but it used to work :( if you can find out when it changed, maybe it can change back. > Loaded symbols for /lib/libgcc_s.so.1 > Error while mapping shared library sections: > ease: No such file or directory. > (no debugging symbols found) ... so the output isn't so useful here > mmap(NULL, 31221911552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory) 32G... -Eric From owner-xfs@oss.sgi.com Sat Oct 25 06:14:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PDERh5022737 for ; Sat, 25 Oct 2008 06:14:28 -0700 X-ASG-Debug-ID: 1224940466-438b016b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6E91912A7EAA for ; Sat, 25 Oct 2008 06:14:26 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id SknobNglz4EaEVxH for ; Sat, 25 Oct 2008 06:14:26 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 67289A9ABFF for ; Sat, 25 Oct 2008 08:14:26 -0500 (CDT) Message-ID: <49031BB1.7080609@sandeen.net> Date: Sat, 25 Oct 2008 08:14:25 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] clean up printk formats with DMAPI_DEBUG Subject: [PATCH] clean up printk formats with DMAPI_DEBUG Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224940467 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Trivial cleanup of formats. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c @@ -2334,8 +2334,8 @@ xfs_dm_round_hole( return -EINVAL; /* requested length is too small */ } #ifdef CONFIG_DMAPI_DEBUG - printk("xfs_dm_round_hole: off %lu, len %ld, align %lu, " - "filesize %llu, roff %ld, rlen %ld\n", + printk("xfs_dm_round_hole: off %lld, len %llu, align %llu, " + "filesize %lld, roff %lld, rlen %llu\n", offset, length, align, filesize, *roff, *rlen); #endif return 0; /* hole geometry successfully rounded */ @@ -2467,7 +2467,7 @@ xfs_dm_punch_hole( } #ifdef CONFIG_DMAPI_DEBUG - printk("xfs_dm_punch_hole: off %lu, len %ld, align %lu\n", + printk("xfs_dm_punch_hole: off %lld, len %llu, align %llu\n", off, len, align); #endif From owner-xfs@oss.sgi.com Sat Oct 25 06:26:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_45,J_CHICKENPOX_52,J_CHICKENPOX_64,J_CHICKENPOX_66, J_CHICKENPOX_71 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PDQVaA023925 for ; Sat, 25 Oct 2008 06:26:32 -0700 X-ASG-Debug-ID: 1224941190-46b201b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4EB9A12A82CB for ; Sat, 25 Oct 2008 06:26:30 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id VDK7tO71TpinaXMQ for ; Sat, 25 Oct 2008 06:26:30 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 4968EA9ABC8 for ; Sat, 25 Oct 2008 08:26:30 -0500 (CDT) Message-ID: <49031E81.7040807@sandeen.net> Date: Sat, 25 Oct 2008 08:26:25 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 0/2 v2] hook xfs to fiemap ioctl Subject: [PATCH 0/2 v2] hook xfs to fiemap ioctl Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224941191 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Update & resend, including some checkpatch fixes, a bugfix, and incorporating some of Christoph's and Dave's comments. Also, here's a very hacky (don't laugh!) test app. I'll clean it up at some point :) -Eric ------------ #include #include #include #include #include #include #include #include #include #include /*************************************************/ /* All this should come from fiemap.h eventually */ struct fiemap_extent { __u64 fe_logical; /* logical offset in bytes for the start of * the extent from the beginning of the file */ __u64 fe_physical; /* physical offset in bytes for the start * of the extent from the beginning of the disk */ __u64 fe_length; /* length in bytes for this extent */ __u64 fe_reserved64[2]; __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ __u32 fe_reserved[3]; }; struct fiemap { __u64 fm_start; /* logical offset (inclusive) at * which to start mapping (in) */ __u64 fm_length; /* logical length of mapping which * userspace wants (in) */ __u32 fm_flags; /* FIEMAP_FLAG_* flags for request (in/out) */ __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) #define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */ #define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */ #define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) #define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent in file. */ #define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data location unknown. */ #define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location still pending. * Sets EXTENT_UNKNOWN. */ #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read * while fs is unmounted */ #define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. * Sets EXTENT_NO_BYPASS. */ #define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be * block aligned. */ #define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed with metadata. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple files in block. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but * no data (i.e. zero). */ #define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively * support extents. Result * merged for efficiency. */ #define FIGETBSZ _IO(0x00, 2) /* get the block size used for bmap */ #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) // #define FS_IOC_FIECOUNT _IOWR('f', 12, struct fiecount) /* End of what should be coming from fiemap.h */ /**********************************************/ void usage(void) { printf("Usage: fiemap [-vrSCL] [-s start] [-l length] [-c buf count] [-m max] filename\n"); printf(" -v : verbose mode\n"); printf(" -r : raw output: print raw ioctl structure values\n"); printf(" -S : set FIEMAP_FLAG_SYNC to sync before mapping\n"); printf(" -C : set FIEMAP_FLAG_NUM_EXTENTS to only get extent count, not mapping\n"); printf(" -X : set FIEMAP_FLAG_XATTR to report xattr mapping\n"); printf(" -s start : start of mapping in bytes (default 0)\n"); printf(" -l length : length of mapping in bytes (default to end of file)\n"); printf(" -c count : count of extents in ioctl input structure (default 32)\n"); printf(" -m max : max nr of ioctls to call before exit (default 512)\n"); exit(EXIT_FAILURE); } #define EXABYTES(x) ((long long)(x) << 60) #define PETABYTES(x) ((long long)(x) << 50) #define TERABYTES(x) ((long long)(x) << 40) #define GIGABYTES(x) ((long long)(x) << 30) #define MEGABYTES(x) ((long long)(x) << 20) #define KILOBYTES(x) ((long long)(x) << 10) long long cvtnum(char *s) { long long i; char *sp; int c; i = strtoll(s, &sp, 0); if (i == 0 && sp == s) return -1LL; if (*sp == '\0') return i; if (sp[1] != '\0') return -1LL; c = tolower(*sp); switch (c) { case 'k': return KILOBYTES(i); case 'm': return MEGABYTES(i); case 'g': return GIGABYTES(i); case 't': return TERABYTES(i); case 'p': return PETABYTES(i); case 'e': return EXABYTES(i); } return -1LL; } void show_extents_table(struct fiemap *fiemap, int blocksize, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { __u64 logical = fiemap->fm_extents[i].fe_logical; __u64 phys = fiemap->fm_extents[i].fe_physical; __u64 length = fiemap->fm_extents[i].fe_length; int flags = fiemap->fm_extents[i].fe_flags; __u64 last_logical = 0; if (i) { last_logical = fiemap->fm_extents[i-1].fe_logical + fiemap->fm_extents[i-1].fe_length - 1; } printf("ext: %3u logical: [%8llu..%8llu] phys: %8llu..%8llu flags: 0x%03X tot: %llu\n", i + start_extent, logical / blocksize, (logical + length - 1) / blocksize, phys / blocksize, (phys + length - 1) / blocksize, flags, (length / blocksize)); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for exents filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } void show_extents_raw(struct fiemap *fiemap, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { printf("Extent %3u: logical: %10lld physical: %10lld length: %10lld flags 0x%03X\n", i + start_extent, fiemap->fm_extents[i].fe_logical, fiemap->fm_extents[i].fe_physical, fiemap->fm_extents[i].fe_length, fiemap->fm_extents[i].fe_flags); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for extents wrongly filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } int main(int argc, char**argv) { int blocksize = 0; /* filesystem blocksize */ uint count = 32; /* extent count */ int fd; /* file descriptor */ int last = 0; /* last extent found */ int xattr = 0; /* return xattr mapping */ int maxioctls = 512; /* max ioctls to try */ int opt; int rc; int raw = 0; /* raw output format */ int sync = 0; /* sync file before mapping */ int verbose = 0; /* verbose output */ char *fname; /* filename to map */ char *fiebuf; /* fiemap buffer / ioctl argument */ __u64 lstart = 0; /* logical input mapping start */ __u64 llength = ~0ULL;/* logical input mapping length */ uint start_ext = 0; /* starting extent nr. for this batch */ __u32 flags = 0; struct fiemap *fiemap; /* XXX er, can llength be ~0ULL if start > 0? */ while ((opt = getopt(argc, argv, "s:l:c:m:rSCLXv")) != -1) { switch(opt) { /* logical mapping offset */ case 's': lstart = cvtnum(optarg); break; /* logical mapping length */ case 'l': llength = cvtnum(optarg); break; /* count of extent buffers to send */ case 'c': count = atoi(optarg); break; /* max nr. of ioctls to try (safety net) */ case 'm': maxioctls = atoi(optarg); break; /* raw format output */ case 'r': raw++; break; /* sync file before mapping */ case 'S': sync++; break; /* return extents for xattrs */ case 'X': xattr++; break; /* be verbose */ case 'v': verbose++; break; default: usage(); } } fname = argv[optind++]; if (!fname) usage(); /* Set the flags for the header */ if (sync) flags |= FIEMAP_FLAG_SYNC; if (xattr) flags |= FIEMAP_FLAG_XATTR; /* The whole buffer, extent maps and all */ fiebuf = malloc(sizeof (struct fiemap) + (count * sizeof(struct fiemap_extent))); if (!fiebuf) { perror("Could not allocate fiemap buffers"); exit(1); } /* set up the header */ fiemap = (struct fiemap *)fiebuf; fiemap->fm_start = lstart; fiemap->fm_length = llength; fiemap->fm_flags = flags; fiemap->fm_extent_count = count; fiemap->fm_mapped_extents = 0; /* output only */ fd = open(fname, O_RDONLY); if (fd < 0) { perror("Can't open file"); exit(1); } if (ioctl(fd, FIGETBSZ, &blocksize) < 0) { perror("Can't get block size"); close(fd); return; } do { if (verbose) printf("Input: start %llu length %llu flags 0x%X count %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count); rc = ioctl(fd, FS_IOC_FIEMAP, (unsigned long)fiemap); if (rc < 0) { perror("FIEMAP ioctl failed"); printf("flags 0x%x\n", fiemap->fm_flags); close(fd); exit(1); } if (verbose) printf("Output: start %llu length %llu flags 0x%X count %u mapped %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count, fiemap->fm_mapped_extents); if (raw) show_extents_raw(fiemap, start_ext, &last); else show_extents_table(fiemap, blocksize, start_ext, &last); if (!last) { int last_map = fiemap->fm_mapped_extents - 1; __u64 foo; /* XXX Ummmm */ foo = fiemap->fm_extents[last_map].fe_logical + fiemap->fm_extents[last_map].fe_length; /* Set up the next call arguments */ /* move to top */ fiemap->fm_start = foo; fiemap->fm_length = lstart + llength - foo; fiemap->fm_extent_count = count; } /* keeps track of extent nrs. we've printed; rather, pass by value! */ start_ext += fiemap->fm_mapped_extents; /* XXX need to stop if we've reached what we asked for */ maxioctls--; } while (!last && maxioctls > 0); close(fd); return 0; } From owner-xfs@oss.sgi.com Sat Oct 25 06:33:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PDXDrO024557 for ; Sat, 25 Oct 2008 06:33:14 -0700 X-ASG-Debug-ID: 1224941592-4db2012b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9FE9E12A8503 for ; Sat, 25 Oct 2008 06:33:12 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id sHPC5DjX1fVNrxHP for ; Sat, 25 Oct 2008 06:33:12 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 52503A9ABD3 for ; Sat, 25 Oct 2008 08:33:12 -0500 (CDT) Message-ID: <49032017.6070408@sandeen.net> Date: Sat, 25 Oct 2008 08:33:11 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Subject: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions References: <49031E81.7040807@sandeen.net> In-Reply-To: <49031E81.7040807@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224941593 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8703 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Preliminary work to hook up fiemap, this allows us to pass in an arbitrary formatter to copy extent data back to userspace. The formatter takes info for 1 extent, a pointer to the user "thing*" and a pointer to a "filled" variable to indicate whether a userspace buffer did get filled in (for fiemap, hole "extents" are skipped). I'm just using the getbmapx struct as a "common denominator" because as far as I can see, it holds all info that any formatters will care about. ("*thing" because fiemap doesn't pass the user pointer around, but rather has a pointer to a fiemap info structure, and helpers associated with it) Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5805,9 +5805,9 @@ error0: STATIC int xfs_getbmapx_fix_eof_hole( xfs_inode_t *ip, /* xfs incore inode pointer */ - struct getbmap *out, /* output structure */ + struct getbmapx *out, /* output structure */ int prealloced, /* this is a file with - * preallocated data space */ + * preallocated data space */ __int64_t end, /* last block requested */ xfs_fsblock_t startblock) { @@ -5832,15 +5832,38 @@ xfs_getbmapx_fix_eof_hole( return 1; } +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + if (copy_to_user(*ap, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + *filled = 1; + return 0; +} + +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled) +{ + *filled = 0; + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(*ap, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + *filled = 1; + return 0; +} + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int interface) /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg) /* formatter arg */ { __int64_t bmvend; /* last block requested */ int error; /* return value */ @@ -5853,19 +5876,20 @@ xfs_getbmap( int nexleft; /* # of user extents left */ int subnex; /* # of bmapi's can do */ int nmap; /* number of map entries */ - struct getbmap out; /* output structure */ + struct getbmapx out; /* output structure */ int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ - __int32_t oflags; /* getbmapx bmv_oflags field */ mp = ip->i_mount; + iflags = bmv->bmv_iflags; - whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (interface & BMV_IF_PREALLOC) != 0; + whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; + sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5880,7 +5904,7 @@ xfs_getbmap( * could misinterpret holes in a DMAPI file as true holes, * when in fact they may represent offline user data. */ - if ((interface & BMV_IF_NO_DMAPI_READ) == 0 && + if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_READ) && whichfork == XFS_DATA_FORK) { error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL); @@ -5987,52 +6011,35 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - nexleft--; - oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? + out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? BMV_OF_PREALLOC : 0; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); + out.bmv_unused1 = out.bmv_unused2 = 0; ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ goto unlock_and_return; } else { + int filled; /* nr extents filled */ + if (!xfs_getbmapx_fix_eof_hole(ip, &out, prealloced, bmvend, map[i].br_startblock)) { goto unlock_and_return; } - /* return either getbmap/getbmapx structure. */ - if (interface & BMV_IF_EXTENDED) { - struct getbmapx outx; - - GETBMAP_CONVERT(out,outx); - outx.bmv_oflags = oflags; - outx.bmv_unused1 = outx.bmv_unused2 = 0; - if (copy_to_user(ap, &outx, - sizeof(outx))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } else { - if (copy_to_user(ap, &out, - sizeof(out))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } + /* format results & advance arg */ + error = formatter(&arg, &out, &filled); + if (error) + goto unlock_and_return; + nexleft -= filled; bmv->bmv_offset = out.bmv_offset + out.bmv_length; bmv->bmv_length = MAX((__int64_t)0, (__int64_t)(bmvend - bmv->bmv_offset)); bmv->bmv_entries++; - ap = (interface & BMV_IF_EXTENDED) ? - (void __user *) - ((struct getbmapx __user *)ap + 1) : - (void __user *) - ((struct getbmap __user *)ap + 1); } } } while (nmap && nexleft && bmv->bmv_length); Index: linux-2.6-xfs/fs/xfs/xfs_bmap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.h +++ linux-2.6-xfs/fs/xfs/xfs_bmap.h @@ -356,15 +356,20 @@ xfs_bmap_finish( xfs_bmap_free_t *flist, /* i/o: list extents to free */ int *committed); /* xact committed or not */ +/* bmap to userspace formatters - copy to user & advance pointer */ +typedef int (*xfs_bmap_format_t)(void __user **, struct getbmapx *, int *); +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled); +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled); + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int iflags); /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg); /* formatter arg */ /* * Check if the endoff is outside the last extent. If so the caller will grow Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1262,25 +1262,26 @@ xfs_ioc_getbmap( unsigned int cmd, void __user *arg) { - struct getbmap bm; - int iflags; + struct getbmapx bmx; int error; - if (copy_from_user(&bm, arg, sizeof(bm))) + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); - if (bm.bmv_count < 2) + if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); if (ioflags & IO_INVIS) - iflags |= BMV_IF_NO_DMAPI_READ; + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - error = xfs_getbmap(ip, &bm, (struct getbmap __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap __user *)arg+1); if (error) return -error; - if (copy_to_user(arg, &bm, sizeof(bm))) + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) return -XFS_ERROR(EFAULT); return 0; } @@ -1291,8 +1292,6 @@ xfs_ioc_getbmapx( void __user *arg) { struct getbmapx bmx; - struct getbmap bm; - int iflags; int error; if (copy_from_user(&bmx, arg, sizeof(bmx))) @@ -1301,26 +1300,16 @@ xfs_ioc_getbmapx( if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - /* - * Map input getbmapx structure to a getbmap - * structure for xfs_getbmap. - */ - GETBMAP_CONVERT(bmx, bm); - - iflags = bmx.bmv_iflags; - - if (iflags & (~BMV_IF_VALID)) + if (bmx.bmv_iflags & (~BMV_IF_VALID)) return -XFS_ERROR(EINVAL); - iflags |= BMV_IF_EXTENDED; - - error = xfs_getbmap(ip, &bm, (struct getbmapx __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx __user *)arg+1); if (error) return -error; - GETBMAP_CONVERT(bm, bmx); - - if (copy_to_user(arg, &bmx, sizeof(bmx))) + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); return 0; Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -114,22 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) -#ifdef __KERNEL__ -#define BMV_IF_EXTENDED 0x40000000 /* getpmapx if set */ -#endif /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -/* Convert getbmap <-> getbmapx - move fields from p1 to p2. */ -#define GETBMAP_CONVERT(p1,p2) { \ - p2.bmv_offset = p1.bmv_offset; \ - p2.bmv_block = p1.bmv_block; \ - p2.bmv_length = p1.bmv_length; \ - p2.bmv_count = p1.bmv_count; \ - p2.bmv_entries = p1.bmv_entries; } - - /* * Structure for XFS_IOC_FSSETDM. * For use by backup and restore programs to set the XFS on-disk inode From owner-xfs@oss.sgi.com Sat Oct 25 06:34:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PDYqjQ024863 for ; Sat, 25 Oct 2008 06:34:52 -0700 X-ASG-Debug-ID: 1224941691-311302c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 62DC91B1A50D for ; Sat, 25 Oct 2008 06:34:51 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id vYBuPXAvDRTbTdyx for ; Sat, 25 Oct 2008 06:34:51 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 809F1A9ABD3 for ; Sat, 25 Oct 2008 08:34:51 -0500 (CDT) Message-ID: <4903207B.6030009@sandeen.net> Date: Sat, 25 Oct 2008 08:34:51 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 2/2 v2] hook up fiemap & associated formatter Subject: [PATCH 2/2 v2] hook up fiemap & associated formatter References: <49031E81.7040807@sandeen.net> In-Reply-To: <49031E81.7040807@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224941692 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8704 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Hook up the fiemap ioctl. This adds the fiemap inode_operation, which for us converts the fiemap values & flags into a getbmapx structure which can be sent to xfs_getbmap. The formatter then copies the bmv array back into the user's fiemap buffer via the fiemap helpers. This adds a new output flag, BMV_OF_LAST to indicate if we've hit the last extent in the inode. This potentially saves an extra call from userspace to see when the whole mapping is done. It also adds BMV_IF_DELALLOC and BMV_OF_DELALLOC to request, and indicate, delayed-allocation extents. If we wanted to be more clever, we could also return mapping data for in-inode attributes, but I'm not terribly motivated to do that just yet. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c @@ -53,6 +53,7 @@ #include #include #include +#include /* * Bring the atime in the XFS inode uptodate. @@ -661,6 +662,80 @@ out_error: return error; } +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +STATIC int xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *filled) +{ + int error = 0; + struct fiemap_extent_info *fieinfo = *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + *filled = 0; + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } + if (bmv->bmv_oflags & BMV_OF_LAST) + fiemap_flags |= FIEMAP_EXTENT_LAST; + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error < 0) + return -error; + *filled = 1; + return 0; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + if (fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS)) + return -EBADR; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ + if (length == FIEMAP_MAX_OFFSET) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + /* xfs_getbmap takes count as header + array */ + bm.bmv_count = fieinfo->fi_extents_max + 1; + bm.bmv_iflags = BMV_IF_PREALLOC; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -XFS_ERROR(error); + + return 0; +} + static const struct inode_operations xfs_inode_operations = { .permission = xfs_vn_permission, .truncate = xfs_vn_truncate, @@ -671,6 +746,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fallocate = xfs_vn_fallocate, + .fiemap = xfs_vn_fiemap, }; static const struct inode_operations xfs_dir_inode_operations = { Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5813,6 +5813,9 @@ xfs_getbmapx_fix_eof_hole( { __int64_t fixlen; xfs_mount_t *mp; /* file system mount point */ + xfs_ifork_t *ifp; /* inode fork pointer */ + xfs_extnum_t lastx; /* last extent pointer */ + xfs_fileoff_t fileblock; if (startblock == HOLESTARTBLOCK) { mp = ip->i_mount; @@ -5827,6 +5830,11 @@ xfs_getbmapx_fix_eof_hole( } } else { out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset); + ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); + if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) && + (lastx == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))-1)) + out->bmv_oflags |= BMV_OF_LAST; } return 1; @@ -5880,8 +5888,6 @@ xfs_getbmap( int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ - int sh_unwritten; /* true, if unwritten */ - /* extents listed separately */ int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ @@ -5889,7 +5895,6 @@ xfs_getbmap( iflags = bmv->bmv_iflags; whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5960,8 +5965,9 @@ xfs_getbmap( xfs_ilock(ip, XFS_IOLOCK_SHARED); - if (whichfork == XFS_DATA_FORK && - (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { + if (((iflags & BMV_IF_DELALLOC) == 0) && + (whichfork == XFS_DATA_FORK) && + (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ error = xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); @@ -5971,7 +5977,8 @@ xfs_getbmap( } } - ASSERT(whichfork == XFS_ATTR_FORK || ip->i_delayed_blks == 0); + ASSERT(whichfork == XFS_ATTR_FORK || (iflags & BMV_IF_DELALLOC) || + ip->i_delayed_blks == 0); lock = xfs_ilock_map_shared(ip); @@ -5983,7 +5990,7 @@ xfs_getbmap( nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1; bmapi_flags = XFS_BMAPI_AFLAG(whichfork) | - ((sh_unwritten) ? 0 : XFS_BMAPI_IGSTATE); + ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE); /* * Allocate enough space to handle "subnex" maps at a time. @@ -5993,9 +6000,12 @@ xfs_getbmap( bmv->bmv_entries = 0; - if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0) { - error = 0; - goto unlock_and_return; + if ((XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { + if (((iflags & BMV_IF_DELALLOC) == 0) || + whichfork == XFS_ATTR_FORK) { + error = 0; + goto unlock_and_return; + } } nexleft = nex; @@ -6011,15 +6021,20 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? - BMV_OF_PREALLOC : 0; + out.bmv_oflags = 0; + if (map[i].br_state == XFS_EXT_UNWRITTEN) + out.bmv_oflags |= BMV_OF_PREALLOC; + else if (map[i].br_startblock == DELAYSTARTBLOCK) + out.bmv_oflags |= BMV_OF_DELALLOC; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); out.bmv_unused1 = out.bmv_unused2 = 0; - ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); + ASSERT(((iflags & BMV_IF_DELALLOC) != 0) || + (map[i].br_startblock != DELAYSTARTBLOCK)); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ + out.bmv_oflags |= BMV_OF_LAST; goto unlock_and_return; } else { int filled; /* nr extents filled */ Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -113,10 +113,14 @@ struct getbmapx { #define BMV_IF_ATTRFORK 0x1 /* return attr fork rather than data */ #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ -#define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) +#define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_VALID \ + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_DELALLOC 0x2 /* segment = delayed allocation */ +#define BMV_OF_LAST 0x4 /* segment is the last in the file */ /* * Structure for XFS_IOC_FSSETDM. From owner-xfs@oss.sgi.com Sat Oct 25 11:18:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PIIbrG015067 for ; Sat, 25 Oct 2008 11:18:37 -0700 X-ASG-Debug-ID: 1224958716-684b03770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5A68254630E for ; Sat, 25 Oct 2008 11:18:36 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id tNUE0HVxdXhwv6TB for ; Sat, 25 Oct 2008 11:18:36 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 9D75BA9C504 for ; Sat, 25 Oct 2008 13:18:35 -0500 (CDT) Message-ID: <490362FB.5000300@sandeen.net> Date: Sat, 25 Oct 2008 13:18:35 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] xfstests: check for dmapi headers Subject: [PATCH] xfstests: check for dmapi headers Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224958717 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8719 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I'm no autoconf wizard, but I think this does the trick to allow xfstests build to succeed when dmapi headers are missing, as they probably will be for any distro that doesn't ship with dmapi in the kernel, or dmapi userspace. AFAIK the dmapi-related tests all fail gracefully with "not run." Signed-off-by: Eric Sandeen --- Index: xfstests/Makefile =================================================================== --- xfstests.orig/Makefile +++ xfstests/Makefile @@ -25,8 +25,10 @@ else $(SUBDIRS_MAKERULE) # automake doesn't always support "default" target # so do dmapi make explicitly with "all" +ifeq ($(HAVE_DMAPI), true) cd $(TOPDIR)/dmapi; make all endif +endif ifeq ($(HAVE_BUILDDEFS), yes) include $(BUILDRULES) Index: xfstests/aclocal.m4 =================================================================== --- xfstests.orig/aclocal.m4 +++ xfstests/aclocal.m4 @@ -99,6 +99,11 @@ AC_DEFUN([AC_PACKAGE_WANT_AIO], AC_SUBST(have_aio) ]) +AC_DEFUN([AC_PACKAGE_WANT_DMAPI], + [ AC_CHECK_HEADERS(sys/dmapi/dmapi.h, [ have_dmapi=true ], [ have_dmapi=false ]) + AC_SUBST(have_dmapi) + ]) + AC_DEFUN([AC_PACKAGE_NEED_ATTR_XATTR_H], [ AC_CHECK_HEADERS([attr/xattr.h]) if test "$ac_cv_header_attr_xattr_h" != "yes"; then Index: xfstests/configure.in =================================================================== --- xfstests.orig/configure.in +++ xfstests/configure.in @@ -61,6 +61,7 @@ in AC_PACKAGE_WANT_GDBM AC_PACKAGE_WANT_AIO + AC_PACKAGE_WANT_DMAPI ;; esac Index: xfstests/include/builddefs.in =================================================================== --- xfstests.orig/include/builddefs.in +++ xfstests/include/builddefs.in @@ -50,6 +50,7 @@ RPM_VERSION = @rpm_version@ ENABLE_SHARED = @enable_shared@ HAVE_DB = @have_db@ HAVE_AIO = @have_aio@ +HAVE_DMAPI = @have_dmapi@ HAVE_ATTR_LIST = @have_attr_list@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall From owner-xfs@oss.sgi.com Sat Oct 25 11:45:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_63,J_CHICKENPOX_64 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PIjtll017149 for ; Sat, 25 Oct 2008 11:45:55 -0700 X-ASG-Debug-ID: 1224960354-2f2b01c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 59A0212A91CF for ; Sat, 25 Oct 2008 11:45:54 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id e6jOoUnAOsnCWdJA for ; Sat, 25 Oct 2008 11:45:54 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 269A0A9C9C1 for ; Sat, 25 Oct 2008 13:45:54 -0500 (CDT) Message-ID: <49036961.8070100@sandeen.net> Date: Sat, 25 Oct 2008 13:45:53 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] xfstests: fix nr of args in open calls Subject: [PATCH] xfstests: fix nr of args in open calls Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224960355 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8720 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Fix a few problematic open calls which strict checking catches; in most cases just missing a mode with O_CREAT. Signed-off-by: Eric Sandeen --- Index: xfstests/ltp/iogen.c =================================================================== --- xfstests.orig/ltp/iogen.c +++ xfstests/ltp/iogen.c @@ -1060,7 +1060,11 @@ int nbytes; Oflags |= O_CREAT | O_WRONLY; +#ifdef CRAY if ((fd = open(path, Oflags, 0666, Ocbits, Ocblks)) == -1) { +#else + if ((fd = open(path, Oflags, 0666)) == -1) { +#endif fprintf(stderr, "iogen%s: Could not create/open file %s: %s (%d)\n", TagName, path, SYSERR, errno); return -1; Index: xfstests/src/multi_open_unlink.c =================================================================== --- xfstests.orig/src/multi_open_unlink.c +++ xfstests/src/multi_open_unlink.c @@ -92,7 +92,7 @@ main(int argc, char *argv[]) return 1; } - fd = open(path, O_RDWR|O_CREAT|O_EXCL); + fd = open(path, O_RDWR|O_CREAT|O_EXCL, 0666); if (fd == -1) { fprintf(stderr, "%s: failed to create \"%s\": %s\n", prog, path, strerror(errno)); return 1; Index: xfstests/src/enospc_unlink.c =================================================================== --- xfstests.orig/src/enospc_unlink.c +++ xfstests/src/enospc_unlink.c @@ -40,7 +40,7 @@ int main(int argc, char **argv) memset(ptr, 0xffffffff, sz); for (i = 0; i < count; i++) { - fd = open(argv[1], O_CREAT|O_WRONLY); + fd = open(argv[1], O_CREAT|O_WRONLY, 0666); if (fd < 0) { perror(argv[1]); exit(1); Index: xfstests/src/dmiperf.c =================================================================== --- xfstests.orig/src/dmiperf.c +++ xfstests/src/dmiperf.c @@ -203,7 +203,7 @@ mkfile(char *name, char *attr) ssize_t wrote, wsize; off64_t bytes = fsize; - if ((fd = open(name, O_WRONLY | O_CREAT | O_EXCL | O_DIRECT)) < 0) { + if ((fd = open(name, O_WRONLY | O_CREAT | O_EXCL | O_DIRECT, 0666)) < 0) { perror("open"); exit(1); } From owner-xfs@oss.sgi.com Sat Oct 25 13:17:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_44 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKHGY0028281 for ; Sat, 25 Oct 2008 13:17:17 -0700 X-ASG-Debug-ID: 1224965835-15b603050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4D446147F9B8 for ; Sat, 25 Oct 2008 13:17:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id RfRjO1D35ehdn4ZG for ; Sat, 25 Oct 2008 13:17:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KtpZT-0005CJ-Dt; Sat, 25 Oct 2008 20:17:15 +0000 Date: Sat, 25 Oct 2008 16:17:15 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix nr of args in open calls Subject: Re: [PATCH] xfstests: fix nr of args in open calls Message-ID: <20081025201715.GA28002@infradead.org> References: <49036961.8070100@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49036961.8070100@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224965836 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8723 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 01:45:53PM -0500, Eric Sandeen wrote: > --- xfstests.orig/ltp/iogen.c > +++ xfstests/ltp/iogen.c > @@ -1060,7 +1060,11 @@ int nbytes; > > Oflags |= O_CREAT | O_WRONLY; > > +#ifdef CRAY > if ((fd = open(path, Oflags, 0666, Ocbits, Ocblks)) == -1) { > +#else > + if ((fd = open(path, Oflags, 0666)) == -1) { > +#endif Do we really need that ifdef cray here? From owner-xfs@oss.sgi.com Sat Oct 25 13:18:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKIfTu028508 for ; Sat, 25 Oct 2008 13:18:42 -0700 X-ASG-Debug-ID: 1224965921-0bb9015b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C906D12A973E for ; Sat, 25 Oct 2008 13:18:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id rGhkvYCUEqp14GPY for ; Sat, 25 Oct 2008 13:18:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ktpaq-0001hX-VN; Sat, 25 Oct 2008 20:18:40 +0000 Date: Sat, 25 Oct 2008 16:18:40 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: check for dmapi headers Subject: Re: [PATCH] xfstests: check for dmapi headers Message-ID: <20081025201840.GB28002@infradead.org> References: <490362FB.5000300@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490362FB.5000300@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224965921 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8724 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 01:18:35PM -0500, Eric Sandeen wrote: > I'm no autoconf wizard, but I think this does the trick to allow > xfstests build to succeed when dmapi headers are missing, as > they probably will be for any distro that doesn't ship with > dmapi in the kernel, or dmapi userspace. > > AFAIK the dmapi-related tests all fail gracefully with "not run." Looks sane to me, although the dmapi library can of course be shipped without kernel support - it's just rather useless that way :) From owner-xfs@oss.sgi.com Sat Oct 25 13:19:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKJ9B6028814 for ; Sat, 25 Oct 2008 13:19:09 -0700 X-ASG-Debug-ID: 1224965948-144000620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A307F12A9745 for ; Sat, 25 Oct 2008 13:19:09 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id LefSKGr3AmtW2wEM for ; Sat, 25 Oct 2008 13:19:09 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 844CDA9C50B; Sat, 25 Oct 2008 15:19:08 -0500 (CDT) Message-ID: <49037F3C.6030007@sandeen.net> Date: Sat, 25 Oct 2008 15:19:08 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix nr of args in open calls Subject: Re: [PATCH] xfstests: fix nr of args in open calls References: <49036961.8070100@sandeen.net> <20081025201715.GA28002@infradead.org> In-Reply-To: <20081025201715.GA28002@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224965949 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8724 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Sat, Oct 25, 2008 at 01:45:53PM -0500, Eric Sandeen wrote: >> --- xfstests.orig/ltp/iogen.c >> +++ xfstests/ltp/iogen.c >> @@ -1060,7 +1060,11 @@ int nbytes; >> >> Oflags |= O_CREAT | O_WRONLY; >> >> +#ifdef CRAY >> if ((fd = open(path, Oflags, 0666, Ocbits, Ocblks)) == -1) { >> +#else >> + if ((fd = open(path, Oflags, 0666)) == -1) { >> +#endif > > Do we really need that ifdef cray here? Not sure; Ocbits etc are set under the same #ifdef, xfsqa runs on irix, and I'm not sure what all gets set on that build ... -Eric From owner-xfs@oss.sgi.com Sat Oct 25 13:19:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKJT63028994 for ; Sat, 25 Oct 2008 13:19:29 -0700 X-ASG-Debug-ID: 1224965969-2d4d01760000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D64F147F662 for ; Sat, 25 Oct 2008 13:19:29 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id dlx1DgTSXXpGhe4G for ; Sat, 25 Oct 2008 13:19:29 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 1440FA883C1; Sat, 25 Oct 2008 15:19:29 -0500 (CDT) Message-ID: <49037F50.3010400@sandeen.net> Date: Sat, 25 Oct 2008 15:19:28 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: check for dmapi headers Subject: Re: [PATCH] xfstests: check for dmapi headers References: <490362FB.5000300@sandeen.net> <20081025201840.GB28002@infradead.org> In-Reply-To: <20081025201840.GB28002@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224965969 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8723 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Sat, Oct 25, 2008 at 01:18:35PM -0500, Eric Sandeen wrote: >> I'm no autoconf wizard, but I think this does the trick to allow >> xfstests build to succeed when dmapi headers are missing, as >> they probably will be for any distro that doesn't ship with >> dmapi in the kernel, or dmapi userspace. >> >> AFAIK the dmapi-related tests all fail gracefully with "not run." > > Looks sane to me, although the dmapi library can of course be shipped > without kernel support - it's just rather useless that way :) > true, but very, very little motivation for that :) -Eric From owner-xfs@oss.sgi.com Sat Oct 25 13:20:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKK5h5029290 for ; Sat, 25 Oct 2008 13:20:06 -0700 X-ASG-Debug-ID: 1224966005-389400c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1B944147F671 for ; Sat, 25 Oct 2008 13:20:05 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ccLlKP6Ly44HsVCY for ; Sat, 25 Oct 2008 13:20:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KtpcD-0005TO-PX; Sat, 25 Oct 2008 20:20:05 +0000 Date: Sat, 25 Oct 2008 16:20:05 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] clean up printk formats with DMAPI_DEBUG Subject: Re: [PATCH] clean up printk formats with DMAPI_DEBUG Message-ID: <20081025202005.GC28002@infradead.org> References: <49031BB1.7080609@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49031BB1.7080609@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966006 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 08:14:25AM -0500, Eric Sandeen wrote: > #ifdef CONFIG_DMAPI_DEBUG > - printk("xfs_dm_round_hole: off %lu, len %ld, align %lu, " > - "filesize %llu, roff %ld, rlen %ld\n", > + printk("xfs_dm_round_hole: off %lld, len %llu, align %llu, " > + "filesize %lld, roff %lld, rlen %llu\n", > offset, length, align, filesize, *roff, *rlen); We'd still need casts to (unsigned) long long because the 64 bit types may be either variant on 64 bit platforms. From owner-xfs@oss.sgi.com Sat Oct 25 13:20:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKKdjm029582 for ; Sat, 25 Oct 2008 13:20:41 -0700 X-ASG-Debug-ID: 1224966039-108300fd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2EF7C12A976C for ; Sat, 25 Oct 2008 13:20:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 8DzmDTGuAAAb8Vfy for ; Sat, 25 Oct 2008 13:20:39 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ktpcl-0006nv-Du; Sat, 25 Oct 2008 20:20:39 +0000 Date: Sat, 25 Oct 2008 16:20:39 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 0/2 v2] hook xfs to fiemap ioctl Subject: Re: [PATCH 0/2 v2] hook xfs to fiemap ioctl Message-ID: <20081025202039.GD28002@infradead.org> References: <49031E81.7040807@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49031E81.7040807@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966040 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8724 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 08:26:25AM -0500, Eric Sandeen wrote: > Update & resend, including some checkpatch fixes, a bugfix, and > incorporating some of Christoph's and Dave's comments. > > Also, here's a very hacky (don't laugh!) test app. I'll clean it > up at some point :) Would be best if you could add it to xftests and write a little script to hook it up to xfsqa. From owner-xfs@oss.sgi.com Sat Oct 25 13:22:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKMWuK029958 for ; Sat, 25 Oct 2008 13:22:33 -0700 X-ASG-Debug-ID: 1224966152-528803bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 28021546ACF for ; Sat, 25 Oct 2008 13:22:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nPlsgsFkJViG6Dzv for ; Sat, 25 Oct 2008 13:22:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ktpea-00024Q-Fj; Sat, 25 Oct 2008 20:22:32 +0000 Date: Sat, 25 Oct 2008 16:22:32 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix nr of args in open calls Subject: Re: [PATCH] xfstests: fix nr of args in open calls Message-ID: <20081025202232.GE28002@infradead.org> References: <49036961.8070100@sandeen.net> <20081025201715.GA28002@infradead.org> <49037F3C.6030007@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49037F3C.6030007@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966153 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 03:19:08PM -0500, Eric Sandeen wrote: > Christoph Hellwig wrote: > > On Sat, Oct 25, 2008 at 01:45:53PM -0500, Eric Sandeen wrote: > >> --- xfstests.orig/ltp/iogen.c > >> +++ xfstests/ltp/iogen.c > >> @@ -1060,7 +1060,11 @@ int nbytes; > >> > >> Oflags |= O_CREAT | O_WRONLY; > >> > >> +#ifdef CRAY > >> if ((fd = open(path, Oflags, 0666, Ocbits, Ocblks)) == -1) { > >> +#else > >> + if ((fd = open(path, Oflags, 0666)) == -1) { > >> +#endif > > > > Do we really need that ifdef cray here? > > Not sure; Ocbits etc are set under the same #ifdef, xfsqa runs on irix, > and I'm not sure what all gets set on that build ... #ifdef CRAY is for Unicos, and I don't think xfsqa near it's current version can run there. I'd rather see all this striped out, but at least no new occurances added. From owner-xfs@oss.sgi.com Sat Oct 25 13:25:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKPTKi030343 for ; Sat, 25 Oct 2008 13:25:29 -0700 X-ASG-Debug-ID: 1224966329-015000230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7AF35546AEB for ; Sat, 25 Oct 2008 13:25:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 6JUst9LBOGAl8NRx for ; Sat, 25 Oct 2008 13:25:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KtphQ-00086g-U9; Sat, 25 Oct 2008 20:25:28 +0000 Date: Sat, 25 Oct 2008 16:25:28 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Message-ID: <20081025202528.GF28002@infradead.org> References: <49031E81.7040807@sandeen.net> <49032017.6070408@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49032017.6070408@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966329 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 08:33:11AM -0500, Eric Sandeen wrote: > ("*thing" because fiemap doesn't pass the user pointer around, but rather > has a pointer to a fiemap info structure, and helpers associated with it) Which means sparse won't like it. You declare the first argument to the filler as __user pointer here, but without it in the fiemap version. I think the better interface would be to pass a void *buffer, which is casted to a struct { struct getbmap(x) __user *base, unsigned nr; } for the XFS ioctl case and something different for fiemap. And please run sparse over it :) Except for that the patch looks good to me. From owner-xfs@oss.sgi.com Sat Oct 25 13:26:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKQvcN030627 for ; Sat, 25 Oct 2008 13:26:57 -0700 X-ASG-Debug-ID: 1224966417-677302c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A3543546B06 for ; Sat, 25 Oct 2008 13:26:57 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DMgMcNs5cORkjflf for ; Sat, 25 Oct 2008 13:26:57 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ktpir-0002Dv-36; Sat, 25 Oct 2008 20:26:57 +0000 Date: Sat, 25 Oct 2008 16:26:57 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 2/2 v2] hook up fiemap & associated formatter Subject: Re: [PATCH 2/2 v2] hook up fiemap & associated formatter Message-ID: <20081025202657.GG28002@infradead.org> References: <49031E81.7040807@sandeen.net> <4903207B.6030009@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4903207B.6030009@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966417 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) Why do we need FIEMAP_FLAG_SYNC in here? That flag is implemented in the VFS and should be handled there. (Probably more a question for the generic implementation than your patch) > + > +STATIC int xfs_fiemap_format( STATIC int xfs_fiemap_format( Buit the meat of the patch looks good to me. From owner-xfs@oss.sgi.com Sat Oct 25 13:27:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKRKmt030762 for ; Sat, 25 Oct 2008 13:27:20 -0700 X-ASG-Debug-ID: 1224966440-144200fb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB3ED12A97C6 for ; Sat, 25 Oct 2008 13:27:20 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id sJjoKxFTt42GXciE for ; Sat, 25 Oct 2008 13:27:20 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id E6F3CA9ABD4; Sat, 25 Oct 2008 15:27:19 -0500 (CDT) Message-ID: <49038127.8010608@sandeen.net> Date: Sat, 25 Oct 2008 15:27:19 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] clean up printk formats with DMAPI_DEBUG Subject: Re: [PATCH] clean up printk formats with DMAPI_DEBUG References: <49031BB1.7080609@sandeen.net> <20081025202005.GC28002@infradead.org> In-Reply-To: <20081025202005.GC28002@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224966440 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8724 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Sat, Oct 25, 2008 at 08:14:25AM -0500, Eric Sandeen wrote: >> #ifdef CONFIG_DMAPI_DEBUG >> - printk("xfs_dm_round_hole: off %lu, len %ld, align %lu, " >> - "filesize %llu, roff %ld, rlen %ld\n", >> + printk("xfs_dm_round_hole: off %lld, len %llu, align %llu, " >> + "filesize %lld, roff %lld, rlen %llu\n", >> offset, length, align, filesize, *roff, *rlen); > > We'd still need casts to (unsigned) long long because the 64 bit > types may be either variant on 64 bit platforms. > Ah crud you're right, I forgot that s64 was sometimes just a "long" Bah; is there no format that does this cleanly? :) -Eric From owner-xfs@oss.sgi.com Sat Oct 25 13:27:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKRicK030988 for ; Sat, 25 Oct 2008 13:27:44 -0700 X-ASG-Debug-ID: 1224966463-15b603c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 216C6147F6CD for ; Sat, 25 Oct 2008 13:27:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id eB0qpenFAPX2RGTo for ; Sat, 25 Oct 2008 13:27:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ktpjb-0003LF-QS; Sat, 25 Oct 2008 20:27:43 +0000 Date: Sat, 25 Oct 2008 16:27:43 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Message-ID: <20081025202743.GH28002@infradead.org> References: <49031E81.7040807@sandeen.net> <49032017.6070408@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49032017.6070408@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1224966464 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled) > +{ > + *filled = 0; > + if (copy_to_user(*ap, bmv, sizeof(struct getbmapx))) > + return XFS_ERROR(EFAULT); > + > + *ap += sizeof(struct getbmapx); > + *filled = 1; > + return 0; > +} > + > +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled) > +{ > + *filled = 0; > + /* copy only getbmap portion (not getbmapx) */ > + if (copy_to_user(*ap, bmv, sizeof(struct getbmap))) > + return XFS_ERROR(EFAULT); > + > + *ap += sizeof(struct getbmap); > + *filled = 1; > + return 0; > +} Probably makes sense to have these two helpers in xfs_ioctl.c, where they are used, similar to how fiemap is implemented. From owner-xfs@oss.sgi.com Sat Oct 25 13:28:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PKSlkD031363 for ; Sat, 25 Oct 2008 13:28:47 -0700 X-ASG-Debug-ID: 1224966527-015000500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A4A85546B6C for ; Sat, 25 Oct 2008 13:28:47 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 0XPfjlr1iUyNnMrm for ; Sat, 25 Oct 2008 13:28:47 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id DD617A9ABD4; Sat, 25 Oct 2008 15:28:46 -0500 (CDT) Message-ID: <4903817E.5040006@sandeen.net> Date: Sat, 25 Oct 2008 15:28:46 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions Subject: Re: [PATCH 1/2 v2] convert xfs_getbmap to take formatter functions References: <49031E81.7040807@sandeen.net> <49032017.6070408@sandeen.net> <20081025202743.GH28002@infradead.org> In-Reply-To: <20081025202743.GH28002@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224966527 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8725 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: >> +int xfs_getbmapx_format(void __user **ap, struct getbmapx *bmv, int *filled) >> +{ >> + *filled = 0; >> + if (copy_to_user(*ap, bmv, sizeof(struct getbmapx))) >> + return XFS_ERROR(EFAULT); >> + >> + *ap += sizeof(struct getbmapx); >> + *filled = 1; >> + return 0; >> +} >> + >> +int xfs_getbmap_format(void __user **ap, struct getbmapx *bmv, int *filled) >> +{ >> + *filled = 0; >> + /* copy only getbmap portion (not getbmapx) */ >> + if (copy_to_user(*ap, bmv, sizeof(struct getbmap))) >> + return XFS_ERROR(EFAULT); >> + >> + *ap += sizeof(struct getbmap); >> + *filled = 1; >> + return 0; >> +} > > Probably makes sense to have these two helpers in xfs_ioctl.c, where > they are used, similar to how fiemap is implemented. > Ok, that makes sense. Will change that & the other suggestions. (I did run sparse once, but made changes after that and forgot to re-run...) -Eric From owner-xfs@oss.sgi.com Sat Oct 25 16:32:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9PNWa63016873 for ; Sat, 25 Oct 2008 16:32:38 -0700 X-ASG-Debug-ID: 1224977554-741d01a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F005B5471B3 for ; Sat, 25 Oct 2008 16:32:35 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id UdEEI9wBCVEOOQ5Z for ; Sat, 25 Oct 2008 16:32:35 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,486,1220193000"; d="scan'208";a="218108885" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 26 Oct 2008 10:02:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KtscR-0006ev-Dq; Sun, 26 Oct 2008 10:32:31 +1100 Date: Sun, 26 Oct 2008 10:32:31 +1100 From: Dave Chinner To: Eric Sandeen Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: check for dmapi headers Subject: Re: [PATCH] xfstests: check for dmapi headers Message-ID: <20081025233231.GB11948@disturbed> Mail-Followup-To: Eric Sandeen , Christoph Hellwig , xfs-oss References: <490362FB.5000300@sandeen.net> <20081025201840.GB28002@infradead.org> <49037F50.3010400@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49037F50.3010400@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224977556 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8735 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Oct 25, 2008 at 03:19:28PM -0500, Eric Sandeen wrote: > Christoph Hellwig wrote: > > On Sat, Oct 25, 2008 at 01:18:35PM -0500, Eric Sandeen wrote: > >> I'm no autoconf wizard, but I think this does the trick to allow > >> xfstests build to succeed when dmapi headers are missing, as > >> they probably will be for any distro that doesn't ship with > >> dmapi in the kernel, or dmapi userspace. > >> > >> AFAIK the dmapi-related tests all fail gracefully with "not run." > > > > Looks sane to me, although the dmapi library can of course be shipped > > without kernel support - it's just rather useless that way :) > > true, but very, very little motivation for that :) $ dpkg -l libdm0\* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==================-==================-==================================================== ii libdm0 2.2.8-1 Data Management API runtime environment ii libdm0-dev 2.2.8-1 Data Management API static libraries and headers $ Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sat Oct 25 17:53:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q0rtfI022448 for ; Sat, 25 Oct 2008 17:53:56 -0700 X-ASG-Debug-ID: 1224982434-261e02890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6BE467AC2F2 for ; Sat, 25 Oct 2008 17:53:54 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id FRPjRVo0wa6QlIsW for ; Sat, 25 Oct 2008 17:53:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,486,1220193000"; d="scan'208";a="218129074" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 26 Oct 2008 11:23:52 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kttt9-0008QL-OY; Sun, 26 Oct 2008 11:53:51 +1100 Date: Sun, 26 Oct 2008 11:53:51 +1100 From: Dave Chinner To: Lachlan McIlroy , Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081026005351.GK18495@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081024064804.GQ25906@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224982435 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8741 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: > OK, I just hung a single-threaded rm -rf after this completed: > > # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress > > It has hung with this trace: > > # echo w > /proc/sysrq-trigger .... > [42954211.590000] 794877f8: [<6002e40a>] update_curr+0x3a/0x50 > [42954211.590000] 79487818: [<60014f0d>] _switch_to+0x6d/0xe0 > [42954211.590000] 79487858: [<60324b21>] schedule+0x171/0x2c0 > [42954211.590000] 794878a8: [<60324e6d>] schedule_timeout+0xad/0xf0 > [42954211.590000] 794878c8: [<60326e98>] _spin_unlock_irqrestore+0x18/0x20 > [42954211.590000] 79487908: [<60195455>] xlog_grant_log_space+0x245/0x470 > [42954211.590000] 79487920: [<60030ba0>] default_wake_function+0x0/0x10 > [42954211.590000] 79487978: [<601957a2>] xfs_log_reserve+0x122/0x140 > [42954211.590000] 794879c8: [<601a36e7>] xfs_trans_reserve+0x147/0x2e0 > [42954211.590000] 794879f8: [<60087374>] kmem_cache_alloc+0x84/0x100 > [42954211.590000] 79487a38: [<601ab01f>] xfs_inactive_symlink_rmt+0x9f/0x450 > [42954211.590000] 79487a88: [<601ada94>] kmem_zone_zalloc+0x34/0x50 > [42954211.590000] 79487aa8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 .... I came back to the system, and found that the hang had gone away - the rm -rf had finished sometime in the ~36 hours between triggering the problem and coming back to look at the corpse.... So nothing to report yet. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sat Oct 25 19:50:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q2oIiK029456 for ; Sat, 25 Oct 2008 19:50:18 -0700 X-ASG-Debug-ID: 1224989416-7b4a02750000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 10FC112AA50A for ; Sat, 25 Oct 2008 19:50:16 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id kqHTMqiXAD8QeF6S for ; Sat, 25 Oct 2008 19:50:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,487,1220193000"; d="scan'208";a="218161758" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 26 Oct 2008 13:20:14 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ktvhl-000463-E5; Sun, 26 Oct 2008 13:50:13 +1100 Date: Sun, 26 Oct 2008 13:50:13 +1100 From: Dave Chinner To: Lachlan McIlroy , Christoph Hellwig , xfs-oss Cc: linux-mm@kvack.org X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081026025013.GL18495@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026005351.GK18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224989418 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: > On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: > > OK, I just hung a single-threaded rm -rf after this completed: > > > > # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress > > > > It has hung with this trace: > > > > # echo w > /proc/sysrq-trigger > .... > > [42954211.590000] 794877f8: [<6002e40a>] update_curr+0x3a/0x50 > > [42954211.590000] 79487818: [<60014f0d>] _switch_to+0x6d/0xe0 > > [42954211.590000] 79487858: [<60324b21>] schedule+0x171/0x2c0 > > [42954211.590000] 794878a8: [<60324e6d>] schedule_timeout+0xad/0xf0 > > [42954211.590000] 794878c8: [<60326e98>] _spin_unlock_irqrestore+0x18/0x20 > > [42954211.590000] 79487908: [<60195455>] xlog_grant_log_space+0x245/0x470 > > [42954211.590000] 79487920: [<60030ba0>] default_wake_function+0x0/0x10 > > [42954211.590000] 79487978: [<601957a2>] xfs_log_reserve+0x122/0x140 > > [42954211.590000] 794879c8: [<601a36e7>] xfs_trans_reserve+0x147/0x2e0 > > [42954211.590000] 794879f8: [<60087374>] kmem_cache_alloc+0x84/0x100 > > [42954211.590000] 79487a38: [<601ab01f>] xfs_inactive_symlink_rmt+0x9f/0x450 > > [42954211.590000] 79487a88: [<601ada94>] kmem_zone_zalloc+0x34/0x50 > > [42954211.590000] 79487aa8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 > .... > > I came back to the system, and found that the hang had gone away - the > rm -rf had finished sometime in the ~36 hours between triggering the > problem and coming back to look at the corpse.... > > So nothing to report yet. Got it now. I can reproduce this in a couple of minutes now that both the test fs and the fs hosting the UML fs images are using lazy-count=1 (and the frequent 10s long host system freezes have gone away, too). Looks like *another* new memory allocation problem [1]: [42950422.270000] xfsdatad/0 D 000000000043bf7a 0 51 2 [42950422.270000] 804add98 804ad8f8 60498c40 80474000 804776a0 60014f0d 80442780 1000111a8 [42950422.270000] 80474000 7ff1ac08 804ad8c0 80442780 804776f0 60324b21 80474000 80477700 [42950422.270000] 80474000 1000111a8 80477700 0000000a 804777e0 80477950 80477750 60324e39 <6>Call Trace: [42950422.270000] 80477668: [<60014f0d>] _switch_to+0x6d/0xe0 [42950422.270000] 804776a8: [<60324b21>] schedule+0x171/0x2c0 [42950422.270000] 804776f8: [<60324e39>] schedule_timeout+0x79/0xf0 [42950422.270000] 80477718: [<60040360>] process_timeout+0x0/0x10 [42950422.270000] 80477758: [<60324619>] io_schedule_timeout+0x19/0x30 [42950422.270000] 80477778: [<6006eb74>] congestion_wait+0x74/0xa0 [42950422.270000] 80477790: [<6004c5b0>] autoremove_wake_function+0x0/0x40 [42950422.270000] 804777d8: [<600692a0>] throttle_vm_writeout+0x80/0xa0 [42950422.270000] 80477818: [<6006cdf4>] shrink_zone+0xac4/0xb10 [42950422.270000] 80477828: [<601adb5b>] kmem_alloc+0x5b/0x140 [42950422.270000] 804778c8: [<60186d48>] xfs_iext_inline_to_direct+0x68/0x80 [42950422.270000] 804778f8: [<60187e38>] xfs_iext_realloc_direct+0x128/0x1c0 [42950422.270000] 80477928: [<60188594>] xfs_iext_add+0xc4/0x290 [42950422.270000] 80477978: [<60166388>] xfs_bmbt_set_all+0x18/0x20 [42950422.270000] 80477988: [<601887c4>] xfs_iext_insert+0x64/0x80 [42950422.270000] 804779c8: [<6006d75a>] try_to_free_pages+0x1ea/0x330 [42950422.270000] 80477a40: [<6006ba40>] isolate_pages_global+0x0/0x40 [42950422.270000] 80477a98: [<60067887>] __alloc_pages_internal+0x267/0x540 [42950422.270000] 80477b68: [<60086b61>] cache_alloc_refill+0x4c1/0x970 [42950422.270000] 80477b88: [<60326ea9>] _spin_unlock+0x9/0x10 [42950422.270000] 80477bd8: [<6002ffc5>] __might_sleep+0x55/0x120 [42950422.270000] 80477c08: [<601ad9cd>] kmem_zone_alloc+0x7d/0x110 [42950422.270000] 80477c18: [<600873c3>] kmem_cache_alloc+0xd3/0x100 [42950422.270000] 80477c58: [<601ad9cd>] kmem_zone_alloc+0x7d/0x110 [42950422.270000] 80477ca8: [<601ada78>] kmem_zone_zalloc+0x18/0x50 [42950422.270000] 80477cc8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 [42950422.270000] 80477ce8: [<601a3b52>] xfs_trans_alloc+0xa2/0xb0 [42950422.270000] 80477d18: [<60027655>] set_signals+0x35/0x40 [42950422.270000] 80477d48: [<6018f93a>] xfs_iomap_write_unwritten+0x5a/0x260 [42950422.270000] 80477d50: [<60063d12>] mempool_free_slab+0x12/0x20 [42950422.270000] 80477d68: [<60027655>] set_signals+0x35/0x40 [42950422.270000] 80477db8: [<60063d12>] mempool_free_slab+0x12/0x20 [42950422.270000] 80477dc8: [<60063dbf>] mempool_free+0x4f/0x90 [42950422.270000] 80477e18: [<601af5e5>] xfs_end_bio_unwritten+0x65/0x80 [42950422.270000] 80477e38: [<60048574>] run_workqueue+0xa4/0x180 [42950422.270000] 80477e50: [<601af580>] xfs_end_bio_unwritten+0x0/0x80 [42950422.270000] 80477e58: [<6004c791>] prepare_to_wait+0x51/0x80 [42950422.270000] 80477e98: [<600488e0>] worker_thread+0x70/0xd0 We've entered memory reclaim inside the xfsdatad while trying to do unwritten extent completion during I/O completion, and that memory reclaim is now blocked waiting for I/o completion that cannot make progress. Nasty. My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument so we don't re-enter the FS here. If we get an ENOMEM in this case, we should then re-queue the I/O completion at the back of the workqueue and let other I/o completions progress before retrying this one. That way the I/O that is simply cleaning memory will make progress, hence allowing memory allocation to occur successfully when we retry this I/O completion... XFS-folk - thoughts? [1] I don't see how any of the XFS changes we made make this easier to hit. What I suspect is a VM regression w.r.t. memory reclaim because this is the second problem since 2.6.26 that appears to be a result of memory allocation failures in places that we've never, ever seen failures before. The other new failure is this one: http://bugzilla.kernel.org/show_bug.cgi?id=11805 which is an alloc_pages(GFP_KERNEL) failure.... mm-folk - care to weight in? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sat Oct 25 20:01:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q31oNx030284 for ; Sat, 25 Oct 2008 20:01:50 -0700 X-ASG-Debug-ID: 1224990110-74bb03b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 14E1B12AA59F for ; Sat, 25 Oct 2008 20:01:50 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id b3E5UuBUQH5HDmc0 for ; Sat, 25 Oct 2008 20:01:50 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 6E0B3A9ABC7; Sat, 25 Oct 2008 22:01:48 -0500 (CDT) Message-ID: <4903DD9C.60000@sandeen.net> Date: Sat, 25 Oct 2008 22:01:48 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Eric Sandeen , Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] xfstests: check for dmapi headers Subject: Re: [PATCH] xfstests: check for dmapi headers References: <490362FB.5000300@sandeen.net> <20081025201840.GB28002@infradead.org> <49037F50.3010400@sandeen.net> <20081025233231.GB11948@disturbed> In-Reply-To: <20081025233231.GB11948@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224990111 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Dave Chinner wrote: > On Sat, Oct 25, 2008 at 03:19:28PM -0500, Eric Sandeen wrote: >> Christoph Hellwig wrote: >>> On Sat, Oct 25, 2008 at 01:18:35PM -0500, Eric Sandeen wrote: >>>> I'm no autoconf wizard, but I think this does the trick to allow >>>> xfstests build to succeed when dmapi headers are missing, as >>>> they probably will be for any distro that doesn't ship with >>>> dmapi in the kernel, or dmapi userspace. >>>> >>>> AFAIK the dmapi-related tests all fail gracefully with "not run." >>> Looks sane to me, although the dmapi library can of course be shipped >>> without kernel support - it's just rather useless that way :) >> true, but very, very little motivation for that :) > > $ dpkg -l libdm0\* > Desired=Unknown/Install/Remove/Purge/Hold > | Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend > |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) > ||/ Name Version Description > +++-==================-==================-==================================================== > ii libdm0 2.2.8-1 Data Management API runtime environment > ii libdm0-dev 2.2.8-1 Data Management API static libraries and headers > $ I meant my motivation ;) -Eric From owner-xfs@oss.sgi.com Sat Oct 25 20:46:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44,J_CHICKENPOX_63,J_CHICKENPOX_64 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q3k0iv005379 for ; Sat, 25 Oct 2008 20:46:01 -0700 X-ASG-Debug-ID: 1224992760-5679002e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE47B12AA6CF for ; Sat, 25 Oct 2008 20:46:00 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id P0hIe2KwVlFiCNRr for ; Sat, 25 Oct 2008 20:46:00 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id E2FBEA9ABDB for ; Sat, 25 Oct 2008 22:45:59 -0500 (CDT) Message-ID: <4903E7F7.9010608@sandeen.net> Date: Sat, 25 Oct 2008 22:45:59 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH V2] xfstests: fix nr of args in open calls Subject: [PATCH V2] xfstests: fix nr of args in open calls References: <49036961.8070100@sandeen.net> In-Reply-To: <49036961.8070100@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224992760 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8750 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Fix a few problematic open calls which strict checking catches; in most cases just missing a mode with O_CREAT. Removed the #ifdef CRAY instance around one, per hch's request. Somebody else can remove the rest, when motivated. Signed-off-by: Eric Sandeen --- Index: xfstests/ltp/iogen.c =================================================================== --- xfstests.orig/ltp/iogen.c +++ xfstests/ltp/iogen.c @@ -1060,7 +1060,7 @@ int nbytes; Oflags |= O_CREAT | O_WRONLY; - if ((fd = open(path, Oflags, 0666, Ocbits, Ocblks)) == -1) { + if ((fd = open(path, Oflags, 0666)) == -1) { fprintf(stderr, "iogen%s: Could not create/open file %s: %s (%d)\n", TagName, path, SYSERR, errno); return -1; Index: xfstests/src/multi_open_unlink.c =================================================================== --- xfstests.orig/src/multi_open_unlink.c +++ xfstests/src/multi_open_unlink.c @@ -92,7 +92,7 @@ main(int argc, char *argv[]) return 1; } - fd = open(path, O_RDWR|O_CREAT|O_EXCL); + fd = open(path, O_RDWR|O_CREAT|O_EXCL, 0666); if (fd == -1) { fprintf(stderr, "%s: failed to create \"%s\": %s\n", prog, path, strerror(errno)); return 1; Index: xfstests/src/enospc_unlink.c =================================================================== --- xfstests.orig/src/enospc_unlink.c +++ xfstests/src/enospc_unlink.c @@ -40,7 +40,7 @@ int main(int argc, char **argv) memset(ptr, 0xffffffff, sz); for (i = 0; i < count; i++) { - fd = open(argv[1], O_CREAT|O_WRONLY); + fd = open(argv[1], O_CREAT|O_WRONLY, 0666); if (fd < 0) { perror(argv[1]); exit(1); Index: xfstests/src/dmiperf.c =================================================================== --- xfstests.orig/src/dmiperf.c +++ xfstests/src/dmiperf.c @@ -203,7 +203,7 @@ mkfile(char *name, char *attr) ssize_t wrote, wsize; off64_t bytes = fsize; - if ((fd = open(name, O_WRONLY | O_CREAT | O_EXCL | O_DIRECT)) < 0) { + if ((fd = open(name, O_WRONLY | O_CREAT | O_EXCL | O_DIRECT, 0666)) < 0) { perror("open"); exit(1); } From owner-xfs@oss.sgi.com Sat Oct 25 21:20:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q4KUPd007672 for ; Sat, 25 Oct 2008 21:20:30 -0700 X-ASG-Debug-ID: 1224994828-567901db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E9F812AA61A for ; Sat, 25 Oct 2008 21:20:29 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id jTKnmTUbgeRhGEQK for ; Sat, 25 Oct 2008 21:20:29 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,487,1220193000"; d="scan'208";a="218191846" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 26 Oct 2008 14:50:27 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Ktx74-0007EN-FQ; Sun, 26 Oct 2008 15:20:26 +1100 Date: Sun, 26 Oct 2008 15:20:26 +1100 From: Dave Chinner To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081026042026.GM18495@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026025013.GL18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1224994830 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8751 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Sun, Oct 26, 2008 at 01:50:13PM +1100, Dave Chinner wrote: > On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: > > On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: > > > OK, I just hung a single-threaded rm -rf after this completed: > > > > > > # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress > > > > > > It has hung with this trace: > > > > > > # echo w > /proc/sysrq-trigger > > .... > > > [42954211.590000] 794877f8: [<6002e40a>] update_curr+0x3a/0x50 > > > [42954211.590000] 79487818: [<60014f0d>] _switch_to+0x6d/0xe0 > > > [42954211.590000] 79487858: [<60324b21>] schedule+0x171/0x2c0 > > > [42954211.590000] 794878a8: [<60324e6d>] schedule_timeout+0xad/0xf0 > > > [42954211.590000] 794878c8: [<60326e98>] _spin_unlock_irqrestore+0x18/0x20 > > > [42954211.590000] 79487908: [<60195455>] xlog_grant_log_space+0x245/0x470 > > > [42954211.590000] 79487920: [<60030ba0>] default_wake_function+0x0/0x10 > > > [42954211.590000] 79487978: [<601957a2>] xfs_log_reserve+0x122/0x140 > > > [42954211.590000] 794879c8: [<601a36e7>] xfs_trans_reserve+0x147/0x2e0 > > > [42954211.590000] 794879f8: [<60087374>] kmem_cache_alloc+0x84/0x100 > > > [42954211.590000] 79487a38: [<601ab01f>] xfs_inactive_symlink_rmt+0x9f/0x450 > > > [42954211.590000] 79487a88: [<601ada94>] kmem_zone_zalloc+0x34/0x50 > > > [42954211.590000] 79487aa8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 > > .... > > > > I came back to the system, and found that the hang had gone away - the > > rm -rf had finished sometime in the ~36 hours between triggering the > > problem and coming back to look at the corpse.... > > > > So nothing to report yet. > > Got it now. I can reproduce this in a couple of minutes now that both > the test fs and the fs hosting the UML fs images are using lazy-count=1 > (and the frequent 10s long host system freezes have gone away, too). > > Looks like *another* new memory allocation problem [1]: [snip] And having fixed that, I'm now seeing the log reservation hang: [42950307.350000] xfsdatad/0 D 00000000407219f0 0 51 2 [42950307.350000] 7bd1acd8 7bd1a838 60498c40 81074000 81077b40 60014f0d 81044780 81074000 [42950307.350000] 81074000 7e15f808 7bd1a800 81044780 81077b90 60324bc1 81074000 00000250 [42950307.350000] 81074000 81074000 7fffffffffffffff 6646a168 80b6dd28 80b6ddf8 81077bf0 60324f0d <6>Call Trace: [42950307.350000] 81077b08: [<60014f0d>] _switch_to+0x6d/0xe0 [42950307.350000] 81077b48: [<60324bc1>] schedule+0x171/0x2c0 [42950307.350000] 81077b98: [<60324f0d>] schedule_timeout+0xad/0xf0 [42950307.350000] 81077bb8: [<60326f38>] _spin_unlock_irqrestore+0x18/0x20 [42950307.350000] 81077bf8: [<601953e9>] xlog_grant_log_space+0x169/0x470 [42950307.350000] 81077c10: [<60030ba0>] default_wake_function+0x0/0x10 [42950307.350000] 81077c68: [<60195812>] xfs_log_reserve+0x122/0x140 [42950307.350000] 81077cb8: [<601a3757>] xfs_trans_reserve+0x147/0x2e0 [42950307.350000] 81077ce8: [<601adb14>] kmem_zone_zalloc+0x34/0x50 [42950307.350000] 81077d28: [<6018f985>] xfs_iomap_write_unwritten+0xa5/0x2d0 [42950307.350000] 81077d38: [<60326f38>] _spin_unlock_irqrestore+0x18/0x20 [42950307.350000] 81077d48: [<60085750>] cache_free_debugcheck+0x150/0x2e0 [42950307.350000] 81077d50: [<60063d12>] mempool_free_slab+0x12/0x20 [42950307.350000] 81077d88: [<60085e02>] kmem_cache_free+0x72/0xb0 [42950307.350000] 81077dc8: [<60063dbf>] mempool_free+0x4f/0x90 [42950307.350000] 81077e08: [<601af66d>] xfs_end_bio_unwritten+0x6d/0xa0 [42950307.350000] 81077e38: [<60048574>] run_workqueue+0xa4/0x180 [42950307.350000] 81077e50: [<601af600>] xfs_end_bio_unwritten+0x0/0xa0 [42950307.350000] 81077e58: [<6004c791>] prepare_to_wait+0x51/0x80 [42950307.350000] 81077e98: [<600488e0>] worker_thread+0x70/0xd0 [42950307.350000] 81077eb0: [<6004c5b0>] autoremove_wake_function+0x0/0x40 [42950307.350000] 81077ee8: [<60048870>] worker_thread+0x0/0xd0 [42950307.350000] 81077f08: [<6004c204>] kthread+0x64/0xb0 [42950307.350000] 81077f48: [<60026285>] run_kernel_thread+0x35/0x60 [42950307.350000] 81077f58: [<6004c1a0>] kthread+0x0/0xb0 [42950307.350000] 81077f98: [<60026278>] run_kernel_thread+0x28/0x60 [42950307.350000] 81077fc8: [<60014e71>] new_thread_handler+0x71/0xa0 Basically, the log is too small to fit the number of transaction reservations that are currently being attempted (roughly 1000 parallel transactions), and so xlog_grant_log_space() is sleeping. Because it is sleeping in I/O completion, the log tail can't move forward because I/O completion is not occurring. I think that at this point, we need a separate workqueue for unwritten extent conversion to prevent it from blocking normal data and metadata I/O completion. that way we can allow it to recurse on allocation and transaction reservation without introducing I/O completion deadlocks.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sat Oct 25 21:38:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q4cKlD009025 for ; Sat, 25 Oct 2008 21:38:20 -0700 X-ASG-Debug-ID: 1224995898-5a38003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 749691480CB4 for ; Sat, 25 Oct 2008 21:38:18 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id akht3aQt5e9yh3Ex for ; Sat, 25 Oct 2008 21:38:18 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 5A05EA9ABD7; Sat, 25 Oct 2008 23:38:18 -0500 (CDT) Message-ID: <4903F439.1070605@sandeen.net> Date: Sat, 25 Oct 2008 23:38:17 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 2/2 v2] hook up fiemap & associated formatter Subject: Re: [PATCH 2/2 v2] hook up fiemap & associated formatter References: <49031E81.7040807@sandeen.net> <4903207B.6030009@sandeen.net> <20081025202657.GG28002@infradead.org> In-Reply-To: <20081025202657.GG28002@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1224995900 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8752 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: >> +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) > > Why do we need FIEMAP_FLAG_SYNC in here? That flag is implemented in > the VFS and should be handled there. (Probably more a question for > the generic implementation than your patch) well, sorta, it calls filemap_write_and_wait but no lock is held to keep that consistent when the filesystem gets to it... IMHO it *should* probably be up to the fs to handle the sync flag. But anyway, for it all to hang together I think we need to tell it that we understand this flag. -Eric >> + >> +STATIC int xfs_fiemap_format( > > STATIC int > xfs_fiemap_format( > > > > Buit the meat of the patch looks good to me. > > From owner-xfs@oss.sgi.com Sun Oct 26 01:17:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q8HX3T029987 for ; Sun, 26 Oct 2008 01:17:35 -0700 X-ASG-Debug-ID: 1225009053-582801a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE7C07AC98C for ; Sun, 26 Oct 2008 01:17:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EikDMSvX3bdlczw8 for ; Sun, 26 Oct 2008 01:17:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ku0oH-0002Ll-Qj; Sun, 26 Oct 2008 08:17:17 +0000 Date: Sun, 26 Oct 2008 04:17:17 -0400 From: Christoph Hellwig To: Stephen Rothwell Cc: linux-next@vger.kernel.org, LKML , Andrew Morton , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: linux-next: left over things in linux-next after 2.6.28-c1 Subject: Re: linux-next: left over things in linux-next after 2.6.28-c1 Message-ID: <20081026081717.GB20872@infradead.org> References: <20081026005009.50dbbb33.sfr@canb.auug.org.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026005009.50dbbb33.sfr@canb.auug.org.au> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225009053 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8762 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 26, 2008 at 12:50:09AM +1100, Stephen Rothwell wrote: > xfs While there are still a lot of patches in the queue (no merge yet for .28) this list contains all the patches back to at least early 2008, with the big majority merged of course. From owner-xfs@oss.sgi.com Sun Oct 26 01:34:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q8YX5T031072 for ; Sun, 26 Oct 2008 01:34:34 -0700 X-ASG-Debug-ID: 1225010071-6ad2031a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtps.tip.net.au (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D990512A78A1 for ; Sun, 26 Oct 2008 01:34:32 -0700 (PDT) Received: from smtps.tip.net.au (chilli.pcug.org.au [203.10.76.44]) by cuda.sgi.com with ESMTP id Hhy30BN2iMQDplrw for ; Sun, 26 Oct 2008 01:34:32 -0700 (PDT) Received: from ash.ozlabs.ibm.com (ta-1-1.tip.net.au [203.11.71.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by smtps.tip.net.au (Postfix) with ESMTP id BF69836800D; Sun, 26 Oct 2008 19:34:28 +1100 (EST) Date: Sun, 26 Oct 2008 19:34:21 +1100 From: Stephen Rothwell To: Christoph Hellwig Cc: linux-next@vger.kernel.org, LKML , Andrew Morton , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: linux-next: left over things in linux-next after 2.6.28-c1 Subject: Re: linux-next: left over things in linux-next after 2.6.28-c1 Message-Id: <20081026193421.f5f7d8f1.sfr@canb.auug.org.au> In-Reply-To: <20081026081717.GB20872@infradead.org> References: <20081026005009.50dbbb33.sfr@canb.auug.org.au> <20081026081717.GB20872@infradead.org> X-Mailer: Sylpheed 2.5.0 (GTK+ 2.12.11; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: multipart/signed; protocol="application/pgp-signature"; micalg="PGP-SHA1"; boundary="Signature=_Sun__26_Oct_2008_19_34_21_+1100_xZ0EeMF.nQ025+qE" X-Barracuda-Connect: chilli.pcug.org.au[203.10.76.44] X-Barracuda-Start-Time: 1225010073 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8761 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --Signature=_Sun__26_Oct_2008_19_34_21_+1100_xZ0EeMF.nQ025+qE Content-Type: text/plain; charset=US-ASCII Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, 26 Oct 2008 04:17:17 -0400 Christoph Hellwig wr= ote: > > On Sun, Oct 26, 2008 at 12:50:09AM +1100, Stephen Rothwell wrote: > > xfs >=20 > While there are still a lot of patches in the queue (no merge yet for > .28) this list contains all the patches back to at least early 2008, > with the big majority merged of course. Presumably what was merged was slightly different (or the commits were split up differently). This is the same problem I have with the kvm tree. --=20 Cheers, Stephen Rothwell sfr@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ --Signature=_Sun__26_Oct_2008_19_34_21_+1100_xZ0EeMF.nQ025+qE Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkkEK40ACgkQjjKRsyhoI8wUowCdEThJbBvTBWJtzUAprn/bBxoa p0YAoKdzLwhi4cdlO3zRccxYSkZ4W+ig =pHpD -----END PGP SIGNATURE----- --Signature=_Sun__26_Oct_2008_19_34_21_+1100_xZ0EeMF.nQ025+qE-- From owner-xfs@oss.sgi.com Sun Oct 26 01:39:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9Q8dhqr031573 for ; Sun, 26 Oct 2008 01:39:43 -0700 X-ASG-Debug-ID: 1225010383-6ad503990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB8DDEB0FB7 for ; Sun, 26 Oct 2008 01:39:43 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id sF3RPAETr7wCVCWC for ; Sun, 26 Oct 2008 01:39:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Ku19v-0003g8-Nq; Sun, 26 Oct 2008 08:39:39 +0000 Date: Sun, 26 Oct 2008 04:39:39 -0400 From: Christoph Hellwig To: Stephen Rothwell Cc: Christoph Hellwig , linux-next@vger.kernel.org, LKML , Andrew Morton , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: linux-next: left over things in linux-next after 2.6.28-c1 Subject: Re: linux-next: left over things in linux-next after 2.6.28-c1 Message-ID: <20081026083939.GA19394@infradead.org> References: <20081026005009.50dbbb33.sfr@canb.auug.org.au> <20081026081717.GB20872@infradead.org> <20081026193421.f5f7d8f1.sfr@canb.auug.org.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026193421.f5f7d8f1.sfr@canb.auug.org.au> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225010383 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8763 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 26, 2008 at 07:34:21PM +1100, Stephen Rothwell wrote: > Presumably what was merged was slightly different (or the commits were > split up differently). This is the same problem I have with the kvm tree. It should be the same, but the xfs trees have been a bit of a maze recently, so it shouldn't be a surprise that your list got out of sync. From owner-xfs@oss.sgi.com Sun Oct 26 13:34:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYbNu027088 for ; Sun, 26 Oct 2008 13:34:38 -0700 X-ASG-Debug-ID: 1225053277-12e800d50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5629A548F44 for ; Sun, 26 Oct 2008 13:34:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 6u8eWjp7sQaRUYvI for ; Sun, 26 Oct 2008 13:34:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCJp-0001TY-ED for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:37 +0000 Date: Sun, 26 Oct 2008 16:34:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] wire up ->open for directories Subject: [PATCH 1/2] wire up ->open for directories Message-ID: <20081026203437.GB4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-wire-up-open User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053278 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Currently there's no ->open method set for directories on XFS. That means we don't perform any check for opening too large directories without O_LARGEFILE, we don't check for shut down filesystems, and we don't actually do the readahead for the first block in the directory. Instead of just setting the directories open routine to xfs_file_open we merge the shutdown check directly into xfs_file_open and create a new xfs_dir_open that first calls xfs_file_open and then performs the readahead for block 0. (First sent on September 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2008-09-09 17:35:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c 2008-09-09 17:44:13.000000000 +0200 @@ -38,6 +38,7 @@ #include "xfs_rw.h" #include "xfs_ioctl32.h" #include "xfs_vnodeops.h" +#include "xfs_da_btree.h" #include #include @@ -172,11 +173,37 @@ xfs_file_splice_write_invis( STATIC int xfs_file_open( struct inode *inode, - struct file *filp) + struct file *file) { - if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) + if (!(file->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) return -EFBIG; - return -xfs_open(XFS_I(inode)); + if (XFS_FORCED_SHUTDOWN(XFS_M(inode->i_sb))) + return -EIO; + return 0; +} + +STATIC int +xfs_dir_open( + struct inode *inode, + struct file *file) +{ + struct xfs_inode *ip = XFS_I(inode); + int mode; + int error; + + error = xfs_file_open(inode, file); + if (error) + return error; + + /* + * If there are any blocks, read-ahead block 0 as we're almost + * certain to have the next operation be a read there. + */ + mode = xfs_ilock_map_shared(ip); + if (ip->i_d.di_nextents > 0) + xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); + xfs_iunlock(ip, mode); + return 0; } STATIC int @@ -533,6 +560,7 @@ const struct file_operations xfs_invis_f const struct file_operations xfs_dir_file_operations = { + .open = xfs_dir_open, .read = generic_read_dir, .readdir = xfs_file_readdir, .unlocked_ioctl = xfs_file_ioctl, Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-09-09 17:35:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-09-09 17:35:59.000000000 +0200 @@ -54,28 +54,6 @@ #include "xfs_vnodeops.h" int -xfs_open( - xfs_inode_t *ip) -{ - int mode; - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return XFS_ERROR(EIO); - - /* - * If it's a directory with any blocks, read-ahead block 0 - * as we're almost certain to have the next operation be a read there. - */ - if (S_ISDIR(ip->i_d.di_mode) && ip->i_d.di_nextents > 0) { - mode = xfs_ilock_map_shared(ip); - if (ip->i_d.di_nextents > 0) - (void)xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); - xfs_iunlock(ip, mode); - } - return 0; -} - -int xfs_setattr( struct xfs_inode *ip, struct iattr *iattr, Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.h 2008-09-09 17:35:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.h 2008-09-09 17:35:45.000000000 +0200 @@ -14,7 +14,6 @@ struct xfs_inode; struct xfs_iomap; -int xfs_open(struct xfs_inode *ip); int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, struct cred *credp); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ -- From owner-xfs@oss.sgi.com Sun Oct 26 13:34:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYeHZ027104 for ; Sun, 26 Oct 2008 13:34:40 -0700 X-ASG-Debug-ID: 1225053280-1b33006b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A69D2148675A for ; Sun, 26 Oct 2008 13:34:40 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id stQA5vD14xoxx7ab for ; Sun, 26 Oct 2008 13:34:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCJs-0001c4-E8 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:40 +0000 Date: Sun, 26 Oct 2008 16:34:40 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] allow inode64 mount option on 32 bit systems Subject: [PATCH 2/2] allow inode64 mount option on 32 bit systems Message-ID: <20081026203440.GC4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-allow-inode64-on-32bit User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053280 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we've stopped using the Linux inode cache when can trivally support the inode64 mount option on 32bit architectures. As far as the kernel and most userspace is concerned this works perfectly, but applications still using really old stat and readdir interfaces will get an EOVERFLOW error when hitting an inode number not fitting into 32 bits (that problem of course also exists when using these applications on a 64bit kernel). Note that because inode64 is simply a mount option we can currently mount a filesystem having > 32 bit inode numbers and cause a variety of problems, all this is solved but this patch which enables XFS_BIG_INUMS, even when inode64 is not used. (First sent on October 18th) Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- xfs-2.6.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:17:40.000000000 +0200 +++ xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:19:30.000000000 +0200 @@ -21,18 +21,12 @@ #include /* - * Some types are conditional depending on the target system. * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. - * XFS_BIG_INUMS needs the VFS inode number to be 64 bits, as well - * as requiring XFS_BIG_BLKNOS to be set. + * XFS_BIG_INUMS requires XFS_BIG_BLKNOS to be set. */ #if defined(CONFIG_LBD) || (BITS_PER_LONG == 64) # define XFS_BIG_BLKNOS 1 -# if BITS_PER_LONG == 64 -# define XFS_BIG_INUMS 1 -# else -# define XFS_BIG_INUMS 0 -# endif +# define XFS_BIG_INUMS 1 #else # define XFS_BIG_BLKNOS 0 # define XFS_BIG_INUMS 0 -- From owner-xfs@oss.sgi.com Sun Oct 26 13:34:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYijv027122 for ; Sun, 26 Oct 2008 13:34:44 -0700 X-ASG-Debug-ID: 1225053284-16c3008b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2BE34546F32 for ; Sun, 26 Oct 2008 13:34:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id v54vk6seGRZz8rIE for ; Sun, 26 Oct 2008 13:34:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCJw-0001fD-DM for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:44 +0000 Date: Sun, 26 Oct 2008 16:34:44 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] Sync refactoring fallout Subject: [PATCH 0/3] Sync refactoring fallout Message-ID: <20081026203444.GD4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053285 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This series gets rid of two headers left more or less useless after the last round of sync patches. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:34:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.4 required=5.0 tests=BAYES_00,SUBJ_URGENT autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYagI027084 for ; Sun, 26 Oct 2008 13:34:38 -0700 X-ASG-Debug-ID: 1225053274-7fc302130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 44AAB1486758 for ; Sun, 26 Oct 2008 13:34:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id yqagPzdexLdkv7p6 for ; Sun, 26 Oct 2008 13:34:34 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCJm-0001Nq-0m for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:34 +0000 Date: Sun, 26 Oct 2008 16:34:34 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/2] Urgent queue Subject: [PATCH 0/2] Urgent queue Message-ID: <20081026203434.GA4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053276 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Two patches that are small bugfixes / features that are what I consider the immediately merge queue. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:34:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYtpH027210 for ; Sun, 26 Oct 2008 13:34:55 -0700 X-ASG-Debug-ID: 1225053295-2fbe01540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD71712ABC8D for ; Sun, 26 Oct 2008 13:34:55 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ry2Ep5hNpOJsOE2k for ; Sun, 26 Oct 2008 13:34:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCK6-0001tn-WC for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:55 +0000 Date: Sun, 26 Oct 2008 16:34:54 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] remove bhv_statvfs_t typedef Subject: [PATCH 1/3] remove bhv_statvfs_t typedef Message-ID: <20081026203454.GE4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-bhv_statvfs_t User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053295 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-16 00:18:49.000000000 +0200 @@ -31,8 +31,6 @@ struct xfs_inode; struct xfs_mount; struct xfs_mount_args; -typedef struct kstatfs bhv_statvfs_t; - #define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ #define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ #define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ Index: linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/quota/xfs_qm_bhv.c 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c 2008-10-16 00:18:49.000000000 +0200 @@ -50,7 +50,7 @@ STATIC void xfs_fill_statvfs_from_dquot( - bhv_statvfs_t *statp, + struct kstatfs *statp, xfs_disk_dquot_t *dp) { __uint64_t limit; @@ -87,7 +87,7 @@ xfs_fill_statvfs_from_dquot( STATIC void xfs_qm_statvfs( xfs_inode_t *ip, - bhv_statvfs_t *statp) + struct kstatfs *statp) { xfs_mount_t *mp = ip->i_mount; xfs_dquot_t *dqp; Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-22 09:29:09.000000000 +0200 @@ -133,7 +133,7 @@ typedef struct xfs_dquot * (*xfs_dqvopch struct xfs_dquot **, struct xfs_dquot *); typedef int (*xfs_dqvopchownresv_t)(struct xfs_trans *, struct xfs_inode *, struct xfs_dquot *, struct xfs_dquot *, uint); -typedef void (*xfs_dqstatvfs_t)(struct xfs_inode *, bhv_statvfs_t *); +typedef void (*xfs_dqstatvfs_t)(struct xfs_inode *, struct kstatfs *); typedef int (*xfs_dqsync_t)(struct xfs_mount *, int flags); typedef int (*xfs_quotactl_t)(struct xfs_mount *, int, int, xfs_caddr_t); -- From owner-xfs@oss.sgi.com Sun Oct 26 13:34:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKYvd4027255 for ; Sun, 26 Oct 2008 13:34:57 -0700 X-ASG-Debug-ID: 1225053297-2fb101550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 15C5112ABC90 for ; Sun, 26 Oct 2008 13:34:57 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ptQ26tTK1jtaEpOn for ; Sun, 26 Oct 2008 13:34:57 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCK9-0001ts-C4 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:57 +0000 Date: Sun, 26 Oct 2008 16:34:57 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] remove xfs_vfs.h Subject: [PATCH 2/3] remove xfs_vfs.h Message-ID: <20081026203457.GF4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-kill-xfs_vfs.h" User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053298 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only thing left are the forced shutdown flags and freeze macros which fit into xfs_mount.h much better. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-15 07:31:21.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-15 18:18:49.000000000 -0400 @@ -36,7 +36,6 @@ #include "xfs_bmap_btree.h" #include "xfs_attr_sf.h" #include "xfs_dir2_sf.h" -#include "xfs_vfs.h" #include "xfs_vnode.h" #include "xfs_dinode.h" #include "xfs_inode.h" Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-15 07:46:49.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-15 18:18:49.000000000 -0400 @@ -85,7 +85,6 @@ #include #include -#include #include #include #include Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-15 18:18:49.000000000 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_VFS_H__ -#define __XFS_VFS_H__ - -#include -#include "xfs_fs.h" - -struct inode; - -struct fid; -struct cred; -struct seq_file; -struct super_block; -struct xfs_inode; -struct xfs_mount; -struct xfs_mount_args; - -#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ -#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ -#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ -#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ -#define SHUTDOWN_REMOTE_REQ 0x0010 /* shutdown came from remote cell */ -#define SHUTDOWN_DEVICE_REQ 0x0020 /* failed all paths to the device */ - -#define xfs_test_for_freeze(mp) ((mp)->m_super->s_frozen) -#define xfs_wait_for_freeze(mp,l) vfs_check_frozen((mp)->m_super, (l)) - -#endif /* __XFS_VFS_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-15 18:18:49.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-15 18:18:49.000000000 -0400 @@ -435,6 +435,16 @@ void xfs_do_force_shutdown(struct xfs_mo #define xfs_force_shutdown(m,f) \ xfs_do_force_shutdown(m, f, __FILE__, __LINE__) +#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ +#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ +#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ +#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ +#define SHUTDOWN_REMOTE_REQ 0x0010 /* shutdown came from remote cell */ +#define SHUTDOWN_DEVICE_REQ 0x0020 /* failed all paths to the device */ + +#define xfs_test_for_freeze(mp) ((mp)->m_super->s_frozen) +#define xfs_wait_for_freeze(mp,l) vfs_check_frozen((mp)->m_super, (l)) + /* * Flags for xfs_mountfs */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vnode.h 2008-10-15 07:31:17.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.h 2008-10-15 18:19:30.000000000 -0400 @@ -18,7 +18,10 @@ #ifndef __XFS_VNODE_H__ #define __XFS_VNODE_H__ +#include "xfs_fs.h" + struct file; +struct xfs_inode; struct xfs_iomap; struct attrlist_cursor_kern; -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZ03w027267 for ; Sun, 26 Oct 2008 13:35:00 -0700 X-ASG-Debug-ID: 1225053300-2fbe01560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9ED6E12ABC93 for ; Sun, 26 Oct 2008 13:35:00 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 67eMhQ8Drt7uQ8iw for ; Sun, 26 Oct 2008 13:35:00 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKB-0001tx-Uk for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:34:59 +0000 Date: Sun, 26 Oct 2008 16:34:59 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] remove xfs_vfsops.h Subject: [PATCH 3/3] remove xfs_vfsops.h Message-ID: <20081026203459.GG4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-kill-xfs_vfsops.h" User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053300 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only think left is xfs_do_force_shutdown which already has a defintion in xfs_mount.h, too. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-15 18:22:07.000000000 -0400 @@ -45,7 +45,6 @@ #include "xfs_attr.h" #include "xfs_attr_leaf.h" #include "xfs_inode_item.h" -#include "xfs_vfsops.h" #include "xfs_vnodeops.h" #include #include Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_export.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_export.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_export.c 2008-10-15 18:21:59.000000000 -0400 @@ -29,7 +29,6 @@ #include "xfs_vnodeops.h" #include "xfs_bmap_btree.h" #include "xfs_inode.h" -#include "xfs_vfsops.h" /* * Note that we only accept fileids which are long enough rather than allow Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-15 18:22:03.000000000 -0400 @@ -64,7 +64,6 @@ #include "xfs_iomap.h" #include "xfs_filestream.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "support/ktrace.h" Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 18:22:01.000000000 -0400 @@ -48,7 +48,6 @@ #include "xfs_buf_item.h" #include "xfs_utils.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "xfs_version.h" #include "xfs_log_priv.h" #include "xfs_trans_priv.h" Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c 2008-10-15 18:22:05.000000000 -0400 @@ -53,7 +53,6 @@ #include "xfs_filestream.h" #include "xfs_fsops.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "xfs_utils.h" #include "xfs_sync.h" Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.h 2008-10-15 18:21:09.000000000 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -#ifndef _XFS_VFSOPS_H -#define _XFS_VFSOPS_H 1 - -struct cred; -struct xfs_fid; -struct inode; -struct kstatfs; -struct xfs_mount; -struct xfs_mount_args; - -void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, - int lnnum); - -#endif /* _XFS_VFSOPS_H */ -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZ21g027283 for ; Sun, 26 Oct 2008 13:35:03 -0700 X-ASG-Debug-ID: 1225053302-3dd400070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2D82712ABC95 for ; Sun, 26 Oct 2008 13:35:02 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id zMwj4LrbbrBGItqA for ; Sun, 26 Oct 2008 13:35:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKE-000251-Hk for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:02 +0000 Date: Sun, 26 Oct 2008 16:35:02 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] setattr simplification Subject: [PATCH 0/3] setattr simplification Message-ID: <20081026203502.GH4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053303 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This series has three patches to use the standard inode_change_ok function like other filesystems instead of making up our own. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZ5EJ027315 for ; Sun, 26 Oct 2008 13:35:05 -0700 X-ASG-Debug-ID: 1225053305-040602260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A892B546F36 for ; Sun, 26 Oct 2008 13:35:05 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id h2dh9L4FPU4eNKtp for ; Sun, 26 Oct 2008 13:35:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKG-0002IE-RK for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:04 +0000 Date: Sun, 26 Oct 2008 16:35:04 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] kill sys_cred Subject: [PATCH 1/3] kill sys_cred Message-ID: <20081026203504.GI4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-cred User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053305 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 capable_cred has been unused for a while so we can kill it and sys_cred. That also means the cred argument to xfs_setattr and xfs_change_file_space can be removed now. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-09-29 18:20:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-09-29 18:24:15.000000000 +0200 @@ -2472,7 +2472,7 @@ xfs_dm_punch_hole( #endif error = xfs_change_file_space(ip, XFS_IOC_UNRESVSP, &bf, - (xfs_off_t)off, sys_cred, + (xfs_off_t)off, XFS_ATTR_DMI|XFS_ATTR_NOLOCK); /* @@ -2730,7 +2730,7 @@ xfs_dm_set_fileattr( iattr.ia_size = stat.fa_size; } - return -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_DMI, NULL); + return -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_DMI); } Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_cred.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_cred.h 2008-09-29 18:19:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_cred.h 2008-09-29 18:26:42.000000000 +0200 @@ -27,12 +27,4 @@ typedef struct cred { /* EMPTY */ } cred_t; -extern struct cred *sys_cred; - -/* this is a hack.. (assumes sys_cred is the only cred_t in the system) */ -static inline int capable_cred(cred_t *cr, int cid) -{ - return (cr == sys_cred) ? 1 : capable(cid); -} - #endif /* __XFS_CRED_H__ */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-09-29 18:24:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-09-29 18:24:44.000000000 +0200 @@ -694,8 +694,7 @@ xfs_ioc_space( if (ioflags & IO_INVIS) attr_flags |= XFS_ATTR_DMI; - error = xfs_change_file_space(ip, cmd, &bf, filp->f_pos, - NULL, attr_flags); + error = xfs_change_file_space(ip, cmd, &bf, filp->f_pos, attr_flags); return -error; } Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-09-29 18:20:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-09-29 18:24:28.000000000 +0200 @@ -595,7 +595,7 @@ xfs_vn_setattr( struct dentry *dentry, struct iattr *iattr) { - return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0, NULL); + return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0); } /* @@ -636,7 +636,7 @@ xfs_vn_fallocate( xfs_ilock(ip, XFS_IOLOCK_EXCL); error = xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf, - 0, NULL, XFS_ATTR_NOLOCK); + 0, XFS_ATTR_NOLOCK); if (!error && !(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) new_size = offset + len; @@ -647,7 +647,7 @@ xfs_vn_fallocate( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = new_size; - error = xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK, NULL); + error = xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); } xfs_iunlock(ip, XFS_IOLOCK_EXCL); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:19:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:19:45.000000000 +0200 @@ -172,7 +172,6 @@ EXPORT_SYMBOL(xfs_buf_offset); EXPORT_SYMBOL(xfs_buf_rele); EXPORT_SYMBOL(xfs_buf_readahead); EXPORT_SYMBOL(xfs_buf_unlock); -EXPORT_SYMBOL(sys_cred); EXPORT_SYMBOL(uuid_create_nil); EXPORT_SYMBOL(uuid_equal); EXPORT_SYMBOL(uuid_getnodeuniq); Index: linux-2.6-xfs/fs/xfs/xfs_acl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_acl.c 2008-09-29 18:19:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_acl.c 2008-09-29 18:22:31.000000000 +0200 @@ -759,7 +759,7 @@ xfs_acl_setmode( if (gap && nomask) iattr.ia_mode |= gap->ae_perm << 3; - return xfs_setattr(XFS_I(vp), &iattr, 0, sys_cred); + return xfs_setattr(XFS_I(vp), &iattr, 0); } /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-09-29 18:20:55.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-09-29 18:25:13.000000000 +0200 @@ -57,8 +57,7 @@ int xfs_setattr( struct xfs_inode *ip, struct iattr *iattr, - int flags, - cred_t *credp) + int flags) { xfs_mount_t *mp = ip->i_mount; struct inode *inode = VFS_I(ip); @@ -3452,7 +3451,6 @@ xfs_change_file_space( int cmd, xfs_flock64_t *bf, xfs_off_t offset, - cred_t *credp, int attr_flags) { xfs_mount_t *mp = ip->i_mount; @@ -3540,7 +3538,7 @@ xfs_change_file_space( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = startoffset; - error = xfs_setattr(ip, &iattr, attr_flags, credp); + error = xfs_setattr(ip, &iattr, attr_flags); if (error) return error; Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.h 2008-09-29 18:21:40.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.h 2008-09-29 18:25:05.000000000 +0200 @@ -14,8 +14,7 @@ struct xfs_inode; struct xfs_iomap; -int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, - struct cred *credp); +int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ @@ -43,8 +42,7 @@ int xfs_inode_flush(struct xfs_inode *ip int xfs_set_dmattrs(struct xfs_inode *ip, u_int evmask, u_int16_t state); int xfs_reclaim(struct xfs_inode *ip); int xfs_change_file_space(struct xfs_inode *ip, int cmd, - xfs_flock64_t *bf, xfs_off_t offset, - struct cred *credp, int attr_flags); + xfs_flock64_t *bf, xfs_off_t offset, int attr_flags); int xfs_rename(struct xfs_inode *src_dp, struct xfs_name *src_name, struct xfs_inode *src_ip, struct xfs_inode *target_dp, struct xfs_name *target_name, struct xfs_inode *target_ip); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-09-29 18:26:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-09-29 18:26:31.000000000 +0200 @@ -43,10 +43,3 @@ xfs_param_t xfs_params = { .inherit_nodfrg = { 0, 1, 1 }, .fstrm_timer = { 1, 30*100, 3600*100}, }; - -/* - * Global system credential structure. - */ -static cred_t sys_cred_val; -cred_t *sys_cred = &sys_cred_val; - Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.h 2008-09-29 18:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.h 2008-09-29 18:26:35.000000000 +0200 @@ -19,6 +19,5 @@ #define __XFS_GLOBALS_H__ extern uint64_t xfs_panic_mask; /* set to cause more panics */ -extern struct cred *sys_cred; #endif /* __XFS_GLOBALS_H__ */ -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZ8ru027364 for ; Sun, 26 Oct 2008 13:35:08 -0700 X-ASG-Debug-ID: 1225053308-1b32006e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 71E82148675E; Sun, 26 Oct 2008 13:35:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id iwEgKCMgGUSi795K; Sun, 26 Oct 2008 13:35:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKJ-0002IJ-Jq; Sun, 26 Oct 2008 20:35:07 +0000 Date: Sun, 26 Oct 2008 16:35:07 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: Tim Shimmin X-ASG-Orig-Subj: [PATCH 2/3] remove restricted_chown parameter Subject: [PATCH 2/3] remove restricted_chown parameter Message-ID: <20081026203507.GJ4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-restricted-chown User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053308 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Tim Shimmin On Linux all filesystems are supposed to be operating under Posix' restricted chown. Restricted chown means it restricts chown to the owner unless you have CAP_FOWNER. [hch: forward-ported to the current tree] Signed-off-by: Tim Shimmin Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-10-15 13:31:22.000000000 +0200 @@ -26,7 +26,6 @@ */ xfs_param_t xfs_params = { /* MIN DFLT MAX */ - .restrict_chown = { 0, 1, 1 }, .sgid_inherit = { 0, 0, 1 }, .symlink_mode = { 0, 0, 1 }, .panic_mask = { 0, 0, 255 }, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-22 09:29:08.000000000 +0200 @@ -112,7 +111,6 @@ #define HAVE_DMAPI #endif -#define restricted_chown xfs_params.restrict_chown.val #define irix_sgid_inherit xfs_params.sgid_inherit.val #define irix_symlink_mode xfs_params.symlink_mode.val #define xfs_panic_mask xfs_params.panic_mask.val Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-15 13:31:22.000000000 +0200 @@ -56,17 +56,6 @@ xfs_stats_clear_proc_handler( static ctl_table xfs_table[] = { { - .ctl_name = XFS_RESTRICT_CHOWN, - .procname = "restrict_chown", - .data = &xfs_params.restrict_chown.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec_minmax, - .strategy = &sysctl_intvec, - .extra1 = &xfs_params.restrict_chown.min, - .extra2 = &xfs_params.restrict_chown.max - }, - { .ctl_name = XFS_SGID_INHERIT, .procname = "irix_sgid_inherit", .data = &xfs_params.sgid_inherit.val, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-15 13:31:22.000000000 +0200 @@ -31,7 +31,6 @@ typedef struct xfs_sysctl_val { } xfs_sysctl_val_t; typedef struct xfs_param { - xfs_sysctl_val_t restrict_chown;/* Root/non-root can give away files.*/ xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is * not a member of parent dir GID. */ xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ @@ -68,7 +67,7 @@ typedef struct xfs_param { enum { /* XFS_REFCACHE_SIZE = 1 */ /* XFS_REFCACHE_PURGE = 2 */ - XFS_RESTRICT_CHOWN = 3, + /* XFS_RESTRICT_CHOWN = 3 */ XFS_SGID_INHERIT = 4, XFS_SYMLINK_MODE = 5, XFS_PANIC_MASK = 6, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-22 09:29:45.000000000 +0200 @@ -1104,10 +1104,6 @@ xfs_ioctl_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & FSX_PROJID) { /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-22 09:29:45.000000000 +0200 @@ -210,10 +210,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* @@ -237,9 +233,8 @@ xfs_setattr( * shall be equal to either the group ID or one of the * supplementary group IDs of the calling process. */ - if (restricted_chown && - (iuid != uid || (igid != gid && - !in_group_p((gid_t)gid))) && + if ((iuid != uid || + (igid != gid && !in_group_p((gid_t)gid))) && !capable(CAP_CHOWN)) { code = XFS_ERROR(EPERM); goto error_return; @@ -433,10 +428,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* Index: linux-2.6-xfs/Documentation/filesystems/xfs.txt =================================================================== --- linux-2.6-xfs.orig/Documentation/filesystems/xfs.txt 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/Documentation/filesystems/xfs.txt 2008-10-15 13:31:22.000000000 +0200 @@ -229,10 +229,6 @@ The following sysctls are available for ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl is set. - fs.xfs.restrict_chown (Min: 0 Default: 1 Max: 1) - 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 xfs_io(8) chattr command on a directory to be Index: linux-2.6-xfs/kernel/sysctl_check.c =================================================================== --- linux-2.6-xfs.orig/kernel/sysctl_check.c 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/kernel/sysctl_check.c 2008-10-15 13:31:22.000000000 +0200 @@ -731,7 +731,6 @@ static const struct trans_ctl_table tran }; static const struct trans_ctl_table trans_fs_xfs_table[] = { - { XFS_RESTRICT_CHOWN, "restrict_chown" }, { XFS_SGID_INHERIT, "irix_sgid_inherit" }, { XFS_SYMLINK_MODE, "irix_symlink_mode" }, { XFS_PANIC_MASK, "panic_mask" }, -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZBaW027406 for ; Sun, 26 Oct 2008 13:35:11 -0700 X-ASG-Debug-ID: 1225053311-273d02000000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C0FB12ABC99 for ; Sun, 26 Oct 2008 13:35:11 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id YIljs6m2jTJfqMar for ; Sun, 26 Oct 2008 13:35:11 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKM-0002IR-Sb for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:10 +0000 Date: Sun, 26 Oct 2008 16:35:10 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] use inode_change_ok for setattr permission checking Subject: [PATCH 3/3] use inode_change_ok for setattr permission checking Message-ID: <20081026203510.GK4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-setattr-use-inode_change_ok User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053311 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Instead of implementing our own checks use inode_change_ok to check for nessecary permission in setattr. There is a slight change in behaviour as inode_change_ok doesn't allow i_mode updates to add the suid or sgid without superuser privilegues while the old XFS code just stripped away those bits from the file mode. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:32.000000000 +0200 @@ -70,7 +70,6 @@ xfs_setattr( gid_t gid=0, igid=0; int timeflags = 0; struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; - int file_owner; int need_iolock = 1; xfs_itrace_entry(ip); @@ -81,6 +80,10 @@ xfs_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); + code = -inode_change_ok(inode, iattr); + if (code) + return code; + olddquot1 = olddquot2 = NULL; udqp = gdqp = NULL; @@ -158,56 +161,6 @@ xfs_setattr( xfs_ilock(ip, lock_flags); - /* boolean: are we the file owner? */ - file_owner = (current_fsuid() == ip->i_d.di_uid); - - /* - * Change various properties of a file. - * Only the owner or users with CAP_FOWNER - * capability may do these things. - */ - if (mask & (ATTR_MODE|ATTR_UID|ATTR_GID)) { - /* - * CAP_FOWNER overrides the following restrictions: - * - * The user ID of the calling process must be equal - * to the file owner ID, except in cases where the - * CAP_FSETID capability is applicable. - */ - if (!file_owner && !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - - /* - * CAP_FSETID overrides the following restrictions: - * - * The effective user ID of the calling process shall match - * the file owner when setting the set-user-ID and - * set-group-ID bits on that file. - * - * The effective group ID or one of the supplementary group - * IDs of the calling process shall match the group owner of - * the file when setting the set-group-ID bit on that file - */ - if (mask & ATTR_MODE) { - mode_t m = 0; - - if ((iattr->ia_mode & S_ISUID) && !file_owner) - m |= S_ISUID; - if ((iattr->ia_mode & S_ISGID) && - !in_group_p((gid_t)ip->i_d.di_gid)) - m |= S_ISGID; -#if 0 - /* Linux allows this, Irix doesn't. */ - if ((iattr->ia_mode & S_ISVTX) && !S_ISDIR(ip->i_d.di_mode)) - m |= S_ISVTX; -#endif - if (m && !capable(CAP_FSETID)) - iattr->ia_mode &= ~m; - } - } - /* * Change file ownership. Must be the owner or privileged. */ @@ -224,22 +177,6 @@ xfs_setattr( uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; /* - * CAP_CHOWN overrides the following restrictions: - * - * If _POSIX_CHOWN_RESTRICTED is defined, this capability - * shall override the restriction that a process cannot - * change the user ID of a file it owns and the restriction - * that the group ID supplied to the chown() function - * shall be equal to either the group ID or one of the - * supplementary group IDs of the calling process. - */ - if ((iuid != uid || - (igid != gid && !in_group_p((gid_t)gid))) && - !capable(CAP_CHOWN)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - /* * Do a quota reservation only if uid/gid is actually * going to change. */ @@ -284,19 +221,6 @@ xfs_setattr( } /* - * Change file access or modified times. - */ - if (mask & (ATTR_ATIME|ATTR_MTIME)) { - if (!file_owner) { - if ((mask & (ATTR_MTIME_SET|ATTR_ATIME_SET)) && - !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - } - } - - /* * Now we can make the changes. Before we join the inode * to the transaction, if ATTR_SIZE is set then take care of * the part of the truncation that must be done without the -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZD65027430 for ; Sun, 26 Oct 2008 13:35:14 -0700 X-ASG-Debug-ID: 1225053313-2fbe01590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E133E12ABC9E for ; Sun, 26 Oct 2008 13:35:13 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id SCEMXtoUgZyetbK2 for ; Sun, 26 Oct 2008 13:35:13 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKP-0002IY-9k for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:13 +0000 Date: Sun, 26 Oct 2008 16:35:13 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/7] pre-crc cleanups Subject: [PATCH 0/7] pre-crc cleanups Message-ID: <20081026203513.GL4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053313 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Various cleanups leading to the CRC support, but ready for inclusion anytime. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZJqc027504 for ; Sun, 26 Oct 2008 13:35:20 -0700 X-ASG-Debug-ID: 1225053319-1b32006f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1FDB1486761 for ; Sun, 26 Oct 2008 13:35:19 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id n9rjwGNHHJkSSdgd for ; Sun, 26 Oct 2008 13:35:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKV-0002OX-CT for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:19 +0000 Date: Sun, 26 Oct 2008 16:35:19 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/7] factor out xfs_read_agf helper Subject: [PATCH 2/7] factor out xfs_read_agf helper Message-ID: <20081026203519.GN4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_read_agf User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053319 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Add a helper to read the AGF header and perform basic verification. Based on hunks from a larger patch from Dave Chinner. (First sent on Juli 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ag.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ag.h 2008-10-01 13:46:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ag.h 2008-10-01 13:48:23.000000000 +0200 @@ -91,6 +91,8 @@ typedef struct xfs_agf { #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) #define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) +extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); /* * Size of the unlinked inode hash table in the agi. Index: linux-2.6-xfs/fs/xfs/xfs_alloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_alloc.c 2008-10-01 13:47:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_alloc.c 2008-10-01 13:49:12.000000000 +0200 @@ -2233,44 +2233,41 @@ xfs_alloc_put_freelist( * Read in the allocation group header (free/alloc section). */ int /* error */ -xfs_alloc_read_agf( - xfs_mount_t *mp, /* mount point structure */ - xfs_trans_t *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - int flags, /* XFS_ALLOC_FLAG_... */ - xfs_buf_t **bpp) /* buffer for the ag freelist header */ +xfs_read_agf( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + int flags, /* XFS_BUF_ */ + struct xfs_buf **bpp) /* buffer for the ag freelist header */ { - xfs_agf_t *agf; /* ag freelist header */ + struct xfs_agf *agf; /* ag freelist header */ int agf_ok; /* set if agf is consistent */ - xfs_buf_t *bp; /* return value */ - xfs_perag_t *pag; /* per allocation group data */ int error; ASSERT(agno != NULLAGNUMBER); error = xfs_trans_read_buf( mp, tp, mp->m_ddev_targp, XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), - (flags & XFS_ALLOC_FLAG_TRYLOCK) ? XFS_BUF_TRYLOCK : 0U, - &bp); + XFS_FSS_TO_BB(mp, 1), flags, bpp); if (error) return error; - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); - if (!bp) { - *bpp = NULL; + if (!*bpp) return 0; - } + + ASSERT(!XFS_BUF_GETERROR(*bpp)); + agf = XFS_BUF_TO_AGF(*bpp); + /* * Validate the magic number of the agf block. */ - agf = XFS_BUF_TO_AGF(bp); agf_ok = be32_to_cpu(agf->agf_magicnum) == XFS_AGF_MAGIC && XFS_AGF_GOOD_VERSION(be32_to_cpu(agf->agf_versionnum)) && be32_to_cpu(agf->agf_freeblks) <= be32_to_cpu(agf->agf_length) && be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) && be32_to_cpu(agf->agf_fllast) < XFS_AGFL_SIZE(mp) && - be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp); + be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp) && + be32_to_cpu(agf->agf_seqno) == agno; if (xfs_sb_version_haslazysbcount(&mp->m_sb)) agf_ok = agf_ok && be32_to_cpu(agf->agf_btreeblks) <= be32_to_cpu(agf->agf_length); @@ -2278,9 +2275,41 @@ xfs_alloc_read_agf( XFS_RANDOM_ALLOC_READ_AGF))) { XFS_CORRUPTION_ERROR("xfs_alloc_read_agf", XFS_ERRLEVEL_LOW, mp, agf); - xfs_trans_brelse(tp, bp); + xfs_trans_brelse(tp, *bpp); return XFS_ERROR(EFSCORRUPTED); } + + XFS_BUF_SET_VTYPE_REF(*bpp, B_FS_AGF, XFS_AGF_REF); + return 0; +} + +/* + * Read in the allocation group header (free/alloc section). + */ +int /* error */ +xfs_alloc_read_agf( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + int flags, /* XFS_ALLOC_FLAG_... */ + struct xfs_buf **bpp) /* buffer for the ag freelist header */ +{ + struct xfs_agf *agf; /* ag freelist header */ + struct xfs_perag *pag; /* per allocation group data */ + int error; + + ASSERT(agno != NULLAGNUMBER); + + error = xfs_read_agf(mp, tp, agno, + (flags & XFS_ALLOC_FLAG_TRYLOCK) ? XFS_BUF_TRYLOCK : 0, + bpp); + if (error) + return error; + if (!*bpp) + return 0; + ASSERT(!XFS_BUF_GETERROR(*bpp)); + + agf = XFS_BUF_TO_AGF(*bpp); pag = &mp->m_perag[agno]; if (!pag->pagf_init) { pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks); @@ -2308,8 +2337,6 @@ xfs_alloc_read_agf( be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNTi])); } #endif - XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGF, XFS_AGF_REF); - *bpp = bp; return 0; } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-01 13:46:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-01 13:48:23.000000000 +0200 @@ -3998,7 +3998,6 @@ xlog_recover_check_summary( xfs_agi_t *agip; xfs_buf_t *agfbp; xfs_buf_t *agibp; - xfs_daddr_t agfdaddr; xfs_buf_t *sbbp; #ifdef XFS_LOUD_RECOVERY xfs_sb_t *sbp; @@ -4015,21 +4014,18 @@ xlog_recover_check_summary( itotal = 0LL; ifree = 0LL; for (agno = 0; agno < mp->m_sb.sb_agcount; agno++) { - agfdaddr = XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)); - agfbp = xfs_buf_read(mp->m_ddev_targp, agfdaddr, - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agfbp)) { - xfs_ioerror_alert("xlog_recover_check_summary(agf)", - mp, agfbp, agfdaddr); + error = xfs_read_agf(mp, NULL, agno, 0, &agfbp); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_check_summary(agf)" + "agf read failed agno %d error %d", + agno, error); + } else { + agfp = XFS_BUF_TO_AGF(agfbp); + freeblks += be32_to_cpu(agfp->agf_freeblks) + + be32_to_cpu(agfp->agf_flcount); + xfs_buf_relse(agfbp); } - agfp = XFS_BUF_TO_AGF(agfbp); - ASSERT(XFS_AGF_MAGIC == be32_to_cpu(agfp->agf_magicnum)); - ASSERT(XFS_AGF_GOOD_VERSION(be32_to_cpu(agfp->agf_versionnum))); - ASSERT(be32_to_cpu(agfp->agf_seqno) == agno); - - freeblks += be32_to_cpu(agfp->agf_freeblks) + - be32_to_cpu(agfp->agf_flcount); - xfs_buf_relse(agfbp); error = xfs_read_agi(mp, NULL, agno, &agibp); if (error) { -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.8 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_14, J_CHICKENPOX_62,J_CHICKENPOX_64,J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZG7Q027471 for ; Sun, 26 Oct 2008 13:35:16 -0700 X-ASG-Debug-ID: 1225053316-2fbd01520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A010C12ABCA0 for ; Sun, 26 Oct 2008 13:35:16 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id AQ486BIkscSh1LLi for ; Sun, 26 Oct 2008 13:35:16 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKR-0002MM-R7 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:15 +0000 Date: Sun, 26 Oct 2008 16:35:15 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/7] factor out xfs_read_agi helper Subject: [PATCH 1/7] factor out xfs_read_agi helper Message-ID: <20081026203515.GM4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_read_agi User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053316 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Add a helper to read the AGI header and perform basic verification. Based on hunks from a larger patch from Dave Chinner. (First sent on Juli 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ag.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ag.h 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ag.h 2008-07-23 19:47:29.000000000 +0200 @@ -142,6 +142,9 @@ typedef struct xfs_agi { #define XFS_AGI_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGI_DADDR(mp)) #define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)XFS_BUF_PTR(bp)) +extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_agnumber_t agno, struct xfs_buf **bpp); + /* * The third a.g. block contains the a.g. freelist, an array * of block pointers to blocks owned by the allocation btree code. Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-07-23 19:47:29.000000000 +0200 @@ -1370,70 +1370,95 @@ xfs_ialloc_log_agi( xfs_trans_log_buf(tp, bp, first, last); } +#ifdef DEBUG +STATIC void +xfs_check_agi_unlinked( + struct xfs_agi *agi) +{ + int i; + + for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) + ASSERT(agi->agi_unlinked[i]); +} +#else +#define xfs_check_agi_unlinked(agi) +#endif + /* * Read in the allocation group header (inode allocation section) */ int -xfs_ialloc_read_agi( - xfs_mount_t *mp, /* file system mount structure */ - xfs_trans_t *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - xfs_buf_t **bpp) /* allocation group hdr buf */ +xfs_read_agi( + struct xfs_mount *mp, /* file system mount structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + struct xfs_buf **bpp) /* allocation group hdr buf */ { - xfs_agi_t *agi; /* allocation group header */ - int agi_ok; /* agi is consistent */ - xfs_buf_t *bp; /* allocation group hdr buf */ - xfs_perag_t *pag; /* per allocation group data */ - int error; + struct xfs_agi *agi; /* allocation group header */ + int agi_ok; /* agi is consistent */ + int error; ASSERT(agno != NULLAGNUMBER); - error = xfs_trans_read_buf( - mp, tp, mp->m_ddev_targp, + + error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0, &bp); + XFS_FSS_TO_BB(mp, 1), 0, bpp); if (error) return error; - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + + ASSERT(*bpp && !XFS_BUF_GETERROR(*bpp)); + agi = XFS_BUF_TO_AGI(*bpp); /* * Validate the magic number of the agi block. */ - agi = XFS_BUF_TO_AGI(bp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); + agi_ok = be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && + XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)) && + be32_to_cpu(agi->agi_seqno) == agno; if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IALLOC_READ_AGI, XFS_RANDOM_IALLOC_READ_AGI))) { - XFS_CORRUPTION_ERROR("xfs_ialloc_read_agi", XFS_ERRLEVEL_LOW, + XFS_CORRUPTION_ERROR("xfs_read_agi", XFS_ERRLEVEL_LOW, mp, agi); - xfs_trans_brelse(tp, bp); + xfs_trans_brelse(tp, *bpp); return XFS_ERROR(EFSCORRUPTED); } + + XFS_BUF_SET_VTYPE_REF(*bpp, B_FS_AGI, XFS_AGI_REF); + + xfs_check_agi_unlinked(agi); + return 0; +} + +int +xfs_ialloc_read_agi( + struct xfs_mount *mp, /* file system mount structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + struct xfs_buf **bpp) /* allocation group hdr buf */ +{ + struct xfs_agi *agi; /* allocation group header */ + struct xfs_perag *pag; /* per allocation group data */ + int error; + + error = xfs_read_agi(mp, tp, agno, bpp); + if (error) + return error; + + agi = XFS_BUF_TO_AGI(*bpp); pag = &mp->m_perag[agno]; + if (!pag->pagi_init) { pag->pagi_freecount = be32_to_cpu(agi->agi_freecount); pag->pagi_count = be32_to_cpu(agi->agi_count); pag->pagi_init = 1; - } else { - /* - * It's possible for these to be out of sync if - * we are in the middle of a forced shutdown. - */ - ASSERT(pag->pagi_freecount == be32_to_cpu(agi->agi_freecount) || - XFS_FORCED_SHUTDOWN(mp)); - } - -#ifdef DEBUG - { - int i; - - for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) - ASSERT(agi->agi_unlinked[i]); } -#endif - XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGI, XFS_AGI_REF); - *bpp = bp; + /* + * It's possible for these to be out of sync if + * we are in the middle of a forced shutdown. + */ + ASSERT(pag->pagi_freecount == be32_to_cpu(agi->agi_freecount) || + XFS_FORCED_SHUTDOWN(mp)); return 0; } Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-07-23 19:45:01.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-07-23 19:47:29.000000000 +0200 @@ -1776,13 +1776,10 @@ xfs_iunlink( xfs_dinode_t *dip; xfs_buf_t *agibp; xfs_buf_t *ibp; - xfs_agnumber_t agno; - xfs_daddr_t agdaddr; xfs_agino_t agino; short bucket_index; int offset; int error; - int agi_ok; ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_mode != 0); @@ -1790,31 +1787,15 @@ xfs_iunlink( mp = tp->t_mountp; - agno = XFS_INO_TO_AGNO(mp, ip->i_ino); - agdaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); - /* * Get the agi buffer first. It ensures lock ordering * on the list. */ - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, agdaddr, - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_read_agi(mp, tp, XFS_INO_TO_AGNO(mp, ip->i_ino), &agibp); if (error) return error; - - /* - * Validate the magic number of the agi block. - */ agi = XFS_BUF_TO_AGI(agibp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); - if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IUNLINK, - XFS_RANDOM_IUNLINK))) { - XFS_CORRUPTION_ERROR("xfs_iunlink", XFS_ERRLEVEL_LOW, mp, agi); - xfs_trans_brelse(tp, agibp); - return XFS_ERROR(EFSCORRUPTED); - } + /* * Get the index into the agi hash table for the * list this inode will go on. @@ -1874,7 +1855,6 @@ xfs_iunlink_remove( xfs_buf_t *agibp; xfs_buf_t *ibp; xfs_agnumber_t agno; - xfs_daddr_t agdaddr; xfs_agino_t agino; xfs_agino_t next_agino; xfs_buf_t *last_ibp; @@ -1882,45 +1862,23 @@ xfs_iunlink_remove( short bucket_index; int offset, last_offset = 0; int error; - int agi_ok; - /* - * First pull the on-disk inode from the AGI unlinked list. - */ mp = tp->t_mountp; - agno = XFS_INO_TO_AGNO(mp, ip->i_ino); - agdaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); /* * Get the agi buffer first. It ensures lock ordering * on the list. */ - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, agdaddr, - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_read_agi(mp, tp, agno, &agibp); if (error) { cmn_err(CE_WARN, - "xfs_iunlink_remove: xfs_trans_read_buf() returned an error %d on %s. Returning error.", + "xfs_iunlink_remove: xfs_read_agi() returned an error %d on %s. Returning error.", error, mp->m_fsname); return error; } - /* - * Validate the magic number of the agi block. - */ agi = XFS_BUF_TO_AGI(agibp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); - if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IUNLINK_REMOVE, - XFS_RANDOM_IUNLINK_REMOVE))) { - XFS_CORRUPTION_ERROR("xfs_iunlink_remove", XFS_ERRLEVEL_LOW, - mp, agi); - xfs_trans_brelse(tp, agibp); - cmn_err(CE_WARN, - "xfs_iunlink_remove: XFS_TEST_ERROR() returned an error on %s. Returning EFSCORRUPTED.", - mp->m_fsname); - return XFS_ERROR(EFSCORRUPTED); - } + /* * Get the index into the agi hash table for the * list this inode will go on. Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-07-23 19:47:29.000000000 +0200 @@ -3134,19 +3134,16 @@ xlog_recover_clear_agi_bucket( int error; tp = xfs_trans_alloc(mp, XFS_TRANS_CLEAR_AGI_BUCKET); - error = xfs_trans_reserve(tp, 0, XFS_CLEAR_AGI_BUCKET_LOG_RES(mp), 0, 0, 0); - if (!error) - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_trans_reserve(tp, 0, XFS_CLEAR_AGI_BUCKET_LOG_RES(mp), + 0, 0, 0); if (error) goto out_abort; - error = EINVAL; - agi = XFS_BUF_TO_AGI(agibp); - if (be32_to_cpu(agi->agi_magicnum) != XFS_AGI_MAGIC) + error = xfs_read_agi(mp, tp, agno, &agibp); + if (error) goto out_abort; + agi = XFS_BUF_TO_AGI(agibp); agi->agi_unlinked[bucket] = cpu_to_be32(NULLAGINO); offset = offsetof(xfs_agi_t, agi_unlinked) + (sizeof(xfs_agino_t) * bucket); @@ -3207,16 +3204,21 @@ xlog_recover_process_iunlinks( /* * Find the agi for this ag. */ - agibp = xfs_buf_read(mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert("xlog_recover_process_iunlinks(#1)", - log->l_mp, agibp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp))); + error = xfs_read_agi(mp, NULL, agno, &agibp); + if (error) { + /* + * AGI is b0rked. Don't process it. + * + * We should probably mark the filesystem as corrupt + * after we've recovered all the ag's we can.... + */ + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_process_iunlinks(#1)" + "agi read failed agno %d error %d", + agno, error); + continue; } agi = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu(agi->agi_magicnum)); for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) { @@ -3295,22 +3297,18 @@ xlog_recover_process_iunlinks( /* * Reacquire the agibuffer and continue around - * the loop. + * the loop. This should never fail as we know + * the buffer was good earlier on. */ - agibp = xfs_buf_read(mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, - XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert( - "xlog_recover_process_iunlinks(#2)", - log->l_mp, agibp, - XFS_AG_DADDR(mp, agno, - XFS_AGI_DADDR(mp))); + error = xfs_read_agi(mp, NULL, agno, &agibp); + ASSERT(error == 0); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_process_iunlinks(#2)" + "agi read failed agno %d error %d", + agno, error); } agi = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu( - agi->agi_magicnum)); } } @@ -4004,7 +4002,6 @@ xlog_recover_check_summary( xfs_buf_t *agfbp; xfs_buf_t *agibp; xfs_daddr_t agfdaddr; - xfs_daddr_t agidaddr; xfs_buf_t *sbbp; #ifdef XFS_LOUD_RECOVERY xfs_sb_t *sbp; @@ -4013,6 +4010,7 @@ xlog_recover_check_summary( __uint64_t freeblks; __uint64_t itotal; __uint64_t ifree; + int error; mp = log->l_mp; @@ -4036,21 +4034,19 @@ xlog_recover_check_summary( be32_to_cpu(agfp->agf_flcount); xfs_buf_relse(agfbp); - agidaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); - agibp = xfs_buf_read(mp->m_ddev_targp, agidaddr, - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert("xlog_recover_check_summary(agi)", - mp, agibp, agidaddr); - } - agip = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu(agip->agi_magicnum)); - ASSERT(XFS_AGI_GOOD_VERSION(be32_to_cpu(agip->agi_versionnum))); - ASSERT(be32_to_cpu(agip->agi_seqno) == agno); + error = xfs_read_agi(mp, NULL, agno, &agibp); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_check_summary(agi)" + "agi read failed agno %d error %d", + agno, error); + } else { + agip = XFS_BUF_TO_AGI(agibp); - itotal += be32_to_cpu(agip->agi_count); - ifree += be32_to_cpu(agip->agi_freecount); - xfs_buf_relse(agibp); + itotal += be32_to_cpu(agip->agi_count); + ifree += be32_to_cpu(agip->agi_freecount); + xfs_buf_relse(agibp); + } } sbbp = xfs_getsb(mp, 0); -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZMP3027553 for ; Sun, 26 Oct 2008 13:35:23 -0700 X-ASG-Debug-ID: 1225053322-2fbe015b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 33FCB12ABCA2 for ; Sun, 26 Oct 2008 13:35:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id wxKxi3IGiqQ4IcrL for ; Sun, 26 Oct 2008 13:35:22 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKY-0002P3-Cc for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:22 +0000 Date: Sun, 26 Oct 2008 16:35:22 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/7] sanitize xlog_in_core_t definition Subject: [PATCH 3/7] sanitize xlog_in_core_t definition Message-ID: <20081026203522.GO4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xlog_iclog_fields_t User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053323 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Move all fields from xlog_iclog_fields_t into xlog_in_core_t instead of having them in a substructure and the using #defines to make it look like they were directly in xlog_in_core_t. Also document that xlog_in_core_2_t is grossly misnamed, and make all references to it typesafe. (First sent on Semptember 15th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-09-25 20:02:34.000000000 +0200 @@ -1024,12 +1024,6 @@ xlog_iodone(xfs_buf_t *bp) ASSERT(XFS_BUF_FSPRIVATE2(bp, unsigned long) == (unsigned long) 2); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); aborted = 0; - - /* - * Some versions of cpp barf on the recursive definition of - * ic_log -> hic_fields.ic_log and expand ic_log twice when - * it is passed through two macros. Workaround broken cpp. - */ l = iclog->ic_log; /* @@ -1287,7 +1281,7 @@ xlog_alloc_log(xfs_mount_t *mp, XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); iclog->ic_bp = bp; - iclog->hic_data = bp->b_addr; + iclog->ic_data = bp->b_addr; #ifdef DEBUG log->l_iclog_bak[i] = (xfs_caddr_t)&(iclog->ic_header); #endif @@ -1307,7 +1301,7 @@ xlog_alloc_log(xfs_mount_t *mp, atomic_set(&iclog->ic_refcnt, 0); spin_lock_init(&iclog->ic_callback_lock); iclog->ic_callback_tail = &(iclog->ic_callback); - iclog->ic_datap = (char *)iclog->hic_data + log->l_iclog_hsize; + iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); ASSERT(XFS_BUF_VALUSEMA(iclog->ic_bp) <= 0); @@ -3418,7 +3412,7 @@ xlog_verify_iclog(xlog_t *log, ptr = iclog->ic_datap; base_ptr = ptr; ophead = (xlog_op_header_t *)ptr; - xhdr = (xlog_in_core_2_t *)&iclog->ic_header; + xhdr = iclog->ic_data; for (i = 0; i < len; i++) { ophead = (xlog_op_header_t *)ptr; Index: linux-2.6-xfs/fs/xfs/xfs_log_priv.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_priv.h 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_priv.h 2008-09-25 20:02:35.000000000 +0200 @@ -309,6 +309,16 @@ typedef struct xlog_rec_ext_header { } xlog_rec_ext_header_t; #ifdef __KERNEL__ + +/* + * Quite misnamed, because this union lays out the actual on-disk log buffer. + */ +typedef union xlog_in_core2 { + xlog_rec_header_t hic_header; + xlog_rec_ext_header_t hic_xheader; + char hic_sector[XLOG_HEADER_SIZE]; +} xlog_in_core_2_t; + /* * - A log record header is 512 bytes. There is plenty of room to grow the * xlog_rec_header_t into the reserved space. @@ -338,7 +348,7 @@ typedef struct xlog_rec_ext_header { * We'll put all the read-only and l_icloglock fields in the first cacheline, * and move everything else out to subsequent cachelines. */ -typedef struct xlog_iclog_fields { +typedef struct xlog_in_core { sv_t ic_force_wait; sv_t ic_write_wait; struct xlog_in_core *ic_next; @@ -361,41 +371,11 @@ typedef struct xlog_iclog_fields { /* reference counts need their own cacheline */ atomic_t ic_refcnt ____cacheline_aligned_in_smp; -} xlog_iclog_fields_t; - -typedef union xlog_in_core2 { - xlog_rec_header_t hic_header; - xlog_rec_ext_header_t hic_xheader; - char hic_sector[XLOG_HEADER_SIZE]; -} xlog_in_core_2_t; - -typedef struct xlog_in_core { - xlog_iclog_fields_t hic_fields; - xlog_in_core_2_t *hic_data; + xlog_in_core_2_t *ic_data; +#define ic_header ic_data->hic_header } xlog_in_core_t; /* - * Defines to save our code from this glop. - */ -#define ic_force_wait hic_fields.ic_force_wait -#define ic_write_wait hic_fields.ic_write_wait -#define ic_next hic_fields.ic_next -#define ic_prev hic_fields.ic_prev -#define ic_bp hic_fields.ic_bp -#define ic_log hic_fields.ic_log -#define ic_callback hic_fields.ic_callback -#define ic_callback_lock hic_fields.ic_callback_lock -#define ic_callback_tail hic_fields.ic_callback_tail -#define ic_trace hic_fields.ic_trace -#define ic_size hic_fields.ic_size -#define ic_offset hic_fields.ic_offset -#define ic_refcnt hic_fields.ic_refcnt -#define ic_bwritecnt hic_fields.ic_bwritecnt -#define ic_state hic_fields.ic_state -#define ic_datap hic_fields.ic_datap -#define ic_header hic_data->hic_header - -/* * The reservation head lsn is not made up of a cycle number and block number. * Instead, it uses a cycle number and byte number. Logs don't expect to * overflow 31 bits worth of byte offset, so using a byte number will mean Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-09-25 20:02:39.000000000 +0200 @@ -3359,7 +3359,6 @@ xlog_pack_data( int size = iclog->ic_offset + roundoff; __be32 cycle_lsn; xfs_caddr_t dp; - xlog_in_core_2_t *xhdr; xlog_pack_data_checksum(log, iclog, size); @@ -3374,7 +3373,8 @@ xlog_pack_data( } if (xfs_sb_version_haslogv2(&log->l_mp->m_sb)) { - xhdr = (xlog_in_core_2_t *)&iclog->ic_header; + xlog_in_core_2_t *xhdr = iclog->ic_data; + for ( ; i < BTOBB(size); i++) { j = i / (XLOG_HEADER_CYCLE_SIZE / BBSIZE); k = i % (XLOG_HEADER_CYCLE_SIZE / BBSIZE); @@ -3432,7 +3432,6 @@ xlog_unpack_data( xlog_t *log) { int i, j, k; - xlog_in_core_2_t *xhdr; for (i = 0; i < BTOBB(be32_to_cpu(rhead->h_len)) && i < (XLOG_HEADER_CYCLE_SIZE / BBSIZE); i++) { @@ -3441,7 +3440,7 @@ xlog_unpack_data( } if (xfs_sb_version_haslogv2(&log->l_mp->m_sb)) { - xhdr = (xlog_in_core_2_t *)rhead; + xlog_in_core_2_t *xhdr = (xlog_in_core_2_t *)rhead; for ( ; i < BTOBB(be32_to_cpu(rhead->h_len)); i++) { j = i / (XLOG_HEADER_CYCLE_SIZE / BBSIZE); k = i % (XLOG_HEADER_CYCLE_SIZE / BBSIZE); Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-09-25 20:02:39.000000000 +0200 @@ -5763,7 +5763,7 @@ xfsidbg_xiclog(xlog_in_core_t *iclog) }; kdb_printf("xlog_in_core/header at 0x%p/0x%p\n", - iclog, iclog->hic_data); + iclog, iclog->ic_data); kdb_printf("magicno: %x cycle: %d version: %d lsn: 0x%Lx\n", be32_to_cpu(iclog->ic_header.h_magicno), be32_to_cpu(iclog->ic_header.h_cycle), -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.2 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZPnw027599 for ; Sun, 26 Oct 2008 13:35:27 -0700 X-ASG-Debug-ID: 1225053325-12e900e50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0EDA4546F39 for ; Sun, 26 Oct 2008 13:35:25 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Ixs1BJgZiZCMxXQ3 for ; Sun, 26 Oct 2008 13:35:25 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKa-0002P9-OE for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:24 +0000 Date: Sun, 26 Oct 2008 16:35:24 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/7] kill xfs_ialloc_log_di Subject: [PATCH 4/7] kill xfs_ialloc_log_di Message-ID: <20081026203524.GP4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xfs_ialloc_log_di User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053326 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_ialloc_log_di is only used to log the full inode core + di_next_unlinked. That means all the offset magic is not nessecary and we can simply use xfs_trans_log_buf directly. Also add a comment describing what we should do here instead. (First sent on October 7th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 09:12:06.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 10:47:18.000000000 +0200 @@ -41,68 +41,6 @@ #include "xfs_error.h" #include "xfs_bmap.h" -/* - * Log specified fields for the inode given by bp and off. - */ -STATIC void -xfs_ialloc_log_di( - xfs_trans_t *tp, /* transaction pointer */ - xfs_buf_t *bp, /* inode buffer */ - int off, /* index of inode in buffer */ - int fields) /* bitmask of fields to log */ -{ - int first; /* first byte number */ - int ioffset; /* off in bytes */ - int last; /* last byte number */ - xfs_mount_t *mp; /* mount point structure */ - static const short offsets[] = { /* field offsets */ - /* keep in sync with bits */ - offsetof(xfs_dinode_core_t, di_magic), - offsetof(xfs_dinode_core_t, di_mode), - offsetof(xfs_dinode_core_t, di_version), - offsetof(xfs_dinode_core_t, di_format), - offsetof(xfs_dinode_core_t, di_onlink), - offsetof(xfs_dinode_core_t, di_uid), - offsetof(xfs_dinode_core_t, di_gid), - offsetof(xfs_dinode_core_t, di_nlink), - offsetof(xfs_dinode_core_t, di_projid), - offsetof(xfs_dinode_core_t, di_pad), - offsetof(xfs_dinode_core_t, di_atime), - offsetof(xfs_dinode_core_t, di_mtime), - offsetof(xfs_dinode_core_t, di_ctime), - offsetof(xfs_dinode_core_t, di_size), - offsetof(xfs_dinode_core_t, di_nblocks), - offsetof(xfs_dinode_core_t, di_extsize), - offsetof(xfs_dinode_core_t, di_nextents), - offsetof(xfs_dinode_core_t, di_anextents), - offsetof(xfs_dinode_core_t, di_forkoff), - offsetof(xfs_dinode_core_t, di_aformat), - offsetof(xfs_dinode_core_t, di_dmevmask), - offsetof(xfs_dinode_core_t, di_dmstate), - offsetof(xfs_dinode_core_t, di_flags), - offsetof(xfs_dinode_core_t, di_gen), - offsetof(xfs_dinode_t, di_next_unlinked), - offsetof(xfs_dinode_t, di_u), - offsetof(xfs_dinode_t, di_a), - sizeof(xfs_dinode_t) - }; - - - ASSERT(offsetof(xfs_dinode_t, di_core) == 0); - ASSERT((fields & (XFS_DI_U|XFS_DI_A)) == 0); - mp = tp->t_mountp; - /* - * Get the inode-relative first and last bytes for these fields - */ - xfs_btree_offsets(fields, offsets, XFS_DI_NUM_BITS, &first, &last); - /* - * Convert to buffer offsets and log it. - */ - ioffset = off << mp->m_sb.sb_inodelog; - first += ioffset; - last += ioffset; - xfs_trans_log_buf(tp, bp, first, last); -} /* * Allocation group level functions. @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( XFS_BUF_LOCK); ASSERT(fbuf); ASSERT(!XFS_BUF_GETERROR(fbuf)); + /* - * Set initial values for the inodes in this buffer. + * Initialize all inodes in this buffer and then log them. + * + * XXX: It would be much better if we had just one transaction to + * log a whole cluster of inodes instead of all the indivdual + * transactions causing a lot of log traffic. */ xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { + int ioffset = i << args.mp->m_sb.sb_inodelog; + uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + free = XFS_MAKE_IPTR(args.mp, fbuf, i); free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); free->di_core.di_version = version; free->di_core.di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); - xfs_ialloc_log_di(tp, fbuf, i, - XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); + xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } xfs_trans_inode_alloc_buf(tp, fbuf); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 09:24:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 10:47:18.000000000 +0200 @@ -106,40 +106,6 @@ typedef struct xfs_dinode #define XFS_MAXLINK_1 65535U /* - * Bit names for logging disk inodes only - */ -#define XFS_DI_MAGIC 0x0000001 -#define XFS_DI_MODE 0x0000002 -#define XFS_DI_VERSION 0x0000004 -#define XFS_DI_FORMAT 0x0000008 -#define XFS_DI_ONLINK 0x0000010 -#define XFS_DI_UID 0x0000020 -#define XFS_DI_GID 0x0000040 -#define XFS_DI_NLINK 0x0000080 -#define XFS_DI_PROJID 0x0000100 -#define XFS_DI_PAD 0x0000200 -#define XFS_DI_ATIME 0x0000400 -#define XFS_DI_MTIME 0x0000800 -#define XFS_DI_CTIME 0x0001000 -#define XFS_DI_SIZE 0x0002000 -#define XFS_DI_NBLOCKS 0x0004000 -#define XFS_DI_EXTSIZE 0x0008000 -#define XFS_DI_NEXTENTS 0x0010000 -#define XFS_DI_NAEXTENTS 0x0020000 -#define XFS_DI_FORKOFF 0x0040000 -#define XFS_DI_AFORMAT 0x0080000 -#define XFS_DI_DMEVMASK 0x0100000 -#define XFS_DI_DMSTATE 0x0200000 -#define XFS_DI_FLAGS 0x0400000 -#define XFS_DI_GEN 0x0800000 -#define XFS_DI_NEXT_UNLINKED 0x1000000 -#define XFS_DI_U 0x2000000 -#define XFS_DI_A 0x4000000 -#define XFS_DI_NUM_BITS 27 -#define XFS_DI_ALL_BITS ((1 << XFS_DI_NUM_BITS) - 1) -#define XFS_DI_CORE_BITS (XFS_DI_ALL_BITS & ~(XFS_DI_U|XFS_DI_A)) - -/* * Values for di_format */ typedef enum xfs_dinode_fmt -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66, LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZTRa027628 for ; Sun, 26 Oct 2008 13:35:30 -0700 X-ASG-Debug-ID: 1225053328-16c300970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6AD97548F44 for ; Sun, 26 Oct 2008 13:35:28 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 79GtK8KftJNqg5KP for ; Sun, 26 Oct 2008 13:35:28 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKe-0002PF-7b for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:28 +0000 Date: Sun, 26 Oct 2008 16:35:28 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/7] kill xfs_dinode_core_t Subject: [PATCH 5/7] kill xfs_dinode_core_t Message-ID: <20081026203528.GQ4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xfs_dinode_core_t User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053329 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we have a separate xfs_icdinode_t for the in-core inode which gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core split - the fact that part of the structure gets logged through the inode log item and a small part not can better be described in a comment. All sizeof operations on the dinode_core either really wanted the icdinode and are switched to that one, or had already added the size of the agi unlinked list pointer. Later both will be replaced with helpers once we get the larger CRC-enabled dinode. Removing the data and attribute fork unions also has the advantage that xfs_dinode.h doesn't need to pull in every header under the sun. While we're at it also add some more comments describing the dinode structure. (First sent on October 7th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:22:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:22:29.000000000 +0200 @@ -302,7 +302,7 @@ STATIC uint xfs_dic2dmflags( xfs_dinode_t *dip) { - return _xfs_dic2dmflags(be16_to_cpu(dip->di_core.di_flags)) | + return _xfs_dic2dmflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? DM_XFLAG_HASATTR : 0); } @@ -316,11 +316,9 @@ STATIC void xfs_dip_to_stat( xfs_mount_t *mp, xfs_ino_t ino, - xfs_dinode_t *dip, + xfs_dinode_t *dic, dm_stat_t *buf) { - xfs_dinode_core_t *dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -348,7 +346,7 @@ xfs_dip_to_stat( buf->dt_atime = be32_to_cpu(dic->di_atime.t_sec); buf->dt_mtime = be32_to_cpu(dic->di_mtime.t_sec); buf->dt_ctime = be32_to_cpu(dic->di_ctime.t_sec); - buf->dt_xfs_xflags = xfs_dic2dmflags(dip); + buf->dt_xfs_xflags = xfs_dic2dmflags(dic); buf->dt_xfs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->dt_xfs_extents = be32_to_cpu(dic->di_nextents); @@ -358,7 +356,7 @@ xfs_dip_to_stat( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->dt_rdev = xfs_dinode_get_rdev(dic); buf->dt_blksize = BLKDEV_IOSIZE; buf->dt_blocks = 0; break; @@ -542,7 +540,7 @@ xfs_dm_inline_attr( caddr_t attr_buf, int *value_lenp) { - if (dip->di_core.di_aformat == XFS_DINODE_FMT_LOCAL) { + if (dip->di_aformat == XFS_DINODE_FMT_LOCAL) { xfs_attr_shortform_t *sf; xfs_attr_sf_entry_t *sfe; unsigned int namelen = strlen(attr_name); @@ -584,7 +582,7 @@ dm_dip_to_handle( fid.dm_fid_len = sizeof(struct dm_fid) - sizeof(fid.dm_fid_len); fid.dm_fid_pad = 0; fid.dm_fid_ino = ino; - fid.dm_fid_gen = be32_to_cpu(dip->di_core.di_gen); + fid.dm_fid_gen = be32_to_cpu(dip->di_gen); memcpy(&handlep->ha_fsid, fsid, sizeof(*fsid)); memcpy(&handlep->ha_fid, &fid, fid.dm_fid_len + sizeof(fid.dm_fid_len)); @@ -609,7 +607,7 @@ xfs_dm_bulkall_inline_one( int value_len = *value_lenp; int error; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, &xbuf->dx_statinfo); @@ -781,7 +779,7 @@ xfs_dm_bulkattr_inline_one( { dm_handle_t handle; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, sbuf); dm_dip_to_handle(ino, dip, fsid, &handle); Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-25 13:22:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-25 13:22:29.000000000 +0200 @@ -18,32 +18,32 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -struct xfs_buf; -struct xfs_mount; - #define XFS_DINODE_VERSION_1 1 #define XFS_DINODE_VERSION_2 2 #define XFS_DINODE_GOOD_VERSION(v) \ (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) #define XFS_DINODE_MAGIC 0x494e /* 'IN' */ -/* - * Disk inode structure. - * This is just the header; the inode is expanded to fill a variable size - * with the last field expanding. It is split into the core and "other" - * because we only need the core part in the in-core inode. - */ typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ __be32 t_nsec; /* timestamp nanoseconds */ } xfs_timestamp_t; /* - * Note: Coordinate changes to this structure with the XFS_DI_* #defines - * below, the offsets table in xfs_ialloc_log_di() and struct xfs_icdinode - * in xfs_inode.h. + * On-disk inode structure. + * + * This is just the header or "dinode core", the inode is expanded to fill a + * variable size the leftover area split into a data and an attribute fork. + * The format of the data and attribute fork depends on the format of the + * inode as indicated by di_format and di_aformat. To access the data and + * attribute use the XFS_DFORK_PTR, XFS_DFORK_DPTR, and XFS_DFORK_PTR macros + * below. + * + * There is a very similar struct icdinode in xfs_inode which matches the + * layout of the first 96 bytes of this structure, but is kept in native + * format instead of big endian. */ -typedef struct xfs_dinode_core { +typedef struct xfs_dinode { __be16 di_magic; /* inode magic # = XFS_DINODE_MAGIC */ __be16 di_mode; /* mode and type of file */ __u8 di_version; /* inode version */ @@ -69,34 +69,13 @@ typedef struct xfs_dinode_core { __be16 di_dmstate; /* DMIG state info */ __be16 di_flags; /* random flags, XFS_DIFLAG_... */ __be32 di_gen; /* generation number */ -} xfs_dinode_core_t; - -#define DI_MAX_FLUSH 0xffff -typedef struct xfs_dinode -{ - xfs_dinode_core_t di_core; - /* - * In adding anything between the core and the union, be - * sure to update the macros like XFS_LITINO below. - */ - __be32 di_next_unlinked;/* agi unlinked list ptr */ - union { - xfs_bmdr_block_t di_bmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_bmx[1]; /* extent list */ - xfs_dir2_sf_t di_dir2sf; /* shortform directory v2 */ - char di_c[1]; /* local contents */ - __be32 di_dev; /* device for S_IFCHR/S_IFBLK */ - uuid_t di_muuid; /* mount point value */ - char di_symlink[1]; /* local symbolic link */ - } di_u; - union { - xfs_bmdr_block_t di_abmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_abmx[1]; /* extent list */ - xfs_attr_shortform_t di_attrsf; /* shortform attribute list */ - } di_a; + /* di_next_unlinked is the only non-core field in the old dinode */ + __be32 di_next_unlinked;/* agi unlinked list ptr */ } xfs_dinode_t; +#define DI_MAX_FLUSH 0xffff + /* * The 32 bit link count in the inode theoretically maxes out at UINT_MAX. * Since the pathconf interface is signed, we use 2^31 - 1 instead. @@ -108,14 +87,12 @@ typedef struct xfs_dinode /* * Values for di_format */ -typedef enum xfs_dinode_fmt -{ - XFS_DINODE_FMT_DEV, /* CHR, BLK: di_dev */ - XFS_DINODE_FMT_LOCAL, /* DIR, REG: di_c */ - /* LNK: di_symlink */ - XFS_DINODE_FMT_EXTENTS, /* DIR, REG, LNK: di_bmx */ - XFS_DINODE_FMT_BTREE, /* DIR, REG, LNK: di_bmbt */ - XFS_DINODE_FMT_UUID /* MNT: di_uuid */ +typedef enum xfs_dinode_fmt { + XFS_DINODE_FMT_DEV, /* xfs_dev_t */ + XFS_DINODE_FMT_LOCAL, /* bulk data */ + XFS_DINODE_FMT_EXTENTS, /* struct xfs_bmbt_rec */ + XFS_DINODE_FMT_BTREE, /* struct xfs_bmdr_block */ + XFS_DINODE_FMT_UUID /* uuid_t */ } xfs_dinode_fmt_t; /* @@ -136,8 +113,8 @@ typedef enum xfs_dinode_fmt /* * Inode data & attribute fork sizes, per inode. */ -#define XFS_DFORK_Q(dip) ((dip)->di_core.di_forkoff != 0) -#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_core.di_forkoff << 3)) +#define XFS_DFORK_Q(dip) ((dip)->di_forkoff != 0) +#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_forkoff << 3)) #define XFS_DFORK_DSIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ @@ -152,23 +129,42 @@ typedef enum xfs_dinode_fmt XFS_DFORK_DSIZE(dip, mp) : \ XFS_DFORK_ASIZE(dip, mp)) -#define XFS_DFORK_DPTR(dip) ((dip)->di_u.di_c) +/* + * Return pointers to the data or attribute forks. + */ +#define XFS_DFORK_DPTR(dip) \ + ((char *)dip + sizeof(struct xfs_dinode)) #define XFS_DFORK_APTR(dip) \ - ((dip)->di_u.di_c + XFS_DFORK_BOFF(dip)) + (XFS_DFORK_DPTR(dip) + XFS_DFORK_BOFF(dip)) #define XFS_DFORK_PTR(dip,w) \ ((w) == XFS_DATA_FORK ? XFS_DFORK_DPTR(dip) : XFS_DFORK_APTR(dip)) + #define XFS_DFORK_FORMAT(dip,w) \ ((w) == XFS_DATA_FORK ? \ - (dip)->di_core.di_format : \ - (dip)->di_core.di_aformat) + (dip)->di_format : \ + (dip)->di_aformat) #define XFS_DFORK_NEXTENTS(dip,w) \ ((w) == XFS_DATA_FORK ? \ - be32_to_cpu((dip)->di_core.di_nextents) : \ - be16_to_cpu((dip)->di_core.di_anextents)) + be32_to_cpu((dip)->di_nextents) : \ + be16_to_cpu((dip)->di_anextents)) #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) /* + * For block and character special files the 32bit dev_t is stored at the + * beginning of the data fork. + */ +static inline xfs_dev_t xfs_dinode_get_rdev(struct xfs_dinode *dip) +{ + return be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(dip)); +} + +static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev) +{ + *(__be32 *)XFS_DFORK_DPTR(dip) = cpu_to_be32(rdev); +} + +/* * Values for di_flags * There should be a one-to-one correspondence between these flags and the * XFS_XFLAG_s. Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:22:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:23:00.000000000 +0200 @@ -174,8 +174,8 @@ xfs_imap_to_bp( dip = (xfs_dinode_t *)xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); - di_ok = be16_to_cpu(dip->di_core.di_magic) == XFS_DINODE_MAGIC && - XFS_DINODE_GOOD_VERSION(dip->di_core.di_version); + di_ok = be16_to_cpu(dip->di_magic) == XFS_DINODE_MAGIC && + XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { @@ -191,7 +191,7 @@ xfs_imap_to_bp( "daddr %lld #%d (magic=%x)", XFS_BUFTARG_NAME(mp->m_ddev_targp), (unsigned long long)imap->im_blkno, i, - be16_to_cpu(dip->di_core.di_magic)); + be16_to_cpu(dip->di_magic)); #endif xfs_trans_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); @@ -350,26 +350,26 @@ xfs_iformat( XFS_IFORK_DSIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); error = 0; - if (unlikely(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents) > - be64_to_cpu(dip->di_core.di_nblocks))) { + if (unlikely(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents) > + be64_to_cpu(dip->di_nblocks))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.", (unsigned long long)ip->i_ino, - (int)(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents)), + (int)(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents)), (unsigned long long) - be64_to_cpu(dip->di_core.di_nblocks)); + be64_to_cpu(dip->di_nblocks)); XFS_CORRUPTION_ERROR("xfs_iformat(1)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } - if (unlikely(dip->di_core.di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { + if (unlikely(dip->di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, forkoff = 0x%x.", (unsigned long long)ip->i_ino, - dip->di_core.di_forkoff); + dip->di_forkoff); XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); @@ -380,25 +380,25 @@ xfs_iformat( case S_IFCHR: case S_IFBLK: case S_IFSOCK: - if (unlikely(dip->di_core.di_format != XFS_DINODE_FMT_DEV)) { + if (unlikely(dip->di_format != XFS_DINODE_FMT_DEV)) { XFS_CORRUPTION_ERROR("xfs_iformat(3)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } ip->i_d.di_size = 0; ip->i_size = 0; - ip->i_df.if_u2.if_rdev = be32_to_cpu(dip->di_u.di_dev); + ip->i_df.if_u2.if_rdev = xfs_dinode_get_rdev(dip); break; case S_IFREG: case S_IFLNK: case S_IFDIR: - switch (dip->di_core.di_format) { + switch (dip->di_format) { case XFS_DINODE_FMT_LOCAL: /* * no local regular files yet */ - if (unlikely((be16_to_cpu(dip->di_core.di_mode) & S_IFMT) == S_IFREG)) { + if (unlikely((be16_to_cpu(dip->di_mode) & S_IFMT) == S_IFREG)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " "(local format for regular file).", @@ -409,7 +409,7 @@ xfs_iformat( return XFS_ERROR(EFSCORRUPTED); } - di_size = be64_to_cpu(dip->di_core.di_size); + di_size = be64_to_cpu(dip->di_size); if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " @@ -451,7 +451,7 @@ xfs_iformat( ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP); ip->i_afp->if_ext_max = XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); - switch (dip->di_core.di_aformat) { + switch (dip->di_aformat) { case XFS_DINODE_FMT_LOCAL: atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); size = be16_to_cpu(atp->hdr.totsize); @@ -663,7 +663,7 @@ xfs_iformat_btree( void xfs_dinode_from_disk( xfs_icdinode_t *to, - xfs_dinode_core_t *from) + xfs_dinode_t *from) { to->di_magic = be16_to_cpu(from->di_magic); to->di_mode = be16_to_cpu(from->di_mode); @@ -697,7 +697,7 @@ xfs_dinode_from_disk( void xfs_dinode_to_disk( - xfs_dinode_core_t *to, + xfs_dinode_t *to, xfs_icdinode_t *from) { to->di_magic = cpu_to_be16(from->di_magic); @@ -784,9 +784,7 @@ uint xfs_dic2xflags( xfs_dinode_t *dip) { - xfs_dinode_core_t *dic = &dip->di_core; - - return _xfs_dic2xflags(be16_to_cpu(dic->di_flags)) | + return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); } @@ -905,12 +903,12 @@ xfs_iread( * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC) { #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " - "dip->di_core.di_magic (0x%x) != " + "dip->di_magic (0x%x) != " "XFS_DINODE_MAGIC (0x%x)", - be16_to_cpu(dip->di_core.di_magic), + be16_to_cpu(dip->di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ error = XFS_ERROR(EINVAL); @@ -924,8 +922,8 @@ xfs_iread( * specific information. * Otherwise, just get the truly permanent information. */ - if (dip->di_core.di_mode) { - xfs_dinode_from_disk(&ip->i_d, &dip->di_core); + if (dip->di_mode) { + xfs_dinode_from_disk(&ip->i_d, dip); error = xfs_iformat(ip, dip); if (error) { #ifdef DEBUG @@ -936,10 +934,10 @@ xfs_iread( goto out_brelse; } } else { - ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); - ip->i_d.di_version = dip->di_core.di_version; - ip->i_d.di_gen = be32_to_cpu(dip->di_core.di_gen); - ip->i_d.di_flushiter = be16_to_cpu(dip->di_core.di_flushiter); + ip->i_d.di_magic = be16_to_cpu(dip->di_magic); + ip->i_d.di_version = dip->di_version; + ip->i_d.di_gen = be32_to_cpu(dip->di_gen); + ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter); /* * Make sure to pull in the mode here as well in * case the inode is released without being used. @@ -2292,7 +2290,7 @@ xfs_ifree( * This is a temporary hack that would require a proper fix * in the future. */ - dip->di_core.di_mode = 0; + dip->di_mode = 0; if (delete) { xfs_ifree_cluster(ip, tp, first_ino); @@ -2906,15 +2904,16 @@ xfs_iflush_fork( case XFS_DINODE_FMT_DEV: if (iip->ili_format.ilf_fields & XFS_ILOG_DEV) { ASSERT(whichfork == XFS_DATA_FORK); - dip->di_u.di_dev = cpu_to_be32(ip->i_df.if_u2.if_rdev); + xfs_dinode_put_rdev(dip, ip->i_df.if_u2.if_rdev); } break; case XFS_DINODE_FMT_UUID: if (iip->ili_format.ilf_fields & XFS_ILOG_UUID) { ASSERT(whichfork == XFS_DATA_FORK); - memcpy(&dip->di_u.di_muuid, &ip->i_df.if_u2.if_uuid, - sizeof(uuid_t)); + memcpy(XFS_DFORK_DPTR(dip), + &ip->i_df.if_u2.if_uuid, + sizeof(uuid_t)); } break; @@ -3292,11 +3291,11 @@ xfs_iflush_int( */ xfs_synchronize_atime(ip); - if (XFS_TEST_ERROR(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC, + if (XFS_TEST_ERROR(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC, mp, XFS_ERRTAG_IFLUSH_1, XFS_RANDOM_IFLUSH_1)) { xfs_cmn_err(XFS_PTAG_IFLUSH, CE_ALERT, mp, "xfs_iflush: Bad inode %Lu magic number 0x%x, ptr 0x%p", - ip->i_ino, be16_to_cpu(dip->di_core.di_magic), dip); + ip->i_ino, be16_to_cpu(dip->di_magic), dip); goto corrupt_out; } if (XFS_TEST_ERROR(ip->i_d.di_magic != XFS_DINODE_MAGIC, @@ -3359,7 +3358,7 @@ xfs_iflush_int( * because if the inode is dirty at all the core must * be. */ - xfs_dinode_to_disk(&dip->di_core, &ip->i_d); + xfs_dinode_to_disk(dip, &ip->i_d); /* Wrap, we never let the log put out DI_MAX_FLUSH */ if (ip->i_d.di_flushiter == DI_MAX_FLUSH) @@ -3379,7 +3378,7 @@ xfs_iflush_int( * Convert it back. */ ASSERT(ip->i_d.di_nlink <= XFS_MAXLINK_1); - dip->di_core.di_onlink = cpu_to_be16(ip->i_d.di_nlink); + dip->di_onlink = cpu_to_be16(ip->i_d.di_nlink); } else { /* * The superblock version has already been bumped, @@ -3387,12 +3386,12 @@ xfs_iflush_int( * format permanent. */ ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_core.di_version = XFS_DINODE_VERSION_2; + dip->di_version = XFS_DINODE_VERSION_2; ip->i_d.di_onlink = 0; - dip->di_core.di_onlink = 0; + dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); - memset(&(dip->di_core.di_pad[0]), 0, - sizeof(dip->di_core.di_pad)); + memset(&(dip->di_pad[0]), 0, + sizeof(dip->di_pad)); ASSERT(ip->i_d.di_projid == 0); } } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:23.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:29.000000000 +0200 @@ -2320,7 +2320,7 @@ xlog_recover_do_inode_trans( * Make sure the place we're flushing out to really looks * like an inode! */ - if (unlikely(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC)) { + if (unlikely(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC)) { xfs_buf_relse(bp); xfs_fs_cmn_err(CE_ALERT, mp, "xfs_inode_recover: Bad inode magic number, dino ptr = 0x%p, dino bp = 0x%p, ino = %Ld", @@ -2343,12 +2343,12 @@ xlog_recover_do_inode_trans( } /* Skip replay when the on disk inode is newer than the log one */ - if (dicp->di_flushiter < be16_to_cpu(dip->di_core.di_flushiter)) { + if (dicp->di_flushiter < be16_to_cpu(dip->di_flushiter)) { /* * Deal with the wrap case, DI_MAX_FLUSH is less * than smaller numbers */ - if (be16_to_cpu(dip->di_core.di_flushiter) == DI_MAX_FLUSH && + if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && dicp->di_flushiter < (DI_MAX_FLUSH >> 1)) { /* do nothing */ } else { @@ -2408,7 +2408,7 @@ xlog_recover_do_inode_trans( error = EFSCORRUPTED; goto error; } - if (unlikely(item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t))) { + if (unlikely(item->ri_buf[1].i_len > sizeof(struct xfs_icdinode))) { XFS_CORRUPTION_ERROR("xlog_recover_do_inode_trans(7)", XFS_ERRLEVEL_LOW, mp, dicp); xfs_buf_relse(bp); @@ -2420,23 +2420,24 @@ xlog_recover_do_inode_trans( } /* The core is in in-core format */ - xfs_dinode_to_disk(&dip->di_core, - (xfs_icdinode_t *)item->ri_buf[1].i_addr); + xfs_dinode_to_disk(dip, (xfs_icdinode_t *)item->ri_buf[1].i_addr); /* the rest is in on-disk format */ - if (item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t)) { - memcpy((xfs_caddr_t) dip + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_addr + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_len - sizeof(xfs_dinode_core_t)); + if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) { + memcpy((xfs_caddr_t) dip + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_addr + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_len - sizeof(struct xfs_icdinode)); } fields = in_f->ilf_fields; switch (fields & (XFS_ILOG_DEV | XFS_ILOG_UUID)) { case XFS_ILOG_DEV: - dip->di_u.di_dev = cpu_to_be32(in_f->ilf_u.ilfu_rdev); + xfs_dinode_put_rdev(dip, in_f->ilf_u.ilfu_rdev); break; case XFS_ILOG_UUID: - dip->di_u.di_muuid = in_f->ilf_u.ilfu_uuid; + memcpy(XFS_DFORK_DPTR(dip), + &in_f->ilf_u.ilfu_uuid, + sizeof(uuid_t)); break; } @@ -2452,12 +2453,12 @@ xlog_recover_do_inode_trans( switch (fields & XFS_ILOG_DFORK) { case XFS_ILOG_DDATA: case XFS_ILOG_DEXT: - memcpy(&dip->di_u, src, len); + memcpy(XFS_DFORK_DPTR(dip), src, len); break; case XFS_ILOG_DBROOT: xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, - &dip->di_u.di_bmbt, + (xfs_bmdr_block_t *)XFS_DFORK_DPTR(dip), XFS_DFORK_DSIZE(dip, mp)); break; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:15:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:22:29.000000000 +0200 @@ -19,7 +19,6 @@ #define __XFS_INODE_H__ struct xfs_dinode; -struct xfs_dinode_core; struct xfs_inode; /* @@ -112,7 +111,7 @@ typedef struct xfs_ictimestamp { } xfs_ictimestamp_t; /* - * NOTE: This structure must be kept identical to struct xfs_dinode_core + * NOTE: This structure must be kept identical to struct xfs_dinode * in xfs_dinode.h except for the endianess annotations. */ typedef struct xfs_icdinode { @@ -549,8 +548,8 @@ int xfs_itobp(struct xfs_mount *, struc struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, - struct xfs_dinode_core *); -void xfs_dinode_to_disk(struct xfs_dinode_core *, + struct xfs_dinode *); +void xfs_dinode_to_disk(struct xfs_dinode *, struct xfs_icdinode *); void xfs_idestroy_fork(struct xfs_inode *, int); void xfs_idata_realloc(struct xfs_inode *, int, int); Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:02:57.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:22:29.000000000 +0200 @@ -125,13 +125,9 @@ STATIC void xfs_bulkstat_one_dinode( xfs_mount_t *mp, /* mount point for filesystem */ xfs_ino_t ino, /* inode number to get data for */ - xfs_dinode_t *dip, /* dinode inode pointer */ + xfs_dinode_t *dic, /* dinode inode pointer */ xfs_bstat_t *buf) /* return buffer */ { - xfs_dinode_core_t *dic; /* dinode core info pointer */ - - dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -162,7 +158,7 @@ xfs_bulkstat_one_dinode( buf->bs_mtime.tv_nsec = be32_to_cpu(dic->di_mtime.t_nsec); buf->bs_ctime.tv_sec = be32_to_cpu(dic->di_ctime.t_sec); buf->bs_ctime.tv_nsec = be32_to_cpu(dic->di_ctime.t_nsec); - buf->bs_xflags = xfs_dic2xflags(dip); + buf->bs_xflags = xfs_dic2xflags(dic); buf->bs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->bs_extents = be32_to_cpu(dic->di_nextents); buf->bs_gen = be32_to_cpu(dic->di_gen); @@ -173,7 +169,7 @@ xfs_bulkstat_one_dinode( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->bs_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->bs_rdev = xfs_dinode_get_rdev(dic); buf->bs_blksize = BLKDEV_IOSIZE; buf->bs_blocks = 0; break; @@ -287,19 +283,19 @@ xfs_bulkstat_use_dinode( * to disk yet. This is a temporary hack that would require a proper * fix in the future. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC || - !XFS_DINODE_GOOD_VERSION(dip->di_core.di_version) || - !dip->di_core.di_mode) + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC || + !XFS_DINODE_GOOD_VERSION(dip->di_version) || + !dip->di_mode) return 0; if (flags & BULKSTAT_FG_QUICK) { *dipp = dip; return 1; } /* BULKSTAT_FG_INLINE: if attr fork is local, or not there, use it */ - aformat = dip->di_core.di_aformat; + aformat = dip->di_aformat; if ((XFS_DFORK_Q(dip) == 0) || (aformat == XFS_DINODE_FMT_LOCAL) || - (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_core.di_anextents)) { + (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_anextents)) { *dipp = dip; return 1; } Index: linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dir2_sf.h 2008-10-25 13:00:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h 2008-10-25 13:22:29.000000000 +0200 @@ -34,13 +34,6 @@ struct xfs_mount; struct xfs_trans; /* - * Maximum size of a shortform directory. - */ -#define XFS_DIR2_SF_MAX_SIZE \ - (XFS_DINODE_MAX_SIZE - (uint)sizeof(xfs_dinode_core_t) - \ - (uint)sizeof(xfs_agino_t)) - -/* * Inode number stored as 8 8-bit values. */ typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:22:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:22:29.000000000 +0200 @@ -355,12 +355,12 @@ xfs_ialloc_ag_alloc( xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { int ioffset = i << args.mp->m_sb.sb_inodelog; - uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + uint isize = sizeof(struct xfs_dinode); free = XFS_MAKE_IPTR(args.mp, fbuf, i); - free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); - free->di_core.di_version = version; - free->di_core.di_gen = cpu_to_be32(gen); + free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC); + free->di_version = version; + free->di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-25 13:18:54.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-25 13:22:29.000000000 +0200 @@ -575,8 +575,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; - mp->m_litino = sbp->sb_inodesize - - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); + mp->m_litino = sbp->sb_inodesize - sizeof(struct xfs_dinode); mp->m_blockmask = sbp->sb_blocksize - 1; mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; mp->m_blockwmask = mp->m_blockwsize - 1; Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:22:23.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:22:29.000000000 +0200 @@ -3635,10 +3635,11 @@ xfs_inodebuf(xfs_buf_t *bp) di = (xfs_dinode_t *)xfs_buf_offset(bp, i * 256); - xfs_dinode_from_disk(&dic, &di->di_core); + xfs_dinode_from_disk(&dic, di); xfs_prdinode_incore(&dic); kdb_printf("next_unlinked 0x%x u@0x%p\n", - be32_to_cpu(di->di_next_unlinked), &di->di_u); + be32_to_cpu(di->di_next_unlinked), + XFS_DFORK_DPTR(di)); } } @@ -4847,7 +4848,7 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum kdb_printf("buf 0x%p dir/attr node 0x%p\n", bp, node); xfsidbg_xdanode(node); } - } else if (be16_to_cpu((di = d)->di_core.di_magic) == XFS_DINODE_MAGIC) { + } else if (be16_to_cpu((di = d)->di_magic) == XFS_DINODE_MAGIC) { if (summary) { kdb_printf("Disk Inode (at 0x%p)\n", di); } else { Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-25 13:00:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-25 13:22:29.000000000 +0200 @@ -281,7 +281,7 @@ xfs_inode_item_format( xfs_mark_inode_dirty_sync(ip); vecp->i_addr = (xfs_caddr_t)&ip->i_d; - vecp->i_len = sizeof(xfs_dinode_core_t); + vecp->i_len = sizeof(struct xfs_icdinode); XLOG_VEC_SET_TYPE(vecp, XLOG_REG_TYPE_ICORE); vecp++; nvecs++; -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-5.6 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZVph027657 for ; Sun, 26 Oct 2008 13:35:31 -0700 X-ASG-Debug-ID: 1225053330-37e6009f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 97DEF12ABCA2 for ; Sun, 26 Oct 2008 13:35:31 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 43gythdUAnHJCNkH for ; Sun, 26 Oct 2008 13:35:31 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKg-0002RU-MN for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:30 +0000 Date: Sun, 26 Oct 2008 16:35:30 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Subject: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Message-ID: <20081026203530.GR4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-XFS_DINODE_VERSION_defines User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053331 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- These names don't add any value at all over just using the numerical values. (First sent on October 9th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:26.000000000 +0200 @@ -331,7 +331,7 @@ xfs_dip_to_stat( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->dt_nlink = be16_to_cpu(dic->di_onlink); /*buf->dt_xfs_projid = 0;*/ } else { Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:33.000000000 +0200 @@ -1132,7 +1132,7 @@ xfs_ioctl_setattr( * the superblock version number since projids didn't * exist before DINODE_VERSION_2 and SB_VERSION_NLINK. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) + if (ip->i_d.di_version == 1) xfs_bump_ino_vers2(tp, ip); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 18:01:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 18:01:54.000000000 +0200 @@ -18,11 +18,8 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -#define XFS_DINODE_VERSION_1 1 -#define XFS_DINODE_VERSION_2 2 -#define XFS_DINODE_GOOD_VERSION(v) \ - (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) -#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_GOOD_VERSION(v) (((v) == 1 || (v) == 2)) typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:39.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:49.000000000 +0200 @@ -321,9 +321,9 @@ xfs_ialloc_ag_alloc( * able to use the file system. */ if (xfs_sb_version_hasnlink(&args.mp->m_sb)) - version = XFS_DINODE_VERSION_2; + version = 2; else - version = XFS_DINODE_VERSION_1; + version = 1; /* * Seed the new inode cluster with a random generation number. This Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-09 17:59:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-09 18:00:25.000000000 +0200 @@ -959,7 +959,7 @@ xfs_iread( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + if (ip->i_d.di_version == 1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; ip->i_d.di_projid = 0; @@ -1128,8 +1128,8 @@ xfs_ialloc( * here rather than here and in the flush/logging code. */ if (xfs_sb_version_hasnlink(&tp->t_mountp->m_sb) && - ip->i_d.di_version == XFS_DINODE_VERSION_1) { - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version == 1) { + ip->i_d.di_version = 2; /* * We've already zeroed the old link count, the projid field, * and the pad field. @@ -1139,7 +1139,7 @@ xfs_ialloc( /* * Project ids won't be stored on disk if we are using a version 1 inode. */ - if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1)) + if ((prid != 0) && (ip->i_d.di_version == 1)) xfs_bump_ino_vers2(tp, ip); if (pip && XFS_INHERIT_GID(pip)) { @@ -3348,9 +3348,8 @@ xfs_iflush_int( * convert back to the old inode format. If the superblock version * has been updated, then make the conversion permanent. */ - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -3363,8 +3362,8 @@ xfs_iflush_int( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; + dip->di_version = 2; ip->i_d.di_onlink = 0; dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-09 18:00:54.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-09 18:01:19.000000000 +0200 @@ -296,9 +296,8 @@ xfs_inode_item_format( * has a new version number, then we don't bother converting back. */ mp = ip->i_mount; - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -311,7 +310,7 @@ xfs_inode_item_format( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); } Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-09 17:59:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-09 17:59:33.000000000 +0200 @@ -139,7 +139,7 @@ xfs_bulkstat_one_dinode( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->bs_nlink = be16_to_cpu(dic->di_onlink); buf->bs_projid = 0; } else { Index: linux-2.6-xfs/fs/xfs/xfs_utils.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_utils.c 2008-10-09 17:59:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_utils.c 2008-10-09 17:59:46.000000000 +0200 @@ -268,9 +268,9 @@ xfs_bump_ino_vers2( xfs_mount_t *mp; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1); + ASSERT(ip->i_d.di_version == 1); - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); mp = tp->t_mountp; @@ -302,7 +302,7 @@ xfs_bumplink( ASSERT(ip->i_d.di_nlink > 0); ip->i_d.di_nlink++; inc_nlink(VFS_I(ip)); - if ((ip->i_d.di_version == XFS_DINODE_VERSION_1) && + if ((ip->i_d.di_version == 1) && (ip->i_d.di_nlink > XFS_MAXLINK_1)) { /* * The inode has increased its number of links beyond -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_65 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZXeV027682 for ; Sun, 26 Oct 2008 13:35:34 -0700 X-ASG-Debug-ID: 1225053333-67a8035f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 64F6D1486768 for ; Sun, 26 Oct 2008 13:35:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DbU2tOT7Ic3b8nEN for ; Sun, 26 Oct 2008 13:35:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKj-0002RZ-1V for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:33 +0000 Date: Sun, 26 Oct 2008 16:35:33 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 7/7] split up xlog_recover_process_iunlinks Subject: [PATCH 7/7] split up xlog_recover_process_iunlinks Message-ID: <20081026203533.GS4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-split-xlog_recover_process_iunlinks User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053333 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Split out the body of the main loop into a separate helper to make the code readable. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:44.000000000 +0200 @@ -3147,6 +3147,70 @@ out_error: return; } +STATIC xfs_agino_t +xlog_recover_process_one_iunlink( + struct xfs_mount *mp, + xfs_agnumber_t agno, + xfs_agino_t agino, + int bucket) +{ + struct xfs_buf *ibp; + struct xfs_dinode *dip; + struct xfs_inode *ip; + xfs_ino_t ino; + int error; + + ino = XFS_AGINO_TO_INO(mp, agno, agino); + error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); + if (error) + goto fail; + + /* + * Get the on disk inode to find the next inode in the bucket. + */ + ASSERT(ip != NULL); + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + if (error) + goto fail; + + ASSERT(dip != NULL); + ASSERT(ip->i_d.di_nlink == 0); + + /* setup for the next pass */ + agino = be32_to_cpu(dip->di_next_unlinked); + xfs_buf_relse(ibp); + + /* + * Prevent any DMAPI event from being sent when the reference on + * the inode is dropped. + */ + ip->i_d.di_dmevmask = 0; + + /* + * If this is a new inode, handle it specially. Otherwise, just + * drop our reference to the inode. If there are no other + * references, this will send the inode to xfs_inactive() which + * will truncate the file and free the inode. + */ + if (ip->i_d.di_mode == 0) + xfs_iput_new(ip, 0); + else + IRELE(ip); + return agino; + + fail: + /* + * We can't read in the inode this bucket points to, or this inode + * is messed up. Just ditch this bucket of inodes. We will lose + * some inodes and space, but at least we won't hang. + * + * Call xlog_recover_clear_agi_bucket() to perform a transaction to + * clear the inode pointer in the bucket. + */ + xlog_recover_clear_agi_bucket(mp, agno, bucket); + return NULLAGINO; +} + /* * xlog_iunlink_recover * @@ -3167,11 +3231,7 @@ xlog_recover_process_iunlinks( xfs_agnumber_t agno; xfs_agi_t *agi; xfs_buf_t *agibp; - xfs_buf_t *ibp; - xfs_dinode_t *dip; - xfs_inode_t *ip; xfs_agino_t agino; - xfs_ino_t ino; int bucket; int error; uint mp_dmevmask; @@ -3205,10 +3265,8 @@ xlog_recover_process_iunlinks( agi = XFS_BUF_TO_AGI(agibp); for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) { - agino = be32_to_cpu(agi->agi_unlinked[bucket]); while (agino != NULLAGINO) { - /* * Release the agi buffer so that it can * be acquired in the normal course of the @@ -3216,68 +3274,8 @@ xlog_recover_process_iunlinks( */ xfs_buf_relse(agibp); - ino = XFS_AGINO_TO_INO(mp, agno, agino); - error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); - ASSERT(error || (ip != NULL)); - - if (!error) { - /* - * Get the on disk inode to find the - * next inode in the bucket. - */ - error = xfs_itobp(mp, NULL, ip, &dip, - &ibp, 0, 0, - XFS_BUF_LOCK); - ASSERT(error || (dip != NULL)); - } - - if (!error) { - ASSERT(ip->i_d.di_nlink == 0); - - /* setup for the next pass */ - agino = be32_to_cpu( - dip->di_next_unlinked); - xfs_buf_relse(ibp); - /* - * Prevent any DMAPI event from - * being sent when the - * reference on the inode is - * dropped. - */ - ip->i_d.di_dmevmask = 0; - - /* - * If this is a new inode, handle - * it specially. Otherwise, - * just drop our reference to the - * inode. If there are no - * other references, this will - * send the inode to - * xfs_inactive() which will - * truncate the file and free - * the inode. - */ - if (ip->i_d.di_mode == 0) - xfs_iput_new(ip, 0); - else - IRELE(ip); - } else { - /* - * We can't read in the inode - * this bucket points to, or - * this inode is messed up. Just - * ditch this bucket of inodes. We - * will lose some inodes and space, - * but at least we won't hang. Call - * xlog_recover_clear_agi_bucket() - * to perform a transaction to clear - * the inode pointer in the bucket. - */ - xlog_recover_clear_agi_bucket(mp, agno, - bucket); - - agino = NULLAGINO; - } + agino = xlog_recover_process_one_iunlink(mp, + agno, agino, bucket); /* * Reacquire the agibuffer and continue around -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZYqa027705 for ; Sun, 26 Oct 2008 13:35:35 -0700 X-ASG-Debug-ID: 1225053335-637f03660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91BB9148676B for ; Sun, 26 Oct 2008 13:35:35 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id fsEPyfxAfLbe2jrk for ; Sun, 26 Oct 2008 13:35:35 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKl-0002SJ-75 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:35 +0000 Date: Sun, 26 Oct 2008 16:35:35 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] inode location mapping refactoring Subject: [PATCH 0/6] inode location mapping refactoring Message-ID: <20081026203535.GT4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053335 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Refactor the inode to buffer mapping infrastructure. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZch6027766 for ; Sun, 26 Oct 2008 13:35:39 -0700 X-ASG-Debug-ID: 1225053338-0406022c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 40886548F4F for ; Sun, 26 Oct 2008 13:35:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id PSLct63oS5xPxb8q for ; Sun, 26 Oct 2008 13:35:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKo-0002U1-FT for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:38 +0000 Date: Sun, 26 Oct 2008 16:35:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] stop using xfs_itobp in xfs_iread Subject: [PATCH 1/6] stop using xfs_itobp in xfs_iread Message-ID: <20081026203538.GU4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_iread-dont-use-xfs_itobp User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053339 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only caller of xfs_itobp that doesn't have i_blkno setup is now the initial inode read. It needs access to the whole xfs_imap so using xfs_inotobp is not an option. Instead opencode the buffer lookup in xfs_iread and kill all the functionality for the initial map from xfs_itobp. (First sent on October 21st) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:26:51.000000000 +0200 @@ -262,15 +262,11 @@ xfs_inotobp( * If a non-zero error is returned, then the contents of bpp and * dipp are undefined. * - * If the inode is new and has not yet been initialized, use xfs_imap() - * to determine the size and location of the buffer to read from disk. - * If the inode has already been mapped to its buffer and read in once, - * then use the mapping information stored in the inode rather than - * calling xfs_imap(). This allows us to avoid the overhead of looking - * at the inode btree for small block file systems (see xfs_dilocate()). - * We can tell whether the inode has been mapped in before by comparing - * its disk block address to 0. Only uninitialized inodes will have - * 0 for the disk block address. + * The inode is expected to already been mapped to its buffer and read + * in once, thus we can use the mapping information stored in the inode + * rather than calling xfs_imap(). This allows us to avoid the overhead + * of looking at the inode btree for small block file systems + * (see xfs_dilocate()). */ int xfs_itobp( @@ -279,40 +275,19 @@ xfs_itobp( xfs_inode_t *ip, xfs_dinode_t **dipp, xfs_buf_t **bpp, - xfs_daddr_t bno, - uint imap_flags, uint buf_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; - if (ip->i_blkno == (xfs_daddr_t)0) { - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); - if (error) - return error; + ASSERT(ip->i_blkno != 0); - /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. - */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - } else { - /* - * We've already mapped the inode once, so just use the - * mapping that we saved the first time. - */ - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - } - ASSERT(bno == 0 || bno == imap.im_blkno); + imap.im_blkno = ip->i_blkno; + imap.im_len = ip->i_len; + imap.im_boffset = ip->i_boffset; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, imap_flags); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); if (error) return error; @@ -882,6 +857,7 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; + xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -889,15 +865,27 @@ xfs_iread( return ENOMEM; /* - * Get pointer's to the on-disk inode and the buffer containing it. - * If the inode number refers to a block outside the file system - * then xfs_itobp() will return NULL. In this case we should - * return NULL as well. Set i_blkno to 0 so that xfs_itobp() will - * know that this is a new incore inode. + * Get pointers to the on-disk inode and the buffer containing it. */ - error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); + imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &imap, + XFS_IMAP_LOOKUP | imap_flags); + if (error) + goto out_destroy_inode; + + /* + * Fill in the fields in the inode that will be used to + * map the inode to its buffer from now on. + */ + ip->i_blkno = imap.im_blkno; + ip->i_len = imap.im_len; + ip->i_boffset = imap.im_boffset; + ASSERT(bno == 0 || bno == imap.im_blkno); + + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); if (error) goto out_destroy_inode; + dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); /* * If we got something that isn't an inode it means someone @@ -1872,7 +1860,7 @@ xfs_iunlink( * Here we put the head pointer into our next pointer, * and then we fall through to point the head at us. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -1957,7 +1945,7 @@ xfs_iunlink_remove( * of dealing with the buffer when there is no need to * change it. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2019,7 +2007,7 @@ xfs_iunlink_remove( * Now last_ibp points to the buffer previous to us on * the unlinked list. Pull us from the list. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2274,7 +2262,7 @@ xfs_ifree( xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -3188,7 +3176,7 @@ xfs_iflush( /* * Get the buffer containing the on-disk inode. */ - error = xfs_itobp(mp, NULL, ip, &dip, &bp, 0, 0, + error = xfs_itobp(mp, NULL, ip, &dip, &bp, noblock ? XFS_BUF_TRYLOCK : XFS_BUF_LOCK); if (error || !bp) { xfs_ifunlock(ip); Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:26:51.000000000 +0200 @@ -157,7 +157,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -547,7 +547,7 @@ int xfs_inotobp(struct xfs_mount *, str struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, - struct xfs_buf **, xfs_daddr_t, uint, uint); + struct xfs_buf **, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, struct xfs_dinode *); void xfs_dinode_to_disk(struct xfs_dinode *, Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:59.000000000 +0200 @@ -3169,7 +3169,7 @@ xlog_recover_process_one_iunlink( * Get the on disk inode to find the next inode in the bucket. */ ASSERT(ip != NULL); - error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) goto fail; -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZfmU027793 for ; Sun, 26 Oct 2008 13:35:41 -0700 X-ASG-Debug-ID: 1225053340-37e600a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 78E8112ABCA8 for ; Sun, 26 Oct 2008 13:35:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id mVBxGr5O6yeTVan0 for ; Sun, 26 Oct 2008 13:35:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKq-0002U7-Py for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:40 +0000 Date: Sun, 26 Oct 2008 16:35:40 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] remove dead code for old inode item recovery Subject: [PATCH 2/6] remove dead code for old inode item recovery Message-ID: <20081026203540.GV4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-remove-dead-log-recovery-code User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053341 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- We have removed the support for old-style inode items a while ago and xlog_recover_do_inode_trans is now only called for XFS_LI_INODE items. That means we can remove the call to xfs_imap there and with it the XFS_IMAP_LOOKUP that is set by all other callers. We can also mark xfs_imap static now. (First sent on October 21st) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:59.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:28:32.000000000 +0200 @@ -2245,7 +2245,6 @@ xlog_recover_do_inode_trans( xfs_inode_log_format_t *in_f; xfs_mount_t *mp; xfs_buf_t *bp; - xfs_imap_t imap; xfs_dinode_t *dip; xfs_ino_t ino; int len; @@ -2273,48 +2272,29 @@ xlog_recover_do_inode_trans( } ino = in_f->ilf_ino; mp = log->l_mp; - if (ITEM_TYPE(item) == XFS_LI_INODE) { - imap.im_blkno = (xfs_daddr_t)in_f->ilf_blkno; - imap.im_len = in_f->ilf_len; - imap.im_boffset = in_f->ilf_boffset; - } else { - /* - * It's an old inode format record. We don't know where - * its cluster is located on disk, and we can't allow - * xfs_imap() to figure it out because the inode btrees - * are not ready to be used. Therefore do not pass the - * XFS_IMAP_LOOKUP flag to xfs_imap(). This will give - * us only the single block in which the inode lives - * rather than its cluster, so we must make sure to - * invalidate the buffer when we write it out below. - */ - imap.im_blkno = 0; - error = xfs_imap(log->l_mp, NULL, ino, &imap, 0); - if (error) - goto error; - } /* * Inode buffers can be freed, look out for it, * and do not replay the inode. */ - if (xlog_check_buffer_cancelled(log, imap.im_blkno, imap.im_len, 0)) { + if (xlog_check_buffer_cancelled(log, in_f->ilf_blkno, + in_f->ilf_len, 0)) { error = 0; goto error; } - bp = xfs_buf_read_flags(mp->m_ddev_targp, imap.im_blkno, imap.im_len, - XFS_BUF_LOCK); + bp = xfs_buf_read_flags(mp->m_ddev_targp, in_f->ilf_blkno, + in_f->ilf_len, XFS_BUF_LOCK); if (XFS_BUF_ISERROR(bp)) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, - bp, imap.im_blkno); + bp, in_f->ilf_blkno); error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); goto error; } error = 0; ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset); /* * Make sure the place we're flushing out to really looks Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:24:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:32.000000000 +0200 @@ -1262,8 +1262,7 @@ xfs_dilocate( #endif /* DEBUG */ return XFS_ERROR(EINVAL); } - if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp)) || - !(flags & XFS_IMAP_LOOKUP)) { + if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp))) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); *bno = XFS_AGB_TO_FSB(mp, agno, agbno); Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:26:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:28:32.000000000 +0200 @@ -237,7 +237,7 @@ xfs_inotobp( int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags); if (error) return error; @@ -868,8 +868,7 @@ xfs_iread( * Get pointers to the on-disk inode and the buffer containing it. */ imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); + error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); if (error) goto out_destroy_inode; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:26:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:28:32.000000000 +0200 @@ -159,8 +159,7 @@ typedef struct xfs_icdinode { /* * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ -#define XFS_IMAP_LOOKUP 0x1 -#define XFS_IMAP_BULKSTAT 0x2 +#define XFS_IMAP_BULKSTAT 0x1 /* * Fork handling. -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZi1c027832 for ; Sun, 26 Oct 2008 13:35:44 -0700 X-ASG-Debug-ID: 1225053343-2fbd01590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B66F12ABCB1 for ; Sun, 26 Oct 2008 13:35:43 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id otND59T2Fpum61C4 for ; Sun, 26 Oct 2008 13:35:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKt-0002UE-Ds for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:43 +0000 Date: Sun, 26 Oct 2008 16:35:43 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] merge xfs_imap into xfs_dilocate Subject: [PATCH 3/6] merge xfs_imap into xfs_dilocate Message-ID: <20081026203543.GW4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-merge-xfs_imap-xfs_dilocate User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053344 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 xfs_imap is the only caller of xfs_dilocate and doesn't add any significant value. Merge the two functions and document the various cases we have for inode cluster lookup in the new xfs_imap. Also remove the unused im_agblkno and im_ioffset fields from struct xfs_imap while we're at it. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:50.000000000 +0200 @@ -40,6 +40,7 @@ #include "xfs_rtalloc.h" #include "xfs_error.h" #include "xfs_bmap.h" +#include "xfs_imap.h" /* @@ -1196,36 +1197,28 @@ error0: } /* - * Return the location of the inode in bno/off, for mapping it into a buffer. + * Return the location of the inode in imap, for mapping it into a buffer. */ -/*ARGSUSED*/ int -xfs_dilocate( - xfs_mount_t *mp, /* file system mount structure */ - xfs_trans_t *tp, /* transaction pointer */ +xfs_imap( + xfs_mount_t *mp, /* file system mount structure */ + xfs_trans_t *tp, /* transaction pointer */ xfs_ino_t ino, /* inode to locate */ - xfs_fsblock_t *bno, /* output: block containing inode */ - int *len, /* output: num blocks in inode cluster */ - int *off, /* output: index in block of inode */ - uint flags) /* flags concerning inode lookup */ + struct xfs_imap *imap, /* location map structure */ + uint flags) /* flags for inode btree lookup */ { xfs_agblock_t agbno; /* block number of inode in the alloc group */ - xfs_buf_t *agbp; /* agi buffer */ xfs_agino_t agino; /* inode number within alloc group */ xfs_agnumber_t agno; /* allocation group number */ int blks_per_cluster; /* num blocks per inode cluster */ xfs_agblock_t chunk_agbno; /* first block in inode chunk */ - xfs_agino_t chunk_agino; /* first agino in inode chunk */ - __int32_t chunk_cnt; /* count of free inodes in chunk */ - xfs_inofree_t chunk_free; /* mask of free inodes in chunk */ xfs_agblock_t cluster_agbno; /* first block in inode cluster */ - xfs_btree_cur_t *cur; /* inode btree cursor */ int error; /* error code */ - int i; /* temp state */ int offset; /* index of inode in its buffer */ int offset_agbno; /* blks from chunk start to inode */ ASSERT(ino != NULLFSINO); + /* * Split up the inode number into its parts. */ @@ -1240,20 +1233,20 @@ xfs_dilocate( return XFS_ERROR(EINVAL); if (agno >= mp->m_sb.sb_agcount) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: agno (%d) >= " + "xfs_imap: agno (%d) >= " "mp->m_sb.sb_agcount (%d)", agno, mp->m_sb.sb_agcount); } if (agbno >= mp->m_sb.sb_agblocks) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: agbno (0x%llx) >= " + "xfs_imap: agbno (0x%llx) >= " "mp->m_sb.sb_agblocks (0x%lx)", (unsigned long long) agbno, (unsigned long) mp->m_sb.sb_agblocks); } if (ino != XFS_AGINO_TO_INO(mp, agno, agino)) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: ino (0x%llx) != " + "xfs_imap: ino (0x%llx) != " "XFS_AGINO_TO_INO(mp, agno, agino) " "(0x%llx)", ino, XFS_AGINO_TO_INO(mp, agno, agino)); @@ -1262,34 +1255,65 @@ xfs_dilocate( #endif /* DEBUG */ return XFS_ERROR(EINVAL); } - if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp))) { + + /* + * If the inode cluster size is the same as the blocksize or + * bigger we get to the buffer by simple arithmetics. + */ + if (XFS_INODE_CLUSTER_SIZE(mp) <= mp->m_sb.sb_blocksize) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); - *bno = XFS_AGB_TO_FSB(mp, agno, agbno); - *off = offset; - *len = 1; + + imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, agbno); + imap->im_len = XFS_FSB_TO_BB(mp, 1); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); return 0; } + blks_per_cluster = XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_blocklog; - if (*bno != NULLFSBLOCK) { + + /* + * If we get a block number passed from bulkstat we can use it to + * find the buffer easily. + */ + if (imap->im_blkno) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); - cluster_agbno = XFS_FSB_TO_AGBNO(mp, *bno); - *off = ((agbno - cluster_agbno) * mp->m_sb.sb_inopblock) + - offset; - *len = blks_per_cluster; + + cluster_agbno = XFS_DADDR_TO_AGBNO(mp, imap->im_blkno); + offset += (agbno - cluster_agbno) * mp->m_sb.sb_inopblock; + + imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); return 0; } + + /* + * With aligned inodes it's again quite simple and we can skip the + * btree lookup. + */ if (mp->m_inoalign_mask) { offset_agbno = agbno & mp->m_inoalign_mask; chunk_agbno = agbno - offset_agbno; + + /* + * Worst case: we actually have to actually perform a lookup in the + * inode btree. + */ } else { + xfs_btree_cur_t *cur; /* inode btree cursor */ + xfs_agino_t chunk_agino; /* first agino in inode chunk */ + __int32_t chunk_cnt; /* count of free inodes in chunk */ + xfs_inofree_t chunk_free; /* mask of free inodes in chunk */ + xfs_buf_t *agbp; /* agi buffer */ + int i; /* temp state */ + down_read(&mp->m_peraglock); error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); up_read(&mp->m_peraglock); if (error) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_ialloc_read_agi() returned " "error %d, agno %d", error, agno); @@ -1299,7 +1323,7 @@ xfs_dilocate( cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); if ((error = xfs_inobt_lookup_le(cur, agino, 0, 0, &i))) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_lookup_le() failed"); #endif /* DEBUG */ goto error0; @@ -1307,18 +1331,19 @@ xfs_dilocate( if ((error = xfs_inobt_get_rec(cur, &chunk_agino, &chunk_cnt, &chunk_free, &i))) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_get_rec() failed"); #endif /* DEBUG */ goto error0; } if (i == 0) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_get_rec() failed"); #endif /* DEBUG */ error = XFS_ERROR(EINVAL); } + error0: xfs_trans_brelse(tp, agbp); xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); if (error) @@ -1326,19 +1351,35 @@ xfs_dilocate( chunk_agbno = XFS_AGINO_TO_AGBNO(mp, chunk_agino); offset_agbno = agbno - chunk_agbno; } + ASSERT(agbno >= chunk_agbno); cluster_agbno = chunk_agbno + ((offset_agbno / blks_per_cluster) * blks_per_cluster); offset = ((agbno - cluster_agbno) * mp->m_sb.sb_inopblock) + XFS_INO_TO_OFFSET(mp, ino); - *bno = XFS_AGB_TO_FSB(mp, agno, cluster_agbno); - *off = offset; - *len = blks_per_cluster; + + imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, cluster_agbno); + imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); + + /* + * If the inode number maps to a block outside the bounds + * of the file system then return NULL rather than calling + * read_buf and panicing when we get an error from the + * driver. + */ + if ((imap->im_blkno + imap->im_len) > + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " + "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " + " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", + (unsigned long long) imap->im_blkno, + (unsigned long long) imap->im_len, + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); + return EINVAL; + } + return 0; -error0: - xfs_trans_brelse(tp, agbp); - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; } /* Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.h 2008-10-01 06:30:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.h 2008-10-25 13:28:50.000000000 +0200 @@ -20,6 +20,7 @@ struct xfs_buf; struct xfs_dinode; +struct xfs_imap; struct xfs_mount; struct xfs_trans; @@ -104,17 +105,14 @@ xfs_difree( xfs_ino_t *first_ino); /* first inode in deleted cluster */ /* - * Return the location of the inode in bno/len/off, - * for mapping it into a buffer. + * Return the location of the inode in imap, for mapping it into a buffer. */ int -xfs_dilocate( +xfs_imap( struct xfs_mount *mp, /* file system mount structure */ struct xfs_trans *tp, /* transaction pointer */ xfs_ino_t ino, /* inode to locate */ - xfs_fsblock_t *bno, /* output: block containing inode */ - int *len, /* output: num blocks in cluster*/ - int *off, /* output: index in block of inode */ + struct xfs_imap *imap, /* location map structure */ uint flags); /* flags for inode btree lookup */ /* Index: linux-2.6-xfs/fs/xfs/xfs_imap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_imap.h 2008-10-01 06:30:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_imap.h 2008-10-25 13:28:50.000000000 +0200 @@ -25,14 +25,7 @@ typedef struct xfs_imap { xfs_daddr_t im_blkno; /* starting BB of inode chunk */ uint im_len; /* length in BBs of inode chunk */ - xfs_agblock_t im_agblkno; /* logical block of inode chunk in ag */ - ushort im_ioffset; /* inode offset in block in "inodes" */ ushort im_boffset; /* inode offset in block in bytes */ } xfs_imap_t; -struct xfs_mount; -struct xfs_trans; -int xfs_imap(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - xfs_imap_t *, uint); - #endif /* __XFS_IMAP_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:28:50.000000000 +0200 @@ -266,7 +266,7 @@ xfs_inotobp( * in once, thus we can use the mapping information stored in the inode * rather than calling xfs_imap(). This allows us to avoid the overhead * of looking at the inode btree for small block file systems - * (see xfs_dilocate()). + * (see xfs_imap()). */ int xfs_itobp( @@ -2505,64 +2505,6 @@ xfs_idata_realloc( ASSERT(ifp->if_bytes <= XFS_IFORK_SIZE(ip, whichfork)); } - - - -/* - * Map inode to disk block and offset. - * - * mp -- the mount point structure for the current file system - * tp -- the current transaction - * ino -- the inode number of the inode to be located - * imap -- this structure is filled in with the information necessary - * to retrieve the given inode from disk - * flags -- flags to pass to xfs_dilocate indicating whether or not - * lookups in the inode btree were OK or not - */ -int -xfs_imap( - xfs_mount_t *mp, - xfs_trans_t *tp, - xfs_ino_t ino, - xfs_imap_t *imap, - uint flags) -{ - xfs_fsblock_t fsbno; - int len; - int off; - int error; - - fsbno = imap->im_blkno ? - XFS_DADDR_TO_FSB(mp, imap->im_blkno) : NULLFSBLOCK; - error = xfs_dilocate(mp, tp, ino, &fsbno, &len, &off, flags); - if (error) - return error; - - imap->im_blkno = XFS_FSB_TO_DADDR(mp, fsbno); - imap->im_len = XFS_FSB_TO_BB(mp, len); - imap->im_agblkno = XFS_FSB_TO_AGBNO(mp, fsbno); - imap->im_ioffset = (ushort)off; - imap->im_boffset = (ushort)(off << mp->m_sb.sb_inodelog); - - /* - * If the inode number maps to a block outside the bounds - * of the file system then return NULL rather than calling - * read_buf and panicing when we get an error from the - * driver. - */ - if ((imap->im_blkno + imap->im_len) > - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " - "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " - " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", - (unsigned long long) imap->im_blkno, - (unsigned long long) imap->im_len, - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); - return EINVAL; - } - return 0; -} - void xfs_idestroy_fork( xfs_inode_t *ip, Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:28:50.000000000 +0200 @@ -157,7 +157,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp and xfs_imap(). */ #define XFS_IMAP_BULKSTAT 0x1 -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZk0p027867 for ; Sun, 26 Oct 2008 13:35:47 -0700 X-ASG-Debug-ID: 1225053345-1b3300740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34EA01486770 for ; Sun, 26 Oct 2008 13:35:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 3WR0Tf3zFsbd6iYC for ; Sun, 26 Oct 2008 13:35:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKv-0002Ud-Qp for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:45 +0000 Date: Sun, 26 Oct 2008 16:35:45 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] embededd struct xfs_imap into xfs_inode Subject: [PATCH 4/6] embededd struct xfs_imap into xfs_inode Message-ID: <20081026203545.GX4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-imap-cleanup User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Most uses of struct xfs_imap are to map and inode to a buffer. To avoid copying around the inode location information we should just embedd a strcut xfs_imap into the xfs_inode. To make sure it doesn't bloat an inode the im_len is changed to a ushort, which is fine as that's what the users exepect anyway. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:30:56.000000000 +0200 @@ -23,7 +23,6 @@ #include "xfs_bit.h" #include "xfs_log.h" #include "xfs_inum.h" -#include "xfs_imap.h" #include "xfs_trans.h" #include "xfs_trans_priv.h" #include "xfs_sb.h" @@ -134,7 +133,7 @@ STATIC int xfs_imap_to_bp( xfs_mount_t *mp, xfs_trans_t *tp, - xfs_imap_t *imap, + struct xfs_imap *imap, xfs_buf_t **bpp, uint buf_flags, uint imap_flags) @@ -232,7 +231,7 @@ xfs_inotobp( int *offset, uint imap_flags) { - xfs_imap_t imap; + struct xfs_imap imap; xfs_buf_t *bp; int error; @@ -277,17 +276,12 @@ xfs_itobp( xfs_buf_t **bpp, uint buf_flags) { - xfs_imap_t imap; xfs_buf_t *bp; int error; - ASSERT(ip->i_blkno != 0); + ASSERT(ip->i_imap.im_blkno != 0); - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, buf_flags, 0); if (error) return error; @@ -298,7 +292,7 @@ xfs_itobp( return EAGAIN; } - *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); *bpp = bp; return 0; } @@ -799,9 +793,7 @@ xfs_inode_alloc( /* initialise the xfs inode */ ip->i_ino = ino; ip->i_mount = mp; - ip->i_blkno = 0; - ip->i_len = 0; - ip->i_boffset =0; + memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); ip->i_afp = NULL; memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); ip->i_flags = 0; @@ -857,7 +849,6 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; - xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -865,26 +856,22 @@ xfs_iread( return ENOMEM; /* - * Get pointers to the on-disk inode and the buffer containing it. + * Fill in the location information in the in-core inode. */ - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); + ip->i_imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, imap_flags); if (error) goto out_destroy_inode; + ASSERT(bno == 0 || bno == ip->i_imap.im_blkno); /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. + * Get pointers to the on-disk inode and the buffer containing it. */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - ASSERT(bno == 0 || bno == imap.im_blkno); - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, + XFS_BUF_LOCK, imap_flags); if (error) goto out_destroy_inode; - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * If we got something that isn't an inode it means someone @@ -1866,7 +1853,7 @@ xfs_iunlink( ASSERT(be32_to_cpu(dip->di_next_unlinked) == NULLAGINO); /* both on-disk, don't endian flip twice */ dip->di_next_unlinked = agi->agi_unlinked[bucket_index]; - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -1955,7 +1942,7 @@ xfs_iunlink_remove( ASSERT(next_agino != 0); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -2018,7 +2005,7 @@ xfs_iunlink_remove( ASSERT(next_agino != agino); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -3198,7 +3185,7 @@ xfs_iflush_int( } /* set *dip = inode's place in the buffer */ - dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * Clear i_update_core before copying out the data. Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:30:56.000000000 +0200 @@ -83,6 +83,16 @@ typedef struct xfs_ifork { } xfs_ifork_t; /* + * Inode location information. Stored in the inode and passed to + * xfs_imap_to_bp() to get a buffer and dinode for a given inode. + */ +struct xfs_imap { + xfs_daddr_t im_blkno; /* starting BB of inode chunk */ + ushort im_len; /* length in BBs of inode chunk */ + ushort im_boffset; /* inode offset in block in bytes */ +}; + +/* * This is the xfs in-core inode structure. * Most of the on-disk inode is embedded in the i_d field. * @@ -239,9 +249,7 @@ typedef struct xfs_inode { /* Inode location stuff */ xfs_ino_t i_ino; /* inode number (agno/agino)*/ - xfs_daddr_t i_blkno; /* blkno of inode buffer */ - ushort i_len; /* len of inode buffer */ - ushort i_boffset; /* off of inode in buffer */ + struct xfs_imap i_imap; /* location for xfs_imap() */ /* Extent information. */ xfs_ifork_t *i_afp; /* attribute fork pointer */ Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-25 13:30:56.000000000 +0200 @@ -942,9 +942,9 @@ xfs_inode_item_init( iip->ili_format.ilf_type = XFS_LI_INODE; iip->ili_format.ilf_ino = ip->i_ino; - iip->ili_format.ilf_blkno = ip->i_blkno; - iip->ili_format.ilf_len = ip->i_len; - iip->ili_format.ilf_boffset = ip->i_boffset; + iip->ili_format.ilf_blkno = ip->i_imap.im_blkno; + iip->ili_format.ilf_len = ip->i_imap.im_len; + iip->ili_format.ilf_boffset = ip->i_imap.im_boffset; } /* Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:30:56.000000000 +0200 @@ -69,7 +69,7 @@ xfs_bulkstat_one_iget( } ASSERT(ip != NULL); - ASSERT(ip->i_blkno != (xfs_daddr_t)0); + ASSERT(ip->i_imap.im_blkno != 0); dic = &ip->i_d; Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:30:56.000000000 +0200 @@ -36,7 +36,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" -#include "xfs_imap.h" #include "xfs_alloc.h" #include "xfs_ialloc.h" #include "xfs_log_priv.h" Index: linux-2.6-xfs/fs/xfs/xfs_imap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_imap.h 2008-10-25 13:30:03.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IMAP_H__ -#define __XFS_IMAP_H__ - -/* - * This is the structure passed to xfs_imap() to map - * an inode number to its on disk location. - */ -typedef struct xfs_imap { - xfs_daddr_t im_blkno; /* starting BB of inode chunk */ - uint im_len; /* length in BBs of inode chunk */ - ushort im_boffset; /* inode offset in block in bytes */ -} xfs_imap_t; - -#endif /* __XFS_IMAP_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:56.000000000 +0200 @@ -40,7 +40,6 @@ #include "xfs_rtalloc.h" #include "xfs_error.h" #include "xfs_bmap.h" -#include "xfs_imap.h" /* Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:31:11.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:31:17.000000000 +0200 @@ -20,7 +20,6 @@ #include "xfs_bit.h" #include "xfs_buf.h" #include "xfs_log.h" -#include "xfs_imap.h" #include "xfs_inum.h" #include "xfs_trans.h" #include "xfs_sb.h" Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:32:18.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:32:53.000000000 +0200 @@ -6559,9 +6559,9 @@ xfsidbg_xnode(xfs_inode_t *ip) ip->i_mount->m_ddev_targp->bt_dev, xfs_fmtino(ip->i_ino, ip->i_mount)); kdb_printf("blkno 0x%llx len 0x%x boffset 0x%x\n", - (long long) ip->i_blkno, - ip->i_len, - ip->i_boffset); + (long long) ip->i_imap.im_blkno, + ip->i_imap.im_len, + ip->i_imap.im_boffset); kdb_printf("transp 0x%p &itemp 0x%p\n", ip->i_transp, ip->i_itemp); -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZpwm027935 for ; Sun, 26 Oct 2008 13:35:51 -0700 X-ASG-Debug-ID: 1225053350-277701ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3942C12ABD96 for ; Sun, 26 Oct 2008 13:35:50 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 5KuW8W2yqnYbDh0s for ; Sun, 26 Oct 2008 13:35:50 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCL0-0002Wq-Ei for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:50 +0000 Date: Sun, 26 Oct 2008 16:35:50 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] move inode allocation out xfs_iread Subject: [PATCH 6/6] move inode allocation out xfs_iread Message-ID: <20081026203550.GZ4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-move-xfs_inode_alloc-out-of-xfs_iread User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053351 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Allocate the inode in xfs_iget_cache_miss and pass it into xfs_iread. This simplifies the error handling and allows xfs_iread to be shared with userspace which already uses these semantics. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:46:29.000000000 +0200 @@ -40,6 +40,82 @@ #include "xfs_utils.h" #include "xfs_trans_priv.h" #include "xfs_inode_item.h" +#include "xfs_bmap.h" +#include "xfs_btree_trace.h" +#include "xfs_dir2_trace.h" + + +/* + * Allocate and initialise an xfs_inode. + */ +STATIC struct xfs_inode * +xfs_inode_alloc( + struct xfs_mount *mp, + xfs_ino_t ino) +{ + struct xfs_inode *ip; + + /* + * if this didn't occur in transactions, we could use + * KM_MAYFAIL and return NULL here on ENOMEM. Set the + * code up to do this anyway. + */ + ip = kmem_zone_alloc(xfs_inode_zone, KM_SLEEP); + if (!ip) + return NULL; + + ASSERT(atomic_read(&ip->i_iocount) == 0); + ASSERT(atomic_read(&ip->i_pincount) == 0); + ASSERT(!spin_is_locked(&ip->i_flags_lock)); + ASSERT(completion_done(&ip->i_flush)); + + /* + * initialise the VFS inode here to get failures + * out of the way early. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) { + kmem_zone_free(xfs_inode_zone, ip); + return NULL; + } + + /* initialise the xfs inode */ + ip->i_ino = ino; + ip->i_mount = mp; + memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); + ip->i_afp = NULL; + memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); + ip->i_flags = 0; + ip->i_update_core = 0; + ip->i_update_size = 0; + ip->i_delayed_blks = 0; + memset(&ip->i_d, 0, sizeof(xfs_icdinode_t)); + ip->i_size = 0; + ip->i_new_size = 0; + + /* + * Initialize inode's trace buffers. + */ +#ifdef XFS_INODE_TRACE + ip->i_trace = ktrace_alloc(INODE_TRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_BMAP_TRACE + ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_BTREE_TRACE + ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_RW_TRACE + ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_ILOCK_TRACE + ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_DIR2_TRACE + ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); +#endif + + return ip; +} /* * Check the validity of the inode we just found it the cache @@ -143,13 +219,13 @@ xfs_iget_cache_miss( unsigned long first_index, mask; xfs_agino_t agino = XFS_INO_TO_AGINO(mp, ino); - /* - * Read the disk inode attributes into a new inode structure and get - * a new vnode for it. This should also initialize i_ino and i_mount. - */ - error = xfs_iread(mp, tp, ino, &ip, bno, flags); + ip = xfs_inode_alloc(mp, ino); + if (!ip) + return ENOMEM; + + error = xfs_iread(mp, tp, ip, bno, flags); if (error) - return error; + goto out_destroy; xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:47:05.000000000 +0200 @@ -758,119 +758,36 @@ xfs_dic2xflags( } /* - * Allocate and initialise an xfs_inode. - */ -STATIC struct xfs_inode * -xfs_inode_alloc( - struct xfs_mount *mp, - xfs_ino_t ino) -{ - struct xfs_inode *ip; - - /* - * if this didn't occur in transactions, we could use - * KM_MAYFAIL and return NULL here on ENOMEM. Set the - * code up to do this anyway. - */ - ip = kmem_zone_alloc(xfs_inode_zone, KM_SLEEP); - if (!ip) - return NULL; - - ASSERT(atomic_read(&ip->i_iocount) == 0); - ASSERT(atomic_read(&ip->i_pincount) == 0); - ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(completion_done(&ip->i_flush)); - - /* - * initialise the VFS inode here to get failures - * out of the way early. - */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { - kmem_zone_free(xfs_inode_zone, ip); - return NULL; - } - - /* initialise the xfs inode */ - ip->i_ino = ino; - ip->i_mount = mp; - memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); - ip->i_afp = NULL; - memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); - ip->i_flags = 0; - ip->i_update_core = 0; - ip->i_update_size = 0; - ip->i_delayed_blks = 0; - memset(&ip->i_d, 0, sizeof(xfs_icdinode_t)); - ip->i_size = 0; - ip->i_new_size = 0; - - /* - * Initialize inode's trace buffers. - */ -#ifdef XFS_INODE_TRACE - ip->i_trace = ktrace_alloc(INODE_TRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_BMAP_TRACE - ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_BTREE_TRACE - ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_RW_TRACE - ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_ILOCK_TRACE - ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_DIR2_TRACE - ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); -#endif - - return ip; -} - -/* - * Given a mount structure and an inode number, return a pointer - * to a newly allocated in-core inode corresponding to the given - * inode number. - * - * Initialize the inode's attributes and extent pointers if it - * already has them (it will not if the inode has no links). + * Read the disk inode attributes into the in-core inode structure. */ int xfs_iread( xfs_mount_t *mp, xfs_trans_t *tp, - xfs_ino_t ino, - xfs_inode_t **ipp, + xfs_inode_t *ip, xfs_daddr_t bno, - uint imap_flags) + uint iget_flags) { xfs_buf_t *bp; xfs_dinode_t *dip; - xfs_inode_t *ip; int error; - ip = xfs_inode_alloc(mp, ino); - if (!ip) - return ENOMEM; - /* * Fill in the location information in the in-core inode. */ ip->i_imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, imap_flags); + error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, iget_flags); if (error) - goto out_destroy_inode; + return error; ASSERT(bno == 0 || bno == ip->i_imap.im_blkno); /* * Get pointers to the on-disk inode and the buffer containing it. */ error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, - XFS_BUF_LOCK, imap_flags); + XFS_BUF_LOCK, iget_flags); if (error) - goto out_destroy_inode; + return error; dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* @@ -968,14 +885,8 @@ xfs_iread( * to worry about the inode being changed just because we released * the buffer. */ - xfs_trans_brelse(tp, bp); - *ipp = ip; - return 0; - out_brelse: xfs_trans_brelse(tp, bp); - out_destroy_inode: - xfs_destroy_inode(ip); return error; } Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:46:29.000000000 +0200 @@ -512,8 +512,8 @@ void xfs_ireclaim(xfs_inode_t *); /* * xfs_inode.c prototypes. */ -int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - xfs_inode_t **, xfs_daddr_t, uint); +int xfs_iread(struct xfs_mount *, struct xfs_trans *, + struct xfs_inode *, xfs_daddr_t, uint); int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, int, struct xfs_buf **, boolean_t *, xfs_inode_t **); -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZmgl027893 for ; Sun, 26 Oct 2008 13:35:49 -0700 X-ASG-Debug-ID: 1225053348-1b3200750000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7345A1486770 for ; Sun, 26 Oct 2008 13:35:48 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DhvnliqpC2CWYdkN for ; Sun, 26 Oct 2008 13:35:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCKy-0002Uj-2z for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:48 +0000 Date: Sun, 26 Oct 2008 16:35:48 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] kill the XFS_IMAP_BULKSTAT flag Subject: [PATCH 5/6] kill the XFS_IMAP_BULKSTAT flag Message-ID: <20081026203548.GY4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-XFS_IMAP_BULKSTAT User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053348 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Just pass down the XFS_IGET_* flags all the way down to xfs_imap instead of translating them mid-way. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:33:21.000000000 +0200 @@ -1228,7 +1228,7 @@ xfs_imap( ino != XFS_AGINO_TO_INO(mp, agno, agino)) { #ifdef DEBUG /* no diagnostics for bulkstat, ino comes from userspace */ - if (flags & XFS_IMAP_BULKSTAT) + if (flags & XFS_IGET_BULKSTAT) return XFS_ERROR(EINVAL); if (agno >= mp->m_sb.sb_agcount) { xfs_fs_cmn_err(CE_ALERT, mp, Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:15:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:40:06.000000000 +0200 @@ -147,8 +147,7 @@ xfs_iget_cache_miss( * Read the disk inode attributes into a new inode structure and get * a new vnode for it. This should also initialize i_ino and i_mount. */ - error = xfs_iread(mp, tp, ino, &ip, bno, - (flags & XFS_IGET_BULKSTAT) ? XFS_IMAP_BULKSTAT : 0); + error = xfs_iread(mp, tp, ino, &ip, bno, flags); if (error) return error; Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:40:06.000000000 +0200 @@ -136,7 +136,7 @@ xfs_imap_to_bp( struct xfs_imap *imap, xfs_buf_t **bpp, uint buf_flags, - uint imap_flags) + uint iget_flags) { int error; int i; @@ -178,7 +178,7 @@ xfs_imap_to_bp( if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { - if (imap_flags & XFS_IMAP_BULKSTAT) { + if (iget_flags & XFS_IGET_BULKSTAT) { xfs_trans_brelse(tp, bp); return XFS_ERROR(EINVAL); } Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:40:06.000000000 +0200 @@ -167,11 +167,6 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp and xfs_imap(). - */ -#define XFS_IMAP_BULKSTAT 0x1 - -/* * Fork handling. */ Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:33:21.000000000 +0200 @@ -595,7 +595,7 @@ xfs_bulkstat( error = xfs_inotobp(mp, NULL, ino, &dip, &bp, &offset, - XFS_IMAP_BULKSTAT); + XFS_IGET_BULKSTAT); if (!error) clustidx = offset / mp->m_sb.sb_inodesize; -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZqYH027976 for ; Sun, 26 Oct 2008 13:35:52 -0700 X-ASG-Debug-ID: 1225053352-1b3500870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 22DBB1486776 for ; Sun, 26 Oct 2008 13:35:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 96uVCdlO8x6t0goC for ; Sun, 26 Oct 2008 13:35:53 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCL2-0002Yo-Sm for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:52 +0000 Date: Sun, 26 Oct 2008 16:35:52 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 00/10] various clenaups Subject: [PATCH 00/10] various clenaups Message-ID: <20081026203552.GA4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053353 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Various random cleanups -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZv5A028033 for ; Sun, 26 Oct 2008 13:35:58 -0700 X-ASG-Debug-ID: 1225053357-2fbd015d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0536812ABE15 for ; Sun, 26 Oct 2008 13:35:57 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Xne4PZcCfKjWsA8f for ; Sun, 26 Oct 2008 13:35:57 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCL7-0002ZO-6i for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:57 +0000 Date: Sun, 26 Oct 2008 16:35:57 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 02/10] kill xfs_buf_iostart Subject: [PATCH 02/10] kill xfs_buf_iostart Message-ID: <20081026203557.GC4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-bdwrite_cleanup User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053358 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_buf_iostart is a "shared" helper for xfs_buf_read_flags, xfs_bawrite, and xfs_bdwrite - except that there isn't much shared code but rather special cases for each caller. So remove this function and move the functionality to the caller. xfs_bawrite and xfs_bdwrite are now big enough to be moved out of line and the xfs_buf_read_flags is moved into a new helper called _xfs_buf_read. (First sent on August 2nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-09-29 18:18:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-09-29 18:18:35.000000000 +0200 @@ -630,6 +630,29 @@ xfs_buf_get_flags( return NULL; } +STATIC int +_xfs_buf_read( + xfs_buf_t *bp, + xfs_buf_flags_t flags) +{ + int status; + + XB_TRACE(bp, "_xfs_buf_read", (unsigned long)flags); + + ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); + ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); + + bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ + XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | \ + XBF_READ_AHEAD | _XBF_RUN_QUEUES); + + status = xfs_buf_iorequest(bp); + if (!status && !(flags & XBF_ASYNC)) + status = xfs_buf_iowait(bp); + return status; +} + xfs_buf_t * xfs_buf_read_flags( xfs_buftarg_t *target, @@ -646,7 +669,7 @@ xfs_buf_read_flags( if (!XFS_BUF_ISDONE(bp)) { XB_TRACE(bp, "read", (unsigned long)flags); XFS_STATS_INC(xb_get_read); - xfs_buf_iostart(bp, flags); + _xfs_buf_read(bp, flags); } else if (flags & XBF_ASYNC) { XB_TRACE(bp, "read_async", (unsigned long)flags); /* @@ -1047,50 +1070,39 @@ xfs_buf_ioerror( XB_TRACE(bp, "ioerror", (unsigned long)error); } -/* - * Initiate I/O on a buffer, based on the flags supplied. - * The b_iodone routine in the buffer supplied will only be called - * when all of the subsidiary I/O requests, if any, have been completed. - */ int -xfs_buf_iostart( - xfs_buf_t *bp, - xfs_buf_flags_t flags) +xfs_bawrite( + void *mp, + struct xfs_buf *bp) { - int status = 0; + XB_TRACE(bp, "bawrite", 0); - XB_TRACE(bp, "iostart", (unsigned long)flags); + ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); - if (flags & XBF_DELWRI) { - bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC); - bp->b_flags |= flags & (XBF_DELWRI | XBF_ASYNC); - xfs_buf_delwri_queue(bp, 1); - return 0; - } + xfs_buf_delwri_dequeue(bp); - bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); - bp->b_flags |= flags & (XBF_READ | XBF_WRITE | XBF_ASYNC | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_READ | XBF_DELWRI | XBF_READ_AHEAD); + bp->b_flags |= (XBF_WRITE | XBF_ASYNC | _XBF_RUN_QUEUES); + + bp->b_fspriv3 = mp; + bp->b_strat = xfs_bdstrat_cb; + return xfs_bdstrat_cb(bp); +} - BUG_ON(bp->b_bn == XFS_BUF_DADDR_NULL); +void +xfs_bdwrite( + void *mp, + struct xfs_buf *bp) +{ + XB_TRACE(bp, "bdwrite", 0); - /* For writes allow an alternate strategy routine to precede - * the actual I/O request (which may not be issued at all in - * a shutdown situation, for example). - */ - status = (flags & XBF_WRITE) ? - xfs_buf_iostrategy(bp) : xfs_buf_iorequest(bp); + bp->b_strat = xfs_bdstrat_cb; + bp->b_fspriv3 = mp; - /* Wait for I/O if we are not an async request. - * Note: async I/O request completion will release the buffer, - * and that can already be done by this point. So using the - * buffer pointer from here on, after async I/O, is invalid. - */ - if (!status && !(flags & XBF_ASYNC)) - status = xfs_buf_iowait(bp); + bp->b_flags &= ~XBF_READ; + bp->b_flags |= (XBF_DELWRI | XBF_ASYNC); - return status; + xfs_buf_delwri_queue(bp, 1); } STATIC_INLINE void Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-09-29 18:18:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-09-29 18:18:35.000000000 +0200 @@ -206,9 +206,10 @@ extern void xfs_buf_lock(xfs_buf_t *); extern void xfs_buf_unlock(xfs_buf_t *); /* Buffer Read and Write Routines */ +extern int xfs_bawrite(void *mp, xfs_buf_t *bp); +extern void xfs_bdwrite(void *mp, xfs_buf_t *bp); extern void xfs_buf_ioend(xfs_buf_t *, int); extern void xfs_buf_ioerror(xfs_buf_t *, int); -extern int xfs_buf_iostart(xfs_buf_t *, xfs_buf_flags_t); extern int xfs_buf_iorequest(xfs_buf_t *); extern int xfs_buf_iowait(xfs_buf_t *); extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, xfs_caddr_t, @@ -358,14 +359,6 @@ extern void xfs_buf_trace(xfs_buf_t *, c #define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) -static inline int xfs_bawrite(void *mp, xfs_buf_t *bp) -{ - bp->b_fspriv3 = mp; - bp->b_strat = xfs_bdstrat_cb; - xfs_buf_delwri_dequeue(bp); - return xfs_buf_iostart(bp, XBF_WRITE | XBF_ASYNC | _XBF_RUN_QUEUES); -} - static inline void xfs_buf_relse(xfs_buf_t *bp) { if (!bp->b_relse) @@ -406,17 +399,6 @@ static inline int XFS_bwrite(xfs_buf_t * return error; } -/* - * No error can be returned from xfs_buf_iostart for delwri - * buffers as they are queued and no I/O is issued. - */ -static inline void xfs_bdwrite(void *mp, xfs_buf_t *bp) -{ - bp->b_strat = xfs_bdstrat_cb; - bp->b_fspriv3 = mp; - (void)xfs_buf_iostart(bp, XBF_DELWRI | XBF_ASYNC); -} - #define XFS_bdstrat(bp) xfs_buf_iorequest(bp) #define xfs_iowait(bp) xfs_buf_iowait(bp) Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:18:35.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:18:35.000000000 +0200 @@ -162,7 +162,8 @@ EXPORT_SYMBOL(xfs_file_operations); EXPORT_SYMBOL(xfs_invis_file_operations); EXPORT_SYMBOL(xfs_buf_delwri_dequeue); EXPORT_SYMBOL(_xfs_buf_find); -EXPORT_SYMBOL(xfs_buf_iostart); +EXPORT_SYMBOL(xfs_bawrite); +EXPORT_SYMBOL(xfs_bdwrite); EXPORT_SYMBOL(xfs_buf_ispin); #ifdef DEBUG EXPORT_SYMBOL(xfs_buf_lock_value); -- From owner-xfs@oss.sgi.com Sun Oct 26 13:35:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZtN3028013 for ; Sun, 26 Oct 2008 13:35:55 -0700 X-ASG-Debug-ID: 1225053355-119101220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 64B101486777 for ; Sun, 26 Oct 2008 13:35:55 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 2k6ZbWZmUQORpm6i for ; Sun, 26 Oct 2008 13:35:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCL5-0002Z8-20 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:55 +0000 Date: Sun, 26 Oct 2008 16:35:55 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/10] cleanup the inode reclaim path Subject: [PATCH 01/10] cleanup the inode reclaim path Message-ID: <20081026203555.GB4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-cleanup-xfs_ireclaim User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053355 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Merge xfs_iextract and xfs_idestory into xfs_ireclaim as they are never called individually. Also rewrite most comments in this area as they were serverly out of date. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:42:16.000000000 +0200 @@ -363,65 +363,109 @@ xfs_iput_new( IRELE(ip); } - /* - * This routine embodies the part of the reclaim code that pulls - * the inode from the inode hash table and the mount structure's - * inode list. - * This should only be called from xfs_reclaim(). + * This is called free all the memory associated with an inode. + * It must free the inode itself and any buffers allocated for + * if_extents/if_data and if_broot. It must also free the lock + * associated with the inode. + * + * Note: because we don't initialise everything on reallocation out + * of the zone, we must ensure we nullify everything correctly before + * freeing the structure. */ void -xfs_ireclaim(xfs_inode_t *ip) +xfs_ireclaim( + struct xfs_inode *ip) { - /* - * Remove from old hash list and mount list. - */ - XFS_STATS_INC(xs_ig_reclaims); + struct xfs_mount *mp = ip->i_mount; + struct xfs_perag *pag; - xfs_iextract(ip); + XFS_STATS_INC(xs_ig_reclaims); /* - * Here we do a spurious inode lock in order to coordinate with inode - * cache radix tree lookups. This is because the lookup can reference - * the inodes in the cache without taking references. We make that OK - * here by ensuring that we wait until the inode is unlocked after the - * lookup before we go ahead and free it. We get both the ilock and - * the iolock because the code may need to drop the ilock one but will - * still hold the iolock. + * Remove the inode from the per-AG radix tree. It doesn't matter + * if it was never added to it because radix_tree_delete can deal + * with that case just fine. */ - xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + pag = xfs_get_perag(mp, ip->i_ino); + write_lock(&pag->pag_ici_lock); + radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); + write_unlock(&pag->pag_ici_lock); + xfs_put_perag(mp, pag); /* - * Release dquots (and their references) if any. An inode may escape - * xfs_inactive and get here via vn_alloc->vn_reclaim path. + * Here we do an (almost) spurious inode lock in order to coordinate + * with inode cache radix tree lookups. This is because the lookup + * can reference the inodes in the cache without taking references. + * + * We make that OK here by ensuring that we wait until the inode is + * unlocked after the lookup before we go ahead and free it. We get + * both the ilock and the iolock because the code may need to drop the + * ilock one but will still hold the iolock. */ - XFS_QM_DQDETACH(ip->i_mount, ip); - + xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); /* - * Free all memory associated with the inode. + * Release dquots (and their references) if any. */ + XFS_QM_DQDETACH(ip->i_mount, ip); xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - xfs_idestroy(ip); -} -/* - * This routine removes an about-to-be-destroyed inode from - * all of the lists in which it is located with the exception - * of the behavior chain. - */ -void -xfs_iextract( - xfs_inode_t *ip) -{ - xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + switch (ip->i_d.di_mode & S_IFMT) { + case S_IFREG: + case S_IFDIR: + case S_IFLNK: + xfs_idestroy_fork(ip, XFS_DATA_FORK); + break; + } - write_lock(&pag->pag_ici_lock); - radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); - write_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + if (ip->i_afp) + xfs_idestroy_fork(ip, XFS_ATTR_FORK); + +#ifdef XFS_INODE_TRACE + ktrace_free(ip->i_trace); +#endif +#ifdef XFS_BMAP_TRACE + ktrace_free(ip->i_xtrace); +#endif +#ifdef XFS_BTREE_TRACE + ktrace_free(ip->i_btrace); +#endif +#ifdef XFS_RW_TRACE + ktrace_free(ip->i_rwtrace); +#endif +#ifdef XFS_ILOCK_TRACE + ktrace_free(ip->i_lock_trace); +#endif +#ifdef XFS_DIR2_TRACE + ktrace_free(ip->i_dir_trace); +#endif + if (ip->i_itemp) { + /* + * Only if we are shutting down the fs will we see an + * inode still in the AIL. If it is there, we should remove + * it to prevent a use-after-free from occurring. + */ + xfs_log_item_t *lip = &ip->i_itemp->ili_item; + struct xfs_ail *ailp = lip->li_ailp; - mp->m_ireclaims++; + ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || + XFS_FORCED_SHUTDOWN(ip->i_mount)); + if (lip->li_flags & XFS_LI_IN_AIL) { + spin_lock(&ailp->xa_lock); + if (lip->li_flags & XFS_LI_IN_AIL) + xfs_trans_ail_delete(ailp, lip); + else + spin_unlock(&ailp->xa_lock); + } + xfs_inode_item_destroy(ip); + ip->i_itemp = NULL; + } + /* asserts to verify all state is correct here */ + ASSERT(atomic_read(&ip->i_iocount) == 0); + ASSERT(atomic_read(&ip->i_pincount) == 0); + ASSERT(!spin_is_locked(&ip->i_flags_lock)); + ASSERT(completion_done(&ip->i_flush)); + kmem_zone_free(xfs_inode_zone, ip); } /* Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:42:16.000000000 +0200 @@ -531,8 +531,6 @@ int xfs_itruncate_finish(struct xfs_tra xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); -void xfs_idestroy(xfs_inode_t *); -void xfs_iextract(xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); void xfs_ipin(xfs_inode_t *); void xfs_iunpin(xfs_inode_t *); Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-25 13:42:16.000000000 +0200 @@ -241,7 +241,6 @@ typedef struct xfs_mount { xfs_agnumber_t m_agirotor; /* last ag dir inode alloced */ spinlock_t m_agirotor_lock;/* .. and lock protecting it */ xfs_agnumber_t m_maxagi; /* highest inode alloc group */ - uint m_ireclaims; /* count of calls to reclaim*/ uint m_readio_log; /* min read size log bytes */ uint m_readio_blocks; /* min read size blocks */ uint m_writeio_log; /* min write size log bytes */ Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:41:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:42:16.000000000 +0200 @@ -2664,78 +2664,6 @@ xfs_idestroy_fork( } /* - * This is called free all the memory associated with an inode. - * It must free the inode itself and any buffers allocated for - * if_extents/if_data and if_broot. It must also free the lock - * associated with the inode. - * - * Note: because we don't initialise everything on reallocation out - * of the zone, we must ensure we nullify everything correctly before - * freeing the structure. - */ -void -xfs_idestroy( - xfs_inode_t *ip) -{ - switch (ip->i_d.di_mode & S_IFMT) { - case S_IFREG: - case S_IFDIR: - case S_IFLNK: - xfs_idestroy_fork(ip, XFS_DATA_FORK); - break; - } - if (ip->i_afp) - xfs_idestroy_fork(ip, XFS_ATTR_FORK); - -#ifdef XFS_INODE_TRACE - ktrace_free(ip->i_trace); -#endif -#ifdef XFS_BMAP_TRACE - ktrace_free(ip->i_xtrace); -#endif -#ifdef XFS_BTREE_TRACE - ktrace_free(ip->i_btrace); -#endif -#ifdef XFS_RW_TRACE - ktrace_free(ip->i_rwtrace); -#endif -#ifdef XFS_ILOCK_TRACE - ktrace_free(ip->i_lock_trace); -#endif -#ifdef XFS_DIR2_TRACE - ktrace_free(ip->i_dir_trace); -#endif - if (ip->i_itemp) { - /* - * Only if we are shutting down the fs will we see an - * inode still in the AIL. If it is there, we should remove - * it to prevent a use-after-free from occurring. - */ - xfs_log_item_t *lip = &ip->i_itemp->ili_item; - struct xfs_ail *ailp = lip->li_ailp; - - ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || - XFS_FORCED_SHUTDOWN(ip->i_mount)); - if (lip->li_flags & XFS_LI_IN_AIL) { - spin_lock(&ailp->xa_lock); - if (lip->li_flags & XFS_LI_IN_AIL) - xfs_trans_ail_delete(ailp, lip); - else - spin_unlock(&ailp->xa_lock); - } - xfs_inode_item_destroy(ip); - ip->i_itemp = NULL; - } - /* asserts to verify all state is correct here */ - ASSERT(atomic_read(&ip->i_iocount) == 0); - ASSERT(atomic_read(&ip->i_pincount) == 0); - ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(completion_done(&ip->i_flush)); - kmem_zone_free(xfs_inode_zone, ip); -} - - -/* * Increment the pin count of the given buffer. * This value is protected by ipinlock spinlock in the mount structure. */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:42:16.000000000 +0200 @@ -214,8 +214,6 @@ EXPORT_SYMBOL(xfs_error_trap); EXPORT_SYMBOL(xfs_file_last_byte); EXPORT_SYMBOL(xfs_freesb); EXPORT_SYMBOL(xfs_fs_cmn_err); -EXPORT_SYMBOL(xfs_idestroy); -EXPORT_SYMBOL(xfs_iextract); EXPORT_SYMBOL(xfs_iext_add); EXPORT_SYMBOL(xfs_iext_destroy); EXPORT_SYMBOL(xfs_iext_get_ext); Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:42:16.000000000 +0200 @@ -6519,7 +6519,6 @@ xfsidbg_xmount(xfs_mount_t *mp) mp->m_rtdev_targp ? mp->m_rtdev_targp->bt_dev : 0); kdb_printf("bsize %d agfrotor %d xfs_rotorstep %d agirotor %d\n", mp->m_bsize, mp->m_agfrotor, xfs_rotorstep, mp->m_agirotor); - kdb_printf("ireclaims 0x%x\n", mp->m_ireclaims); kdb_printf("readio_log 0x%x readio_blocks 0x%x ", mp->m_readio_log, mp->m_readio_blocks); kdb_printf("writeio_log 0x%x writeio_blocks 0x%x\n", -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_65 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKa1hK028093 for ; Sun, 26 Oct 2008 13:36:01 -0700 X-ASG-Debug-ID: 1225053361-36f500d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0486812ABE7D for ; Sun, 26 Oct 2008 13:36:01 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 0kt9tDSYWDZ4ykXr for ; Sun, 26 Oct 2008 13:36:01 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLB-0002Zo-AU for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:01 +0000 Date: Sun, 26 Oct 2008 16:36:01 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/10] reduce l_icloglock roundtrips Subject: [PATCH 04/10] reduce l_icloglock roundtrips Message-ID: <20081026203601.GE4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-reduce-log-lock-roundtrips User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053362 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- All but one caller of xlog_state_want_sync drop and re-acquire l_icloglock around the call to it, just so that xlog_state_want_sync can acquire and drop it. Move all lock operation out of l_icloglock and assert that the lock is held when it is called. Note that it would make sense to extende this scheme to xlog_state_release_iclog, but the locking in there is more complicated and we'd like to keep the atomic_dec_and_lock optmization for those callers not having l_icloglock yet. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-09-29 10:54:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-09-29 10:58:23.000000000 +0200 @@ -724,8 +724,8 @@ xfs_log_unmount_write(xfs_mount_t *mp) spin_lock(&log->l_icloglock); iclog = log->l_iclog; atomic_inc(&iclog->ic_refcnt); - spin_unlock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); error = xlog_state_release_iclog(log, iclog); spin_lock(&log->l_icloglock); @@ -762,9 +762,9 @@ xfs_log_unmount_write(xfs_mount_t *mp) spin_lock(&log->l_icloglock); iclog = log->l_iclog; atomic_inc(&iclog->ic_refcnt); - spin_unlock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); error = xlog_state_release_iclog(log, iclog); spin_lock(&log->l_icloglock); @@ -1957,7 +1957,9 @@ xlog_write(xfs_mount_t * mp, if (iclog->ic_size - log_offset <= sizeof(xlog_op_header_t)) { xlog_state_finish_copy(log, iclog, record_cnt, data_cnt); record_cnt = data_cnt = 0; + spin_lock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); if (commit_iclog) { ASSERT(flags & XLOG_COMMIT_TRANS); *commit_iclog = iclog; @@ -3166,7 +3168,7 @@ try_again: STATIC void xlog_state_want_sync(xlog_t *log, xlog_in_core_t *iclog) { - spin_lock(&log->l_icloglock); + ASSERT(spin_is_locked(&log->l_icloglock)); if (iclog->ic_state == XLOG_STATE_ACTIVE) { xlog_state_switch_iclogs(log, iclog, 0); @@ -3174,10 +3176,7 @@ xlog_state_want_sync(xlog_t *log, xlog_i ASSERT(iclog->ic_state & (XLOG_STATE_WANT_SYNC|XLOG_STATE_IOERROR)); } - - spin_unlock(&log->l_icloglock); -} /* xlog_state_want_sync */ - +} /***************************************************************************** -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:01 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKZwxF028059 for ; Sun, 26 Oct 2008 13:35:59 -0700 X-ASG-Debug-ID: 1225053359-7fc201eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CEE8148677B for ; Sun, 26 Oct 2008 13:35:59 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lBjWDkLiPu6UCGMn for ; Sun, 26 Oct 2008 13:35:59 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCL9-0002ZZ-8O for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:35:59 +0000 Date: Sun, 26 Oct 2008 16:35:59 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/10] stop using igrab in xfs_vn_link Subject: [PATCH 03/10] stop using igrab in xfs_vn_link Message-ID: <20081026203559.GD4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-stop-using-igrab-in-xfs_link User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053359 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- ->link is guranteed to get an already reference inode passed so we can do a simple increment of i_count instead of using igrab and thus avoid banging on the global inode_lock. This is what most filesystems already do. Also move the increment after the call to xfs_link to simplify error handling. (First sent on July 26th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:13:24.000000000 +0200 @@ -366,21 +366,18 @@ xfs_vn_link( struct inode *dir, struct dentry *dentry) { - struct inode *inode; /* inode of guy being linked to */ + struct inode *inode = old_dentry->d_inode; struct xfs_name name; int error; - inode = old_dentry->d_inode; xfs_dentry_to_name(&name, dentry); - igrab(inode); error = xfs_link(XFS_I(dir), XFS_I(inode), &name); - if (unlikely(error)) { - iput(inode); + if (unlikely(error)) return -error; - } xfs_iflags_set(XFS_I(dir), XFS_IMODIFIED); + atomic_inc(&inode->i_count); d_instantiate(dentry, inode); return 0; } -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKa3Vc028133 for ; Sun, 26 Oct 2008 13:36:03 -0700 X-ASG-Debug-ID: 1225053363-2f5601830000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E33A512ABE7D for ; Sun, 26 Oct 2008 13:36:03 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ibWaNwF2gGb5Lg5l for ; Sun, 26 Oct 2008 13:36:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLD-0002a4-Ak for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:03 +0000 Date: Sun, 26 Oct 2008 16:36:03 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/10] remove dead code from sv_t implementation Subject: [PATCH 05/10] remove dead code from sv_t implementation Message-ID: <20081026203603.GF4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-simplify-sv User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053363 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/sv.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/sv.h 2008-09-29 10:45:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/sv.h 2008-09-29 10:49:16.000000000 +0200 @@ -32,23 +32,15 @@ typedef struct sv_s { wait_queue_head_t waiters; } sv_t; -#define SV_FIFO 0x0 /* sv_t is FIFO type */ -#define SV_LIFO 0x2 /* sv_t is LIFO type */ -#define SV_PRIO 0x4 /* sv_t is PRIO type */ -#define SV_KEYED 0x6 /* sv_t is KEYED type */ -#define SV_DEFAULT SV_FIFO - - -static inline void _sv_wait(sv_t *sv, spinlock_t *lock, int state, - unsigned long timeout) +static inline void _sv_wait(sv_t *sv, spinlock_t *lock) { DECLARE_WAITQUEUE(wait, current); add_wait_queue_exclusive(&sv->waiters, &wait); - __set_current_state(state); + __set_current_state(TASK_UNINTERRUPTIBLE); spin_unlock(lock); - schedule_timeout(timeout); + schedule(); remove_wait_queue(&sv->waiters, &wait); } @@ -58,13 +50,7 @@ static inline void _sv_wait(sv_t *sv, sp #define sv_destroy(sv) \ /*NOTHING*/ #define sv_wait(sv, pri, lock, s) \ - _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT) -#define sv_wait_sig(sv, pri, lock, s) \ - _sv_wait(sv, lock, TASK_INTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT) -#define sv_timedwait(sv, pri, lock, s, svf, ts, rts) \ - _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, timespec_to_jiffies(ts)) -#define sv_timedwait_sig(sv, pri, lock, s, svf, ts, rts) \ - _sv_wait(sv, lock, TASK_INTERRUPTIBLE, timespec_to_jiffies(ts)) + _sv_wait(sv, lock) #define sv_signal(sv) \ wake_up(&(sv)->waiters) #define sv_broadcast(sv) \ -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKa5mi028170 for ; Sun, 26 Oct 2008 13:36:06 -0700 X-ASG-Debug-ID: 1225053365-2fbe015e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1529212ABE99 for ; Sun, 26 Oct 2008 13:36:05 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id XIv3nRJ7HfN5ageU for ; Sun, 26 Oct 2008 13:36:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLF-0002aJ-G9 for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:05 +0000 Date: Sun, 26 Oct 2008 16:36:05 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/10] kill dead quota flags Subject: [PATCH 06/10] kill dead quota flags Message-ID: <20081026203605.GG4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-dead-quota-flags User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053366 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_quota.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_quota.h 2008-08-14 18:27:11.000000000 -0300 +++ linux-2.6-xfs/fs/xfs/xfs_quota.h 2008-08-14 18:28:04.000000000 -0300 @@ -84,11 +84,9 @@ typedef struct xfs_dqblk { #define XFS_DQ_USER 0x0001 /* a user quota */ #define XFS_DQ_PROJ 0x0002 /* project quota */ #define XFS_DQ_GROUP 0x0004 /* a group quota */ -#define XFS_DQ_FLOCKED 0x0008 /* flush lock taken */ -#define XFS_DQ_DIRTY 0x0010 /* dquot is dirty */ -#define XFS_DQ_WANT 0x0020 /* for lookup/reclaim race */ -#define XFS_DQ_INACTIVE 0x0040 /* dq off mplist & hashlist */ -#define XFS_DQ_MARKER 0x0080 /* sentinel */ +#define XFS_DQ_DIRTY 0x0008 /* dquot is dirty */ +#define XFS_DQ_WANT 0x0010 /* for lookup/reclaim race */ +#define XFS_DQ_INACTIVE 0x0020 /* dq off mplist & hashlist */ #define XFS_DQ_ALLTYPES (XFS_DQ_USER|XFS_DQ_PROJ|XFS_DQ_GROUP) Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-08-14 18:27:23.000000000 -0300 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-08-14 18:27:50.000000000 -0300 @@ -6644,11 +6644,9 @@ static char *xdq_flags[] = { "USER", /* XFS_DQ_USER */ "PROJ", /* XFS_DQ_PROJ */ "GROUP", /* XFS_DQ_GROUP */ - "FLKD", /* XFS_DQ_FLOCKED */ "DIRTY", /* XFS_DQ_DIRTY */ "WANT", /* XFS_DQ_WANT */ "INACT", /* XFS_DQ_INACTIVE */ - "MARKER", /* XFS_DQ_MARKER */ NULL }; -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKaCaE028253 for ; Sun, 26 Oct 2008 13:36:12 -0700 X-ASG-Debug-ID: 1225053372-3dd400150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4AE112ABE9A for ; Sun, 26 Oct 2008 13:36:12 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id OtEEM2srhC4X3sP2 for ; Sun, 26 Oct 2008 13:36:12 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLM-0002iy-2D for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:12 +0000 Date: Sun, 26 Oct 2008 16:36:12 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/10] remove unused m_inode_quiesce member from struct xfs_mount Subject: [PATCH 09/10] remove unused m_inode_quiesce member from struct xfs_mount Message-ID: <20081026203612.GJ4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-m_inode_quiesce User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053372 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- (First sent on July 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-22 09:33:02.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-22 09:43:34.000000000 +0200 @@ -303,7 +303,6 @@ typedef struct xfs_mount { int m_attr_magicpct;/* 37% of the blocksize */ int m_dir_magicpct; /* 37% of the dir blocksize */ __uint8_t m_mk_sharedro; /* mark shared ro on unmount */ - __uint8_t m_inode_quiesce;/* call quiesce on new inodes. */ __uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ int m_dirblksize; /* directory block sz--bytes */ Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-22 09:40:15.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-22 09:43:08.000000000 +0200 @@ -6523,8 +6523,8 @@ xfsidbg_xmount(xfs_mount_t *mp) kdb_printf("dalign %d swidth %d sinoalign %d attr_magicpct %d dir_magicpct %d\n", mp->m_dalign, mp->m_swidth, mp->m_sinoalign, mp->m_attr_magicpct, mp->m_dir_magicpct); - kdb_printf("mk_sharedro %d inode_quiesce %d sectbb_log %d\n", - mp->m_mk_sharedro, mp->m_inode_quiesce, mp->m_sectbb_log); + kdb_printf("mk_sharedro %d sectbb_log %d\n", + mp->m_mk_sharedro, mp->m_sectbb_log); kdb_printf("dirblkfsbs %d\n", mp->m_dirblkfsbs); kdb_printf("dirblksize %d dirdatablk 0x%Lx dirleafblk 0x%Lx dirfreeblk 0x%Lx\n", mp->m_dirblksize, -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKa8CY028188 for ; Sun, 26 Oct 2008 13:36:08 -0700 X-ASG-Debug-ID: 1225053368-078f01e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B24F2548F58 for ; Sun, 26 Oct 2008 13:36:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 7iH3P02mnRGXgc2H for ; Sun, 26 Oct 2008 13:36:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLH-0002aW-UO for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:07 +0000 Date: Sun, 26 Oct 2008 16:36:07 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/10] cleanup xfs_sb.h feature flag helpers Subject: [PATCH 07/10] cleanup xfs_sb.h feature flag helpers Message-ID: <20081026203607.GH4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-cleanup-sb.h-helpers" User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053368 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The various inlines in xfs_sb.h that deal with the superblock version and fature flags were converted from macros a while ago, and this show by the odd coding style full of useless braces and backslashes and the avoidance of conditionals. Clean these up to look like normal C code. (First sent on August 2nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_sb.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_sb.h 2008-07-24 22:27:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_sb.h 2008-07-24 22:47:12.000000000 +0200 @@ -296,30 +296,34 @@ typedef enum { #define XFS_SB_VERSION_NUM(sbp) ((sbp)->sb_versionnum & XFS_SB_VERSION_NUMBITS) -#ifdef __KERNEL__ static inline int xfs_sb_good_version(xfs_sb_t *sbp) { - return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \ - (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \ - ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \ - (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \ - (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN))); -} + /* We always support version 1-3 */ + if (sbp->sb_versionnum >= XFS_SB_VERSION_1 && + sbp->sb_versionnum <= XFS_SB_VERSION_3) + return 1; + + /* We support version 4 if all feature bits are supported */ + if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) { + if ((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || + ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && + (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) + return 0; + +#ifdef __KERNEL__ + if (sbp->sb_shared_vn > XFS_SB_MAX_SHARED_VN) + return 0; #else -static inline int xfs_sb_good_version(xfs_sb_t *sbp) -{ - return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \ - (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \ - ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \ - (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \ - (!(sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) || \ - (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN)))); + if ((sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) && + sbp->sb_shared_vn > XFS_SB_MAX_SHARED_VN) + return 0; +#endif + + return 1; + } + + return 0; } -#endif /* __KERNEL__ */ /* * Detect a mismatched features2 field. Older kernels read/wrote @@ -332,123 +336,127 @@ static inline int xfs_sb_has_mismatched_ static inline unsigned xfs_sb_version_tonew(unsigned v) { - return ((((v) == XFS_SB_VERSION_1) ? \ - 0 : \ - (((v) == XFS_SB_VERSION_2) ? \ - XFS_SB_VERSION_ATTRBIT : \ - (XFS_SB_VERSION_ATTRBIT | XFS_SB_VERSION_NLINKBIT))) | \ - XFS_SB_VERSION_4); + if (v == XFS_SB_VERSION_1) + return XFS_SB_VERSION_4; + + if (v == XFS_SB_VERSION_2) + return XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT; + + return XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT | + XFS_SB_VERSION_NLINKBIT; } static inline unsigned xfs_sb_version_toold(unsigned v) { - return (((v) & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) ? \ - 0 : \ - (((v) & XFS_SB_VERSION_NLINKBIT) ? \ - XFS_SB_VERSION_3 : \ - (((v) & XFS_SB_VERSION_ATTRBIT) ? \ - XFS_SB_VERSION_2 : \ - XFS_SB_VERSION_1))); + if (v & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) + return 0; + if (v & XFS_SB_VERSION_NLINKBIT) + return XFS_SB_VERSION_3; + if (v & XFS_SB_VERSION_ATTRBIT) + return XFS_SB_VERSION_2; + return XFS_SB_VERSION_1; } static inline int xfs_sb_version_hasattr(xfs_sb_t *sbp) { - return ((sbp)->sb_versionnum == XFS_SB_VERSION_2) || \ - ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ATTRBIT)); + return sbp->sb_versionnum == XFS_SB_VERSION_2 || + sbp->sb_versionnum == XFS_SB_VERSION_3 || + (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_ATTRBIT)); } static inline void xfs_sb_version_addattr(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = (((sbp)->sb_versionnum == XFS_SB_VERSION_1) ? \ - XFS_SB_VERSION_2 : \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_ATTRBIT) : \ - (XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT))); + if (sbp->sb_versionnum == XFS_SB_VERSION_1) + sbp->sb_versionnum = XFS_SB_VERSION_2; + else if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) + sbp->sb_versionnum |= XFS_SB_VERSION_ATTRBIT; + else + sbp->sb_versionnum = XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT; } static inline int xfs_sb_version_hasnlink(xfs_sb_t *sbp) { - return ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_NLINKBIT)); + return sbp->sb_versionnum == XFS_SB_VERSION_3 || + (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_NLINKBIT)); } static inline void xfs_sb_version_addnlink(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = ((sbp)->sb_versionnum <= XFS_SB_VERSION_2 ? \ - XFS_SB_VERSION_3 : \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_NLINKBIT)); + if (sbp->sb_versionnum <= XFS_SB_VERSION_2) + sbp->sb_versionnum = XFS_SB_VERSION_3; + else + sbp->sb_versionnum |= XFS_SB_VERSION_NLINKBIT; } static inline int xfs_sb_version_hasquota(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_QUOTABIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_QUOTABIT); } static inline void xfs_sb_version_addquota(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = \ - (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_QUOTABIT) : \ - (xfs_sb_version_tonew((sbp)->sb_versionnum) | \ - XFS_SB_VERSION_QUOTABIT)); + if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) + sbp->sb_versionnum |= XFS_SB_VERSION_QUOTABIT; + else + sbp->sb_versionnum = xfs_sb_version_tonew(sbp->sb_versionnum) | + XFS_SB_VERSION_QUOTABIT; } static inline int xfs_sb_version_hasalign(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ALIGNBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_ALIGNBIT); } static inline int xfs_sb_version_hasdalign(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DALIGNBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT); } static inline int xfs_sb_version_hasshared(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT); } static inline int xfs_sb_version_hasdirv2(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DIRV2BIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT); } static inline int xfs_sb_version_haslogv2(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_LOGV2BIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_LOGV2BIT); } static inline int xfs_sb_version_hasextflgbit(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT); } static inline int xfs_sb_version_hassector(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_SECTORBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_SECTORBIT); } static inline int xfs_sb_version_hasasciici(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && (sbp->sb_versionnum & XFS_SB_VERSION_BORGBIT); } static inline int xfs_sb_version_hasmorebits(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT); } /* @@ -463,22 +471,20 @@ static inline int xfs_sb_version_hasmore static inline int xfs_sb_version_haslazysbcount(xfs_sb_t *sbp) { - return (xfs_sb_version_hasmorebits(sbp) && \ - ((sbp)->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT)); + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT); } static inline int xfs_sb_version_hasattr2(xfs_sb_t *sbp) { - return (xfs_sb_version_hasmorebits(sbp)) && \ - ((sbp)->sb_features2 & XFS_SB_VERSION2_ATTR2BIT); + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_ATTR2BIT); } static inline void xfs_sb_version_addattr2(xfs_sb_t *sbp) { - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_MOREBITSBIT), \ - ((sbp)->sb_features2 = \ - ((sbp)->sb_features2 | XFS_SB_VERSION2_ATTR2BIT))); + sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT; + sbp->sb_features2 |= XFS_SB_VERSION2_ATTR2BIT; } static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp) -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKaEgQ028296 for ; Sun, 26 Oct 2008 13:36:15 -0700 X-ASG-Debug-ID: 1225053374-1190012d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0B69D1486781 for ; Sun, 26 Oct 2008 13:36:14 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IlLYzXvlg0hqZe5s for ; Sun, 26 Oct 2008 13:36:14 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLO-0002xj-OA for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:14 +0000 Date: Sun, 26 Oct 2008 16:36:14 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/10] remove leftovers of shared read-only support Subject: [PATCH 10/10] remove leftovers of shared read-only support Message-ID: <20081026203614.GK4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-m_mk_sharedro User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053375 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- We never supported shared read-only filesystems, so remove the dead code left over from IRIX for it. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-25 13:00:27.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-25 13:18:54.000000000 +0200 @@ -1353,24 +1353,6 @@ xfs_log_sbcount( return error; } -STATIC void -xfs_mark_shared_ro( - xfs_mount_t *mp, - xfs_buf_t *bp) -{ - xfs_dsb_t *sb = XFS_BUF_TO_SBP(bp); - __uint16_t version; - - if (!(sb->sb_flags & XFS_SBF_READONLY)) - sb->sb_flags |= XFS_SBF_READONLY; - - version = be16_to_cpu(sb->sb_versionnum); - if ((version & XFS_SB_VERSION_NUMBITS) != XFS_SB_VERSION_4 || - !(version & XFS_SB_VERSION_SHAREDBIT)) - version |= XFS_SB_VERSION_SHAREDBIT; - sb->sb_versionnum = cpu_to_be16(version); -} - int xfs_unmountfs_writesb(xfs_mount_t *mp) { @@ -1386,12 +1368,6 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) sbp = xfs_getsb(mp, 0); - /* - * mark shared-readonly if desired - */ - if (mp->m_mk_sharedro) - xfs_mark_shared_ro(mp, sbp); - XFS_BUF_UNDONE(sbp); XFS_BUF_UNREAD(sbp); XFS_BUF_UNDELAYWRITE(sbp); @@ -1403,8 +1379,6 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) if (error) xfs_ioerror_alert("xfs_unmountfs_writesb", mp, sbp, XFS_BUF_ADDR(sbp)); - if (error && mp->m_mk_sharedro) - xfs_fs_cmn_err(CE_ALERT, mp, "Superblock write error detected while unmounting. Filesystem may not be marked shared readonly"); xfs_buf_relse(sbp); } return error; Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-25 13:18:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-25 13:18:54.000000000 +0200 @@ -302,7 +302,6 @@ typedef struct xfs_mount { int m_sinoalign; /* stripe unit inode alignment */ int m_attr_magicpct;/* 37% of the blocksize */ int m_dir_magicpct; /* 37% of the dir blocksize */ - __uint8_t m_mk_sharedro; /* mark shared ro on unmount */ __uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ int m_dirblksize; /* directory block sz--bytes */ Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:18:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:18:54.000000000 +0200 @@ -6523,8 +6523,7 @@ xfsidbg_xmount(xfs_mount_t *mp) kdb_printf("dalign %d swidth %d sinoalign %d attr_magicpct %d dir_magicpct %d\n", mp->m_dalign, mp->m_swidth, mp->m_sinoalign, mp->m_attr_magicpct, mp->m_dir_magicpct); - kdb_printf("mk_sharedro %d sectbb_log %d\n", - mp->m_mk_sharedro, mp->m_sectbb_log); + kdb_printf("sectbb_log %d\n", mp->m_sectbb_log); kdb_printf("dirblkfsbs %d\n", mp->m_dirblkfsbs); kdb_printf("dirblksize %d dirdatablk 0x%Lx dirleafblk 0x%Lx dirfreeblk 0x%Lx\n", mp->m_dirblksize, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:20:10.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:20:16.000000000 +0200 @@ -1384,35 +1384,6 @@ xfs_finish_flags( return XFS_ERROR(EROFS); } -#if 0 /* shared mounts were never supported on Linux */ - /* - * check for shared mount. - */ - if (ap->flags & XFSMNT_SHARED) { - if (!xfs_sb_version_hasshared(&mp->m_sb)) - return XFS_ERROR(EINVAL); - - /* - * For IRIX 6.5, shared mounts must have the shared - * version bit set, have the persistent readonly - * field set, must be version 0 and can only be mounted - * read-only. - */ - if (!ronly || !(mp->m_sb.sb_flags & XFS_SBF_READONLY) || - (mp->m_sb.sb_shared_vn != 0)) - return XFS_ERROR(EINVAL); - - mp->m_flags |= XFS_MOUNT_SHARED; - - /* - * Shared XFS V0 can't deal with DMI. Return EINVAL. - */ - if (mp->m_sb.sb_shared_vn == 0 && - (mp->m_flags & XFS_MOUNT_DMAPI)) - return XFS_ERROR(EINVAL); - } -#endif - return 0; } -- From owner-xfs@oss.sgi.com Sun Oct 26 13:36:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QKaAAq028235 for ; Sun, 26 Oct 2008 13:36:11 -0700 X-ASG-Debug-ID: 1225053370-273d020d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C91C812ABE9A for ; Sun, 26 Oct 2008 13:36:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 9oEyzfdgOLEAEFgl for ; Sun, 26 Oct 2008 13:36:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuCLJ-0002am-Sq for xfs@oss.sgi.com; Sun, 26 Oct 2008 20:36:10 +0000 Date: Sun, 26 Oct 2008 16:36:09 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/10] kill dead inode flags Subject: [PATCH 08/10] kill dead inode flags Message-ID: <20081026203609.GI4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-dead-inode-flags User-Agent: quilt/0.46-1 Sender: Christoph Hellwig X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225053370 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8796 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- There are a few inode flags around that aren't used anywhere, so remove them. Also update xfsidbg to display all used inode flags correctly. (First sent on July 23nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:15:42.000000000 +0200 @@ -2494,7 +2494,6 @@ xfs_dm_punch_hole( /* Let threads in send_data_event know we punched the file. */ ip->i_d.di_dmstate++; xfs_iunlock(ip, XFS_IOLOCK_EXCL); - xfs_iflags_set(ip, XFS_IMODIFIED); up_and_out: up_rw_sems(inode, DM_SEM_FLAG_WR); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_aops.c 2008-10-25 13:15:42.000000000 +0200 @@ -317,14 +317,9 @@ xfs_map_blocks( xfs_iomap_t *mapp, int flags) { - xfs_inode_t *ip = XFS_I(inode); - int error, nmaps = 1; + int nmaps = 1; - error = xfs_iomap(ip, offset, count, - flags, mapp, &nmaps); - if (!error && (flags & (BMAPI_WRITE|BMAPI_ALLOCATE))) - xfs_iflags_set(ip, XFS_IMODIFIED); - return -error; + return -xfs_iomap(XFS_I(inode), offset, count, flags, mapp, &nmaps); } STATIC_INLINE int Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2008-10-25 13:11:38.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c 2008-10-25 13:15:42.000000000 +0200 @@ -434,11 +434,8 @@ xfs_file_ioctl( unsigned int cmd, unsigned long p) { - int error; struct inode *inode = filp->f_path.dentry->d_inode; - error = xfs_ioctl(XFS_I(inode), filp, 0, cmd, (void __user *)p); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); /* NOTE: some of the ioctl's return positive #'s as a * byte count indicating success, such as @@ -446,7 +443,7 @@ xfs_file_ioctl( * like most other routines. This means true * errors need to be returned as a negative value. */ - return error; + return xfs_ioctl(XFS_I(inode), filp, 0, cmd, (void __user *)p); } STATIC long @@ -455,11 +452,8 @@ xfs_file_ioctl_invis( unsigned int cmd, unsigned long p) { - int error; struct inode *inode = filp->f_path.dentry->d_inode; - error = xfs_ioctl(XFS_I(inode), filp, IO_INVIS, cmd, (void __user *)p); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); /* NOTE: some of the ioctl's return positive #'s as a * byte count indicating success, such as @@ -467,7 +461,7 @@ xfs_file_ioctl_invis( * like most other routines. This means true * errors need to be returned as a negative value. */ - return error; + return xfs_ioctl(XFS_I(inode), filp, IO_INVIS, cmd, (void __user *)p); } #ifdef HAVE_DMAPI Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:13:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:15:54.000000000 +0200 @@ -158,8 +158,6 @@ xfs_init_security( } error = xfs_attr_set(ip, name, value, length, ATTR_SECURE); - if (!error) - xfs_iflags_set(ip, XFS_IMODIFIED); kfree(name); kfree(value); @@ -260,7 +258,6 @@ xfs_vn_mknod( error = _ACL_INHERIT(inode, mode, default_acl); if (unlikely(error)) goto out_cleanup_inode; - xfs_iflags_set(ip, XFS_IMODIFIED); _ACL_FREE(default_acl); } @@ -376,7 +373,6 @@ xfs_vn_link( if (unlikely(error)) return -error; - xfs_iflags_set(XFS_I(dir), XFS_IMODIFIED); atomic_inc(&inode->i_count); d_instantiate(dentry, inode); return 0; @@ -805,7 +801,6 @@ xfs_setup_inode( inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec; inode->i_ctime.tv_nsec = ip->i_d.di_ctime.t_nsec; xfs_diflags_to_iflags(inode, ip); - xfs_iflags_clear(ip, XFS_IMODIFIED); switch (inode->i_mode & S_IFMT) { case S_IFREG: Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-25 13:15:42.000000000 +0200 @@ -375,7 +375,6 @@ xfs_compat_ioctl( unsigned long arg) { struct inode *inode = file->f_path.dentry->d_inode; - int error; switch (cmd) { case XFS_IOC_DIOINFO: @@ -463,10 +462,7 @@ xfs_compat_ioctl( return -ENOIOCTLCMD; } - error = xfs_ioctl(XFS_I(inode), file, mode, cmd, (void __user *)arg); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); - - return error; + return xfs_ioctl(XFS_I(inode), file, mode, cmd, (void __user *)arg); } long Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:15:42.000000000 +0200 @@ -1021,7 +1021,6 @@ xfs_fs_clear_inode( XFS_STATS_DEC(vn_active); xfs_inactive(ip); - xfs_iflags_clear(ip, XFS_IMODIFIED); } STATIC void Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:02:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:15:42.000000000 +0200 @@ -275,7 +275,6 @@ again: } xfs_put_perag(mp, pag); - xfs_iflags_set(ip, XFS_IMODIFIED); *ipp = ip; ASSERT(ip->i_df.if_ext_max == Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:02:57.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:15:42.000000000 +0200 @@ -403,17 +403,12 @@ static inline void xfs_ifunlock(xfs_inod /* * In-core inode flags. */ -#define XFS_IGRIO 0x0001 /* inode used for guaranteed rate i/o */ -#define XFS_IUIOSZ 0x0002 /* inode i/o sizes have been explicitly set */ -#define XFS_IQUIESCE 0x0004 /* we have started quiescing for this inode */ -#define XFS_IRECLAIM 0x0008 /* we have started reclaiming this inode */ -#define XFS_ISTALE 0x0010 /* inode has been staled */ -#define XFS_IRECLAIMABLE 0x0020 /* inode can be reclaimed */ -#define XFS_INEW 0x0040 -#define XFS_IFILESTREAM 0x0080 /* inode is in a filestream directory */ -#define XFS_IMODIFIED 0x0100 /* XFS inode state possibly differs */ - /* to the Linux inode state. */ -#define XFS_ITRUNCATED 0x0200 /* truncated down so flush-on-close */ +#define XFS_IRECLAIM 0x0001 /* we have started reclaiming this inode */ +#define XFS_ISTALE 0x0002 /* inode has been staled */ +#define XFS_IRECLAIMABLE 0x0004 /* inode can be reclaimed */ +#define XFS_INEW 0x0008 /* inode has just been allocated */ +#define XFS_IFILESTREAM 0x0010 /* inode is in a filestream directory */ +#define XFS_ITRUNCATED 0x0020 /* truncated down so flush-on-close */ /* * Flags for inode locking. Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:15:38.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:15:42.000000000 +0200 @@ -157,7 +157,6 @@ static void xfsidbg_xiclogall(xlog_in_co static void xfsidbg_xiclogcb(xlog_in_core_t *); static void xfsidbg_xinodes(xfs_mount_t *); static void xfsidbg_delayed_blocks(xfs_mount_t *); -static void xfsidbg_xinodes_quiesce(xfs_mount_t *); static void xfsidbg_xlog(xlog_t *); static void xfsidbg_xlog_ritem(xlog_recover_item_t *); static void xfsidbg_xlog_rtrans(xlog_recover_t *); @@ -1318,26 +1317,6 @@ static int kdbm_xfs_delayed_blocks( return 0; } - -static int kdbm_xfs_xinodes_quiesce( - int argc, - const char **argv) -{ - unsigned long addr; - int nextarg = 1; - long offset = 0; - int diag; - - if (argc != 1) - return KDB_ARGCOUNT; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL); - if (diag) - return diag; - - xfsidbg_xinodes_quiesce((xfs_mount_t *) addr); - return 0; -} - static int kdbm_xfs_xlog( int argc, const char **argv) @@ -2415,8 +2394,6 @@ static struct xif xfsidbg_funcs[] = { #endif { "xinodes", kdbm_xfs_xinodes, "", "Dump XFS inodes per mount"}, - { "xquiesce",kdbm_xfs_xinodes_quiesce, "", - "Dump non-quiesced XFS inodes per mount"}, #ifdef XFS_LOG_TRACE { "xl_grtr", kdbm_xfs_xlog_granttrace, "", "Dump XFS log grant trace" }, @@ -5971,35 +5948,6 @@ xfsidbg_delayed_blocks(xfs_mount_t *mp) kdb_printf("delayed blocks total: %d in %d inodes\n", total, icount); } -static void -xfsidbg_xinodes_quiesce(xfs_mount_t *mp) -{ - int i; - - kdb_printf("xfs_mount at 0x%p\n", mp); - for (i = 0; i < mp->m_sb.sb_agcount; i++) { - xfs_perag_t *pag = &mp->m_perag[i]; - xfs_inode_t *ip = NULL; - int first_index = 0; - int nr_found; - - if (!pag->pag_ici_init) - continue; - do { - nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, - (void**)&ip, first_index, 1); - if (!nr_found) - break; - /* update the index for the next lookup */ - first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); - if (!(ip->i_flags & XFS_IQUIESCE)) { - kdb_printf("ip 0x%p not quiesced\n", ip); - } - } while (nr_found); - } - kdb_printf("\nEnd of Inodes\n"); -} - static char * xfsidbg_get_cstate(int state) { @@ -6597,12 +6545,11 @@ static void xfsidbg_xnode(xfs_inode_t *ip) { static char *tab_flags[] = { - "grio", /* XFS_IGRIO */ - "uiosize", /* XFS_IUIOSZ */ - "quiesce", /* XFS_IQUIESCE */ "reclaim", /* XFS_IRECLAIM */ "stale", /* XFS_ISTALE */ - "modified", /* XFS_IMODIFIED */ + "reclaimable", /* XFS_IRECLAIMABLE */ + "new", /* XFS_INEW */ + "filestream", /* XFS_IFILESTREAM */ "truncated", /* XFS_ITRUNCATED */ NULL }; -- From owner-xfs@oss.sgi.com Sun Oct 26 14:28:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_45,J_CHICKENPOX_52,J_CHICKENPOX_64,J_CHICKENPOX_66, J_CHICKENPOX_71 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QLS0ub003032 for ; Sun, 26 Oct 2008 14:28:00 -0700 X-ASG-Debug-ID: 1225056479-37e603150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3A2612ABF32 for ; Sun, 26 Oct 2008 14:27:59 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 9dbeGAW1Fgz8TWTV for ; Sun, 26 Oct 2008 14:27:59 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id BFCB0AC6275 for ; Sun, 26 Oct 2008 16:27:58 -0500 (CDT) Message-ID: <4904E0DE.3040902@sandeen.net> Date: Sun, 26 Oct 2008 16:27:58 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 0/3 v3] hook xfs to fiemap ioctl Subject: [PATCH 0/3 v3] hook xfs to fiemap ioctl Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1225056480 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8797 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 v2: Update & resend, including some checkpatch fixes, a bugfix, and incorporating some of Christoph's and Dave's comments. v3: Address more review comments, and split into 3 patches this time. Also, here's a very hacky (don't laugh!) test app. I'll clean it up at some point :) -Eric ------------ #include #include #include #include #include #include #include #include #include #include /*************************************************/ /* All this should come from fiemap.h eventually */ struct fiemap_extent { __u64 fe_logical; /* logical offset in bytes for the start of * the extent from the beginning of the file */ __u64 fe_physical; /* physical offset in bytes for the start * of the extent from the beginning of the disk */ __u64 fe_length; /* length in bytes for this extent */ __u64 fe_reserved64[2]; __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ __u32 fe_reserved[3]; }; struct fiemap { __u64 fm_start; /* logical offset (inclusive) at * which to start mapping (in) */ __u64 fm_length; /* logical length of mapping which * userspace wants (in) */ __u32 fm_flags; /* FIEMAP_FLAG_* flags for request (in/out) */ __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) #define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */ #define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */ #define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) #define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent in file. */ #define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data location unknown. */ #define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location still pending. * Sets EXTENT_UNKNOWN. */ #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read * while fs is unmounted */ #define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. * Sets EXTENT_NO_BYPASS. */ #define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be * block aligned. */ #define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed with metadata. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple files in block. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but * no data (i.e. zero). */ #define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively * support extents. Result * merged for efficiency. */ #define FIGETBSZ _IO(0x00, 2) /* get the block size used for bmap */ #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) // #define FS_IOC_FIECOUNT _IOWR('f', 12, struct fiecount) /* End of what should be coming from fiemap.h */ /**********************************************/ void usage(void) { printf("Usage: fiemap [-vrSCL] [-s start] [-l length] [-c buf count] [-m max] filename\n"); printf(" -v : verbose mode\n"); printf(" -r : raw output: print raw ioctl structure values\n"); printf(" -S : set FIEMAP_FLAG_SYNC to sync before mapping\n"); printf(" -C : set FIEMAP_FLAG_NUM_EXTENTS to only get extent count, not mapping\n"); printf(" -X : set FIEMAP_FLAG_XATTR to report xattr mapping\n"); printf(" -s start : start of mapping in bytes (default 0)\n"); printf(" -l length : length of mapping in bytes (default to end of file)\n"); printf(" -c count : count of extents in ioctl input structure (default 32)\n"); printf(" -m max : max nr of ioctls to call before exit (default 512)\n"); exit(EXIT_FAILURE); } #define EXABYTES(x) ((long long)(x) << 60) #define PETABYTES(x) ((long long)(x) << 50) #define TERABYTES(x) ((long long)(x) << 40) #define GIGABYTES(x) ((long long)(x) << 30) #define MEGABYTES(x) ((long long)(x) << 20) #define KILOBYTES(x) ((long long)(x) << 10) long long cvtnum(char *s) { long long i; char *sp; int c; i = strtoll(s, &sp, 0); if (i == 0 && sp == s) return -1LL; if (*sp == '\0') return i; if (sp[1] != '\0') return -1LL; c = tolower(*sp); switch (c) { case 'k': return KILOBYTES(i); case 'm': return MEGABYTES(i); case 'g': return GIGABYTES(i); case 't': return TERABYTES(i); case 'p': return PETABYTES(i); case 'e': return EXABYTES(i); } return -1LL; } void show_extents_table(struct fiemap *fiemap, int blocksize, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { __u64 logical = fiemap->fm_extents[i].fe_logical; __u64 phys = fiemap->fm_extents[i].fe_physical; __u64 length = fiemap->fm_extents[i].fe_length; int flags = fiemap->fm_extents[i].fe_flags; __u64 last_logical = 0; if (i) { last_logical = fiemap->fm_extents[i-1].fe_logical + fiemap->fm_extents[i-1].fe_length - 1; } printf("ext: %3u logical: [%8llu..%8llu] phys: %8llu..%8llu flags: 0x%03X tot: %llu\n", i + start_extent, logical / blocksize, (logical + length - 1) / blocksize, phys / blocksize, (phys + length - 1) / blocksize, flags, (length / blocksize)); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for exents filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } void show_extents_raw(struct fiemap *fiemap, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { printf("Extent %3u: logical: %10lld physical: %10lld length: %10lld flags 0x%03X\n", i + start_extent, fiemap->fm_extents[i].fe_logical, fiemap->fm_extents[i].fe_physical, fiemap->fm_extents[i].fe_length, fiemap->fm_extents[i].fe_flags); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for extents wrongly filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } int main(int argc, char**argv) { int blocksize = 0; /* filesystem blocksize */ uint count = 32; /* extent count */ int fd; /* file descriptor */ int last = 0; /* last extent found */ int xattr = 0; /* return xattr mapping */ int maxioctls = 512; /* max ioctls to try */ int opt; int rc; int raw = 0; /* raw output format */ int sync = 0; /* sync file before mapping */ int verbose = 0; /* verbose output */ char *fname; /* filename to map */ char *fiebuf; /* fiemap buffer / ioctl argument */ __u64 lstart = 0; /* logical input mapping start */ __u64 llength = ~0ULL;/* logical input mapping length */ uint start_ext = 0; /* starting extent nr. for this batch */ __u32 flags = 0; struct fiemap *fiemap; /* XXX er, can llength be ~0ULL if start > 0? */ while ((opt = getopt(argc, argv, "s:l:c:m:rSCLXv")) != -1) { switch(opt) { /* logical mapping offset */ case 's': lstart = cvtnum(optarg); break; /* logical mapping length */ case 'l': llength = cvtnum(optarg); break; /* count of extent buffers to send */ case 'c': count = atoi(optarg); break; /* max nr. of ioctls to try (safety net) */ case 'm': maxioctls = atoi(optarg); break; /* raw format output */ case 'r': raw++; break; /* sync file before mapping */ case 'S': sync++; break; /* return extents for xattrs */ case 'X': xattr++; break; /* be verbose */ case 'v': verbose++; break; default: usage(); } } fname = argv[optind++]; if (!fname) usage(); /* Set the flags for the header */ if (sync) flags |= FIEMAP_FLAG_SYNC; if (xattr) flags |= FIEMAP_FLAG_XATTR; /* The whole buffer, extent maps and all */ fiebuf = malloc(sizeof (struct fiemap) + (count * sizeof(struct fiemap_extent))); if (!fiebuf) { perror("Could not allocate fiemap buffers"); exit(1); } /* set up the header */ fiemap = (struct fiemap *)fiebuf; fiemap->fm_start = lstart; fiemap->fm_length = llength; fiemap->fm_flags = flags; fiemap->fm_extent_count = count; fiemap->fm_mapped_extents = 0; /* output only */ fd = open(fname, O_RDONLY); if (fd < 0) { perror("Can't open file"); exit(1); } if (ioctl(fd, FIGETBSZ, &blocksize) < 0) { perror("Can't get block size"); close(fd); return; } do { if (verbose) printf("Input: start %llu length %llu flags 0x%X count %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count); rc = ioctl(fd, FS_IOC_FIEMAP, (unsigned long)fiemap); if (rc < 0) { perror("FIEMAP ioctl failed"); printf("flags 0x%x\n", fiemap->fm_flags); close(fd); exit(1); } if (verbose) printf("Output: start %llu length %llu flags 0x%X count %u mapped %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count, fiemap->fm_mapped_extents); if (raw) show_extents_raw(fiemap, start_ext, &last); else show_extents_table(fiemap, blocksize, start_ext, &last); if (!last) { int last_map = fiemap->fm_mapped_extents - 1; __u64 foo; /* XXX Ummmm */ foo = fiemap->fm_extents[last_map].fe_logical + fiemap->fm_extents[last_map].fe_length; /* Set up the next call arguments */ /* move to top */ fiemap->fm_start = foo; fiemap->fm_length = lstart + llength - foo; fiemap->fm_extent_count = count; } /* keeps track of extent nrs. we've printed; rather, pass by value! */ start_ext += fiemap->fm_mapped_extents; /* XXX need to stop if we've reached what we asked for */ maxioctls--; } while (!last && maxioctls > 0); close(fd); return 0; } From owner-xfs@oss.sgi.com Sun Oct 26 14:30:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QLU2LQ003535 for ; Sun, 26 Oct 2008 14:30:02 -0700 X-ASG-Debug-ID: 1225056602-4107029c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED78B12ABF67 for ; Sun, 26 Oct 2008 14:30:02 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id QmseJFdlX2N1W193 for ; Sun, 26 Oct 2008 14:30:02 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id EE064AC6275 for ; Sun, 26 Oct 2008 16:30:01 -0500 (CDT) Message-ID: <4904E159.6000900@sandeen.net> Date: Sun, 26 Oct 2008 16:30:01 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 1/3 v3] convert xfs_getbmap to take formatter functions Subject: [PATCH 1/3 v3] convert xfs_getbmap to take formatter functions References: <4904E0DE.3040902@sandeen.net> In-Reply-To: <4904E0DE.3040902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1225056602 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8797 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Preliminary work to hook up fiemap, this allows us to pass in an arbitrary formatter to copy extent data back to userspace. The formatter takes info for 1 extent, a pointer to the user "thing*" and a pointer to a "filled" variable to indicate whether a userspace buffer did get filled in (for fiemap, hole "extents" are skipped). I'm just using the getbmapx struct as a "common denominator" because as far as I can see, it holds all info that any formatters will care about. ("*thing" because fiemap doesn't pass the user pointer around, but rather has a pointer to a fiemap info structure, and helpers associated with it) Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5805,9 +5805,9 @@ error0: STATIC int xfs_getbmapx_fix_eof_hole( xfs_inode_t *ip, /* xfs incore inode pointer */ - struct getbmap *out, /* output structure */ + struct getbmapx *out, /* output structure */ int prealloced, /* this is a file with - * preallocated data space */ + * preallocated data space */ __int64_t end, /* last block requested */ xfs_fsblock_t startblock) { @@ -5833,14 +5833,14 @@ xfs_getbmapx_fix_eof_hole( } /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int interface) /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg) /* formatter arg */ { __int64_t bmvend; /* last block requested */ int error; /* return value */ @@ -5853,19 +5853,20 @@ xfs_getbmap( int nexleft; /* # of user extents left */ int subnex; /* # of bmapi's can do */ int nmap; /* number of map entries */ - struct getbmap out; /* output structure */ + struct getbmapx out; /* output structure */ int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ - __int32_t oflags; /* getbmapx bmv_oflags field */ mp = ip->i_mount; + iflags = bmv->bmv_iflags; - whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (interface & BMV_IF_PREALLOC) != 0; + whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; + sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5880,7 +5881,7 @@ xfs_getbmap( * could misinterpret holes in a DMAPI file as true holes, * when in fact they may represent offline user data. */ - if ((interface & BMV_IF_NO_DMAPI_READ) == 0 && + if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_READ) && whichfork == XFS_DATA_FORK) { error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL); @@ -5987,52 +5988,35 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - nexleft--; - oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? + out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? BMV_OF_PREALLOC : 0; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); + out.bmv_unused1 = out.bmv_unused2 = 0; ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ goto unlock_and_return; } else { + int filled; /* nr extents filled */ + if (!xfs_getbmapx_fix_eof_hole(ip, &out, prealloced, bmvend, map[i].br_startblock)) { goto unlock_and_return; } - /* return either getbmap/getbmapx structure. */ - if (interface & BMV_IF_EXTENDED) { - struct getbmapx outx; - - GETBMAP_CONVERT(out,outx); - outx.bmv_oflags = oflags; - outx.bmv_unused1 = outx.bmv_unused2 = 0; - if (copy_to_user(ap, &outx, - sizeof(outx))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } else { - if (copy_to_user(ap, &out, - sizeof(out))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } + /* format results & advance arg */ + error = formatter(&arg, &out, &filled); + if (error) + goto unlock_and_return; + nexleft -= filled; bmv->bmv_offset = out.bmv_offset + out.bmv_length; bmv->bmv_length = MAX((__int64_t)0, (__int64_t)(bmvend - bmv->bmv_offset)); bmv->bmv_entries++; - ap = (interface & BMV_IF_EXTENDED) ? - (void __user *) - ((struct getbmapx __user *)ap + 1) : - (void __user *) - ((struct getbmap __user *)ap + 1); } } } while (nmap && nexleft && bmv->bmv_length); Index: linux-2.6-xfs/fs/xfs/xfs_bmap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.h +++ linux-2.6-xfs/fs/xfs/xfs_bmap.h @@ -356,15 +356,18 @@ xfs_bmap_finish( xfs_bmap_free_t *flist, /* i/o: list extents to free */ int *committed); /* xact committed or not */ +/* bmap to userspace formatter - copy to user & advance pointer */ +typedef int (*xfs_bmap_format_t)(void **, struct getbmapx *, int *); + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int iflags); /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg); /* formatter arg */ /* * Check if the endoff is outside the last extent. If so the caller will grow Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1256,43 +1256,69 @@ xfs_ioc_setxflags( } STATIC int +xfs_getbmap_format(void **ap, struct getbmapx *bmv, int *filled) +{ + struct getbmap __user *base = *ap; + *filled = 0; + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(base, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + *filled = 1; + return 0; +} + +STATIC int xfs_ioc_getbmap( struct xfs_inode *ip, int ioflags, unsigned int cmd, void __user *arg) { - struct getbmap bm; - int iflags; + struct getbmapx bmx; int error; - if (copy_from_user(&bm, arg, sizeof(bm))) + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); - if (bm.bmv_count < 2) + if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); if (ioflags & IO_INVIS) - iflags |= BMV_IF_NO_DMAPI_READ; + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - error = xfs_getbmap(ip, &bm, (struct getbmap __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap *)arg+1); if (error) return -error; - if (copy_to_user(arg, &bm, sizeof(bm))) + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) return -XFS_ERROR(EFAULT); return 0; } STATIC int +xfs_getbmapx_format(void **ap, struct getbmapx *bmv, int *filled) +{ + struct getbmapx __user *base = *ap; + *filled = 0; + if (copy_to_user(base, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + *filled = 1; + return 0; +} + +STATIC int xfs_ioc_getbmapx( struct xfs_inode *ip, void __user *arg) { struct getbmapx bmx; - struct getbmap bm; - int iflags; int error; if (copy_from_user(&bmx, arg, sizeof(bmx))) @@ -1301,26 +1327,16 @@ xfs_ioc_getbmapx( if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - /* - * Map input getbmapx structure to a getbmap - * structure for xfs_getbmap. - */ - GETBMAP_CONVERT(bmx, bm); - - iflags = bmx.bmv_iflags; - - if (iflags & (~BMV_IF_VALID)) + if (bmx.bmv_iflags & (~BMV_IF_VALID)) return -XFS_ERROR(EINVAL); - iflags |= BMV_IF_EXTENDED; - - error = xfs_getbmap(ip, &bm, (struct getbmapx __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx *)arg+1); if (error) return -error; - GETBMAP_CONVERT(bm, bmx); - - if (copy_to_user(arg, &bmx, sizeof(bmx))) + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); return 0; Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -114,22 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) -#ifdef __KERNEL__ -#define BMV_IF_EXTENDED 0x40000000 /* getpmapx if set */ -#endif /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -/* Convert getbmap <-> getbmapx - move fields from p1 to p2. */ -#define GETBMAP_CONVERT(p1,p2) { \ - p2.bmv_offset = p1.bmv_offset; \ - p2.bmv_block = p1.bmv_block; \ - p2.bmv_length = p1.bmv_length; \ - p2.bmv_count = p1.bmv_count; \ - p2.bmv_entries = p1.bmv_entries; } - - /* * Structure for XFS_IOC_FSSETDM. * For use by backup and restore programs to set the XFS on-disk inode From owner-xfs@oss.sgi.com Sun Oct 26 14:31:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QLV3pd003888 for ; Sun, 26 Oct 2008 14:31:03 -0700 X-ASG-Debug-ID: 1225056663-36f5037c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D19AF12AC0DE for ; Sun, 26 Oct 2008 14:31:03 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id ntunrd1c2MlwfNd0 for ; Sun, 26 Oct 2008 14:31:03 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id E6B24AC6275 for ; Sun, 26 Oct 2008 16:31:02 -0500 (CDT) Message-ID: <4904E196.8070206@sandeen.net> Date: Sun, 26 Oct 2008 16:31:02 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH 2/3 v3] Add new flags to getbmapx interface Subject: [PATCH 2/3 v3] Add new flags to getbmapx interface References: <4904E0DE.3040902@sandeen.net> In-Reply-To: <4904E0DE.3040902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1225056663 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8797 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Add new getbmap flags. This adds a new output flag, BMV_OF_LAST to indicate if we've hit the last extent in the inode. This potentially saves an extra call from userspace to see when the whole mapping is done. It also adds BMV_IF_DELALLOC and BMV_OF_DELALLOC to request, and indicate, delayed-allocation extents. In this case bmv_block is set to -2 (-1 was already taken for HOLESTARTBLOCK; unfortunately these are the reverse of the in-kernel constants.) These new flags facilitate addition of the new fiemap interface. Rather than adding sh_delalloc, remove sh_unwritten & just test the flags directly. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5813,6 +5813,9 @@ xfs_getbmapx_fix_eof_hole( { __int64_t fixlen; xfs_mount_t *mp; /* file system mount point */ + xfs_ifork_t *ifp; /* inode fork pointer */ + xfs_extnum_t lastx; /* last extent pointer */ + xfs_fileoff_t fileblock; if (startblock == HOLESTARTBLOCK) { mp = ip->i_mount; @@ -5826,7 +5829,15 @@ xfs_getbmapx_fix_eof_hole( out->bmv_length = fixlen; } } else { - out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + if (startblock == DELAYSTARTBLOCK) + out->bmv_block = -2; + else + out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset); + ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); + if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) && + (lastx == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))-1)) + out->bmv_oflags |= BMV_OF_LAST; } return 1; @@ -5857,8 +5868,6 @@ xfs_getbmap( int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ - int sh_unwritten; /* true, if unwritten */ - /* extents listed separately */ int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ @@ -5866,7 +5875,6 @@ xfs_getbmap( iflags = bmv->bmv_iflags; whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5937,8 +5945,9 @@ xfs_getbmap( xfs_ilock(ip, XFS_IOLOCK_SHARED); - if (whichfork == XFS_DATA_FORK && - (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { + if (((iflags & BMV_IF_DELALLOC) == 0) && + (whichfork == XFS_DATA_FORK) && + (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ error = xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); @@ -5948,7 +5957,8 @@ xfs_getbmap( } } - ASSERT(whichfork == XFS_ATTR_FORK || ip->i_delayed_blks == 0); + ASSERT(whichfork == XFS_ATTR_FORK || (iflags & BMV_IF_DELALLOC) || + ip->i_delayed_blks == 0); lock = xfs_ilock_map_shared(ip); @@ -5960,7 +5970,7 @@ xfs_getbmap( nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1; bmapi_flags = XFS_BMAPI_AFLAG(whichfork) | - ((sh_unwritten) ? 0 : XFS_BMAPI_IGSTATE); + ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE); /* * Allocate enough space to handle "subnex" maps at a time. @@ -5970,9 +5980,12 @@ xfs_getbmap( bmv->bmv_entries = 0; - if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0) { - error = 0; - goto unlock_and_return; + if ((XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { + if (((iflags & BMV_IF_DELALLOC) == 0) || + whichfork == XFS_ATTR_FORK) { + error = 0; + goto unlock_and_return; + } } nexleft = nex; @@ -5988,15 +6001,20 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? - BMV_OF_PREALLOC : 0; + out.bmv_oflags = 0; + if (map[i].br_state == XFS_EXT_UNWRITTEN) + out.bmv_oflags |= BMV_OF_PREALLOC; + else if (map[i].br_startblock == DELAYSTARTBLOCK) + out.bmv_oflags |= BMV_OF_DELALLOC; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); out.bmv_unused1 = out.bmv_unused2 = 0; - ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); + ASSERT(((iflags & BMV_IF_DELALLOC) != 0) || + (map[i].br_startblock != DELAYSTARTBLOCK)); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ + out.bmv_oflags |= BMV_OF_LAST; goto unlock_and_return; } else { int filled; /* nr extents filled */ Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -113,10 +113,14 @@ struct getbmapx { #define BMV_IF_ATTRFORK 0x1 /* return attr fork rather than data */ #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ -#define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) +#define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_VALID \ + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_DELALLOC 0x2 /* segment = delayed allocation */ +#define BMV_OF_LAST 0x4 /* segment is the last in the file */ /* * Structure for XFS_IOC_FSSETDM. From owner-xfs@oss.sgi.com Sun Oct 26 14:32:13 2008 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QLWDnO004274 for ; Sun, 26 Oct 2008 14:32:13 -0700 X-ASG-Debug-ID: 1225056733-66b4000c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E085012AC15C for ; Sun, 26 Oct 2008 14:32:13 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id AzRRAf0bUQcGyl11 for ; Sun, 26 Oct 2008 14:32:13 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 1BDC3AC6275 for ; Sun, 26 Oct 2008 16:32:13 -0500 (CDT) Message-ID: <4904E1DC.2050603@sandeen.net> Date: Sun, 26 Oct 2008 16:32:12 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: PATCH 3/3 v3] hook up fiemap & associated formatter Subject: PATCH 3/3 v3] hook up fiemap & associated formatter References: <4904E0DE.3040902@sandeen.net> In-Reply-To: <4904E0DE.3040902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1225056733 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8797 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Hook up the fiemap ioctl. This adds the fiemap inode_operation, which for us converts the fiemap values & flags into a getbmapx structure which can be sent to xfs_getbmap. The formatter then copies the bmv array back into the user's fiemap buffer via the fiemap helpers. If we wanted to be more clever, we could also return mapping data for in-inode attributes, but I'm not terribly motivated to do that just yet. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c @@ -53,6 +53,7 @@ #include #include #include +#include /* * Bring the atime in the XFS inode uptodate. @@ -661,6 +662,82 @@ out_error: return error; } +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +STATIC int +xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *filled) +{ + int error = 0; + struct fiemap_extent_info *fieinfo = *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + *filled = 0; + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } + if (bmv->bmv_oflags & BMV_OF_LAST) + fiemap_flags |= FIEMAP_EXTENT_LAST; + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error < 0) + return -error; + *filled = 1; + return 0; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + error = fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS); + if (error) + return error; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ + if (length == FIEMAP_MAX_OFFSET) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + /* xfs_getbmap takes count as header + array */ + bm.bmv_count = fieinfo->fi_extents_max + 1; + bm.bmv_iflags = BMV_IF_PREALLOC; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -error; + + return 0; +} + static const struct inode_operations xfs_inode_operations = { .permission = xfs_vn_permission, .truncate = xfs_vn_truncate, @@ -671,6 +748,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fallocate = xfs_vn_fallocate, + .fiemap = xfs_vn_fiemap, }; static const struct inode_operations xfs_dir_inode_operations = { From owner-xfs@oss.sgi.com Sun Oct 26 15:39:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9QMdjX0013947 for ; Sun, 26 Oct 2008 15:39:45 -0700 X-ASG-Debug-ID: 1225060784-444003570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 09C55549293 for ; Sun, 26 Oct 2008 15:39:45 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id SzLGpvIKDdKzqGwe for ; Sun, 26 Oct 2008 15:39:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,489,1220193000"; d="scan'208";a="218578850" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 09:09:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuEGq-00014L-JC; Mon, 27 Oct 2008 09:39:40 +1100 Date: Mon, 27 Oct 2008 09:39:40 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081026223940.GN18495@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49013C47.4090601@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225060786 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8802 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 24, 2008 at 01:08:55PM +1000, Lachlan McIlroy wrote: > Christoph Hellwig wrote: >> On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: >>> another problem with latest xfs >> >> Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based >> git tree? It does looks more like a VM issue than a XFS issue to me. >> > > It's with the 2.6.27-rc8 based ptools tree. Prior to checking > in these patches: > > Can't lock inodes in radix tree preload region > stop using xfs_itobp in xfs_bulkstat > free partially initialized inodes using destroy_inode > > I was able to stress a system for about 4 hours before it ran out > of memory. Now I hit the deadlock within a few minutes. I need > to roll back to find which patch changed the behaviour. Ok, I think I've found the regression - it's introduced by the AIL cursor modifications. The patch below has been running for 15 minutes now on my UML box that would have hung in a couple of minutes otherwise. FYI, the way I found this was: - put a breakpoint on xfs_create() once the fs hung - `touch /mnt/xfs2/fred` to trigger the break point. - look at: - mp->m_ail->xa_target - mp->m_ail->xa_ail.next->li_lsn - mp->m_log->l_tail_lsn which indicated the push target was way ahead the tail of the log, so AIL pushing was obviously not happening otherwise we'd be making progress. - added breakpoint on xfsaild_push() and continued - xfsaild_push() bp triggered, looked at *last_lsn and found it way behind the tail of the log (like 3 cycle behind), which meant that would return NULL instead of the first object and AIL pushing would abort. Confirmed with single stepping. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: correctly select first log item to push Under heavy metadata load we are seeing log hangs. The AIL has items in it ready to be pushed, and they are within the push target window. However, we are not pushing them when the last pushed LSN is less than the LSN of the first log item on the AIL. This is a regression introduced by the AIL push cursor modifications. --- fs/xfs/xfs_trans_ail.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 67ee466..2d47f10 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -228,7 +228,7 @@ xfs_trans_ail_cursor_first( list_for_each_entry(lip, &ailp->xa_ail, li_ail) { if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) - break; + goto out; } lip = NULL; out: From owner-xfs@oss.sgi.com Sun Oct 26 18:20:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R1KEmr028740 for ; Sun, 26 Oct 2008 18:20:15 -0700 X-ASG-Debug-ID: 1225070412-7eea02f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 28572549397 for ; Sun, 26 Oct 2008 18:20:13 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id I1COHqqokz0VPeyp for ; Sun, 26 Oct 2008 18:20:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,489,1220193000"; d="scan'208";a="218715526" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 11:50:11 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuGm9-0007EZ-NK; Mon, 27 Oct 2008 12:20:09 +1100 Date: Mon, 27 Oct 2008 12:20:08 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] wire up ->open for directories Subject: Re: [PATCH 1/2] wire up ->open for directories Message-ID: <20081027012008.GD11948@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081026203437.GB4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026203437.GB4173@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225070415 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0199 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8810 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 26, 2008 at 04:34:37PM -0400, Christoph Hellwig wrote: > Currently there's no ->open method set for directories on XFS. That > means we don't perform any check for opening too large directories > without O_LARGEFILE, we don't check for shut down filesystems, and we > don't actually do the readahead for the first block in the directory. > > Instead of just setting the directories open routine to xfs_file_open > we merge the shutdown check directly into xfs_file_open and create > a new xfs_dir_open that first calls xfs_file_open and then performs > the readahead for block 0. Looks good to me. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 26 18:21:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R1LR78028909 for ; Sun, 26 Oct 2008 18:21:27 -0700 X-ASG-Debug-ID: 1225070487-5dc5005a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8487D549821 for ; Sun, 26 Oct 2008 18:21:27 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id jokNjT2W69wiinXj for ; Sun, 26 Oct 2008 18:21:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,489,1220193000"; d="scan'208";a="218717490" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 11:51:26 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuGnO-0007hM-0p; Mon, 27 Oct 2008 12:21:26 +1100 Date: Mon, 27 Oct 2008 12:21:25 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] allow inode64 mount option on 32 bit systems Subject: Re: [PATCH 2/2] allow inode64 mount option on 32 bit systems Message-ID: <20081027012125.GE11948@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081026203440.GC4173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081026203440.GC4173@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225070488 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8810 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Oct 26, 2008 at 04:34:40PM -0400, Christoph Hellwig wrote: > Now that we've stopped using the Linux inode cache when can trivally > support the inode64 mount option on 32bit architectures. As far as the > kernel and most userspace is concerned this works perfectly, but > applications still using really old stat and readdir interfaces will get > an EOVERFLOW error when hitting an inode number not fitting into 32 > bits (that problem of course also exists when using these applications > on a 64bit kernel). > > Note that because inode64 is simply a mount option we can currently > mount a filesystem having > 32 bit inode numbers and cause a variety of > problems, all this is solved but this patch which enables XFS_BIG_INUMS, > even when inode64 is not used. Looks ok. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 26 21:08:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R48sKW007373 for ; Sun, 26 Oct 2008 21:08:54 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 4B2448F8125 for ; Sun, 26 Oct 2008 21:08:48 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA19894; Mon, 27 Oct 2008 13:30:59 +1100 Message-ID: <490527E2.5000600@sgi.com> Date: Mon, 27 Oct 2008 13:30:58 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Dave Chinner CC: Lachlan McIlroy , Christoph Hellwig , xfs-oss Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081026223940.GN18495@disturbed> In-Reply-To: <20081026223940.GN18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Ok, I think I've found the regression - it's introduced by the AIL > cursor modifications. The patch below has been running for 15 > minutes now on my UML box that would have hung in a couple of > minutes otherwise. > > FYI, the way I found this was: > > - put a breakpoint on xfs_create() once the fs hung > - `touch /mnt/xfs2/fred` to trigger the break point. > - look at: > - mp->m_ail->xa_target > - mp->m_ail->xa_ail.next->li_lsn > - mp->m_log->l_tail_lsn > which indicated the push target was way ahead the > tail of the log, so AIL pushing was obviously not > happening otherwise we'd be making progress. > - added breakpoint on xfsaild_push() and continued > - xfsaild_push() bp triggered, looked at *last_lsn > and found it way behind the tail of the log (like > 3 cycle behind), which meant that would return > NULL instead of the first object and AIL pushing > would abort. Confirmed with single stepping. > > Cheers, > > Dave. > XFS: correctly select first log item to push > > Under heavy metadata load we are seeing log hangs. The > AIL has items in it ready to be pushed, and they are within > the push target window. However, we are not pushing them > when the last pushed LSN is less than the LSN of the > first log item on the AIL. This is a regression introduced > by the AIL push cursor modifications. > --- > fs/xfs/xfs_trans_ail.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > index 67ee466..2d47f10 100644 > --- a/fs/xfs/xfs_trans_ail.c > +++ b/fs/xfs/xfs_trans_ail.c > @@ -228,7 +228,7 @@ xfs_trans_ail_cursor_first( > > list_for_each_entry(lip, &ailp->xa_ail, li_ail) { > if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) > - break; > + goto out; > } > lip = NULL; > out: Yeah, the fix looks good. The previous code is pretty obviously broken - a search which always returns NULL. Which begs the question on the best way of testing this ail code. I dunno - it would be nice for independent testing of data structures but perhaps that is too ambitious. OOC, so the call path for this code.... xfsaild -> xfsaild_push(ailp, &last_pushed_lsn) -> lip = xfs_trans_ail_cursor_first(ailp, cur, *last_lsn) Initially, last_lsn = 0 in xfsaild but it will be updated via last_pushed_lsn. So it looks like things will work initially when lsn==0, because xfs_trans_ail_cursor_first special cases that and uses the min. But as soon as the lsn is set to non-zero, xfs_trans_ail_cursor_first will return NULL, and xfsaild_push will return early. --Tim From owner-xfs@oss.sgi.com Sun Oct 26 21:08:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R48utG007381 for ; Sun, 26 Oct 2008 21:08:56 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 97E4F8F8121 for ; Sun, 26 Oct 2008 21:08:55 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA18910; Mon, 27 Oct 2008 12:43:51 +1100 Message-ID: <49051C71.9040404@sgi.com> Date: Mon, 27 Oct 2008 12:42:09 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> In-Reply-To: <20081026025013.GL18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: >> On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: >>> OK, I just hung a single-threaded rm -rf after this completed: >>> >>> # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress >>> >>> It has hung with this trace: >>> >>> # echo w > /proc/sysrq-trigger >> .... >>> [42954211.590000] 794877f8: [<6002e40a>] update_curr+0x3a/0x50 >>> [42954211.590000] 79487818: [<60014f0d>] _switch_to+0x6d/0xe0 >>> [42954211.590000] 79487858: [<60324b21>] schedule+0x171/0x2c0 >>> [42954211.590000] 794878a8: [<60324e6d>] schedule_timeout+0xad/0xf0 >>> [42954211.590000] 794878c8: [<60326e98>] _spin_unlock_irqrestore+0x18/0x20 >>> [42954211.590000] 79487908: [<60195455>] xlog_grant_log_space+0x245/0x470 >>> [42954211.590000] 79487920: [<60030ba0>] default_wake_function+0x0/0x10 >>> [42954211.590000] 79487978: [<601957a2>] xfs_log_reserve+0x122/0x140 >>> [42954211.590000] 794879c8: [<601a36e7>] xfs_trans_reserve+0x147/0x2e0 >>> [42954211.590000] 794879f8: [<60087374>] kmem_cache_alloc+0x84/0x100 >>> [42954211.590000] 79487a38: [<601ab01f>] xfs_inactive_symlink_rmt+0x9f/0x450 >>> [42954211.590000] 79487a88: [<601ada94>] kmem_zone_zalloc+0x34/0x50 >>> [42954211.590000] 79487aa8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 >> .... >> >> I came back to the system, and found that the hang had gone away - the >> rm -rf had finished sometime in the ~36 hours between triggering the >> problem and coming back to look at the corpse.... >> >> So nothing to report yet. > > Got it now. I can reproduce this in a couple of minutes now that both > the test fs and the fs hosting the UML fs images are using lazy-count=1 > (and the frequent 10s long host system freezes have gone away, too). > > Looks like *another* new memory allocation problem [1]: > > [42950422.270000] xfsdatad/0 D 000000000043bf7a 0 51 2 > [42950422.270000] 804add98 804ad8f8 60498c40 80474000 804776a0 60014f0d 80442780 1000111a8 > [42950422.270000] 80474000 7ff1ac08 804ad8c0 80442780 804776f0 60324b21 80474000 80477700 > [42950422.270000] 80474000 1000111a8 80477700 0000000a 804777e0 80477950 80477750 60324e39 <6>Call Trace: > [42950422.270000] 80477668: [<60014f0d>] _switch_to+0x6d/0xe0 > [42950422.270000] 804776a8: [<60324b21>] schedule+0x171/0x2c0 > [42950422.270000] 804776f8: [<60324e39>] schedule_timeout+0x79/0xf0 > [42950422.270000] 80477718: [<60040360>] process_timeout+0x0/0x10 > [42950422.270000] 80477758: [<60324619>] io_schedule_timeout+0x19/0x30 > [42950422.270000] 80477778: [<6006eb74>] congestion_wait+0x74/0xa0 > [42950422.270000] 80477790: [<6004c5b0>] autoremove_wake_function+0x0/0x40 > [42950422.270000] 804777d8: [<600692a0>] throttle_vm_writeout+0x80/0xa0 > [42950422.270000] 80477818: [<6006cdf4>] shrink_zone+0xac4/0xb10 > [42950422.270000] 80477828: [<601adb5b>] kmem_alloc+0x5b/0x140 > [42950422.270000] 804778c8: [<60186d48>] xfs_iext_inline_to_direct+0x68/0x80 > [42950422.270000] 804778f8: [<60187e38>] xfs_iext_realloc_direct+0x128/0x1c0 > [42950422.270000] 80477928: [<60188594>] xfs_iext_add+0xc4/0x290 > [42950422.270000] 80477978: [<60166388>] xfs_bmbt_set_all+0x18/0x20 > [42950422.270000] 80477988: [<601887c4>] xfs_iext_insert+0x64/0x80 > [42950422.270000] 804779c8: [<6006d75a>] try_to_free_pages+0x1ea/0x330 > [42950422.270000] 80477a40: [<6006ba40>] isolate_pages_global+0x0/0x40 > [42950422.270000] 80477a98: [<60067887>] __alloc_pages_internal+0x267/0x540 > [42950422.270000] 80477b68: [<60086b61>] cache_alloc_refill+0x4c1/0x970 > [42950422.270000] 80477b88: [<60326ea9>] _spin_unlock+0x9/0x10 > [42950422.270000] 80477bd8: [<6002ffc5>] __might_sleep+0x55/0x120 > [42950422.270000] 80477c08: [<601ad9cd>] kmem_zone_alloc+0x7d/0x110 > [42950422.270000] 80477c18: [<600873c3>] kmem_cache_alloc+0xd3/0x100 > [42950422.270000] 80477c58: [<601ad9cd>] kmem_zone_alloc+0x7d/0x110 > [42950422.270000] 80477ca8: [<601ada78>] kmem_zone_zalloc+0x18/0x50 > [42950422.270000] 80477cc8: [<601a3a6d>] _xfs_trans_alloc+0x2d/0x70 > [42950422.270000] 80477ce8: [<601a3b52>] xfs_trans_alloc+0xa2/0xb0 > [42950422.270000] 80477d18: [<60027655>] set_signals+0x35/0x40 > [42950422.270000] 80477d48: [<6018f93a>] xfs_iomap_write_unwritten+0x5a/0x260 > [42950422.270000] 80477d50: [<60063d12>] mempool_free_slab+0x12/0x20 > [42950422.270000] 80477d68: [<60027655>] set_signals+0x35/0x40 > [42950422.270000] 80477db8: [<60063d12>] mempool_free_slab+0x12/0x20 > [42950422.270000] 80477dc8: [<60063dbf>] mempool_free+0x4f/0x90 > [42950422.270000] 80477e18: [<601af5e5>] xfs_end_bio_unwritten+0x65/0x80 > [42950422.270000] 80477e38: [<60048574>] run_workqueue+0xa4/0x180 > [42950422.270000] 80477e50: [<601af580>] xfs_end_bio_unwritten+0x0/0x80 > [42950422.270000] 80477e58: [<6004c791>] prepare_to_wait+0x51/0x80 > [42950422.270000] 80477e98: [<600488e0>] worker_thread+0x70/0xd0 > > We've entered memory reclaim inside the xfsdatad while trying to do > unwritten extent completion during I/O completion, and that memory > reclaim is now blocked waiting for I/o completion that cannot make > progress. > > Nasty. > > My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument > so we don't re-enter the FS here. If we get an ENOMEM in this case, we should > then re-queue the I/O completion at the back of the workqueue and let other > I/o completions progress before retrying this one. That way the I/O that > is simply cleaning memory will make progress, hence allowing memory > allocation to occur successfully when we retry this I/O completion... It could work - unless it's a synchronous I/O in which case the I/O is not complete until the extent conversion takes place. Could we allocate the memory up front before the I/O is issued? > > XFS-folk - thoughts? > > [1] I don't see how any of the XFS changes we made make this easier to hit. > What I suspect is a VM regression w.r.t. memory reclaim because this is > the second problem since 2.6.26 that appears to be a result of memory > allocation failures in places that we've never, ever seen failures before. > > The other new failure is this one: > > http://bugzilla.kernel.org/show_bug.cgi?id=11805 > > which is an alloc_pages(GFP_KERNEL) failure.... > > mm-folk - care to weight in? > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Sun Oct 26 21:52:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R4qWd1010776 for ; Sun, 26 Oct 2008 21:52:32 -0700 X-ASG-Debug-ID: 1225074133-122500a50000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ciao.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7907954990C for ; Sun, 26 Oct 2008 19:22:13 -0700 (PDT) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by cuda.sgi.com with ESMTP id Zoj99NHwOiA5t1mO for ; Sun, 26 Oct 2008 19:22:13 -0700 (PDT) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1KuHkA-000827-U3 for linux-xfs@oss.sgi.com; Mon, 27 Oct 2008 02:22:11 +0000 Received: from 75-134-105-39.dhcp.aldl.mi.charter.com ([75.134.105.39]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 27 Oct 2008 02:22:10 +0000 Received: from mlueck by 75-134-105-39.dhcp.aldl.mi.charter.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 27 Oct 2008 02:22:10 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Michael Lueck X-ASG-Orig-Subj: Re: Bad day with xfsrestore, what went wrong? Subject: Re: Bad day with xfsrestore, what went wrong? Date: Sun, 26 Oct 2008 22:22:03 -0400 Organization: Lueck Data Systems Lines: 32 Message-ID: References: Reply-To: mlueck@lueckdatasystems.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 75-134-105-39.dhcp.aldl.mi.charter.com User-Agent: Thunderbird 2.0.0.16 (X11/20080707) In-Reply-To: Sender: news X-Barracuda-Connect: main.gmane.org[80.91.229.2] X-Barracuda-Start-Time: 1225074134 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0159 1.0000 -1.9177 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8813 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- No suggestions / possible answers anyone for my question... Michael Lueck wrote: > Greetings- > > I hope this is the NNTP equiv of the email list found on this web page: > http://oss.sgi.com/projects/xfs/ > > I have been using XFS with Debian for a number of years with great > success. Today, xfsrestore really threw me a curve ball. I am wondering > what went wrong. > > I had wanted to restore from an old backup some directories that I > discovered I had need of. I used the following syntax to get the restore > started: > > xfsrestore -J -E -f /mnt/ext_backup/ldslnx01/20061220/data -s shares/data -i -v verbose /srv > > I selected some directories to restore through the interactive > interface, then allowed it to restore the specified files. > > What it ended up doing, HOWEVER, was to restore every file present in > that old backup that was no longer on disk! > > Thus, what went wrong? > > Thanks! -- Michael Lueck Lueck Data Systems http://www.lueckdatasystems.com/ From owner-xfs@oss.sgi.com Sun Oct 26 22:30:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R5UJ2A012875 for ; Sun, 26 Oct 2008 22:30:20 -0700 X-ASG-Debug-ID: 1225085417-2c2e03360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BFFB5549E90 for ; Sun, 26 Oct 2008 22:30:17 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id vv3QUgXV92TtD7IK for ; Sun, 26 Oct 2008 22:30:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,490,1220193000"; d="scan'208";a="218891337" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 16:00:06 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuKg1-00005L-1y; Mon, 27 Oct 2008 16:30:05 +1100 Date: Mon, 27 Oct 2008 16:30:04 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss , linux-mm@kvack.org X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081027053004.GF11948@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> <49051C71.9040404@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49051C71.9040404@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225085418 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0026 1.0000 -2.0043 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8819 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 12:42:09PM +1100, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: >>> On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: >>>> OK, I just hung a single-threaded rm -rf after this completed: >>>> >>>> # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress >>>> >>>> It has hung with this trace: .... >> Got it now. I can reproduce this in a couple of minutes now that both >> the test fs and the fs hosting the UML fs images are using lazy-count=1 >> (and the frequent 10s long host system freezes have gone away, too). >> >> Looks like *another* new memory allocation problem [1]: ..... >> We've entered memory reclaim inside the xfsdatad while trying to do >> unwritten extent completion during I/O completion, and that memory >> reclaim is now blocked waiting for I/o completion that cannot make >> progress. >> >> Nasty. >> >> My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument >> so we don't re-enter the FS here. If we get an ENOMEM in this case, we should >> then re-queue the I/O completion at the back of the workqueue and let other >> I/o completions progress before retrying this one. That way the I/O that >> is simply cleaning memory will make progress, hence allowing memory >> allocation to occur successfully when we retry this I/O completion... > It could work - unless it's a synchronous I/O in which case the I/O is not > complete until the extent conversion takes place. Right. Pushing unwritten extent conversion onto a different workqueue is probably the only way to handle this easily. That's the same solution Irix has been using for a long time (the xfsc thread).... > Could we allocate the memory up front before the I/O is issued? Possibly, but that will create more memory pressure than allocation in I/O completion because now we could need to hold thousands of allocations across an I/O - think of the case where we are running low on memory and have a disk subsystem capable of a few hundred thousand I/Os per second. the allocation failing would prevent the I/os from being issued, and if this is buffered writes into unwritten extents we'd be preventing dirty pages from being cleaned.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 26 22:48:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R5m15x013551 for ; Sun, 26 Oct 2008 22:48:02 -0700 X-ASG-Debug-ID: 1225086479-2c1e037f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 04EB9549F27 for ; Sun, 26 Oct 2008 22:48:00 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Re280iNBytojrRPG for ; Sun, 26 Oct 2008 22:48:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,490,1220193000"; d="scan'208";a="218905170" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 16:17:58 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuKxJ-0000SO-AF; Mon, 27 Oct 2008 16:47:57 +1100 Date: Mon, 27 Oct 2008 16:47:57 +1100 From: Dave Chinner To: Timothy Shimmin Cc: Lachlan McIlroy , Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081027054757.GG11948@disturbed> Mail-Followup-To: Timothy Shimmin , Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081026223940.GN18495@disturbed> <490527E2.5000600@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490527E2.5000600@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225086481 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0011 1.0000 -2.0139 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8820 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 01:30:58PM +1100, Timothy Shimmin wrote: > Dave Chinner wrote: > > Ok, I think I've found the regression - it's introduced by the AIL > > cursor modifications. The patch below has been running for 15 > > minutes now on my UML box that would have hung in a couple of > > minutes otherwise. ..... > Yeah, the fix looks good. The previous code is pretty > obviously broken - a search which always returns NULL. > > Which begs the question on the best way of testing this ail code. > I dunno - it would be nice for independent testing of data structures > but perhaps that is too ambitious. > > OOC, so the call path for this code.... > xfsaild -> xfsaild_push(ailp, &last_pushed_lsn) > -> lip = xfs_trans_ail_cursor_first(ailp, cur, *last_lsn) > Initially, last_lsn = 0 in xfsaild > but it will be updated via last_pushed_lsn. Right. > So it looks like things will work initially when lsn==0, because > xfs_trans_ail_cursor_first special cases that and uses the min. > But as soon as the lsn is set to non-zero, > xfs_trans_ail_cursor_first will return NULL, > and xfsaild_push will return early. Right - that was the bug. With the fix we will only return NULL if we walk off the end of the AIL list before we get to the LSN being requested to start at. Otherwise we jump over the "lip = NULL" and start at the first log item with a LSN greater than or equal to the last_lsn.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Sun Oct 26 23:31:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R6Vl1s015383 for ; Sun, 26 Oct 2008 23:31:48 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 281428F8115; Sun, 26 Oct 2008 23:31:38 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA23834; Mon, 27 Oct 2008 17:31:32 +1100 Message-ID: <49055FDE.7040709@sgi.com> Date: Mon, 27 Oct 2008 17:29:50 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> <49051C71.9040404@sgi.com> <20081027053004.GF11948@disturbed> In-Reply-To: <20081027053004.GF11948@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Mon, Oct 27, 2008 at 12:42:09PM +1100, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: >>>> On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: >>>>> OK, I just hung a single-threaded rm -rf after this completed: >>>>> >>>>> # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress >>>>> >>>>> It has hung with this trace: > .... >>> Got it now. I can reproduce this in a couple of minutes now that both >>> the test fs and the fs hosting the UML fs images are using lazy-count=1 >>> (and the frequent 10s long host system freezes have gone away, too). >>> >>> Looks like *another* new memory allocation problem [1]: > ..... >>> We've entered memory reclaim inside the xfsdatad while trying to do >>> unwritten extent completion during I/O completion, and that memory >>> reclaim is now blocked waiting for I/o completion that cannot make >>> progress. >>> >>> Nasty. >>> >>> My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument >>> so we don't re-enter the FS here. If we get an ENOMEM in this case, we should >>> then re-queue the I/O completion at the back of the workqueue and let other >>> I/o completions progress before retrying this one. That way the I/O that >>> is simply cleaning memory will make progress, hence allowing memory >>> allocation to occur successfully when we retry this I/O completion... >> It could work - unless it's a synchronous I/O in which case the I/O is not >> complete until the extent conversion takes place. > > Right. Pushing unwritten extent conversion onto a different > workqueue is probably the only way to handle this easily. > That's the same solution Irix has been using for a long time > (the xfsc thread).... Would that be a workqueue specific to one filesystem? Right now our workqueues are per-cpu so they can contain I/O completions for multiple filesystems. > >> Could we allocate the memory up front before the I/O is issued? > > Possibly, but that will create more memory pressure than > allocation in I/O completion because now we could need to hold > thousands of allocations across an I/O - think of the case where > we are running low on memory and have a disk subsystem capable of > a few hundred thousand I/Os per second. the allocation failing would > prevent the I/os from being issued, and if this is buffered writes > into unwritten extents we'd be preventing dirty pages from being > cleaned.... The allocation has to be done sometime - if have a few hundred thousand I/Os per second then the queue of unwritten extent conversion requests is going to grow very quickly. If a separate workqueue will fix this then that's a better solution anyway. From owner-xfs@oss.sgi.com Sun Oct 26 23:55:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R6t1VK016634 for ; Sun, 26 Oct 2008 23:55:03 -0700 X-ASG-Debug-ID: 1225090498-1f4301d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 036F91BD7E90 for ; Sun, 26 Oct 2008 23:54:59 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id JXaYTgwUoD6xR60E for ; Sun, 26 Oct 2008 23:54:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,491,1220193000"; d="scan'208";a="218948443" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 17:24:57 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuM07-00022E-Jp; Mon, 27 Oct 2008 17:54:55 +1100 Date: Mon, 27 Oct 2008 17:54:55 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss , linux-mm@kvack.org X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081027065455.GB4985@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> <49051C71.9040404@sgi.com> <20081027053004.GF11948@disturbed> <49055FDE.7040709@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49055FDE.7040709@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225090501 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8823 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 05:29:50PM +1100, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Mon, Oct 27, 2008 at 12:42:09PM +1100, Lachlan McIlroy wrote: >>> Dave Chinner wrote: >>>> On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: >>>>> On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: >>>>>> OK, I just hung a single-threaded rm -rf after this completed: >>>>>> >>>>>> # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress >>>>>> >>>>>> It has hung with this trace: >> .... >>>> Got it now. I can reproduce this in a couple of minutes now that both >>>> the test fs and the fs hosting the UML fs images are using lazy-count=1 >>>> (and the frequent 10s long host system freezes have gone away, too). >>>> >>>> Looks like *another* new memory allocation problem [1]: >> ..... >>>> We've entered memory reclaim inside the xfsdatad while trying to do >>>> unwritten extent completion during I/O completion, and that memory >>>> reclaim is now blocked waiting for I/o completion that cannot make >>>> progress. >>>> >>>> Nasty. >>>> >>>> My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument >>>> so we don't re-enter the FS here. If we get an ENOMEM in this case, we should >>>> then re-queue the I/O completion at the back of the workqueue and let other >>>> I/o completions progress before retrying this one. That way the I/O that >>>> is simply cleaning memory will make progress, hence allowing memory >>>> allocation to occur successfully when we retry this I/O completion... >>> It could work - unless it's a synchronous I/O in which case the I/O is not >>> complete until the extent conversion takes place. >> >> Right. Pushing unwritten extent conversion onto a different >> workqueue is probably the only way to handle this easily. >> That's the same solution Irix has been using for a long time >> (the xfsc thread).... > > Would that be a workqueue specific to one filesystem? Right now our > workqueues are per-cpu so they can contain I/O completions for multiple > filesystems. I've simply implemented another per-cpu workqueue set. >>> Could we allocate the memory up front before the I/O is issued? >> >> Possibly, but that will create more memory pressure than >> allocation in I/O completion because now we could need to hold >> thousands of allocations across an I/O - think of the case where >> we are running low on memory and have a disk subsystem capable of >> a few hundred thousand I/Os per second. the allocation failing would >> prevent the I/os from being issued, and if this is buffered writes >> into unwritten extents we'd be preventing dirty pages from being >> cleaned.... > > The allocation has to be done sometime - if have a few hundred thousand > I/Os per second then the queue of unwritten extent conversion requests > is going to grow very quickly. Sure, but the difference is that in a workqueue we are doing: alloc free alloc free ..... alloc free So the instantaneous memory usage is bound by the number of workqueue threads doing conversions. The "pre-allocate" case is: alloc alloc alloc alloc ...... free ..... free ..... so the allocation is bound by the number of parallel I/Os we have not completed. Given that the transaction structure is *800* bytes, they will consume memory very quickly if pre-allocated before the I/O is dispatched. > If a separate workqueue will fix this > then that's a better solution anyway. I think so. The patch I have been testing is below. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Prevent unwritten extent conversion from blocking I/O completion Unwritten extent conversion can recurse back into the filesystem due to memory allocation. Memory reclaim requires I/O completions to be processed to allow the callers to make progress. If the I/O completion workqueue thread is doing the recursion, then we have a deadlock situation. Move unwritten extent completion into it's own workqueue so it doesn't block I/O completions for normal delayed allocation or overwrite data. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_aops.c | 38 +++++++++++++++++++++----------------- fs/xfs/linux-2.6/xfs_aops.h | 1 + fs/xfs/linux-2.6/xfs_buf.c | 9 +++++++++ 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 6f4ebd0..f8fa620 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -119,23 +119,6 @@ xfs_find_bdev_for_inode( } /* - * Schedule IO completion handling on a xfsdatad if this was - * the final hold on this ioend. If we are asked to wait, - * flush the workqueue. - */ -STATIC void -xfs_finish_ioend( - xfs_ioend_t *ioend, - int wait) -{ - if (atomic_dec_and_test(&ioend->io_remaining)) { - queue_work(xfsdatad_workqueue, &ioend->io_work); - if (wait) - flush_workqueue(xfsdatad_workqueue); - } -} - -/* * We're now finished for good with this ioend structure. * Update the page state via the associated buffer_heads, * release holds on the inode and bio, and finally free @@ -266,6 +249,27 @@ xfs_end_bio_read( } /* + * Schedule IO completion handling on a xfsdatad if this was + * the final hold on this ioend. If we are asked to wait, + * flush the workqueue. + */ +STATIC void +xfs_finish_ioend( + xfs_ioend_t *ioend, + int wait) +{ + if (atomic_dec_and_test(&ioend->io_remaining)) { + struct workqueue_struct *wq = xfsdatad_workqueue; + if (ioend->io_work.func == xfs_end_bio_unwritten) + wq = xfsconvertd_workqueue; + + queue_work(wq, &ioend->io_work); + if (wait) + flush_workqueue(wq); + } +} + +/* * Allocate and initialise an IO completion structure. * We need to track unwritten extent write completion here initially. * We'll need to extend this for updating the ondisk inode size later diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h index 3ba0631..7643f82 100644 --- a/fs/xfs/linux-2.6/xfs_aops.h +++ b/fs/xfs/linux-2.6/xfs_aops.h @@ -19,6 +19,7 @@ #define __XFS_AOPS_H__ extern struct workqueue_struct *xfsdatad_workqueue; +extern struct workqueue_struct *xfsconvertd_workqueue; extern mempool_t *xfs_ioend_pool; typedef void (*xfs_ioend_func_t)(void *); diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 36d5fcd..c1f55b3 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -45,6 +45,7 @@ static struct shrinker xfs_buf_shake = { static struct workqueue_struct *xfslogd_workqueue; struct workqueue_struct *xfsdatad_workqueue; +struct workqueue_struct *xfsconvertd_workqueue; #ifdef XFS_BUF_TRACE void @@ -1756,6 +1757,7 @@ xfs_flush_buftarg( xfs_buf_t *bp, *n; int pincount = 0; + xfs_buf_runall_queues(xfsconvertd_workqueue); xfs_buf_runall_queues(xfsdatad_workqueue); xfs_buf_runall_queues(xfslogd_workqueue); @@ -1812,9 +1814,15 @@ xfs_buf_init(void) if (!xfsdatad_workqueue) goto out_destroy_xfslogd_workqueue; + xfsconvertd_workqueue = create_workqueue("xfsconvertd"); + if (!xfsconvertd_workqueue) + goto out_destroy_xfsdatad_workqueue; + register_shrinker(&xfs_buf_shake); return 0; + out_destroy_xfsdatad_workqueue: + destroy_workqueue(xfsdatad_workqueue); out_destroy_xfslogd_workqueue: destroy_workqueue(xfslogd_workqueue); out_free_buf_zone: @@ -1830,6 +1838,7 @@ void xfs_buf_terminate(void) { unregister_shrinker(&xfs_buf_shake); + destroy_workqueue(xfsconvertd_workqueue); destroy_workqueue(xfsdatad_workqueue); destroy_workqueue(xfslogd_workqueue); kmem_zone_destroy(xfs_buf_zone); From owner-xfs@oss.sgi.com Mon Oct 27 00:33:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R7X3Jd025882 for ; Mon, 27 Oct 2008 00:33:03 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 539E88F80A4; Mon, 27 Oct 2008 00:32:57 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA25185; Mon, 27 Oct 2008 18:32:54 +1100 Message-ID: <49056E40.5040906@sgi.com> Date: Mon, 27 Oct 2008 18:31:12 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081024052418.GO25906@disturbed> <20081024064804.GQ25906@disturbed> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> <49051C71.9040404@sgi.com> <20081027053004.GF11948@disturbed> <49055FDE.7040709@sgi.com> <20081027065455.GB4985@disturbed> In-Reply-To: <20081027065455.GB4985@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Mon, Oct 27, 2008 at 05:29:50PM +1100, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> On Mon, Oct 27, 2008 at 12:42:09PM +1100, Lachlan McIlroy wrote: >>>> Dave Chinner wrote: >>>>> On Sun, Oct 26, 2008 at 11:53:51AM +1100, Dave Chinner wrote: >>>>>> On Fri, Oct 24, 2008 at 05:48:04PM +1100, Dave Chinner wrote: >>>>>>> OK, I just hung a single-threaded rm -rf after this completed: >>>>>>> >>>>>>> # fsstress -p 1024 -n 100 -d /mnt/xfs2/fsstress >>>>>>> >>>>>>> It has hung with this trace: >>> .... >>>>> Got it now. I can reproduce this in a couple of minutes now that both >>>>> the test fs and the fs hosting the UML fs images are using lazy-count=1 >>>>> (and the frequent 10s long host system freezes have gone away, too). >>>>> >>>>> Looks like *another* new memory allocation problem [1]: >>> ..... >>>>> We've entered memory reclaim inside the xfsdatad while trying to do >>>>> unwritten extent completion during I/O completion, and that memory >>>>> reclaim is now blocked waiting for I/o completion that cannot make >>>>> progress. >>>>> >>>>> Nasty. >>>>> >>>>> My initial though is to make _xfs_trans_alloc() able to take a KM_NOFS argument >>>>> so we don't re-enter the FS here. If we get an ENOMEM in this case, we should >>>>> then re-queue the I/O completion at the back of the workqueue and let other >>>>> I/o completions progress before retrying this one. That way the I/O that >>>>> is simply cleaning memory will make progress, hence allowing memory >>>>> allocation to occur successfully when we retry this I/O completion... >>>> It could work - unless it's a synchronous I/O in which case the I/O is not >>>> complete until the extent conversion takes place. >>> Right. Pushing unwritten extent conversion onto a different >>> workqueue is probably the only way to handle this easily. >>> That's the same solution Irix has been using for a long time >>> (the xfsc thread).... >> Would that be a workqueue specific to one filesystem? Right now our >> workqueues are per-cpu so they can contain I/O completions for multiple >> filesystems. > > I've simply implemented another per-cpu workqueue set. > >>>> Could we allocate the memory up front before the I/O is issued? >>> Possibly, but that will create more memory pressure than >>> allocation in I/O completion because now we could need to hold >>> thousands of allocations across an I/O - think of the case where >>> we are running low on memory and have a disk subsystem capable of >>> a few hundred thousand I/Os per second. the allocation failing would >>> prevent the I/os from being issued, and if this is buffered writes >>> into unwritten extents we'd be preventing dirty pages from being >>> cleaned.... >> The allocation has to be done sometime - if have a few hundred thousand >> I/Os per second then the queue of unwritten extent conversion requests >> is going to grow very quickly. > > Sure, but the difference is that in a workqueue we are doing: > > alloc > free > alloc > free > ..... > alloc > free > > So the instantaneous memory usage is bound by the number of > workqueue threads doing conversions. The "pre-allocate" case is: > > alloc > alloc > alloc > alloc > ...... > > free > ..... > > free > ..... > > so the allocation is bound by the number of parallel I/Os we have > not completed. Given that the transaction structure is *800* bytes, > they will consume memory very quickly if pre-allocated before the > I/O is dispatched. Ah, yes of course I see your point. It would only really work for synchronous I/O. Even with the current code we could have queues that grow very large because buffered writes to unwritten extents don't wait for the conversion. So even for the small amount of memory we allocate for each queue entry we still could consume a lot in total. > >> If a separate workqueue will fix this >> then that's a better solution anyway. > > I think so. The patch I have been testing is below. Thanks, I'll add it to the list. From owner-xfs@oss.sgi.com Mon Oct 27 00:35:30 2008 Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R7ZTRn026186 for ; Mon, 27 Oct 2008 00:35:30 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id CC7DA8F8139; Mon, 27 Oct 2008 00:35:27 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA25261; Mon, 27 Oct 2008 18:35:25 +1100 Message-ID: <49056ED7.7030303@sgi.com> Date: Mon, 27 Oct 2008 18:33:43 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss Subject: Re: deadlock with latest xfs References: <4900412A.2050802@sgi.com> <20081023205727.GA28490@infradead.org> <49013C47.4090601@sgi.com> <20081026223940.GN18495@disturbed> In-Reply-To: <20081026223940.GN18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Fri, Oct 24, 2008 at 01:08:55PM +1000, Lachlan McIlroy wrote: >> Christoph Hellwig wrote: >>> On Thu, Oct 23, 2008 at 07:17:30PM +1000, Lachlan McIlroy wrote: >>>> another problem with latest xfs >>> Is this with the 2.6.27-based ptools/cvs tree or with the 2.6.28 based >>> git tree? It does looks more like a VM issue than a XFS issue to me. >>> >> It's with the 2.6.27-rc8 based ptools tree. Prior to checking >> in these patches: >> >> Can't lock inodes in radix tree preload region >> stop using xfs_itobp in xfs_bulkstat >> free partially initialized inodes using destroy_inode >> >> I was able to stress a system for about 4 hours before it ran out >> of memory. Now I hit the deadlock within a few minutes. I need >> to roll back to find which patch changed the behaviour. > > Ok, I think I've found the regression - it's introduced by the AIL > cursor modifications. The patch below has been running for 15 > minutes now on my UML box that would have hung in a couple of > minutes otherwise. Yep, looks good here too. My test system has been up at least an hour and still chugging. > > FYI, the way I found this was: > > - put a breakpoint on xfs_create() once the fs hung > - `touch /mnt/xfs2/fred` to trigger the break point. > - look at: > - mp->m_ail->xa_target > - mp->m_ail->xa_ail.next->li_lsn > - mp->m_log->l_tail_lsn > which indicated the push target was way ahead the > tail of the log, so AIL pushing was obviously not > happening otherwise we'd be making progress. > - added breakpoint on xfsaild_push() and continued > - xfsaild_push() bp triggered, looked at *last_lsn > and found it way behind the tail of the log (like > 3 cycle behind), which meant that would return > NULL instead of the first object and AIL pushing > would abort. Confirmed with single stepping. > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Mon Oct 27 00:39:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R7dkXH026547 for ; Mon, 27 Oct 2008 00:39:46 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 993569088B; Mon, 27 Oct 2008 00:39:38 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA25381; Mon, 27 Oct 2008 18:39:35 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 916FB58AE1E5; Mon, 27 Oct 2008 18:39:35 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - correctly select first log item to push Message-Id: <20081027073935.916FB58AE1E5@chook.melbourne.sgi.com> Date: Mon, 27 Oct 2008 18:39:35 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) correctly select first log item to push Under heavy metadata load we are seeing log hangs. The AIL has items in it ready to be pushed, and they are within the push target window. However, we are not pushing them when the last pushed LSN is less than the LSN of the first log item on the AIL. This is a regression introduced by the AIL push cursor modifications. Signed-off-by: Dave Chinner Date: Mon Oct 27 18:39:08 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-xfs Inspected by: tes Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32409a fs/xfs/xfs_trans_ail.c - 1.93 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_trans_ail.c.diff?r1=text&tr1=1.93&r2=text&tr2=1.92&f=h - correctly select first log item to push From owner-xfs@oss.sgi.com Mon Oct 27 00:45:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R7jupP026981 for ; Mon, 27 Oct 2008 00:45:56 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 2F1C29088B; Mon, 27 Oct 2008 00:45:52 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id SAA25640; Mon, 27 Oct 2008 18:45:48 +1100 Message-ID: <49057146.3000101@sgi.com> Date: Mon, 27 Oct 2008 18:44:06 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Stephen Rothwell , linux-next@vger.kernel.org, LKML , Andrew Morton , xfs@oss.sgi.com Subject: Re: linux-next: left over things in linux-next after 2.6.28-c1 References: <20081026005009.50dbbb33.sfr@canb.auug.org.au> <20081026081717.GB20872@infradead.org> <20081026193421.f5f7d8f1.sfr@canb.auug.org.au> <20081026083939.GA19394@infradead.org> In-Reply-To: <20081026083939.GA19394@infradead.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > On Sun, Oct 26, 2008 at 07:34:21PM +1100, Stephen Rothwell wrote: >> Presumably what was merged was slightly different (or the commits were >> split up differently). This is the same problem I have with the kvm tree. > > It should be the same, but the xfs trees have been a bit of a maze > recently, so it shouldn't be a surprise that your list got out of sync. > The XFS tree used for linux-next got a bit out of whack and I couldn't make sense of the mess so I've been using a different tree for the mainline pull requests. We'll have this mess sorted out soon. From owner-xfs@oss.sgi.com Mon Oct 27 02:18:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.3 required=5.0 tests=BAYES_50,HTML_MESSAGE, KB_RATWARE_OUTLOOK_08,MIME_8BIT_HEADER autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9R9IlCA032505 for ; Mon, 27 Oct 2008 02:18:49 -0700 X-ASG-Debug-ID: 1225099118-34f702d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [151.58.19.154] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 41D6D12AD757 for ; Mon, 27 Oct 2008 02:18:39 -0700 (PDT) Received: from [151.58.19.154] ([151.58.19.154]) by cuda.sgi.com with ESMTP id 1vfj3DVtf1SoGVNW for ; Mon, 27 Oct 2008 02:18:39 -0700 (PDT) Message-ID: <000701c93814$04e1eb56$dc1c3399@dptfwwr> From: "hagan dawit" To: X-ASG-Orig-Subj: =?koi8-r?B?8NLFxMzBx8HFzSDJzsbP0s3Bw8nPzs7ZxSDCwdrZIMTBzs7ZyA==?= Subject: =?koi8-r?B?8NLFxMzBx8HFzSDJzsbP0s3Bw8nPzs7ZxSDCwdrZIMTBzs7ZyA==?= Date: Mon, 27 Oct 2008 07:31:15 +0000 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Barracuda-Connect: UNKNOWN[151.58.19.154] X-Barracuda-Start-Time: 1225099127 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5006 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.85 X-Barracuda-Spam-Status: No, SCORE=0.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG035a, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8829 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 1755 =E9=CE=C6=CF=D2=CD=C1=C3=C9=CF=CE=CE=D9=C5 =C2=C1=DA=D9 =C4=C1=CE=CE= =D9=C8:=20 =F7=FC=E4 - =C4=C1=CE=CE=D9=C5 =E6=F4=F3(=C4=C5=CB=CC=C1=D2=C1=C3=C9=C9= )- 1999-2008 =C7=C7. =D0=CF =F2=E6 =C9 =F5=CB=D2=C1=C9=CE=C5. =E6=C9=D2= =CD=D9, =D0=D2=C5=C4=D0=D2=C9=D1=D4=C9=D1 =F2=E6 (=D2=C5=C7=C9=D3=D4=D2=C1= =C3=C9=CF=CE=CE=D9=C5 =C9 =C6=C1=CB=D4=C9=DE=C5=D3=CB=C9=C5 =C4=C1=CE=CE=D9= =C5) =D0=CF 2008 =C7. - 3000 =D2=D5=C2. =F2=C1=D3=DE=C5=D4=CE=CF-=CB=C1= =D3=D3=CF=D7=D9=CA =E3=C5=CE=D4=D2 =E3=E2 =F2=E6 (=E2=C1=CE=CB=CF=D7=D3=CB= =C9=C5 =D0=D2=CF=D7=CF=C4=CB=C9) 5000 =D2=D5=C2. =F4=C5=CC=C5=C6=CF=CE= =D9, =D0=D2=CF=D0=C9=D3=CB=C1, =D3=CF=C2=D3=D4=D7=C5=CE=CE=CF=D3=D4=D8, =D0= =C1=D3=D0=CF=D2=D4=C1 (=ED=CF=D3=CB=D7=C1, =ED=EF) 2000 =D2=D5=C2. =E7= =E1=E9-=E1=D7=D4=CF, =D7=CF=C4. =D5=C4 ,=E4=F4=F0 =C9 =C4=D2. =D0=CF =ED=CF= =D3=CB=D7=C5, =ED=EF 2000 =D2=D5=C2. =EE=C1=CC=CF=C7=CF=D7=C1=D1 =D0=CF = =C6=C9=DA. =CC=C9=C3=C1=CD (=CD=C5=D3=D4=CF =D2=C1=C2=CF=D4=D9, =C4=CF=C8= =CF=C4, =D2=C1=C2=CF=D4=CF=C4=C1=D4=C5=CC=D8) 2000 =D2=D5=C2. =F3=D7=CF= =C4=CB=C9, =D3=D5=C4=C9=CD=CF=D3=D4=C9, =D2=CF=DA=D9=D3=CB =C9 =C4=D2. (=EB= =D2=C9=CD=C9=CE=C1=CC =F2=E6) 3000 =D2=D5=C2. =E6=C9=DA=CC=C9=C3=C1 =F2= =E6 (=D4=C5=CC=C5=C6=CF=CE=D9, =D0=D2=CF=D0=C9=D3=CB=C1, =D0=C1=D3=D0=CF=D2= =D4=C1 )3000 =D2=D5=C2. =E7=E1=E9 =D2=C5=C7=C9=CF=CE=CF=D7 =F2=E6( =D7= =CC=C1=C4=C5=CC=D8=C3=D9 =C9 =C1=D7=D4=CF) 2000 =D2=D5=C2. =D0=CF=CC=CE= =D9=CA =CB=CF=CD=D0=CC=C5=CB=D4 15000 =D2=D5=C2. =E5=D3=CC=C9 =F7=C1=D3 =DA= =C1=C9=CE=D4=C5=D2=C5=D3=CF=D7=C1=CC=CF =CE=C1=DB=C5 =D0=D2=C5=C4=CC=CF=D6= =C5=CE=C9=C5 - =DA=D7=CF=CE=C9=D4=C5 =D0=CF =D4=C5=CC=C5=C6=CF=CE=D5:(495) = 961-58-67=20 =20=20=20 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Mon Oct 27 04:20:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RBKV2k011495 for ; Mon, 27 Oct 2008 04:20:32 -0700 X-ASG-Debug-ID: 1225106430-01cf02310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1D70BADDB61 for ; Mon, 27 Oct 2008 04:20:30 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id Jy4i0yFxe3XrPnqr for ; Mon, 27 Oct 2008 04:20:30 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id 0B737C701B9; Mon, 27 Oct 2008 12:20:29 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nDG2sPGgwfE9; Mon, 27 Oct 2008 12:20:28 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id 89ED6C701A2; Mon, 27 Oct 2008 12:20:28 +0100 (CET) Message-ID: <4905A3FB.6080709@aei.mpg.de> Date: Mon, 27 Oct 2008 12:20:27 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Map a disk LBA to filename? Subject: Map a disk LBA to filename? X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225106431 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0440 1.0000 -1.7376 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.74 X-Barracuda-Spam-Status: No, SCORE=-1.74 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8834 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi all, I have not found it in the archive, thus my question to all: Along the lines of this doc http://smartmontools.sourceforge.net/BadBlockHowTo.txt I would like to find out if that's also possible for XFS, i.e. I have a disk which tells me, that there is a problem with LBA x and I identify that this block is within the range of a largish XFS file system. Now, I would like to identify the file which is possibly broken and repair it if I can without taking the machine down for hours running the manufacturers DOS tools. With simple ext[23] this is possible, but I'm not getting anywhere with reading xfs_db and xfs_ncheck man pages to get there. Anyone here with a brief recipe I can get along with? Cheers Carsten -- Dr. Carsten Aulbert - Max Planck Institute for Gravitational Physics Callinstrasse 38, 30167 Hannover, Germany Phone/Fax: +49 511 762-17185 / -17193 http://www.top500.org/system/9234 | http://www.top500.org/connfam/6/list/31 From owner-xfs@oss.sgi.com Mon Oct 27 04:49:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RBnphb012996 for ; Mon, 27 Oct 2008 04:49:52 -0700 X-ASG-Debug-ID: 1225108189-4a1d00e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34F6F54AD1F for ; Mon, 27 Oct 2008 04:49:49 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id vMMoLBRlwF19wA2b for ; Mon, 27 Oct 2008 04:49:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,492,1220193000"; d="scan'208";a="219082884" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 22:19:47 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuQbS-00009J-0E; Mon, 27 Oct 2008 22:49:46 +1100 Date: Mon, 27 Oct 2008 22:49:45 +1100 From: Dave Chinner To: Carsten Aulbert Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081027114945.GE4985@disturbed> Mail-Followup-To: Carsten Aulbert , xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4905A3FB.6080709@aei.mpg.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225108191 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1742 1.0000 -0.9664 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.97 X-Barracuda-Spam-Status: No, SCORE=-0.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8837 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 12:20:27PM +0100, Carsten Aulbert wrote: > Hi all, > > I have not found it in the archive, thus my question to all: > > Along the lines of this doc > http://smartmontools.sourceforge.net/BadBlockHowTo.txt > > I would like to find out if that's also possible for XFS, i.e. I have a > disk which tells me, that there is a problem with LBA x and I identify > that this block is within the range of a largish XFS file system. > > Now, I would like to identify the file which is possibly broken and > repair it if I can without taking the machine down for hours running the > manufacturers DOS tools. With simple ext[23] this is possible, but I'm > not getting anywhere with reading xfs_db and xfs_ncheck man pages to get > there. > > Anyone here with a brief recipe I can get along with? Use xfs_bmap to find the location on disk of the extents in each file. Recurse over the filesystem until you find the file that owns the block that went bad. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 04:57:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_00,HEADER_ESQ, J_CHICKENPOX_42,J_CHICKENPOX_52,J_CHICKENPOX_63 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RBvAoW013552 for ; Mon, 27 Oct 2008 04:57:12 -0700 X-ASG-Debug-ID: 1225108629-47ef01ee0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nf-out-0910.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A2F81BD84A6 for ; Mon, 27 Oct 2008 04:57:09 -0700 (PDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.184]) by cuda.sgi.com with ESMTP id NFD0CXCiGJkVbBlP for ; Mon, 27 Oct 2008 04:57:09 -0700 (PDT) Received: by nf-out-0910.google.com with SMTP id h3so759691nfh.42 for ; Mon, 27 Oct 2008 04:57:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=+sX3ba4GXjodU8QsrHwbya71nh6EjM4g3OJcUZ0ENJ0=; b=tCNJnb6YcS6NZHzRdjSjH+3q0Sox0cqb0v2zSLfEGbbDDSpJjiEqj/WjyA3Y6ynQvF X848UUSzVeWcrmuJE/YhR3OTVnbqWQJwuHJAKVQSP1J5mBGPMICYbTv1AuZz77Ur5vFV mnLZd4JM3x0B60aB355/NgNB9dNYYJTdauxbw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=Xwo5eSqhH8vpsDX2lHiWMSI3VkivYqHDP6QJmnA6g0a8nQV/SZ+tr9KPref+9X4bQa nLUgG7wj5NkCxM1vQ1ylsBaYaGu2D8WUxGWxOgkNlY/vKQXcW+gtDL1fYALjaE9PWv2y Ysz8i8IeUWeSmVVeM0d8GMJdfLU6RNt/ZkMO8= Received: by 10.103.222.1 with SMTP id z1mr2684167muq.79.1225108628529; Mon, 27 Oct 2008 04:57:08 -0700 (PDT) Received: by 10.103.203.19 with HTTP; Mon, 27 Oct 2008 04:57:08 -0700 (PDT) Message-ID: <5d96567b0810270457g70b63c77re8841ebd1959f7b7@mail.gmail.com> Date: Mon, 27 Oct 2008 13:57:08 +0200 From: Raz To: Raz , linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Re: does XFS supports hole punching ? Subject: Re: does XFS supports hole punching ? Cc: "Asaf Moses" , "Ofer Kruzel" , yaronp@bitband.com In-Reply-To: <20081022212034.GQ18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <5d96567b0810221040m17d73871iff00d56bf07479c2@mail.gmail.com> <20081022212034.GQ18495@disturbed> X-Barracuda-Connect: nf-out-0910.google.com[64.233.182.184] X-Barracuda-Start-Time: 1225108630 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8837 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Dave Hello I would be grateful if you help me here. man xfsctl was not clear enough. I have written a small program that compares the behavior of FREESP and UNRESERVE. I create a file size 10M, each 1M is filled with aaa.. 2-nd MB filled with bbb 3-rd with ccc and so on. I am trying to punch a hole with the bellow program and then inspect the file content, size and block map. 1. XFS_IOC_FREESP64 seems to be truncating the file and does not create a hole. 2. XFS_IOC_UNRESERVE64 creates a hole and leaves the file size unchanged. as the man page says. /d1/holely: 0: [0..14335]: 96..14431 14336 blocks 1: [14336..16383]: hole 2048 blocks 2: [16384..20479]: 16480..20575 4096 blocks Do a hole blocks count as a the file-system free space ? "df" says it does. 1. prior to running /dev/md1 374255616 1042116 373213500 1% /d1 2. create 10MB file /dev/md1 374255616 1052416 373203200 1% /d1 3. create a hole /dev/md1 374255616 1051332 373204284 1% /d1 1052416-1051332 = 1084k kernel 2.6.18-8 On Wed, Oct 22, 2008 at 11:20 PM, Dave Chinner wrote: > On Wed, Oct 22, 2008 at 07:40:26PM +0200, Raz wrote: >> I want to punch a hole in an exiting file. > > Yes. Check the man page for xfsctl(3) and read up on > XFS_IOC_FREESP64. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > #include using namespace std; #include #include #include #include #include #include #include #include #include #include #include int sizeB; string exename; int hole_offset; int hole_size; char* buf; int xfs_create_file(string & filename){ int j=0; int fd = open(filename.c_str(),O_RDWR | O_LARGEFILE | O_CREAT, 0666); if (fd<0) { perror("open:"); return -1; } buf = (char*) malloc(1048576); for (int i=0;i \n",argv[0]); return -1; } string fname(argv[1]); sizeB = atoi(argv[2])<<20; hole_offset = atoi(argv[3])<<20; hole_size = atoi(argv[4])<<10; if ( !xfs_create_file(fname) ) return xfs_create_hole(fname); return(0); } From owner-xfs@oss.sgi.com Mon Oct 27 05:14:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCE5XC014505 for ; Mon, 27 Oct 2008 05:14:06 -0700 X-ASG-Debug-ID: 1225109643-62ba00720000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6F29754B459 for ; Mon, 27 Oct 2008 05:14:03 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id TNNu4MfagFFhBVy3 for ; Mon, 27 Oct 2008 05:14:03 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,492,1220193000"; d="scan'208";a="219090744" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 27 Oct 2008 22:44:02 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuQyu-0000h5-Qc; Mon, 27 Oct 2008 23:14:00 +1100 Date: Mon, 27 Oct 2008 23:14:00 +1100 From: Dave Chinner To: Raz Cc: linux-xfs@oss.sgi.com, Asaf Moses , Ofer Kruzel , yaronp@bitband.com X-ASG-Orig-Subj: Re: does XFS supports hole punching ? Subject: Re: does XFS supports hole punching ? Message-ID: <20081027121400.GF4985@disturbed> Mail-Followup-To: Raz , linux-xfs@oss.sgi.com, Asaf Moses , Ofer Kruzel , yaronp@bitband.com References: <5d96567b0810221040m17d73871iff00d56bf07479c2@mail.gmail.com> <20081022212034.GQ18495@disturbed> <5d96567b0810270457g70b63c77re8841ebd1959f7b7@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5d96567b0810270457g70b63c77re8841ebd1959f7b7@mail.gmail.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225109645 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8837 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 01:57:08PM +0200, Raz wrote: > Dave Hello > I would be grateful if you help me here. man xfsctl was not clear enough. > I have written a small program that compares the behavior of FREESP > and UNRESERVE. > I create a file size 10M, each 1M is filled with aaa.. 2-nd MB filled with bbb > 3-rd with ccc and so on. I am trying to punch a hole with the bellow program > and then inspect the file content, size and block map. > > 1. XFS_IOC_FREESP64 seems to be truncating the file and does not > create a hole. > 2. XFS_IOC_UNRESERVE64 creates a hole and leaves the file size > unchanged. as the man > page says. > /d1/holely: > 0: [0..14335]: 96..14431 14336 blocks > 1: [14336..16383]: hole 2048 blocks > 2: [16384..20479]: 16480..20575 4096 blocks > Do a hole blocks count as a the file-system free space ? There is no such thing as a "hole block". It's a sparse file - where there is a hole there are no blocks. i.e. holes are free space. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 05:32:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCWCu3015692 for ; Mon, 27 Oct 2008 05:32:14 -0700 X-ASG-Debug-ID: 1225110729-1824001f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BBA8FADE314 for ; Mon, 27 Oct 2008 05:32:09 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id F6U9tVhHAzhdxA3Y for ; Mon, 27 Oct 2008 05:32:09 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id B784FC701CD; Mon, 27 Oct 2008 13:32:07 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id APYKsLuXs54Q; Mon, 27 Oct 2008 13:31:17 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id C161BC701A2; Mon, 27 Oct 2008 13:31:08 +0100 (CET) Message-ID: <4905B48A.8010108@aei.mpg.de> Date: Mon, 27 Oct 2008 13:31:06 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Carsten Aulbert , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> In-Reply-To: <20081027114945.GE4985@disturbed> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225110730 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0336 1.0000 -1.8039 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.80 X-Barracuda-Spam-Status: No, SCORE=-1.80 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8837 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Dave (and Peter) Dave Chinner wrote: > Use xfs_bmap to find the location on disk of the extents in each > file. Recurse over the filesystem until you find the file that owns > the block that went bad. Sounds like a tedious but doable route to take. Thanks for the quick reply! Carsten From owner-xfs@oss.sgi.com Mon Oct 27 05:58:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_53 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCwauJ016956 for ; Mon, 27 Oct 2008 05:58:37 -0700 X-ASG-Debug-ID: 1225112310-71bc02af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo202.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E86314878C7 for ; Mon, 27 Oct 2008 05:58:30 -0700 (PDT) Received: from tyo202.gate.nec.co.jp (TYO202.gate.nec.co.jp [202.32.8.206]) by cuda.sgi.com with ESMTP id WoyUhXHLZO5g2BER for ; Mon, 27 Oct 2008 05:58:30 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.197]) by tyo202.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwEcK011331; Mon, 27 Oct 2008 21:58:14 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9RCwEs26626; Mon, 27 Oct 2008 21:58:14 +0900 (JST) Received: from shoin.jp.nec.com (shoin.jp.nec.com [10.26.220.3]) by mailsv3.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwDAQ018596; Mon, 27 Oct 2008 21:58:13 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Mon, 27 Oct 2008 21:58:11 +0900 To: Andrew Morton , Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" Cc: "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: [PATCH 0/3] freeze feature ver 1.14 Subject: [PATCH 0/3] freeze feature ver 1.14 Message-Id: <20081027215811t-sato@mail.jp.nec.com> Mime-Version: 1.0 X-Mailer: WeMail32[2.51] ID:1K0086 From: Takashi Sato Date: Mon, 27 Oct 2008 21:58:11 +0900 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Barracuda-Connect: TYO202.gate.nec.co.jp[202.32.8.206] X-Barracuda-Start-Time: 1225112316 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, We need to discuss about the timeout feature more, so I send patches only of the generic freeze feature. I've addressed the comment from Shaggy, combined patches that were divided into each filesystems into one patch because of the avoidance of a bisection. Currently, ext3 in mainline Linux doesn't have the freeze feature which suspends write requests. So, we cannot take a backup which keeps the filesystem's consistency with the storage device's features (snapshot and replication) while it is mounted. In many case, a commercial filesystem (e.g. VxFS) has the freeze feature and it would be used to get the consistent backup. If Linux's standard filesystem ext3 has the freeze feature, we can do it without a commercial filesystem. So I have implemented the ioctls of the freeze feature. I think we can take the consistent backup with the following steps. 1. Freeze the filesystem with the freeze ioctl. 2. Separate the replication volume or create the snapshot with the storage device's feature. 3. Unfreeze the filesystem with the unfreeze ioctl. 4. Take the backup from the separated replication volume or the snapshot. [PATCH 1/3] Add error handling of write_super_lockfs and unlockfs VFS: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they can return an error. Rename write_super_lockfs and unlockfs of the super block operation freeze_fs and unfreeze_fs to avoid a confusion. ext3, ext4, xfs, gfs2, jfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that write_super_lockfs returns an error if needed, and unlockfs always returns 0. reiserfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they always return 0 (success) to keep a current behavior. [PATCH 2/3] Implement generic freeze feature The ioctls for the generic freeze feature are below. o Freeze the filesystem int ioctl(int fd, int FIFREEZE, arg) fd: The file descriptor of the mountpoint FIFREEZE: request code for the freeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 o Unfreeze the filesystem int ioctl(int fd, int FITHAW, arg) fd: The file descriptor of the mountpoint FITHAW: request code for unfreeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 Error number: If the filesystem has already been unfrozen, errno is set to EINVAL. [PATCH 3/3] Remove XFS specific ioctl interfaces for freeze feature It removes XFS specific ioctl interfaces and request codes for freeze feature. This patch has been supplied by David Chinner. Any comments are very welcome. Cheers, Takashi From owner-xfs@oss.sgi.com Mon Oct 27 05:58:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCwqu5016988 for ; Mon, 27 Oct 2008 05:58:52 -0700 X-ASG-Debug-ID: 1225112330-574c028d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo201.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9C14054B557 for ; Mon, 27 Oct 2008 05:58:50 -0700 (PDT) Received: from tyo201.gate.nec.co.jp (TYO201.gate.nec.co.jp [202.32.8.193]) by cuda.sgi.com with ESMTP id AzPKEablLNeFVClV for ; Mon, 27 Oct 2008 05:58:50 -0700 (PDT) Received: from mailgate4.nec.co.jp ([10.7.69.184]) by tyo201.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwYsa012985; Mon, 27 Oct 2008 21:58:34 +0900 (JST) Received: (from root@localhost) by mailgate4.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9RCwYc17935; Mon, 27 Oct 2008 21:58:34 +0900 (JST) Received: from matabe.jp.nec.com (matabe.jp.nec.com [10.26.220.20]) by mailsv3.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwX0u018674; Mon, 27 Oct 2008 21:58:33 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Mon, 27 Oct 2008 21:58:31 +0900 To: Andrew Morton , Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" Cc: "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: [PATCH 1/3] Add error handling of write_super_lockfs/unlockfs Subject: [PATCH 1/3] Add error handling of write_super_lockfs/unlockfs Message-Id: <20081027215832t-sato@mail.jp.nec.com> Mime-Version: 1.0 X-Mailer: WeMail32[2.51] ID:1K0086 From: Takashi Sato Date: Mon, 27 Oct 2008 21:58:32 +0900 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Barracuda-Connect: TYO201.gate.nec.co.jp[202.32.8.193] X-Barracuda-Start-Time: 1225112331 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- VFS: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they can return an error. Rename write_super_lockfs and unlockfs of the super block operation freeze_fs and unfreeze_fs to avoid a confusion. ext3, ext4, xfs, gfs2, jfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that write_super_lockfs returns an error if needed, and unlockfs always returns 0. reiserfs: Changed the type of write_super_lockfs and unlockfs from "void" to "int" so that they always return 0 (success) to keep a current behavior. Signed-off-by: Takashi Sato Signed-off-by: Masayuki Hamaguchi --- Documentation/filesystems/Locking | 8 +++--- Documentation/filesystems/vfs.txt | 8 +++--- fs/buffer.c | 8 +++--- fs/ext3/super.c | 45 +++++++++++++++++++++++------------- fs/ext4/super.c | 47 +++++++++++++++++++++++++------------- fs/gfs2/ops_super.c | 16 +++++++----- fs/jfs/super.c | 10 ++++---- fs/reiserfs/super.c | 10 ++++---- fs/xfs/linux-2.6/xfs_super.c | 8 +++--- fs/xfs/xfs_fsops.c | 11 +++++--- fs/xfs/xfs_fsops.h | 2 - include/linux/fs.h | 4 +-- 12 files changed, 108 insertions(+), 69 deletions(-) diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/Documentation/filesystems/Locking linux-2 .6.28-rc2-lockfs/Documentation/filesystems/Locking --- linux-2.6.28-rc2.org/Documentation/filesystems/Locking 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/Documentation/filesystems/Locking 2008-10-27 08:58:36.000000000 +0900 @@ -97,8 +97,8 @@ prototypes: void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); int (*sync_fs)(struct super_block *sb, int wait); - void (*write_super_lockfs) (struct super_block *); - void (*unlockfs) (struct super_block *); + int (*freeze_fs) (struct super_block *); + int (*unfreeze_fs) (struct super_block *); int (*statfs) (struct dentry *, struct kstatfs *); int (*remount_fs) (struct super_block *, int *, char *); void (*clear_inode) (struct inode *); @@ -119,8 +119,8 @@ delete_inode: no put_super: yes yes no write_super: no yes read sync_fs: no no read -write_super_lockfs: ? -unlockfs: ? +freeze_fs: ? +unfreeze_fs: ? statfs: no no no remount_fs: yes yes maybe (see below) clear_inode: no diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/Documentation/filesystems/vfs.txt linux-2 .6.28-rc2-lockfs/Documentation/filesystems/vfs.txt --- linux-2.6.28-rc2.org/Documentation/filesystems/vfs.txt 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/Documentation/filesystems/vfs.txt 2008-10-27 08:58:36.000000000 +0900 @@ -210,8 +210,8 @@ struct super_operations { void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); int (*sync_fs)(struct super_block *sb, int wait); - void (*write_super_lockfs) (struct super_block *); - void (*unlockfs) (struct super_block *); + int (*freeze_fs) (struct super_block *); + int (*unfreeze_fs) (struct super_block *); int (*statfs) (struct dentry *, struct kstatfs *); int (*remount_fs) (struct super_block *, int *, char *); void (*clear_inode) (struct inode *); @@ -270,11 +270,11 @@ or bottom half). a superblock. The second parameter indicates whether the method should wait until the write out has been completed. Optional. - write_super_lockfs: called when VFS is locking a filesystem and + freeze_fs: called when VFS is locking a filesystem and forcing it into a consistent state. This method is currently used by the Logical Volume Manager (LVM). - unlockfs: called when VFS is unlocking a filesystem and making it writable + unfreeze_fs: called when VFS is unlocking a filesystem and making it writable again. statfs: called when the VFS needs to get filesystem statistics. This diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/buffer.c linux-2.6.28-rc2-lockfs/fs/bu ffer.c --- linux-2.6.28-rc2.org/fs/buffer.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/buffer.c 2008-10-27 08:58:36.000000000 +0900 @@ -213,8 +213,8 @@ struct super_block *freeze_bdev(struct b sync_blockdev(sb->s_bdev); - if (sb->s_op->write_super_lockfs) - sb->s_op->write_super_lockfs(sb); + if (sb->s_op->freeze_fs) + sb->s_op->freeze_fs(sb); } sync_blockdev(bdev); @@ -234,8 +234,8 @@ void thaw_bdev(struct block_device *bdev if (sb) { BUG_ON(sb->s_bdev != bdev); - if (sb->s_op->unlockfs) - sb->s_op->unlockfs(sb); + if (sb->s_op->unfreeze_fs) + sb->s_op->unfreeze_fs(sb); sb->s_frozen = SB_UNFROZEN; smp_wmb(); wake_up(&sb->s_wait_unfrozen); diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/ext3/super.c linux-2.6.28-rc2-lockfs/f s/ext3/super.c --- linux-2.6.28-rc2.org/fs/ext3/super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/ext3/super.c 2008-10-27 09:27:57.000000000 +0900 @@ -48,8 +48,8 @@ static int ext3_load_journal(struct supe unsigned long journal_devnum); static int ext3_create_journal(struct super_block *, struct ext3_super_block *, unsigned int); -static void ext3_commit_super (struct super_block * sb, - struct ext3_super_block * es, +static int ext3_commit_super(struct super_block *sb, + struct ext3_super_block *es, int sync); static void ext3_mark_recovery_complete(struct super_block * sb, struct ext3_super_block * es); @@ -60,9 +60,9 @@ static const char *ext3_decode_error(str char nbuf[16]); static int ext3_remount (struct super_block * sb, int * flags, char * data); static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf); -static void ext3_unlockfs(struct super_block *sb); +static int ext3_unfreeze(struct super_block *sb); static void ext3_write_super (struct super_block * sb); -static void ext3_write_super_lockfs(struct super_block *sb); +static int ext3_freeze(struct super_block *sb); /* * Wrappers for journal_start/end. @@ -732,8 +732,8 @@ static const struct super_operations ext .put_super = ext3_put_super, .write_super = ext3_write_super, .sync_fs = ext3_sync_fs, - .write_super_lockfs = ext3_write_super_lockfs, - .unlockfs = ext3_unlockfs, + .freeze_fs = ext3_freeze, + .unfreeze_fs = ext3_unfreeze, .statfs = ext3_statfs, .remount_fs = ext3_remount, .clear_inode = ext3_clear_inode, @@ -2268,21 +2268,23 @@ static int ext3_create_journal(struct su return 0; } -static void ext3_commit_super (struct super_block * sb, - struct ext3_super_block * es, +static int ext3_commit_super(struct super_block *sb, + struct ext3_super_block *es, int sync) { struct buffer_head *sbh = EXT3_SB(sb)->s_sbh; + int error = 0; if (!sbh) - return; + return error; es->s_wtime = cpu_to_le32(get_seconds()); es->s_free_blocks_count = cpu_to_le32(ext3_count_free_blocks(sb)); es->s_free_inodes_count = cpu_to_le32(ext3_count_free_inodes(sb)); BUFFER_TRACE(sbh, "marking dirty"); mark_buffer_dirty(sbh); if (sync) - sync_dirty_buffer(sbh); + error = sync_dirty_buffer(sbh); + return error; } @@ -2400,12 +2402,14 @@ static int ext3_sync_fs(struct super_blo * LVM calls this function before a (read-only) snapshot is created. This * gives us a chance to flush the journal completely and mark the fs clean. */ -static void ext3_write_super_lockfs(struct super_block *sb) +static int ext3_freeze(struct super_block *sb) { + int error = 0; + journal_t *journal; sb->s_dirt = 0; if (!(sb->s_flags & MS_RDONLY)) { - journal_t *journal = EXT3_SB(sb)->s_journal; + journal = EXT3_SB(sb)->s_journal; /* Now we set up the journal barrier. */ journal_lock_updates(journal); @@ -2414,20 +2418,28 @@ static void ext3_write_super_lockfs(stru * We don't want to clear needs_recovery flag when we failed * to flush the journal. */ - if (journal_flush(journal) < 0) - return; + error = journal_flush(journal); + if (error < 0) + goto out; /* Journal blocked and flushed, clear needs_recovery flag. */ EXT3_CLEAR_INCOMPAT_FEATURE(sb, EXT3_FEATURE_INCOMPAT_RECOVER); - ext3_commit_super(sb, EXT3_SB(sb)->s_es, 1); + error = ext3_commit_super(sb, EXT3_SB(sb)->s_es, 1); + if (error) + goto out; } + return 0; + +out: + journal_unlock_updates(journal); + return error; } /* * Called by LVM after the snapshot is done. We need to reset the RECOVER * flag here, even though the filesystem is not technically dirty yet. */ -static void ext3_unlockfs(struct super_block *sb) +static int ext3_unfreeze(struct super_block *sb) { if (!(sb->s_flags & MS_RDONLY)) { lock_super(sb); @@ -2437,6 +2449,7 @@ static void ext3_unlockfs(struct super_b unlock_super(sb); journal_unlock_updates(EXT3_SB(sb)->s_journal); } + return 0; } static int ext3_remount (struct super_block * sb, int * flags, char * data) diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/ext4/super.c linux-2.6.28-rc2-lockfs/f s/ext4/super.c --- linux-2.6.28-rc2.org/fs/ext4/super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/ext4/super.c 2008-10-27 09:56:11.000000000 +0900 @@ -53,7 +53,7 @@ static int ext4_load_journal(struct supe unsigned long journal_devnum); static int ext4_create_journal(struct super_block *, struct ext4_super_block *, unsigned int); -static void ext4_commit_super(struct super_block *sb, +static int ext4_commit_super(struct super_block *sb, struct ext4_super_block *es, int sync); static void ext4_mark_recovery_complete(struct super_block *sb, struct ext4_super_block *es); @@ -64,9 +64,9 @@ static const char *ext4_decode_error(str char nbuf[16]); static int ext4_remount(struct super_block *sb, int *flags, char *data); static int ext4_statfs(struct dentry *dentry, struct kstatfs *buf); -static void ext4_unlockfs(struct super_block *sb); +static int ext4_unfreeze(struct super_block *sb); static void ext4_write_super(struct super_block *sb); -static void ext4_write_super_lockfs(struct super_block *sb); +static int ext4_freeze(struct super_block *sb); ext4_fsblk_t ext4_block_bitmap(struct super_block *sb, @@ -823,8 +823,8 @@ static const struct super_operations ext .put_super = ext4_put_super, .write_super = ext4_write_super, .sync_fs = ext4_sync_fs, - .write_super_lockfs = ext4_write_super_lockfs, - .unlockfs = ext4_unlockfs, + .freeze_fs = ext4_freeze, + .unfreeze_fs = ext4_unfreeze, .statfs = ext4_statfs, .remount_fs = ext4_remount, .clear_inode = ext4_clear_inode, @@ -2759,13 +2759,14 @@ static int ext4_create_journal(struct su return 0; } -static void ext4_commit_super(struct super_block *sb, +static int ext4_commit_super(struct super_block *sb, struct ext4_super_block *es, int sync) { struct buffer_head *sbh = EXT4_SB(sb)->s_sbh; + int error = 0; if (!sbh) - return; + return error; if (buffer_write_io_error(sbh)) { /* * Oh, dear. A previous attempt to write the @@ -2786,14 +2787,19 @@ static void ext4_commit_super(struct sup BUFFER_TRACE(sbh, "marking dirty"); mark_buffer_dirty(sbh); if (sync) { - sync_dirty_buffer(sbh); - if (buffer_write_io_error(sbh)) { + error = sync_dirty_buffer(sbh); + if (error) + return error; + + error = buffer_write_io_error(sbh); + if (error) { printk(KERN_ERR "ext4: I/O error while writing " "superblock for %s.\n", sb->s_id); clear_buffer_write_io_error(sbh); set_buffer_uptodate(sbh); } } + return error; } @@ -2912,12 +2918,14 @@ static int ext4_sync_fs(struct super_blo * LVM calls this function before a (read-only) snapshot is created. This * gives us a chance to flush the journal completely and mark the fs clean. */ -static void ext4_write_super_lockfs(struct super_block *sb) +static int ext4_freeze(struct super_block *sb) { + int error = 0; + journal_t *journal; sb->s_dirt = 0; if (!(sb->s_flags & MS_RDONLY)) { - journal_t *journal = EXT4_SB(sb)->s_journal; + journal = EXT4_SB(sb)->s_journal; /* Now we set up the journal barrier. */ jbd2_journal_lock_updates(journal); @@ -2926,20 +2934,28 @@ static void ext4_write_super_lockfs(stru * We don't want to clear needs_recovery flag when we failed * to flush the journal. */ - if (jbd2_journal_flush(journal) < 0) - return; + error = jbd2_journal_flush(journal); + if (error < 0) + goto out; /* Journal blocked and flushed, clear needs_recovery flag. */ EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER); - ext4_commit_super(sb, EXT4_SB(sb)->s_es, 1); + error = ext4_commit_super(sb, EXT4_SB(sb)->s_es, 1); + if (error) + goto out; } + return 0; + +out: + jbd2_journal_unlock_updates(journal); + return error; } /* * Called by LVM after the snapshot is done. We need to reset the RECOVER * flag here, even though the filesystem is not technically dirty yet. */ -static void ext4_unlockfs(struct super_block *sb) +static int ext4_unfreeze(struct super_block *sb) { if (!(sb->s_flags & MS_RDONLY)) { lock_super(sb); @@ -2949,6 +2965,7 @@ static void ext4_unlockfs(struct super_b unlock_super(sb); jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); } + return 0; } static int ext4_remount(struct super_block *sb, int *flags, char *data) diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/gfs2/ops_super.c linux-2.6.28-rc2-lock fs/fs/gfs2/ops_super.c --- linux-2.6.28-rc2.org/fs/gfs2/ops_super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/gfs2/ops_super.c 2008-10-27 08:58:36.000000000 +0900 @@ -215,18 +215,18 @@ static int gfs2_sync_fs(struct super_blo } /** - * gfs2_write_super_lockfs - prevent further writes to the filesystem + * gfs2_freeze - prevent further writes to the filesystem * @sb: the VFS structure for the filesystem * */ -static void gfs2_write_super_lockfs(struct super_block *sb) +static int gfs2_freeze(struct super_block *sb) { struct gfs2_sbd *sdp = sb->s_fs_info; int error; if (test_bit(SDF_SHUTDOWN, &sdp->sd_flags)) - return; + return -EINVAL; for (;;) { error = gfs2_freeze_fs(sdp); @@ -246,17 +246,19 @@ static void gfs2_write_super_lockfs(stru fs_err(sdp, "retrying...\n"); msleep(1000); } + return 0; } /** - * gfs2_unlockfs - reallow writes to the filesystem + * gfs2_unfreeze - reallow writes to the filesystem * @sb: the VFS structure for the filesystem * */ -static void gfs2_unlockfs(struct super_block *sb) +static int gfs2_unfreeze(struct super_block *sb) { gfs2_unfreeze_fs(sb->s_fs_info); + return 0; } /** @@ -563,8 +565,8 @@ const struct super_operations gfs2_super .put_super = gfs2_put_super, .write_super = gfs2_write_super, .sync_fs = gfs2_sync_fs, - .write_super_lockfs = gfs2_write_super_lockfs, - .unlockfs = gfs2_unlockfs, + .freeze_fs = gfs2_freeze, + .unfreeze_fs = gfs2_unfreeze, .statfs = gfs2_statfs, .remount_fs = gfs2_remount_fs, .clear_inode = gfs2_clear_inode, diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/jfs/super.c linux-2.6.28-rc2-lockfs/fs /jfs/super.c --- linux-2.6.28-rc2.org/fs/jfs/super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/jfs/super.c 2008-10-27 08:58:36.000000000 +0900 @@ -543,7 +543,7 @@ out_kfree: return ret; } -static void jfs_write_super_lockfs(struct super_block *sb) +static int jfs_freeze(struct super_block *sb) { struct jfs_sb_info *sbi = JFS_SBI(sb); struct jfs_log *log = sbi->log; @@ -553,9 +553,10 @@ static void jfs_write_super_lockfs(struc lmLogShutdown(log); updateSuper(sb, FM_CLEAN); } + return 0; } -static void jfs_unlockfs(struct super_block *sb) +static int jfs_unfreeze(struct super_block *sb) { struct jfs_sb_info *sbi = JFS_SBI(sb); struct jfs_log *log = sbi->log; @@ -568,6 +569,7 @@ static void jfs_unlockfs(struct super_bl else txResume(sb); } + return 0; } static int jfs_get_sb(struct file_system_type *fs_type, @@ -735,8 +737,8 @@ static const struct super_operations jfs .delete_inode = jfs_delete_inode, .put_super = jfs_put_super, .sync_fs = jfs_sync_fs, - .write_super_lockfs = jfs_write_super_lockfs, - .unlockfs = jfs_unlockfs, + .freeze_fs = jfs_freeze, + .unfreeze_fs = jfs_unfreeze, .statfs = jfs_statfs, .remount_fs = jfs_remount, .show_options = jfs_show_options, diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/reiserfs/super.c linux-2.6.28-rc2-lock fs/fs/reiserfs/super.c --- linux-2.6.28-rc2.org/fs/reiserfs/super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/reiserfs/super.c 2008-10-27 08:58:36.000000000 +0900 @@ -83,7 +83,7 @@ static void reiserfs_write_super(struct reiserfs_sync_fs(s, 1); } -static void reiserfs_write_super_lockfs(struct super_block *s) +static int reiserfs_freeze(struct super_block *s) { struct reiserfs_transaction_handle th; reiserfs_write_lock(s); @@ -101,11 +101,13 @@ static void reiserfs_write_super_lockfs( } s->s_dirt = 0; reiserfs_write_unlock(s); + return 0; } -static void reiserfs_unlockfs(struct super_block *s) +static int reiserfs_unfreeze(struct super_block *s) { reiserfs_allow_writes(s); + return 0; } extern const struct in_core_key MAX_IN_CORE_KEY; @@ -613,8 +615,8 @@ static const struct super_operations rei .put_super = reiserfs_put_super, .write_super = reiserfs_write_super, .sync_fs = reiserfs_sync_fs, - .write_super_lockfs = reiserfs_write_super_lockfs, - .unlockfs = reiserfs_unlockfs, + .freeze_fs = reiserfs_freeze, + .unfreeze_fs = reiserfs_unfreeze, .statfs = reiserfs_statfs, .remount_fs = reiserfs_remount, .show_options = generic_show_options, diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/xfs/linux-2.6/xfs_super.c linux-2.6.28 -rc2-lockfs/fs/xfs/linux-2.6/xfs_super.c --- linux-2.6.28-rc2.org/fs/xfs/linux-2.6/xfs_super.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-27 08:58:36.000000000 +0900 @@ -1351,14 +1351,14 @@ xfs_fs_remount( * need to take care of themetadata. Once that's done write a dummy * record to dirty the log in case of a crash while frozen. */ -STATIC void -xfs_fs_lockfs( +STATIC int +xfs_fs_freeze( struct super_block *sb) { struct xfs_mount *mp = XFS_M(sb); xfs_attr_quiesce(mp); - xfs_fs_log_dummy(mp); + return -xfs_fs_log_dummy(mp); } STATIC int @@ -1847,7 +1847,7 @@ static struct super_operations xfs_super .put_super = xfs_fs_put_super, .write_super = xfs_fs_write_super, .sync_fs = xfs_fs_sync_super, - .write_super_lockfs = xfs_fs_lockfs, + .freeze_fs = xfs_fs_freeze, .statfs = xfs_fs_statfs, .remount_fs = xfs_fs_remount, .show_options = xfs_fs_show_options, diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/xfs/xfs_fsops.c linux-2.6.28-rc2-lockf s/fs/xfs/xfs_fsops.c --- linux-2.6.28-rc2.org/fs/xfs/xfs_fsops.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/xfs/xfs_fsops.c 2008-10-27 08:58:36.000000000 +0900 @@ -589,17 +589,19 @@ out: return 0; } -void +int xfs_fs_log_dummy( xfs_mount_t *mp) { xfs_trans_t *tp; xfs_inode_t *ip; + int error; tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1); - if (xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0)) { + error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (error) { xfs_trans_cancel(tp, 0); - return; + return error; } ip = mp->m_rootip; @@ -609,9 +611,10 @@ xfs_fs_log_dummy( xfs_trans_ihold(tp, ip); xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); xfs_trans_set_sync(tp); - xfs_trans_commit(tp, 0); + error = xfs_trans_commit(tp, 0); xfs_iunlock(ip, XFS_ILOCK_EXCL); + return error; } int diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/fs/xfs/xfs_fsops.h linux-2.6.28-rc2-lockf s/fs/xfs/xfs_fsops.h --- linux-2.6.28-rc2.org/fs/xfs/xfs_fsops.h 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/fs/xfs/xfs_fsops.h 2008-10-27 08:58:36.000000000 +0900 @@ -25,6 +25,6 @@ extern int xfs_fs_counts(xfs_mount_t *mp extern int xfs_reserve_blocks(xfs_mount_t *mp, __uint64_t *inval, xfs_fsop_resblks_t *outval); extern int xfs_fs_goingdown(xfs_mount_t *mp, __uint32_t inflags); -extern void xfs_fs_log_dummy(xfs_mount_t *mp); +extern int xfs_fs_log_dummy(xfs_mount_t *mp); #endif /* __XFS_FSOPS_H__ */ diff -uprN -X linux-2.6.28-rc2.org/Documentation/dontdiff linux-2.6.28-rc2.org/include/linux/fs.h linux-2.6.28-rc2-lockf s/include/linux/fs.h --- linux-2.6.28-rc2.org/include/linux/fs.h 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-lockfs/include/linux/fs.h 2008-10-27 08:58:36.000000000 +0900 @@ -1368,8 +1368,8 @@ struct super_operations { void (*put_super) (struct super_block *); void (*write_super) (struct super_block *); int (*sync_fs)(struct super_block *sb, int wait); - void (*write_super_lockfs) (struct super_block *); - void (*unlockfs) (struct super_block *); + int (*freeze_fs) (struct super_block *); + int (*unfreeze_fs) (struct super_block *); int (*statfs) (struct dentry *, struct kstatfs *); int (*remount_fs) (struct super_block *, int *, char *); void (*clear_inode) (struct inode *); From owner-xfs@oss.sgi.com Mon Oct 27 05:59:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_53, LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCx7Ww017101 for ; Mon, 27 Oct 2008 05:59:08 -0700 X-ASG-Debug-ID: 1225112346-182200d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo202.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66948ADE9FC for ; Mon, 27 Oct 2008 05:59:06 -0700 (PDT) Received: from tyo202.gate.nec.co.jp (TYO202.gate.nec.co.jp [202.32.8.206]) by cuda.sgi.com with ESMTP id GNazX7FDq4B9fjso for ; Mon, 27 Oct 2008 05:59:06 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.162]) by tyo202.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwtjU011553; Mon, 27 Oct 2008 21:58:55 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9RCwtt12670; Mon, 27 Oct 2008 21:58:55 +0900 (JST) Received: from togyo.jp.nec.com (togyo.jp.nec.com [10.26.220.4]) by mailsv.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCwtkl021995; Mon, 27 Oct 2008 21:58:55 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Mon, 27 Oct 2008 21:58:54 +0900 To: Andrew Morton , Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" Cc: "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: [PATCH 2/3] Implement generic freeze feature Subject: [PATCH 2/3] Implement generic freeze feature Message-Id: <20081027215855t-sato@mail.jp.nec.com> Mime-Version: 1.0 X-Mailer: WeMail32[2.51] ID:1K0086 From: Takashi Sato Date: Mon, 27 Oct 2008 21:58:54 +0900 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Barracuda-Connect: TYO202.gate.nec.co.jp[202.32.8.206] X-Barracuda-Start-Time: 1225112347 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words The ioctls for the generic freeze feature are below. o Freeze the filesystem int ioctl(int fd, int FIFREEZE, arg) fd: The file descriptor of the mountpoint FIFREEZE: request code for the freeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 o Unfreeze the filesystem int ioctl(int fd, int FITHAW, arg) fd: The file descriptor of the mountpoint FITHAW: request code for unfreeze arg: Ignored Return value: 0 if the operation succeeds. Otherwise, -1 Error number: If the filesystem has already been unfrozen, errno is set to EINVAL. Signed-off-by: Takashi Sato Signed-off-by: Masayuki Hamaguchi --- fs/block_dev.c | 2 + fs/buffer.c | 74 ++++++++++++++++++++++++++++++++++++++------ fs/ioctl.c | 46 +++++++++++++++++++++++++++ include/linux/buffer_head.h | 2 - include/linux/fs.h | 7 ++++ 5 files changed, 121 insertions(+), 10 deletions(-) diff -uprN -X linux-2.6.28-rc2-lockfs/Documentation/dontdiff linux-2.6.28-rc2-lockfs/fs/block_dev.c linux-2.6.28-rc2-fre eze/fs/block_dev.c --- linux-2.6.28-rc2-lockfs/fs/block_dev.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-freeze/fs/block_dev.c 2008-10-27 10:12:47.000000000 +0900 @@ -285,6 +285,8 @@ static void init_once(void *foo) INIT_LIST_HEAD(&bdev->bd_holder_list); #endif inode_init_once(&ei->vfs_inode); + /* Initialize mutex for freeze. */ + mutex_init(&bdev->bd_fsfreeze_mutex); } static inline void __bd_forget(struct inode *inode) diff -uprN -X linux-2.6.28-rc2-lockfs/Documentation/dontdiff linux-2.6.28-rc2-lockfs/fs/buffer.c linux-2.6.28-rc2-freeze /fs/buffer.c --- linux-2.6.28-rc2-lockfs/fs/buffer.c 2008-10-27 08:58:36.000000000 +0900 +++ linux-2.6.28-rc2-freeze/fs/buffer.c 2008-10-27 10:12:47.000000000 +0900 @@ -195,10 +195,25 @@ int fsync_bdev(struct block_device *bdev * happen on bdev until thaw_bdev() is called. * If a superblock is found on this device, we take the s_umount semaphore * on it to make sure nobody unmounts until the snapshot creation is done. + * The reference counter (bd_fsfreeze_count) guarantees that only the last + * unfreeze process can unfreeze the frozen filesystem actually when multiple + * freeze requests arrive simultaneously. It counts up in freeze_bdev() and + * count down in thaw_bdev(). When it becomes 0, thaw_bdev() will unfreeze + * actually. */ struct super_block *freeze_bdev(struct block_device *bdev) { struct super_block *sb; + int error = 0; + + mutex_lock(&bdev->bd_fsfreeze_mutex); + if (bdev->bd_fsfreeze_count > 0) { + bdev->bd_fsfreeze_count++; + sb = get_super(bdev); + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return sb; + } + bdev->bd_fsfreeze_count++; down(&bdev->bd_mount_sem); sb = get_super(bdev); @@ -213,11 +228,24 @@ struct super_block *freeze_bdev(struct b sync_blockdev(sb->s_bdev); - if (sb->s_op->freeze_fs) - sb->s_op->freeze_fs(sb); + if (sb->s_op->freeze_fs) { + error = sb->s_op->freeze_fs(sb); + if (error) { + printk(KERN_ERR + "VFS:Filesystem freeze failed\n"); + sb->s_frozen = SB_UNFROZEN; + drop_super(sb); + up(&bdev->bd_mount_sem); + bdev->bd_fsfreeze_count--; + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return ERR_PTR(error); + } + } } sync_blockdev(bdev); + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return sb; /* thaw_bdev releases s->s_umount and bd_mount_sem */ } EXPORT_SYMBOL(freeze_bdev); @@ -229,20 +257,48 @@ EXPORT_SYMBOL(freeze_bdev); * * Unlocks the filesystem and marks it writeable again after freeze_bdev(). */ -void thaw_bdev(struct block_device *bdev, struct super_block *sb) +int thaw_bdev(struct block_device *bdev, struct super_block *sb) { + int error = 0; + + mutex_lock(&bdev->bd_fsfreeze_mutex); + if (!bdev->bd_fsfreeze_count) { + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return -EINVAL; + } + + bdev->bd_fsfreeze_count--; + if (bdev->bd_fsfreeze_count > 0) { + if (sb) + drop_super(sb); + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return 0; + } + if (sb) { BUG_ON(sb->s_bdev != bdev); - - if (sb->s_op->unfreeze_fs) - sb->s_op->unfreeze_fs(sb); - sb->s_frozen = SB_UNFROZEN; - smp_wmb(); - wake_up(&sb->s_wait_unfrozen); + if (!(sb->s_flags & MS_RDONLY)) { + if (sb->s_op->unfreeze_fs) { + error = sb->s_op->unfreeze_fs(sb); + if (error) { + printk(KERN_ERR + "VFS:Filesystem thaw failed\n"); + sb->s_frozen = SB_FREEZE_TRANS; + bdev->bd_fsfreeze_count++; + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return error; + } + } + sb->s_frozen = SB_UNFROZEN; + smp_wmb(); + wake_up(&sb->s_wait_unfrozen); + } drop_super(sb); } up(&bdev->bd_mount_sem); + mutex_unlock(&bdev->bd_fsfreeze_mutex); + return 0; } EXPORT_SYMBOL(thaw_bdev); diff -uprN -X linux-2.6.28-rc2-lockfs/Documentation/dontdiff linux-2.6.28-rc2-lockfs/fs/ioctl.c linux-2.6.28-rc2-freeze/ fs/ioctl.c --- linux-2.6.28-rc2-lockfs/fs/ioctl.c 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-freeze/fs/ioctl.c 2008-10-27 10:12:47.000000000 +0900 @@ -417,6 +417,43 @@ static int ioctl_fioasync(unsigned int f return error; } +static int ioctl_fsfreeze(struct file *filp) +{ + struct super_block *sb = filp->f_path.dentry->d_inode->i_sb; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + /* If filesystem doesn't support freeze feature, return. */ + if (sb->s_op->freeze_fs == NULL) + return -EOPNOTSUPP; + + /* If a blockdevice-backed filesystem isn't specified, return. */ + if (sb->s_bdev == NULL) + return -EINVAL; + + /* Freeze */ + sb = freeze_bdev(sb->s_bdev); + if (IS_ERR(sb)) + return PTR_ERR(sb); + return 0; +} + +static int ioctl_fsthaw(struct file *filp) +{ + struct super_block *sb = filp->f_path.dentry->d_inode->i_sb; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + /* If a blockdevice-backed filesystem isn't specified, return EINVAL. */ + if (sb->s_bdev == NULL) + return -EINVAL; + + /* Thaw */ + return thaw_bdev(sb->s_bdev, sb); +} + /* * When you add any new common ioctls to the switches above and below * please update compat_sys_ioctl() too. @@ -458,6 +495,15 @@ int do_vfs_ioctl(struct file *filp, unsi } else error = -ENOTTY; break; + + case FIFREEZE: + error = ioctl_fsfreeze(filp); + break; + + case FITHAW: + error = ioctl_fsthaw(filp); + break; + default: if (S_ISREG(filp->f_path.dentry->d_inode->i_mode)) error = file_ioctl(filp, cmd, arg); diff -uprN -X linux-2.6.28-rc2-lockfs/Documentation/dontdiff linux-2.6.28-rc2-lockfs/include/linux/buffer_head.h linux-2 .6.28-rc2-freeze/include/linux/buffer_head.h --- linux-2.6.28-rc2-lockfs/include/linux/buffer_head.h 2008-10-27 04:13:29.000000000 +0900 +++ linux-2.6.28-rc2-freeze/include/linux/buffer_head.h 2008-10-27 10:12:47.000000000 +0900 @@ -170,7 +170,7 @@ void __wait_on_buffer(struct buffer_head wait_queue_head_t *bh_waitq_head(struct buffer_head *bh); int fsync_bdev(struct block_device *); struct super_block *freeze_bdev(struct block_device *); -void thaw_bdev(struct block_device *, struct super_block *); +int thaw_bdev(struct block_device *, struct super_block *); int fsync_super(struct super_block *); int fsync_no_super(struct block_device *); struct buffer_head *__find_get_block(struct block_device *bdev, sector_t block, diff -uprN -X linux-2.6.28-rc2-lockfs/Documentation/dontdiff linux-2.6.28-rc2-lockfs/include/linux/fs.h linux-2.6.28-rc2 -freeze/include/linux/fs.h --- linux-2.6.28-rc2-lockfs/include/linux/fs.h 2008-10-27 08:58:36.000000000 +0900 +++ linux-2.6.28-rc2-freeze/include/linux/fs.h 2008-10-27 10:12:47.000000000 +0900 @@ -234,6 +234,8 @@ extern int dir_notify_enable; #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ #define FIBMAP _IO(0x00,1) /* bmap access */ #define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */ +#define FIFREEZE _IOWR('X', 119, int) /* Freeze */ +#define FITHAW _IOWR('X', 120, int) /* Thaw */ #define FS_IOC_GETFLAGS _IOR('f', 1, long) #define FS_IOC_SETFLAGS _IOW('f', 2, long) @@ -584,6 +586,11 @@ struct block_device { * care to not mess up bd_private for that case. */ unsigned long bd_private; + + /* The counter of freeze processes */ + int bd_fsfreeze_count; + /* Mutex for freeze */ + struct mutex bd_fsfreeze_mutex; }; /* From owner-xfs@oss.sgi.com Mon Oct 27 05:59:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RCxWjn017414 for ; Mon, 27 Oct 2008 05:59:33 -0700 X-ASG-Debug-ID: 1225112370-4a1f03870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo202.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD9A654B56A for ; Mon, 27 Oct 2008 05:59:31 -0700 (PDT) Received: from tyo202.gate.nec.co.jp (TYO202.gate.nec.co.jp [202.32.8.206]) by cuda.sgi.com with ESMTP id Zs32bu01T5J3QLkk for ; Mon, 27 Oct 2008 05:59:31 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.160]) by tyo202.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCxE9k011670; Mon, 27 Oct 2008 21:59:14 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9RCxE906275; Mon, 27 Oct 2008 21:59:14 +0900 (JST) Received: from saigo.jp.nec.com (saigo.jp.nec.com [10.26.220.6]) by mailsv.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9RCxDT6022084; Mon, 27 Oct 2008 21:59:13 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Mon, 27 Oct 2008 21:59:13 +0900 To: Andrew Morton , Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" Cc: "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: [PATCH 3/3] Remove XFS specific ioctl interfaces for freeze feature Subject: [PATCH 3/3] Remove XFS specific ioctl interfaces for freeze feature Message-Id: <20081027215913t-sato@mail.jp.nec.com> Mime-Version: 1.0 X-Mailer: WeMail32[2.51] ID:1K0086 From: Takashi Sato Date: Mon, 27 Oct 2008 21:59:13 +0900 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Barracuda-Connect: TYO202.gate.nec.co.jp[202.32.8.206] X-Barracuda-Start-Time: 1225112371 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- It removes XFS specific ioctl interfaces and request codes for freeze feature. This patch has been supplied by David Chinner. Signed-off-by: Dave Chinner Signed-off-by: Takashi Sato --- fs/xfs/linux-2.6/xfs_ioctl.c | 15 --------------- fs/xfs/linux-2.6/xfs_ioctl32.c | 2 -- fs/xfs/xfs_fs.h | 4 ++-- 3 files changed, 2 insertions(+), 19 deletions(-) diff -uprN -X linux-2.6.28-rc2-freeze/Documentation/dontdiff linux-2.6.28-rc2-freeze/fs/xfs/linux-2.6/xfs_ioctl.c linux- 2.6.28-rc2-xfs/fs/xfs/linux-2.6/xfs_ioctl.c --- linux-2.6.28-rc2-freeze/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-27 10:10:24.000000000 +0900 +++ linux-2.6.28-rc2-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-27 10:19:00.000000000 +0900 @@ -1528,21 +1528,6 @@ xfs_ioctl( return -error; } - case XFS_IOC_FREEZE: - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - if (inode->i_sb->s_frozen == SB_UNFROZEN) - freeze_bdev(inode->i_sb->s_bdev); - return 0; - - case XFS_IOC_THAW: - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - if (inode->i_sb->s_frozen != SB_UNFROZEN) - thaw_bdev(inode->i_sb->s_bdev, inode->i_sb); - return 0; - case XFS_IOC_GOINGDOWN: { __uint32_t in; diff -uprN -X linux-2.6.28-rc2-freeze/Documentation/dontdiff linux-2.6.28-rc2-freeze/fs/xfs/linux-2.6/xfs_ioctl32.c linu x-2.6.28-rc2-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c --- linux-2.6.28-rc2-freeze/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-27 10:10:24.000000000 +0900 +++ linux-2.6.28-rc2-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-27 10:19:00.000000000 +0900 @@ -398,8 +398,6 @@ xfs_compat_ioctl( case XFS_IOC_FSGROWFSDATA: case XFS_IOC_FSGROWFSLOG: case XFS_IOC_FSGROWFSRT: - case XFS_IOC_FREEZE: - case XFS_IOC_THAW: case XFS_IOC_GOINGDOWN: case XFS_IOC_ERROR_INJECTION: case XFS_IOC_ERROR_CLEARALL: diff -uprN -X linux-2.6.28-rc2-freeze/Documentation/dontdiff linux-2.6.28-rc2-freeze/fs/xfs/xfs_fs.h linux-2.6.28-rc2-xf s/fs/xfs/xfs_fs.h --- linux-2.6.28-rc2-freeze/fs/xfs/xfs_fs.h 2008-10-27 10:10:24.000000000 +0900 +++ linux-2.6.28-rc2-xfs/fs/xfs/xfs_fs.h 2008-10-27 10:19:00.000000000 +0900 @@ -477,8 +477,8 @@ typedef struct xfs_handle { #define XFS_IOC_ERROR_INJECTION _IOW ('X', 116, struct xfs_error_injection) #define XFS_IOC_ERROR_CLEARALL _IOW ('X', 117, struct xfs_error_injection) /* XFS_IOC_ATTRCTL_BY_HANDLE -- deprecated 118 */ -#define XFS_IOC_FREEZE _IOWR('X', 119, int) -#define XFS_IOC_THAW _IOWR('X', 120, int) +/* XFS_IOC_FREEZE -- FIFREEZE 119 */ +/* XFS_IOC_THAW -- FITHAW 120 */ #define XFS_IOC_FSSETDM_BY_HANDLE _IOW ('X', 121, struct xfs_fsop_setdm_handlereq) #define XFS_IOC_ATTRLIST_BY_HANDLE _IOW ('X', 122, struct xfs_fsop_attrlist_handlereq) #define XFS_IOC_ATTRMULTI_BY_HANDLE _IOW ('X', 123, struct xfs_fsop_attrmulti_handlereq) From owner-xfs@oss.sgi.com Mon Oct 27 06:03:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RD3AnQ017981 for ; Mon, 27 Oct 2008 06:03:11 -0700 X-ASG-Debug-ID: 1225112589-12e6017a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E30E612AD8FF for ; Mon, 27 Oct 2008 06:03:09 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id v07Vw5xZmaFsbaR1 for ; Mon, 27 Oct 2008 06:03:09 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuRkK-0002vO-1L; Mon, 27 Oct 2008 13:03:00 +0000 Date: Mon, 27 Oct 2008 09:03:00 -0400 From: Christoph Hellwig To: Takashi Sato Cc: Andrew Morton , Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" , "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: Re: [PATCH 1/3] Add error handling of write_super_lockfs/unlockfs Subject: Re: [PATCH 1/3] Add error handling of write_super_lockfs/unlockfs Message-ID: <20081027130259.GA1919@infradead.org> References: <20081027215832t-sato@mail.jp.nec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027215832t-sato@mail.jp.nec.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225112589 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Looks good. From owner-xfs@oss.sgi.com Mon Oct 27 06:03:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RD3brL018147 for ; Mon, 27 Oct 2008 06:03:37 -0700 X-ASG-Debug-ID: 1225112615-1b3d00ff0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay.ppgk.com.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E656612AD915 for ; Mon, 27 Oct 2008 06:03:36 -0700 (PDT) Received: from relay.ppgk.com.pl (relay.ppgk.com.pl [80.53.243.36]) by cuda.sgi.com with ESMTP id VhqbNeF9T6eGPEAb for ; Mon, 27 Oct 2008 06:03:36 -0700 (PDT) Received: from relay.ppgk.com.pl (localhost [127.0.0.1]) by relay.ppgk.com.pl (Postfix) with ESMTP id 1DDC8375E2; Mon, 27 Oct 2008 14:03:34 +0100 (CET) X-PPGK-Scanned: amavisd-new 2.6.0 (20080423) at ppgk.com.pl Received: from relay.ppgk.com.pl ([127.0.0.1]) by relay.ppgk.com.pl (relay.ppgk.com.pl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Y36BtgqiDAAq; Mon, 27 Oct 2008 14:03:33 +0100 (CET) Received: from [192.168.100.249] (shodan.ppgk.com.pl [192.168.100.249]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by relay.ppgk.com.pl (Postfix) with ESMTPS id 9AA98375DC; Mon, 27 Oct 2008 14:03:33 +0100 (CET) Message-ID: <4905BC13.3030402@drutsystem.com> Date: Mon, 27 Oct 2008 14:03:15 +0100 From: Michal Soltys User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Carsten Aulbert CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> In-Reply-To: <4905B48A.8010108@aei.mpg.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: relay.ppgk.com.pl[80.53.243.36] X-Barracuda-Start-Time: 1225112616 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Carsten Aulbert wrote: > > Dave Chinner wrote: >> Use xfs_bmap to find the location on disk of the extents in each >> file. Recurse over the filesystem until you find the file that owns >> the block that went bad. > > Sounds like a tedious but doable route to take. > Wouldn't something like (under xfs_db) : getblock -b #block -n ncheck -i #inode where required #inode is reported by getblock do the thing ? From owner-xfs@oss.sgi.com Mon Oct 27 06:29:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDTqUZ019647 for ; Mon, 27 Oct 2008 06:29:52 -0700 X-ASG-Debug-ID: 1225114191-1b3c019a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 05F70ADE568 for ; Mon, 27 Oct 2008 06:29:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 1CRQ2xtqxc0eHnLY for ; Mon, 27 Oct 2008 06:29:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSAJ-0007YC-4z for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:29:51 +0000 Date: Mon, 27 Oct 2008 09:29:51 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: another patchbomb Subject: another patchbomb Message-ID: <20081027132951.GA29004@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114192 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- looks like the patches didn't make it rhough last time (at least to myself and patchwork), so let's see if it works this time. From owner-xfs@oss.sgi.com Mon Oct 27 06:30:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,SUBJ_URGENT autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDUB6W019721 for ; Mon, 27 Oct 2008 06:30:11 -0700 X-ASG-Debug-ID: 1225114210-1b41018e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 46126ADDB9E for ; Mon, 27 Oct 2008 06:30:11 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id tlw4DCng6idUkEWC for ; Mon, 27 Oct 2008 06:30:11 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSAc-0007xj-Ml for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:30:10 +0000 Date: Mon, 27 Oct 2008 09:30:10 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/2] Urgent queue Subject: [PATCH 0/2] Urgent queue Message-ID: <20081027133010.GA30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114211 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Two patches that are small bugfixes / features that are what I consider the immediately merge queue. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:30:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDUE5R019745 for ; Mon, 27 Oct 2008 06:30:15 -0700 X-ASG-Debug-ID: 1225114213-575103900000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 24218549CC0 for ; Mon, 27 Oct 2008 06:30:13 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id zLMeJpQlAYhDYkNI for ; Mon, 27 Oct 2008 06:30:13 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSAf-0007xq-9N for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:30:13 +0000 Date: Mon, 27 Oct 2008 09:30:13 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] wire up ->open for directories Subject: [PATCH 1/2] wire up ->open for directories Message-ID: <20081027133013.GB30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-wire-up-open User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114214 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Currently there's no ->open method set for directories on XFS. That means we don't perform any check for opening too large directories without O_LARGEFILE, we don't check for shut down filesystems, and we don't actually do the readahead for the first block in the directory. Instead of just setting the directories open routine to xfs_file_open we merge the shutdown check directly into xfs_file_open and create a new xfs_dir_open that first calls xfs_file_open and then performs the readahead for block 0. (First sent on September 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2008-09-09 17:35:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c 2008-09-09 17:44:13.000000000 +0200 @@ -38,6 +38,7 @@ #include "xfs_rw.h" #include "xfs_ioctl32.h" #include "xfs_vnodeops.h" +#include "xfs_da_btree.h" #include #include @@ -172,11 +173,37 @@ xfs_file_splice_write_invis( STATIC int xfs_file_open( struct inode *inode, - struct file *filp) + struct file *file) { - if (!(filp->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) + if (!(file->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) return -EFBIG; - return -xfs_open(XFS_I(inode)); + if (XFS_FORCED_SHUTDOWN(XFS_M(inode->i_sb))) + return -EIO; + return 0; +} + +STATIC int +xfs_dir_open( + struct inode *inode, + struct file *file) +{ + struct xfs_inode *ip = XFS_I(inode); + int mode; + int error; + + error = xfs_file_open(inode, file); + if (error) + return error; + + /* + * If there are any blocks, read-ahead block 0 as we're almost + * certain to have the next operation be a read there. + */ + mode = xfs_ilock_map_shared(ip); + if (ip->i_d.di_nextents > 0) + xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); + xfs_iunlock(ip, mode); + return 0; } STATIC int @@ -533,6 +560,7 @@ const struct file_operations xfs_invis_f const struct file_operations xfs_dir_file_operations = { + .open = xfs_dir_open, .read = generic_read_dir, .readdir = xfs_file_readdir, .unlocked_ioctl = xfs_file_ioctl, Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-09-09 17:35:49.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-09-09 17:35:59.000000000 +0200 @@ -54,28 +54,6 @@ #include "xfs_vnodeops.h" int -xfs_open( - xfs_inode_t *ip) -{ - int mode; - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return XFS_ERROR(EIO); - - /* - * If it's a directory with any blocks, read-ahead block 0 - * as we're almost certain to have the next operation be a read there. - */ - if (S_ISDIR(ip->i_d.di_mode) && ip->i_d.di_nextents > 0) { - mode = xfs_ilock_map_shared(ip); - if (ip->i_d.di_nextents > 0) - (void)xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); - xfs_iunlock(ip, mode); - } - return 0; -} - -int xfs_setattr( struct xfs_inode *ip, struct iattr *iattr, Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.h 2008-09-09 17:35:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.h 2008-09-09 17:35:45.000000000 +0200 @@ -14,7 +14,6 @@ struct xfs_inode; struct xfs_iomap; -int xfs_open(struct xfs_inode *ip); int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, struct cred *credp); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ -- From owner-xfs@oss.sgi.com Mon Oct 27 06:30:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDUG9D019755 for ; Mon, 27 Oct 2008 06:30:16 -0700 X-ASG-Debug-ID: 1225114215-574c03870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31047549CC6 for ; Mon, 27 Oct 2008 06:30:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Q1d0KiFJcilMoyTR for ; Mon, 27 Oct 2008 06:30:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSAh-0007y5-LB for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:30:15 +0000 Date: Mon, 27 Oct 2008 09:30:15 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] allow inode64 mount option on 32 bit systems Subject: [PATCH 2/2] allow inode64 mount option on 32 bit systems Message-ID: <20081027133015.GC30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-allow-inode64-on-32bit User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114216 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we've stopped using the Linux inode cache when can trivally support the inode64 mount option on 32bit architectures. As far as the kernel and most userspace is concerned this works perfectly, but applications still using really old stat and readdir interfaces will get an EOVERFLOW error when hitting an inode number not fitting into 32 bits (that problem of course also exists when using these applications on a 64bit kernel). Note that because inode64 is simply a mount option we can currently mount a filesystem having > 32 bit inode numbers and cause a variety of problems, all this is solved but this patch which enables XFS_BIG_INUMS, even when inode64 is not used. (First sent on October 18th) Signed-off-by: Christoph Hellwig Index: xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- xfs-2.6.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:17:40.000000000 +0200 +++ xfs-2.6/fs/xfs/linux-2.6/xfs_linux.h 2008-10-18 12:19:30.000000000 +0200 @@ -21,18 +21,12 @@ #include /* - * Some types are conditional depending on the target system. * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. - * XFS_BIG_INUMS needs the VFS inode number to be 64 bits, as well - * as requiring XFS_BIG_BLKNOS to be set. + * XFS_BIG_INUMS requires XFS_BIG_BLKNOS to be set. */ #if defined(CONFIG_LBD) || (BITS_PER_LONG == 64) # define XFS_BIG_BLKNOS 1 -# if BITS_PER_LONG == 64 -# define XFS_BIG_INUMS 1 -# else -# define XFS_BIG_INUMS 0 -# endif +# define XFS_BIG_INUMS 1 #else # define XFS_BIG_BLKNOS 0 # define XFS_BIG_INUMS 0 -- From owner-xfs@oss.sgi.com Mon Oct 27 06:33:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDXUsG020665 for ; Mon, 27 Oct 2008 06:33:30 -0700 X-ASG-Debug-ID: 1225114409-62ba03390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B8F8254BA71 for ; Mon, 27 Oct 2008 06:33:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id o65BOCNuieZhNYbN for ; Mon, 27 Oct 2008 06:33:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSDp-00086F-6J for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:33:29 +0000 Date: Mon, 27 Oct 2008 09:33:29 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] Sync refactoring fallout Subject: [PATCH 0/3] Sync refactoring fallout Message-ID: <20081027133329.GA31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114409 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This series gets rid of two headers left more or less useless after the last round of sync patches. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:33:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDXWSL020673 for ; Mon, 27 Oct 2008 06:33:33 -0700 X-ASG-Debug-ID: 1225114412-56f703aa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7955A54BA7A for ; Mon, 27 Oct 2008 06:33:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ZGyqXBDBwOiA4FFC for ; Mon, 27 Oct 2008 06:33:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSDr-00086N-RF for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:33:31 +0000 Date: Mon, 27 Oct 2008 09:33:31 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] remove bhv_statvfs_t typedef Subject: [PATCH 1/3] remove bhv_statvfs_t typedef Message-ID: <20081027133331.GB31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-bhv_statvfs_t User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114412 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-16 00:18:49.000000000 +0200 @@ -31,8 +31,6 @@ struct xfs_inode; struct xfs_mount; struct xfs_mount_args; -typedef struct kstatfs bhv_statvfs_t; - #define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ #define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ #define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ Index: linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/quota/xfs_qm_bhv.c 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/quota/xfs_qm_bhv.c 2008-10-16 00:18:49.000000000 +0200 @@ -50,7 +50,7 @@ STATIC void xfs_fill_statvfs_from_dquot( - bhv_statvfs_t *statp, + struct kstatfs *statp, xfs_disk_dquot_t *dp) { __uint64_t limit; @@ -87,7 +87,7 @@ xfs_fill_statvfs_from_dquot( STATIC void xfs_qm_statvfs( xfs_inode_t *ip, - bhv_statvfs_t *statp) + struct kstatfs *statp) { xfs_mount_t *mp = ip->i_mount; xfs_dquot_t *dqp; Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-16 00:18:08.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-22 09:29:09.000000000 +0200 @@ -133,7 +133,7 @@ typedef struct xfs_dquot * (*xfs_dqvopch struct xfs_dquot **, struct xfs_dquot *); typedef int (*xfs_dqvopchownresv_t)(struct xfs_trans *, struct xfs_inode *, struct xfs_dquot *, struct xfs_dquot *, uint); -typedef void (*xfs_dqstatvfs_t)(struct xfs_inode *, bhv_statvfs_t *); +typedef void (*xfs_dqstatvfs_t)(struct xfs_inode *, struct kstatfs *); typedef int (*xfs_dqsync_t)(struct xfs_mount *, int flags); typedef int (*xfs_quotactl_t)(struct xfs_mount *, int, int, xfs_caddr_t); -- From owner-xfs@oss.sgi.com Mon Oct 27 06:33:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDXZXI020682 for ; Mon, 27 Oct 2008 06:33:35 -0700 X-ASG-Debug-ID: 1225114414-62ba033a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5729354BA7A for ; Mon, 27 Oct 2008 06:33:34 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id maTdclG2973fBKH2 for ; Mon, 27 Oct 2008 06:33:34 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSDu-00086U-Hw for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:33:34 +0000 Date: Mon, 27 Oct 2008 09:33:34 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] remove xfs_vfs.h Subject: [PATCH 2/3] remove xfs_vfs.h Message-ID: <20081027133334.GC31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-kill-xfs_vfs.h" User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114415 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only thing left are the forced shutdown flags and freeze macros which fit into xfs_mount.h much better. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-15 07:31:21.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-15 18:18:49.000000000 -0400 @@ -36,7 +36,6 @@ #include "xfs_bmap_btree.h" #include "xfs_attr_sf.h" #include "xfs_dir2_sf.h" -#include "xfs_vfs.h" #include "xfs_vnode.h" #include "xfs_dinode.h" #include "xfs_inode.h" Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-15 07:46:49.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-15 18:18:49.000000000 -0400 @@ -85,7 +85,6 @@ #include #include -#include #include #include #include Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vfs.h 2008-10-15 18:18:49.000000000 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_VFS_H__ -#define __XFS_VFS_H__ - -#include -#include "xfs_fs.h" - -struct inode; - -struct fid; -struct cred; -struct seq_file; -struct super_block; -struct xfs_inode; -struct xfs_mount; -struct xfs_mount_args; - -#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ -#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ -#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ -#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ -#define SHUTDOWN_REMOTE_REQ 0x0010 /* shutdown came from remote cell */ -#define SHUTDOWN_DEVICE_REQ 0x0020 /* failed all paths to the device */ - -#define xfs_test_for_freeze(mp) ((mp)->m_super->s_frozen) -#define xfs_wait_for_freeze(mp,l) vfs_check_frozen((mp)->m_super, (l)) - -#endif /* __XFS_VFS_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-15 18:18:49.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-15 18:18:49.000000000 -0400 @@ -435,6 +435,16 @@ void xfs_do_force_shutdown(struct xfs_mo #define xfs_force_shutdown(m,f) \ xfs_do_force_shutdown(m, f, __FILE__, __LINE__) +#define SHUTDOWN_META_IO_ERROR 0x0001 /* write attempt to metadata failed */ +#define SHUTDOWN_LOG_IO_ERROR 0x0002 /* write attempt to the log failed */ +#define SHUTDOWN_FORCE_UMOUNT 0x0004 /* shutdown from a forced unmount */ +#define SHUTDOWN_CORRUPT_INCORE 0x0008 /* corrupt in-memory data structures */ +#define SHUTDOWN_REMOTE_REQ 0x0010 /* shutdown came from remote cell */ +#define SHUTDOWN_DEVICE_REQ 0x0020 /* failed all paths to the device */ + +#define xfs_test_for_freeze(mp) ((mp)->m_super->s_frozen) +#define xfs_wait_for_freeze(mp,l) vfs_check_frozen((mp)->m_super, (l)) + /* * Flags for xfs_mountfs */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vnode.h 2008-10-15 07:31:17.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vnode.h 2008-10-15 18:19:30.000000000 -0400 @@ -18,7 +18,10 @@ #ifndef __XFS_VNODE_H__ #define __XFS_VNODE_H__ +#include "xfs_fs.h" + struct file; +struct xfs_inode; struct xfs_iomap; struct attrlist_cursor_kern; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:33:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDXcvs020695 for ; Mon, 27 Oct 2008 06:33:38 -0700 X-ASG-Debug-ID: 1225114417-1b4201ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E91A2ADEB97 for ; Mon, 27 Oct 2008 06:33:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 0Zi4yhRIjEV3nIN7 for ; Mon, 27 Oct 2008 06:33:37 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSDx-00086a-9f for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:33:37 +0000 Date: Mon, 27 Oct 2008 09:33:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] remove xfs_vfsops.h Subject: [PATCH 3/3] remove xfs_vfsops.h Message-ID: <20081027133337.GD31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-kill-xfs_vfsops.h" User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114417 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only think left is xfs_do_force_shutdown which already has a defintion in xfs_mount.h, too. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-15 18:22:07.000000000 -0400 @@ -45,7 +45,6 @@ #include "xfs_attr.h" #include "xfs_attr_leaf.h" #include "xfs_inode_item.h" -#include "xfs_vfsops.h" #include "xfs_vnodeops.h" #include #include Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_export.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_export.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_export.c 2008-10-15 18:21:59.000000000 -0400 @@ -29,7 +29,6 @@ #include "xfs_vnodeops.h" #include "xfs_bmap_btree.h" #include "xfs_inode.h" -#include "xfs_vfsops.h" /* * Note that we only accept fileids which are long enough rather than allow Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-15 18:22:03.000000000 -0400 @@ -64,7 +64,6 @@ #include "xfs_iomap.h" #include "xfs_filestream.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "support/ktrace.h" Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-15 18:22:01.000000000 -0400 @@ -48,7 +48,6 @@ #include "xfs_buf_item.h" #include "xfs_utils.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "xfs_version.h" #include "xfs_log_priv.h" #include "xfs_trans_priv.h" Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c 2008-10-15 18:21:53.000000000 -0400 +++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c 2008-10-15 18:22:05.000000000 -0400 @@ -53,7 +53,6 @@ #include "xfs_filestream.h" #include "xfs_fsops.h" #include "xfs_vnodeops.h" -#include "xfs_vfsops.h" #include "xfs_utils.h" #include "xfs_sync.h" Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.h 2008-10-15 18:21:09.000000000 -0400 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -#ifndef _XFS_VFSOPS_H -#define _XFS_VFSOPS_H 1 - -struct cred; -struct xfs_fid; -struct inode; -struct kstatfs; -struct xfs_mount; -struct xfs_mount_args; - -void xfs_do_force_shutdown(struct xfs_mount *mp, int flags, char *fname, - int lnnum); - -#endif /* _XFS_VFSOPS_H */ -- From owner-xfs@oss.sgi.com Mon Oct 27 06:36:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDaRfY021623 for ; Mon, 27 Oct 2008 06:36:28 -0700 X-ASG-Debug-ID: 1225114586-179802150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5AA9BADE49C for ; Mon, 27 Oct 2008 06:36:27 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ixFFicmqiQZnrfBA for ; Mon, 27 Oct 2008 06:36:27 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSGg-0000CE-Pu for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:36:26 +0000 Date: Mon, 27 Oct 2008 09:36:26 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] remove xfs_vfsops.h Subject: Re: [PATCH 3/3] remove xfs_vfsops.h Message-ID: <20081027133626.GA717@infradead.org> References: <20081027133337.GD31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133337.GD31125@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114587 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Oct 27, 2008 at 09:33:37AM -0400, Christoph Hellwig wrote: > The only think left is xfs_do_force_shutdown which already has a defintion > in xfs_mount.h, too. The only *thing* of course ;-) From owner-xfs@oss.sgi.com Mon Oct 27 06:36:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDaW4m021638 for ; Mon, 27 Oct 2008 06:36:33 -0700 X-ASG-Debug-ID: 1225114592-489401690000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 876F91487ED0 for ; Mon, 27 Oct 2008 06:36:32 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id u7jqMH60Kop2MnGr for ; Mon, 27 Oct 2008 06:36:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSGm-0000CN-6B for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:36:32 +0000 Date: Mon, 27 Oct 2008 09:36:32 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] setattr simplification Subject: [PATCH 0/3] setattr simplification Message-ID: <20081027133632.GA761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114592 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This series has three patches to use the standard inode_change_ok function like other filesystems instead of making up our own. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:36:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDaafj021652 for ; Mon, 27 Oct 2008 06:36:36 -0700 X-ASG-Debug-ID: 1225114595-4d0201320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6CEC91487EDA for ; Mon, 27 Oct 2008 06:36:35 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id W18vwULp02nVDOGQ for ; Mon, 27 Oct 2008 06:36:35 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSGp-0000CY-2d for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:36:35 +0000 Date: Mon, 27 Oct 2008 09:36:35 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] kill sys_cred Subject: [PATCH 1/3] kill sys_cred Message-ID: <20081027133635.GB761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-cred User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114595 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 capable_cred has been unused for a while so we can kill it and sys_cred. That also means the cred argument to xfs_setattr and xfs_change_file_space can be removed now. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-09-29 18:20:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-09-29 18:24:15.000000000 +0200 @@ -2472,7 +2472,7 @@ xfs_dm_punch_hole( #endif error = xfs_change_file_space(ip, XFS_IOC_UNRESVSP, &bf, - (xfs_off_t)off, sys_cred, + (xfs_off_t)off, XFS_ATTR_DMI|XFS_ATTR_NOLOCK); /* @@ -2730,7 +2730,7 @@ xfs_dm_set_fileattr( iattr.ia_size = stat.fa_size; } - return -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_DMI, NULL); + return -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_DMI); } Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_cred.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_cred.h 2008-09-29 18:19:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_cred.h 2008-09-29 18:26:42.000000000 +0200 @@ -27,12 +27,4 @@ typedef struct cred { /* EMPTY */ } cred_t; -extern struct cred *sys_cred; - -/* this is a hack.. (assumes sys_cred is the only cred_t in the system) */ -static inline int capable_cred(cred_t *cr, int cid) -{ - return (cr == sys_cred) ? 1 : capable(cid); -} - #endif /* __XFS_CRED_H__ */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-09-29 18:24:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-09-29 18:24:44.000000000 +0200 @@ -694,8 +694,7 @@ xfs_ioc_space( if (ioflags & IO_INVIS) attr_flags |= XFS_ATTR_DMI; - error = xfs_change_file_space(ip, cmd, &bf, filp->f_pos, - NULL, attr_flags); + error = xfs_change_file_space(ip, cmd, &bf, filp->f_pos, attr_flags); return -error; } Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-09-29 18:20:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-09-29 18:24:28.000000000 +0200 @@ -595,7 +595,7 @@ xfs_vn_setattr( struct dentry *dentry, struct iattr *iattr) { - return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0, NULL); + return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0); } /* @@ -636,7 +636,7 @@ xfs_vn_fallocate( xfs_ilock(ip, XFS_IOLOCK_EXCL); error = xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf, - 0, NULL, XFS_ATTR_NOLOCK); + 0, XFS_ATTR_NOLOCK); if (!error && !(mode & FALLOC_FL_KEEP_SIZE) && offset + len > i_size_read(inode)) new_size = offset + len; @@ -647,7 +647,7 @@ xfs_vn_fallocate( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = new_size; - error = xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK, NULL); + error = xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); } xfs_iunlock(ip, XFS_IOLOCK_EXCL); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:19:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:19:45.000000000 +0200 @@ -172,7 +172,6 @@ EXPORT_SYMBOL(xfs_buf_offset); EXPORT_SYMBOL(xfs_buf_rele); EXPORT_SYMBOL(xfs_buf_readahead); EXPORT_SYMBOL(xfs_buf_unlock); -EXPORT_SYMBOL(sys_cred); EXPORT_SYMBOL(uuid_create_nil); EXPORT_SYMBOL(uuid_equal); EXPORT_SYMBOL(uuid_getnodeuniq); Index: linux-2.6-xfs/fs/xfs/xfs_acl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_acl.c 2008-09-29 18:19:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_acl.c 2008-09-29 18:22:31.000000000 +0200 @@ -759,7 +759,7 @@ xfs_acl_setmode( if (gap && nomask) iattr.ia_mode |= gap->ae_perm << 3; - return xfs_setattr(XFS_I(vp), &iattr, 0, sys_cred); + return xfs_setattr(XFS_I(vp), &iattr, 0); } /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-09-29 18:20:55.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-09-29 18:25:13.000000000 +0200 @@ -57,8 +57,7 @@ int xfs_setattr( struct xfs_inode *ip, struct iattr *iattr, - int flags, - cred_t *credp) + int flags) { xfs_mount_t *mp = ip->i_mount; struct inode *inode = VFS_I(ip); @@ -3452,7 +3451,6 @@ xfs_change_file_space( int cmd, xfs_flock64_t *bf, xfs_off_t offset, - cred_t *credp, int attr_flags) { xfs_mount_t *mp = ip->i_mount; @@ -3540,7 +3538,7 @@ xfs_change_file_space( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = startoffset; - error = xfs_setattr(ip, &iattr, attr_flags, credp); + error = xfs_setattr(ip, &iattr, attr_flags); if (error) return error; Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.h 2008-09-29 18:21:40.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.h 2008-09-29 18:25:05.000000000 +0200 @@ -14,8 +14,7 @@ struct xfs_inode; struct xfs_iomap; -int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags, - struct cred *credp); +int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ @@ -43,8 +42,7 @@ int xfs_inode_flush(struct xfs_inode *ip int xfs_set_dmattrs(struct xfs_inode *ip, u_int evmask, u_int16_t state); int xfs_reclaim(struct xfs_inode *ip); int xfs_change_file_space(struct xfs_inode *ip, int cmd, - xfs_flock64_t *bf, xfs_off_t offset, - struct cred *credp, int attr_flags); + xfs_flock64_t *bf, xfs_off_t offset, int attr_flags); int xfs_rename(struct xfs_inode *src_dp, struct xfs_name *src_name, struct xfs_inode *src_ip, struct xfs_inode *target_dp, struct xfs_name *target_name, struct xfs_inode *target_ip); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-09-29 18:26:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-09-29 18:26:31.000000000 +0200 @@ -43,10 +43,3 @@ xfs_param_t xfs_params = { .inherit_nodfrg = { 0, 1, 1 }, .fstrm_timer = { 1, 30*100, 3600*100}, }; - -/* - * Global system credential structure. - */ -static cred_t sys_cred_val; -cred_t *sys_cred = &sys_cred_val; - Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.h 2008-09-29 18:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.h 2008-09-29 18:26:35.000000000 +0200 @@ -19,6 +19,5 @@ #define __XFS_GLOBALS_H__ extern uint64_t xfs_panic_mask; /* set to cause more panics */ -extern struct cred *sys_cred; #endif /* __XFS_GLOBALS_H__ */ -- From owner-xfs@oss.sgi.com Mon Oct 27 06:36:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDadAs021672 for ; Mon, 27 Oct 2008 06:36:39 -0700 X-ASG-Debug-ID: 1225114597-426e000d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 942B454BAAC; Mon, 27 Oct 2008 06:36:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 52WWEtDbiA0jd9fL; Mon, 27 Oct 2008 06:36:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSGr-0000Cf-Os; Mon, 27 Oct 2008 13:36:37 +0000 Date: Mon, 27 Oct 2008 09:36:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: Tim Shimmin X-ASG-Orig-Subj: [PATCH 2/3] remove restricted_chown parameter Subject: [PATCH 2/3] remove restricted_chown parameter Message-ID: <20081027133637.GC761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-restricted-chown User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114598 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Tim Shimmin On Linux all filesystems are supposed to be operating under Posix' restricted chown. Restricted chown means it restricts chown to the owner unless you have CAP_FOWNER. [hch: forward-ported to the current tree] Signed-off-by: Tim Shimmin Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_globals.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_globals.c 2008-10-15 13:31:22.000000000 +0200 @@ -26,7 +26,6 @@ */ xfs_param_t xfs_params = { /* MIN DFLT MAX */ - .restrict_chown = { 0, 1, 1 }, .sgid_inherit = { 0, 0, 1 }, .symlink_mode = { 0, 0, 1 }, .panic_mask = { 0, 0, 255 }, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-10-22 09:29:08.000000000 +0200 @@ -112,7 +111,6 @@ #define HAVE_DMAPI #endif -#define restricted_chown xfs_params.restrict_chown.val #define irix_sgid_inherit xfs_params.sgid_inherit.val #define irix_symlink_mode xfs_params.symlink_mode.val #define xfs_panic_mask xfs_params.panic_mask.val Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.c 2008-10-15 13:31:22.000000000 +0200 @@ -56,17 +56,6 @@ xfs_stats_clear_proc_handler( static ctl_table xfs_table[] = { { - .ctl_name = XFS_RESTRICT_CHOWN, - .procname = "restrict_chown", - .data = &xfs_params.restrict_chown.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = &proc_dointvec_minmax, - .strategy = &sysctl_intvec, - .extra1 = &xfs_params.restrict_chown.min, - .extra2 = &xfs_params.restrict_chown.max - }, - { .ctl_name = XFS_SGID_INHERIT, .procname = "irix_sgid_inherit", .data = &xfs_params.sgid_inherit.val, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_sysctl.h 2008-10-15 13:31:22.000000000 +0200 @@ -31,7 +31,6 @@ typedef struct xfs_sysctl_val { } xfs_sysctl_val_t; typedef struct xfs_param { - xfs_sysctl_val_t restrict_chown;/* Root/non-root can give away files.*/ xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is * not a member of parent dir GID. */ xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ @@ -68,7 +67,7 @@ typedef struct xfs_param { enum { /* XFS_REFCACHE_SIZE = 1 */ /* XFS_REFCACHE_PURGE = 2 */ - XFS_RESTRICT_CHOWN = 3, + /* XFS_RESTRICT_CHOWN = 3 */ XFS_SGID_INHERIT = 4, XFS_SYMLINK_MODE = 5, XFS_PANIC_MASK = 6, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-22 09:29:45.000000000 +0200 @@ -1104,10 +1104,6 @@ xfs_ioctl_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & FSX_PROJID) { /* Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-15 13:31:22.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-22 09:29:45.000000000 +0200 @@ -210,10 +210,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* @@ -237,9 +233,8 @@ xfs_setattr( * shall be equal to either the group ID or one of the * supplementary group IDs of the calling process. */ - if (restricted_chown && - (iuid != uid || (igid != gid && - !in_group_p((gid_t)gid))) && + if ((iuid != uid || + (igid != gid && !in_group_p((gid_t)gid))) && !capable(CAP_CHOWN)) { code = XFS_ERROR(EPERM); goto error_return; @@ -433,10 +428,6 @@ xfs_setattr( /* * Change file ownership. Must be the owner or privileged. - * If the system was configured with the "restricted_chown" - * option, the owner is not permitted to give away the file, - * and can change the group id only to a group of which he - * or she is a member. */ if (mask & (ATTR_UID|ATTR_GID)) { /* Index: linux-2.6-xfs/Documentation/filesystems/xfs.txt =================================================================== --- linux-2.6-xfs.orig/Documentation/filesystems/xfs.txt 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/Documentation/filesystems/xfs.txt 2008-10-15 13:31:22.000000000 +0200 @@ -229,10 +229,6 @@ The following sysctls are available for ISGID bit is cleared if the irix_sgid_inherit compatibility sysctl is set. - fs.xfs.restrict_chown (Min: 0 Default: 1 Max: 1) - 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 xfs_io(8) chattr command on a directory to be Index: linux-2.6-xfs/kernel/sysctl_check.c =================================================================== --- linux-2.6-xfs.orig/kernel/sysctl_check.c 2008-10-14 19:55:29.000000000 +0200 +++ linux-2.6-xfs/kernel/sysctl_check.c 2008-10-15 13:31:22.000000000 +0200 @@ -731,7 +731,6 @@ static const struct trans_ctl_table tran }; static const struct trans_ctl_table trans_fs_xfs_table[] = { - { XFS_RESTRICT_CHOWN, "restrict_chown" }, { XFS_SGID_INHERIT, "irix_sgid_inherit" }, { XFS_SYMLINK_MODE, "irix_symlink_mode" }, { XFS_PANIC_MASK, "panic_mask" }, -- From owner-xfs@oss.sgi.com Mon Oct 27 06:36:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDagQv021700 for ; Mon, 27 Oct 2008 06:36:43 -0700 X-ASG-Debug-ID: 1225114601-1b3d01e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF19AADE50B for ; Mon, 27 Oct 2008 06:36:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id F48RH0MEKAeS4qDj for ; Mon, 27 Oct 2008 06:36:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSGu-0000Cp-VV for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:36:40 +0000 Date: Mon, 27 Oct 2008 09:36:40 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] use inode_change_ok for setattr permission checking Subject: [PATCH 3/3] use inode_change_ok for setattr permission checking Message-ID: <20081027133640.GD761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-setattr-use-inode_change_ok User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114601 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Instead of implementing our own checks use inode_change_ok to check for nessecary permission in setattr. There is a slight change in behaviour as inode_change_ok doesn't allow i_mode updates to add the suid or sgid without superuser privilegues while the old XFS code just stripped away those bits from the file mode. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-10-03 22:16:32.000000000 +0200 @@ -70,7 +70,6 @@ xfs_setattr( gid_t gid=0, igid=0; int timeflags = 0; struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; - int file_owner; int need_iolock = 1; xfs_itrace_entry(ip); @@ -81,6 +80,10 @@ xfs_setattr( if (XFS_FORCED_SHUTDOWN(mp)) return XFS_ERROR(EIO); + code = -inode_change_ok(inode, iattr); + if (code) + return code; + olddquot1 = olddquot2 = NULL; udqp = gdqp = NULL; @@ -158,56 +161,6 @@ xfs_setattr( xfs_ilock(ip, lock_flags); - /* boolean: are we the file owner? */ - file_owner = (current_fsuid() == ip->i_d.di_uid); - - /* - * Change various properties of a file. - * Only the owner or users with CAP_FOWNER - * capability may do these things. - */ - if (mask & (ATTR_MODE|ATTR_UID|ATTR_GID)) { - /* - * CAP_FOWNER overrides the following restrictions: - * - * The user ID of the calling process must be equal - * to the file owner ID, except in cases where the - * CAP_FSETID capability is applicable. - */ - if (!file_owner && !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - - /* - * CAP_FSETID overrides the following restrictions: - * - * The effective user ID of the calling process shall match - * the file owner when setting the set-user-ID and - * set-group-ID bits on that file. - * - * The effective group ID or one of the supplementary group - * IDs of the calling process shall match the group owner of - * the file when setting the set-group-ID bit on that file - */ - if (mask & ATTR_MODE) { - mode_t m = 0; - - if ((iattr->ia_mode & S_ISUID) && !file_owner) - m |= S_ISUID; - if ((iattr->ia_mode & S_ISGID) && - !in_group_p((gid_t)ip->i_d.di_gid)) - m |= S_ISGID; -#if 0 - /* Linux allows this, Irix doesn't. */ - if ((iattr->ia_mode & S_ISVTX) && !S_ISDIR(ip->i_d.di_mode)) - m |= S_ISVTX; -#endif - if (m && !capable(CAP_FSETID)) - iattr->ia_mode &= ~m; - } - } - /* * Change file ownership. Must be the owner or privileged. */ @@ -224,22 +177,6 @@ xfs_setattr( uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; /* - * CAP_CHOWN overrides the following restrictions: - * - * If _POSIX_CHOWN_RESTRICTED is defined, this capability - * shall override the restriction that a process cannot - * change the user ID of a file it owns and the restriction - * that the group ID supplied to the chown() function - * shall be equal to either the group ID or one of the - * supplementary group IDs of the calling process. - */ - if ((iuid != uid || - (igid != gid && !in_group_p((gid_t)gid))) && - !capable(CAP_CHOWN)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - /* * Do a quota reservation only if uid/gid is actually * going to change. */ @@ -284,19 +221,6 @@ xfs_setattr( } /* - * Change file access or modified times. - */ - if (mask & (ATTR_ATIME|ATTR_MTIME)) { - if (!file_owner) { - if ((mask & (ATTR_MTIME_SET|ATTR_ATIME_SET)) && - !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - } - } - - /* * Now we can make the changes. Before we join the inode * to the transaction, if ATTR_SIZE is set then take care of * the part of the truncation that must be done without the -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDd0H5022767 for ; Mon, 27 Oct 2008 06:39:00 -0700 X-ASG-Debug-ID: 1225114739-4d0301630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BCB441487F1B for ; Mon, 27 Oct 2008 06:38:59 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id umpabkoI7i8ovZHf for ; Mon, 27 Oct 2008 06:38:59 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJ9-0000I6-Aj for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:38:59 +0000 Date: Mon, 27 Oct 2008 09:38:59 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/7] pre-crc cleanups Subject: [PATCH 0/7] pre-crc cleanups Message-ID: <20081027133859.GA1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114739 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Various cleanups leading to the CRC support, but ready for inclusion anytime. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_14, J_CHICKENPOX_62,J_CHICKENPOX_64,J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDd3rD022775 for ; Mon, 27 Oct 2008 06:39:03 -0700 X-ASG-Debug-ID: 1225114742-42ee00220000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9F31F54BAE0 for ; Mon, 27 Oct 2008 06:39:02 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id j6qlvGpHfXxohaoC for ; Mon, 27 Oct 2008 06:39:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJB-0000IM-R4 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:01 +0000 Date: Mon, 27 Oct 2008 09:39:01 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/7] factor out xfs_read_agi helper Subject: [PATCH 1/7] factor out xfs_read_agi helper Message-ID: <20081027133901.GB1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_read_agi User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114742 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Add a helper to read the AGI header and perform basic verification. Based on hunks from a larger patch from Dave Chinner. (First sent on Juli 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ag.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ag.h 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ag.h 2008-07-23 19:47:29.000000000 +0200 @@ -142,6 +142,9 @@ typedef struct xfs_agi { #define XFS_AGI_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGI_DADDR(mp)) #define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)XFS_BUF_PTR(bp)) +extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_agnumber_t agno, struct xfs_buf **bpp); + /* * The third a.g. block contains the a.g. freelist, an array * of block pointers to blocks owned by the allocation btree code. Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-07-23 19:47:29.000000000 +0200 @@ -1370,70 +1370,95 @@ xfs_ialloc_log_agi( xfs_trans_log_buf(tp, bp, first, last); } +#ifdef DEBUG +STATIC void +xfs_check_agi_unlinked( + struct xfs_agi *agi) +{ + int i; + + for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) + ASSERT(agi->agi_unlinked[i]); +} +#else +#define xfs_check_agi_unlinked(agi) +#endif + /* * Read in the allocation group header (inode allocation section) */ int -xfs_ialloc_read_agi( - xfs_mount_t *mp, /* file system mount structure */ - xfs_trans_t *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - xfs_buf_t **bpp) /* allocation group hdr buf */ +xfs_read_agi( + struct xfs_mount *mp, /* file system mount structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + struct xfs_buf **bpp) /* allocation group hdr buf */ { - xfs_agi_t *agi; /* allocation group header */ - int agi_ok; /* agi is consistent */ - xfs_buf_t *bp; /* allocation group hdr buf */ - xfs_perag_t *pag; /* per allocation group data */ - int error; + struct xfs_agi *agi; /* allocation group header */ + int agi_ok; /* agi is consistent */ + int error; ASSERT(agno != NULLAGNUMBER); - error = xfs_trans_read_buf( - mp, tp, mp->m_ddev_targp, + + error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0, &bp); + XFS_FSS_TO_BB(mp, 1), 0, bpp); if (error) return error; - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + + ASSERT(*bpp && !XFS_BUF_GETERROR(*bpp)); + agi = XFS_BUF_TO_AGI(*bpp); /* * Validate the magic number of the agi block. */ - agi = XFS_BUF_TO_AGI(bp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); + agi_ok = be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && + XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)) && + be32_to_cpu(agi->agi_seqno) == agno; if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IALLOC_READ_AGI, XFS_RANDOM_IALLOC_READ_AGI))) { - XFS_CORRUPTION_ERROR("xfs_ialloc_read_agi", XFS_ERRLEVEL_LOW, + XFS_CORRUPTION_ERROR("xfs_read_agi", XFS_ERRLEVEL_LOW, mp, agi); - xfs_trans_brelse(tp, bp); + xfs_trans_brelse(tp, *bpp); return XFS_ERROR(EFSCORRUPTED); } + + XFS_BUF_SET_VTYPE_REF(*bpp, B_FS_AGI, XFS_AGI_REF); + + xfs_check_agi_unlinked(agi); + return 0; +} + +int +xfs_ialloc_read_agi( + struct xfs_mount *mp, /* file system mount structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + struct xfs_buf **bpp) /* allocation group hdr buf */ +{ + struct xfs_agi *agi; /* allocation group header */ + struct xfs_perag *pag; /* per allocation group data */ + int error; + + error = xfs_read_agi(mp, tp, agno, bpp); + if (error) + return error; + + agi = XFS_BUF_TO_AGI(*bpp); pag = &mp->m_perag[agno]; + if (!pag->pagi_init) { pag->pagi_freecount = be32_to_cpu(agi->agi_freecount); pag->pagi_count = be32_to_cpu(agi->agi_count); pag->pagi_init = 1; - } else { - /* - * It's possible for these to be out of sync if - * we are in the middle of a forced shutdown. - */ - ASSERT(pag->pagi_freecount == be32_to_cpu(agi->agi_freecount) || - XFS_FORCED_SHUTDOWN(mp)); - } - -#ifdef DEBUG - { - int i; - - for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) - ASSERT(agi->agi_unlinked[i]); } -#endif - XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGI, XFS_AGI_REF); - *bpp = bp; + /* + * It's possible for these to be out of sync if + * we are in the middle of a forced shutdown. + */ + ASSERT(pag->pagi_freecount == be32_to_cpu(agi->agi_freecount) || + XFS_FORCED_SHUTDOWN(mp)); return 0; } Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-07-23 19:45:01.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-07-23 19:47:29.000000000 +0200 @@ -1776,13 +1776,10 @@ xfs_iunlink( xfs_dinode_t *dip; xfs_buf_t *agibp; xfs_buf_t *ibp; - xfs_agnumber_t agno; - xfs_daddr_t agdaddr; xfs_agino_t agino; short bucket_index; int offset; int error; - int agi_ok; ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_mode != 0); @@ -1790,31 +1787,15 @@ xfs_iunlink( mp = tp->t_mountp; - agno = XFS_INO_TO_AGNO(mp, ip->i_ino); - agdaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); - /* * Get the agi buffer first. It ensures lock ordering * on the list. */ - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, agdaddr, - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_read_agi(mp, tp, XFS_INO_TO_AGNO(mp, ip->i_ino), &agibp); if (error) return error; - - /* - * Validate the magic number of the agi block. - */ agi = XFS_BUF_TO_AGI(agibp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); - if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IUNLINK, - XFS_RANDOM_IUNLINK))) { - XFS_CORRUPTION_ERROR("xfs_iunlink", XFS_ERRLEVEL_LOW, mp, agi); - xfs_trans_brelse(tp, agibp); - return XFS_ERROR(EFSCORRUPTED); - } + /* * Get the index into the agi hash table for the * list this inode will go on. @@ -1874,7 +1855,6 @@ xfs_iunlink_remove( xfs_buf_t *agibp; xfs_buf_t *ibp; xfs_agnumber_t agno; - xfs_daddr_t agdaddr; xfs_agino_t agino; xfs_agino_t next_agino; xfs_buf_t *last_ibp; @@ -1882,45 +1862,23 @@ xfs_iunlink_remove( short bucket_index; int offset, last_offset = 0; int error; - int agi_ok; - /* - * First pull the on-disk inode from the AGI unlinked list. - */ mp = tp->t_mountp; - agno = XFS_INO_TO_AGNO(mp, ip->i_ino); - agdaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); /* * Get the agi buffer first. It ensures lock ordering * on the list. */ - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, agdaddr, - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_read_agi(mp, tp, agno, &agibp); if (error) { cmn_err(CE_WARN, - "xfs_iunlink_remove: xfs_trans_read_buf() returned an error %d on %s. Returning error.", + "xfs_iunlink_remove: xfs_read_agi() returned an error %d on %s. Returning error.", error, mp->m_fsname); return error; } - /* - * Validate the magic number of the agi block. - */ agi = XFS_BUF_TO_AGI(agibp); - agi_ok = - be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && - XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)); - if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IUNLINK_REMOVE, - XFS_RANDOM_IUNLINK_REMOVE))) { - XFS_CORRUPTION_ERROR("xfs_iunlink_remove", XFS_ERRLEVEL_LOW, - mp, agi); - xfs_trans_brelse(tp, agibp); - cmn_err(CE_WARN, - "xfs_iunlink_remove: XFS_TEST_ERROR() returned an error on %s. Returning EFSCORRUPTED.", - mp->m_fsname); - return XFS_ERROR(EFSCORRUPTED); - } + /* * Get the index into the agi hash table for the * list this inode will go on. Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-07-23 18:06:20.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-07-23 19:47:29.000000000 +0200 @@ -3134,19 +3134,16 @@ xlog_recover_clear_agi_bucket( int error; tp = xfs_trans_alloc(mp, XFS_TRANS_CLEAR_AGI_BUCKET); - error = xfs_trans_reserve(tp, 0, XFS_CLEAR_AGI_BUCKET_LOG_RES(mp), 0, 0, 0); - if (!error) - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0, &agibp); + error = xfs_trans_reserve(tp, 0, XFS_CLEAR_AGI_BUCKET_LOG_RES(mp), + 0, 0, 0); if (error) goto out_abort; - error = EINVAL; - agi = XFS_BUF_TO_AGI(agibp); - if (be32_to_cpu(agi->agi_magicnum) != XFS_AGI_MAGIC) + error = xfs_read_agi(mp, tp, agno, &agibp); + if (error) goto out_abort; + agi = XFS_BUF_TO_AGI(agibp); agi->agi_unlinked[bucket] = cpu_to_be32(NULLAGINO); offset = offsetof(xfs_agi_t, agi_unlinked) + (sizeof(xfs_agino_t) * bucket); @@ -3207,16 +3204,21 @@ xlog_recover_process_iunlinks( /* * Find the agi for this ag. */ - agibp = xfs_buf_read(mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert("xlog_recover_process_iunlinks(#1)", - log->l_mp, agibp, - XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp))); + error = xfs_read_agi(mp, NULL, agno, &agibp); + if (error) { + /* + * AGI is b0rked. Don't process it. + * + * We should probably mark the filesystem as corrupt + * after we've recovered all the ag's we can.... + */ + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_process_iunlinks(#1)" + "agi read failed agno %d error %d", + agno, error); + continue; } agi = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu(agi->agi_magicnum)); for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) { @@ -3295,22 +3297,18 @@ xlog_recover_process_iunlinks( /* * Reacquire the agibuffer and continue around - * the loop. + * the loop. This should never fail as we know + * the buffer was good earlier on. */ - agibp = xfs_buf_read(mp->m_ddev_targp, - XFS_AG_DADDR(mp, agno, - XFS_AGI_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert( - "xlog_recover_process_iunlinks(#2)", - log->l_mp, agibp, - XFS_AG_DADDR(mp, agno, - XFS_AGI_DADDR(mp))); + error = xfs_read_agi(mp, NULL, agno, &agibp); + ASSERT(error == 0); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_process_iunlinks(#2)" + "agi read failed agno %d error %d", + agno, error); } agi = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu( - agi->agi_magicnum)); } } @@ -4004,7 +4002,6 @@ xlog_recover_check_summary( xfs_buf_t *agfbp; xfs_buf_t *agibp; xfs_daddr_t agfdaddr; - xfs_daddr_t agidaddr; xfs_buf_t *sbbp; #ifdef XFS_LOUD_RECOVERY xfs_sb_t *sbp; @@ -4013,6 +4010,7 @@ xlog_recover_check_summary( __uint64_t freeblks; __uint64_t itotal; __uint64_t ifree; + int error; mp = log->l_mp; @@ -4036,21 +4034,19 @@ xlog_recover_check_summary( be32_to_cpu(agfp->agf_flcount); xfs_buf_relse(agfbp); - agidaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); - agibp = xfs_buf_read(mp->m_ddev_targp, agidaddr, - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agibp)) { - xfs_ioerror_alert("xlog_recover_check_summary(agi)", - mp, agibp, agidaddr); - } - agip = XFS_BUF_TO_AGI(agibp); - ASSERT(XFS_AGI_MAGIC == be32_to_cpu(agip->agi_magicnum)); - ASSERT(XFS_AGI_GOOD_VERSION(be32_to_cpu(agip->agi_versionnum))); - ASSERT(be32_to_cpu(agip->agi_seqno) == agno); + error = xfs_read_agi(mp, NULL, agno, &agibp); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_check_summary(agi)" + "agi read failed agno %d error %d", + agno, error); + } else { + agip = XFS_BUF_TO_AGI(agibp); - itotal += be32_to_cpu(agip->agi_count); - ifree += be32_to_cpu(agip->agi_freecount); - xfs_buf_relse(agibp); + itotal += be32_to_cpu(agip->agi_count); + ifree += be32_to_cpu(agip->agi_freecount); + xfs_buf_relse(agibp); + } } sbbp = xfs_getsb(mp, 0); -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_64, LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDd5IO022784 for ; Mon, 27 Oct 2008 06:39:05 -0700 X-ASG-Debug-ID: 1225114744-1773022c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE262ADE33C for ; Mon, 27 Oct 2008 06:39:04 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id DpIF9hzazybPrQBp for ; Mon, 27 Oct 2008 06:39:04 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJD-0000IS-U8 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:03 +0000 Date: Mon, 27 Oct 2008 09:39:03 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/7] factor out xfs_read_agf helper Subject: [PATCH 2/7] factor out xfs_read_agf helper Message-ID: <20081027133903.GC1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_read_agf User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114744 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Add a helper to read the AGF header and perform basic verification. Based on hunks from a larger patch from Dave Chinner. (First sent on Juli 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ag.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ag.h 2008-10-01 13:46:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ag.h 2008-10-01 13:48:23.000000000 +0200 @@ -91,6 +91,8 @@ typedef struct xfs_agf { #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) #define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) +extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); /* * Size of the unlinked inode hash table in the agi. Index: linux-2.6-xfs/fs/xfs/xfs_alloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_alloc.c 2008-10-01 13:47:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_alloc.c 2008-10-01 13:49:12.000000000 +0200 @@ -2233,44 +2233,41 @@ xfs_alloc_put_freelist( * Read in the allocation group header (free/alloc section). */ int /* error */ -xfs_alloc_read_agf( - xfs_mount_t *mp, /* mount point structure */ - xfs_trans_t *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - int flags, /* XFS_ALLOC_FLAG_... */ - xfs_buf_t **bpp) /* buffer for the ag freelist header */ +xfs_read_agf( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + int flags, /* XFS_BUF_ */ + struct xfs_buf **bpp) /* buffer for the ag freelist header */ { - xfs_agf_t *agf; /* ag freelist header */ + struct xfs_agf *agf; /* ag freelist header */ int agf_ok; /* set if agf is consistent */ - xfs_buf_t *bp; /* return value */ - xfs_perag_t *pag; /* per allocation group data */ int error; ASSERT(agno != NULLAGNUMBER); error = xfs_trans_read_buf( mp, tp, mp->m_ddev_targp, XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), - XFS_FSS_TO_BB(mp, 1), - (flags & XFS_ALLOC_FLAG_TRYLOCK) ? XFS_BUF_TRYLOCK : 0U, - &bp); + XFS_FSS_TO_BB(mp, 1), flags, bpp); if (error) return error; - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); - if (!bp) { - *bpp = NULL; + if (!*bpp) return 0; - } + + ASSERT(!XFS_BUF_GETERROR(*bpp)); + agf = XFS_BUF_TO_AGF(*bpp); + /* * Validate the magic number of the agf block. */ - agf = XFS_BUF_TO_AGF(bp); agf_ok = be32_to_cpu(agf->agf_magicnum) == XFS_AGF_MAGIC && XFS_AGF_GOOD_VERSION(be32_to_cpu(agf->agf_versionnum)) && be32_to_cpu(agf->agf_freeblks) <= be32_to_cpu(agf->agf_length) && be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) && be32_to_cpu(agf->agf_fllast) < XFS_AGFL_SIZE(mp) && - be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp); + be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp) && + be32_to_cpu(agf->agf_seqno) == agno; if (xfs_sb_version_haslazysbcount(&mp->m_sb)) agf_ok = agf_ok && be32_to_cpu(agf->agf_btreeblks) <= be32_to_cpu(agf->agf_length); @@ -2278,9 +2275,41 @@ xfs_alloc_read_agf( XFS_RANDOM_ALLOC_READ_AGF))) { XFS_CORRUPTION_ERROR("xfs_alloc_read_agf", XFS_ERRLEVEL_LOW, mp, agf); - xfs_trans_brelse(tp, bp); + xfs_trans_brelse(tp, *bpp); return XFS_ERROR(EFSCORRUPTED); } + + XFS_BUF_SET_VTYPE_REF(*bpp, B_FS_AGF, XFS_AGF_REF); + return 0; +} + +/* + * Read in the allocation group header (free/alloc section). + */ +int /* error */ +xfs_alloc_read_agf( + struct xfs_mount *mp, /* mount point structure */ + struct xfs_trans *tp, /* transaction pointer */ + xfs_agnumber_t agno, /* allocation group number */ + int flags, /* XFS_ALLOC_FLAG_... */ + struct xfs_buf **bpp) /* buffer for the ag freelist header */ +{ + struct xfs_agf *agf; /* ag freelist header */ + struct xfs_perag *pag; /* per allocation group data */ + int error; + + ASSERT(agno != NULLAGNUMBER); + + error = xfs_read_agf(mp, tp, agno, + (flags & XFS_ALLOC_FLAG_TRYLOCK) ? XFS_BUF_TRYLOCK : 0, + bpp); + if (error) + return error; + if (!*bpp) + return 0; + ASSERT(!XFS_BUF_GETERROR(*bpp)); + + agf = XFS_BUF_TO_AGF(*bpp); pag = &mp->m_perag[agno]; if (!pag->pagf_init) { pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks); @@ -2308,8 +2337,6 @@ xfs_alloc_read_agf( be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNTi])); } #endif - XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGF, XFS_AGF_REF); - *bpp = bp; return 0; } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-01 13:46:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-01 13:48:23.000000000 +0200 @@ -3998,7 +3998,6 @@ xlog_recover_check_summary( xfs_agi_t *agip; xfs_buf_t *agfbp; xfs_buf_t *agibp; - xfs_daddr_t agfdaddr; xfs_buf_t *sbbp; #ifdef XFS_LOUD_RECOVERY xfs_sb_t *sbp; @@ -4015,21 +4014,18 @@ xlog_recover_check_summary( itotal = 0LL; ifree = 0LL; for (agno = 0; agno < mp->m_sb.sb_agcount; agno++) { - agfdaddr = XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)); - agfbp = xfs_buf_read(mp->m_ddev_targp, agfdaddr, - XFS_FSS_TO_BB(mp, 1), 0); - if (XFS_BUF_ISERROR(agfbp)) { - xfs_ioerror_alert("xlog_recover_check_summary(agf)", - mp, agfbp, agfdaddr); + error = xfs_read_agf(mp, NULL, agno, 0, &agfbp); + if (error) { + xfs_fs_cmn_err(CE_ALERT, mp, + "xlog_recover_check_summary(agf)" + "agf read failed agno %d error %d", + agno, error); + } else { + agfp = XFS_BUF_TO_AGF(agfbp); + freeblks += be32_to_cpu(agfp->agf_freeblks) + + be32_to_cpu(agfp->agf_flcount); + xfs_buf_relse(agfbp); } - agfp = XFS_BUF_TO_AGF(agfbp); - ASSERT(XFS_AGF_MAGIC == be32_to_cpu(agfp->agf_magicnum)); - ASSERT(XFS_AGF_GOOD_VERSION(be32_to_cpu(agfp->agf_versionnum))); - ASSERT(be32_to_cpu(agfp->agf_seqno) == agno); - - freeblks += be32_to_cpu(agfp->agf_freeblks) + - be32_to_cpu(agfp->agf_flcount); - xfs_buf_relse(agfbp); error = xfs_read_agi(mp, NULL, agno, &agibp); if (error) { -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDd8pC022801 for ; Mon, 27 Oct 2008 06:39:08 -0700 X-ASG-Debug-ID: 1225114747-575203d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 69BD254BAE3 for ; Mon, 27 Oct 2008 06:39:08 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id pRDwE1yaOcM8XBun for ; Mon, 27 Oct 2008 06:39:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJH-0000IY-MN for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:07 +0000 Date: Mon, 27 Oct 2008 09:39:07 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/7] sanitize xlog_in_core_t definition Subject: [PATCH 3/7] sanitize xlog_in_core_t definition Message-ID: <20081027133907.GD1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xlog_iclog_fields_t User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114748 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Move all fields from xlog_iclog_fields_t into xlog_in_core_t instead of having them in a substructure and the using #defines to make it look like they were directly in xlog_in_core_t. Also document that xlog_in_core_2_t is grossly misnamed, and make all references to it typesafe. (First sent on Semptember 15th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-09-25 20:02:34.000000000 +0200 @@ -1024,12 +1024,6 @@ xlog_iodone(xfs_buf_t *bp) ASSERT(XFS_BUF_FSPRIVATE2(bp, unsigned long) == (unsigned long) 2); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); aborted = 0; - - /* - * Some versions of cpp barf on the recursive definition of - * ic_log -> hic_fields.ic_log and expand ic_log twice when - * it is passed through two macros. Workaround broken cpp. - */ l = iclog->ic_log; /* @@ -1287,7 +1281,7 @@ xlog_alloc_log(xfs_mount_t *mp, XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); iclog->ic_bp = bp; - iclog->hic_data = bp->b_addr; + iclog->ic_data = bp->b_addr; #ifdef DEBUG log->l_iclog_bak[i] = (xfs_caddr_t)&(iclog->ic_header); #endif @@ -1307,7 +1301,7 @@ xlog_alloc_log(xfs_mount_t *mp, atomic_set(&iclog->ic_refcnt, 0); spin_lock_init(&iclog->ic_callback_lock); iclog->ic_callback_tail = &(iclog->ic_callback); - iclog->ic_datap = (char *)iclog->hic_data + log->l_iclog_hsize; + iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); ASSERT(XFS_BUF_VALUSEMA(iclog->ic_bp) <= 0); @@ -3418,7 +3412,7 @@ xlog_verify_iclog(xlog_t *log, ptr = iclog->ic_datap; base_ptr = ptr; ophead = (xlog_op_header_t *)ptr; - xhdr = (xlog_in_core_2_t *)&iclog->ic_header; + xhdr = iclog->ic_data; for (i = 0; i < len; i++) { ophead = (xlog_op_header_t *)ptr; Index: linux-2.6-xfs/fs/xfs/xfs_log_priv.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_priv.h 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_priv.h 2008-09-25 20:02:35.000000000 +0200 @@ -309,6 +309,16 @@ typedef struct xlog_rec_ext_header { } xlog_rec_ext_header_t; #ifdef __KERNEL__ + +/* + * Quite misnamed, because this union lays out the actual on-disk log buffer. + */ +typedef union xlog_in_core2 { + xlog_rec_header_t hic_header; + xlog_rec_ext_header_t hic_xheader; + char hic_sector[XLOG_HEADER_SIZE]; +} xlog_in_core_2_t; + /* * - A log record header is 512 bytes. There is plenty of room to grow the * xlog_rec_header_t into the reserved space. @@ -338,7 +348,7 @@ typedef struct xlog_rec_ext_header { * We'll put all the read-only and l_icloglock fields in the first cacheline, * and move everything else out to subsequent cachelines. */ -typedef struct xlog_iclog_fields { +typedef struct xlog_in_core { sv_t ic_force_wait; sv_t ic_write_wait; struct xlog_in_core *ic_next; @@ -361,41 +371,11 @@ typedef struct xlog_iclog_fields { /* reference counts need their own cacheline */ atomic_t ic_refcnt ____cacheline_aligned_in_smp; -} xlog_iclog_fields_t; - -typedef union xlog_in_core2 { - xlog_rec_header_t hic_header; - xlog_rec_ext_header_t hic_xheader; - char hic_sector[XLOG_HEADER_SIZE]; -} xlog_in_core_2_t; - -typedef struct xlog_in_core { - xlog_iclog_fields_t hic_fields; - xlog_in_core_2_t *hic_data; + xlog_in_core_2_t *ic_data; +#define ic_header ic_data->hic_header } xlog_in_core_t; /* - * Defines to save our code from this glop. - */ -#define ic_force_wait hic_fields.ic_force_wait -#define ic_write_wait hic_fields.ic_write_wait -#define ic_next hic_fields.ic_next -#define ic_prev hic_fields.ic_prev -#define ic_bp hic_fields.ic_bp -#define ic_log hic_fields.ic_log -#define ic_callback hic_fields.ic_callback -#define ic_callback_lock hic_fields.ic_callback_lock -#define ic_callback_tail hic_fields.ic_callback_tail -#define ic_trace hic_fields.ic_trace -#define ic_size hic_fields.ic_size -#define ic_offset hic_fields.ic_offset -#define ic_refcnt hic_fields.ic_refcnt -#define ic_bwritecnt hic_fields.ic_bwritecnt -#define ic_state hic_fields.ic_state -#define ic_datap hic_fields.ic_datap -#define ic_header hic_data->hic_header - -/* * The reservation head lsn is not made up of a cycle number and block number. * Instead, it uses a cycle number and byte number. Logs don't expect to * overflow 31 bits worth of byte offset, so using a byte number will mean Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-09-25 20:02:39.000000000 +0200 @@ -3359,7 +3359,6 @@ xlog_pack_data( int size = iclog->ic_offset + roundoff; __be32 cycle_lsn; xfs_caddr_t dp; - xlog_in_core_2_t *xhdr; xlog_pack_data_checksum(log, iclog, size); @@ -3374,7 +3373,8 @@ xlog_pack_data( } if (xfs_sb_version_haslogv2(&log->l_mp->m_sb)) { - xhdr = (xlog_in_core_2_t *)&iclog->ic_header; + xlog_in_core_2_t *xhdr = iclog->ic_data; + for ( ; i < BTOBB(size); i++) { j = i / (XLOG_HEADER_CYCLE_SIZE / BBSIZE); k = i % (XLOG_HEADER_CYCLE_SIZE / BBSIZE); @@ -3432,7 +3432,6 @@ xlog_unpack_data( xlog_t *log) { int i, j, k; - xlog_in_core_2_t *xhdr; for (i = 0; i < BTOBB(be32_to_cpu(rhead->h_len)) && i < (XLOG_HEADER_CYCLE_SIZE / BBSIZE); i++) { @@ -3441,7 +3440,7 @@ xlog_unpack_data( } if (xfs_sb_version_haslogv2(&log->l_mp->m_sb)) { - xhdr = (xlog_in_core_2_t *)rhead; + xlog_in_core_2_t *xhdr = (xlog_in_core_2_t *)rhead; for ( ; i < BTOBB(be32_to_cpu(rhead->h_len)); i++) { j = i / (XLOG_HEADER_CYCLE_SIZE / BBSIZE); k = i % (XLOG_HEADER_CYCLE_SIZE / BBSIZE); Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-09-25 13:58:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-09-25 20:02:39.000000000 +0200 @@ -5763,7 +5763,7 @@ xfsidbg_xiclog(xlog_in_core_t *iclog) }; kdb_printf("xlog_in_core/header at 0x%p/0x%p\n", - iclog, iclog->hic_data); + iclog, iclog->ic_data); kdb_printf("magicno: %x cycle: %d version: %d lsn: 0x%Lx\n", be32_to_cpu(iclog->ic_header.h_magicno), be32_to_cpu(iclog->ic_header.h_cycle), -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDdB6X022821 for ; Mon, 27 Oct 2008 06:39:11 -0700 X-ASG-Debug-ID: 1225114750-182301e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9F1B9ADE675 for ; Mon, 27 Oct 2008 06:39:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id raSmGsauG6MN57An for ; Mon, 27 Oct 2008 06:39:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJJ-0000Id-VQ for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:09 +0000 Date: Mon, 27 Oct 2008 09:39:09 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/7] kill xfs_ialloc_log_di Subject: [PATCH 4/7] kill xfs_ialloc_log_di Message-ID: <20081027133909.GE1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xfs_ialloc_log_di User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114750 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_ialloc_log_di is only used to log the full inode core + di_next_unlinked. That means all the offset magic is not nessecary and we can simply use xfs_trans_log_buf directly. Also add a comment describing what we should do here instead. (First sent on October 7th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 09:12:06.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 10:47:18.000000000 +0200 @@ -41,68 +41,6 @@ #include "xfs_error.h" #include "xfs_bmap.h" -/* - * Log specified fields for the inode given by bp and off. - */ -STATIC void -xfs_ialloc_log_di( - xfs_trans_t *tp, /* transaction pointer */ - xfs_buf_t *bp, /* inode buffer */ - int off, /* index of inode in buffer */ - int fields) /* bitmask of fields to log */ -{ - int first; /* first byte number */ - int ioffset; /* off in bytes */ - int last; /* last byte number */ - xfs_mount_t *mp; /* mount point structure */ - static const short offsets[] = { /* field offsets */ - /* keep in sync with bits */ - offsetof(xfs_dinode_core_t, di_magic), - offsetof(xfs_dinode_core_t, di_mode), - offsetof(xfs_dinode_core_t, di_version), - offsetof(xfs_dinode_core_t, di_format), - offsetof(xfs_dinode_core_t, di_onlink), - offsetof(xfs_dinode_core_t, di_uid), - offsetof(xfs_dinode_core_t, di_gid), - offsetof(xfs_dinode_core_t, di_nlink), - offsetof(xfs_dinode_core_t, di_projid), - offsetof(xfs_dinode_core_t, di_pad), - offsetof(xfs_dinode_core_t, di_atime), - offsetof(xfs_dinode_core_t, di_mtime), - offsetof(xfs_dinode_core_t, di_ctime), - offsetof(xfs_dinode_core_t, di_size), - offsetof(xfs_dinode_core_t, di_nblocks), - offsetof(xfs_dinode_core_t, di_extsize), - offsetof(xfs_dinode_core_t, di_nextents), - offsetof(xfs_dinode_core_t, di_anextents), - offsetof(xfs_dinode_core_t, di_forkoff), - offsetof(xfs_dinode_core_t, di_aformat), - offsetof(xfs_dinode_core_t, di_dmevmask), - offsetof(xfs_dinode_core_t, di_dmstate), - offsetof(xfs_dinode_core_t, di_flags), - offsetof(xfs_dinode_core_t, di_gen), - offsetof(xfs_dinode_t, di_next_unlinked), - offsetof(xfs_dinode_t, di_u), - offsetof(xfs_dinode_t, di_a), - sizeof(xfs_dinode_t) - }; - - - ASSERT(offsetof(xfs_dinode_t, di_core) == 0); - ASSERT((fields & (XFS_DI_U|XFS_DI_A)) == 0); - mp = tp->t_mountp; - /* - * Get the inode-relative first and last bytes for these fields - */ - xfs_btree_offsets(fields, offsets, XFS_DI_NUM_BITS, &first, &last); - /* - * Convert to buffer offsets and log it. - */ - ioffset = off << mp->m_sb.sb_inodelog; - first += ioffset; - last += ioffset; - xfs_trans_log_buf(tp, bp, first, last); -} /* * Allocation group level functions. @@ -406,18 +344,25 @@ xfs_ialloc_ag_alloc( XFS_BUF_LOCK); ASSERT(fbuf); ASSERT(!XFS_BUF_GETERROR(fbuf)); + /* - * Set initial values for the inodes in this buffer. + * Initialize all inodes in this buffer and then log them. + * + * XXX: It would be much better if we had just one transaction to + * log a whole cluster of inodes instead of all the indivdual + * transactions causing a lot of log traffic. */ xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { + int ioffset = i << args.mp->m_sb.sb_inodelog; + uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + free = XFS_MAKE_IPTR(args.mp, fbuf, i); free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); free->di_core.di_version = version; free->di_core.di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); - xfs_ialloc_log_di(tp, fbuf, i, - XFS_DI_CORE_BITS | XFS_DI_NEXT_UNLINKED); + xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } xfs_trans_inode_alloc_buf(tp, fbuf); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 09:24:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 10:47:18.000000000 +0200 @@ -106,40 +106,6 @@ typedef struct xfs_dinode #define XFS_MAXLINK_1 65535U /* - * Bit names for logging disk inodes only - */ -#define XFS_DI_MAGIC 0x0000001 -#define XFS_DI_MODE 0x0000002 -#define XFS_DI_VERSION 0x0000004 -#define XFS_DI_FORMAT 0x0000008 -#define XFS_DI_ONLINK 0x0000010 -#define XFS_DI_UID 0x0000020 -#define XFS_DI_GID 0x0000040 -#define XFS_DI_NLINK 0x0000080 -#define XFS_DI_PROJID 0x0000100 -#define XFS_DI_PAD 0x0000200 -#define XFS_DI_ATIME 0x0000400 -#define XFS_DI_MTIME 0x0000800 -#define XFS_DI_CTIME 0x0001000 -#define XFS_DI_SIZE 0x0002000 -#define XFS_DI_NBLOCKS 0x0004000 -#define XFS_DI_EXTSIZE 0x0008000 -#define XFS_DI_NEXTENTS 0x0010000 -#define XFS_DI_NAEXTENTS 0x0020000 -#define XFS_DI_FORKOFF 0x0040000 -#define XFS_DI_AFORMAT 0x0080000 -#define XFS_DI_DMEVMASK 0x0100000 -#define XFS_DI_DMSTATE 0x0200000 -#define XFS_DI_FLAGS 0x0400000 -#define XFS_DI_GEN 0x0800000 -#define XFS_DI_NEXT_UNLINKED 0x1000000 -#define XFS_DI_U 0x2000000 -#define XFS_DI_A 0x4000000 -#define XFS_DI_NUM_BITS 27 -#define XFS_DI_ALL_BITS ((1 << XFS_DI_NUM_BITS) - 1) -#define XFS_DI_CORE_BITS (XFS_DI_ALL_BITS & ~(XFS_DI_U|XFS_DI_A)) - -/* * Values for di_format */ typedef enum xfs_dinode_fmt -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDdGk8022861 for ; Mon, 27 Oct 2008 06:39:16 -0700 X-ASG-Debug-ID: 1225114755-1773022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A9621ADE678 for ; Mon, 27 Oct 2008 06:39:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id CMvjxTfZeqWNYqai for ; Mon, 27 Oct 2008 06:39:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJO-0000Iy-T6 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:14 +0000 Date: Mon, 27 Oct 2008 09:39:14 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Subject: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Message-ID: <20081027133914.GG1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-XFS_DINODE_VERSION_defines User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114755 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- These names don't add any value at all over just using the numerical values. (First sent on October 9th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-09 17:59:26.000000000 +0200 @@ -331,7 +331,7 @@ xfs_dip_to_stat( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->dt_nlink = be16_to_cpu(dic->di_onlink); /*buf->dt_xfs_projid = 0;*/ } else { Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c 2008-10-09 18:00:33.000000000 +0200 @@ -1132,7 +1132,7 @@ xfs_ioctl_setattr( * the superblock version number since projids didn't * exist before DINODE_VERSION_2 and SB_VERSION_NLINK. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) + if (ip->i_d.di_version == 1) xfs_bump_ino_vers2(tp, ip); } Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-09 18:01:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-09 18:01:54.000000000 +0200 @@ -18,11 +18,8 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -#define XFS_DINODE_VERSION_1 1 -#define XFS_DINODE_VERSION_2 2 -#define XFS_DINODE_GOOD_VERSION(v) \ - (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) -#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_MAGIC 0x494e /* 'IN' */ +#define XFS_DINODE_GOOD_VERSION(v) (((v) == 1 || (v) == 2)) typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:39.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-09 18:00:49.000000000 +0200 @@ -321,9 +321,9 @@ xfs_ialloc_ag_alloc( * able to use the file system. */ if (xfs_sb_version_hasnlink(&args.mp->m_sb)) - version = XFS_DINODE_VERSION_2; + version = 2; else - version = XFS_DINODE_VERSION_1; + version = 1; /* * Seed the new inode cluster with a random generation number. This Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-09 17:59:50.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-09 18:00:25.000000000 +0200 @@ -959,7 +959,7 @@ xfs_iread( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + if (ip->i_d.di_version == 1) { ip->i_d.di_nlink = ip->i_d.di_onlink; ip->i_d.di_onlink = 0; ip->i_d.di_projid = 0; @@ -1128,8 +1128,8 @@ xfs_ialloc( * here rather than here and in the flush/logging code. */ if (xfs_sb_version_hasnlink(&tp->t_mountp->m_sb) && - ip->i_d.di_version == XFS_DINODE_VERSION_1) { - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version == 1) { + ip->i_d.di_version = 2; /* * We've already zeroed the old link count, the projid field, * and the pad field. @@ -1139,7 +1139,7 @@ xfs_ialloc( /* * Project ids won't be stored on disk if we are using a version 1 inode. */ - if ((prid != 0) && (ip->i_d.di_version == XFS_DINODE_VERSION_1)) + if ((prid != 0) && (ip->i_d.di_version == 1)) xfs_bump_ino_vers2(tp, ip); if (pip && XFS_INHERIT_GID(pip)) { @@ -3348,9 +3348,8 @@ xfs_iflush_int( * convert back to the old inode format. If the superblock version * has been updated, then make the conversion permanent. */ - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -3363,8 +3362,8 @@ xfs_iflush_int( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; + dip->di_version = 2; ip->i_d.di_onlink = 0; dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-09 18:00:54.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-09 18:01:19.000000000 +0200 @@ -296,9 +296,8 @@ xfs_inode_item_format( * has a new version number, then we don't bother converting back. */ mp = ip->i_mount; - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1 || - xfs_sb_version_hasnlink(&mp->m_sb)); - if (ip->i_d.di_version == XFS_DINODE_VERSION_1) { + ASSERT(ip->i_d.di_version == 1 || xfs_sb_version_hasnlink(&mp->m_sb)); + if (ip->i_d.di_version == 1) { if (!xfs_sb_version_hasnlink(&mp->m_sb)) { /* * Convert it back. @@ -311,7 +310,7 @@ xfs_inode_item_format( * so just make the conversion to the new inode * format permanent. */ - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); } Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-09 17:59:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-09 17:59:33.000000000 +0200 @@ -139,7 +139,7 @@ xfs_bulkstat_one_dinode( * the new format. We don't change the version number so that we * can distinguish this from a real new format inode. */ - if (dic->di_version == XFS_DINODE_VERSION_1) { + if (dic->di_version == 1) { buf->bs_nlink = be16_to_cpu(dic->di_onlink); buf->bs_projid = 0; } else { Index: linux-2.6-xfs/fs/xfs/xfs_utils.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_utils.c 2008-10-09 17:59:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_utils.c 2008-10-09 17:59:46.000000000 +0200 @@ -268,9 +268,9 @@ xfs_bump_ino_vers2( xfs_mount_t *mp; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1); + ASSERT(ip->i_d.di_version == 1); - ip->i_d.di_version = XFS_DINODE_VERSION_2; + ip->i_d.di_version = 2; ip->i_d.di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); mp = tp->t_mountp; @@ -302,7 +302,7 @@ xfs_bumplink( ASSERT(ip->i_d.di_nlink > 0); ip->i_d.di_nlink++; inc_nlink(VFS_I(ip)); - if ((ip->i_d.di_version == XFS_DINODE_VERSION_1) && + if ((ip->i_d.di_version == 1) && (ip->i_d.di_nlink > XFS_MAXLINK_1)) { /* * The inode has increased its number of links beyond -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66, LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDdEQt022851 for ; Mon, 27 Oct 2008 06:39:16 -0700 X-ASG-Debug-ID: 1225114752-435f009b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55881ADE678 for ; Mon, 27 Oct 2008 06:39:12 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LYAdcoo3K7Tl5QpN for ; Mon, 27 Oct 2008 06:39:12 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJM-0000Ir-CT for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:12 +0000 Date: Mon, 27 Oct 2008 09:39:12 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/7] kill xfs_dinode_core_t Subject: [PATCH 5/7] kill xfs_dinode_core_t Message-ID: <20081027133912.GF1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-xfs_dinode_core_t User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114753 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Now that we have a separate xfs_icdinode_t for the in-core inode which gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core split - the fact that part of the structure gets logged through the inode log item and a small part not can better be described in a comment. All sizeof operations on the dinode_core either really wanted the icdinode and are switched to that one, or had already added the size of the agi unlinked list pointer. Later both will be replaced with helpers once we get the larger CRC-enabled dinode. Removing the data and attribute fork unions also has the advantage that xfs_dinode.h doesn't need to pull in every header under the sun. While we're at it also add some more comments describing the dinode structure. (First sent on October 7th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:22:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:22:29.000000000 +0200 @@ -302,7 +302,7 @@ STATIC uint xfs_dic2dmflags( xfs_dinode_t *dip) { - return _xfs_dic2dmflags(be16_to_cpu(dip->di_core.di_flags)) | + return _xfs_dic2dmflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? DM_XFLAG_HASATTR : 0); } @@ -316,11 +316,9 @@ STATIC void xfs_dip_to_stat( xfs_mount_t *mp, xfs_ino_t ino, - xfs_dinode_t *dip, + xfs_dinode_t *dic, dm_stat_t *buf) { - xfs_dinode_core_t *dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -348,7 +346,7 @@ xfs_dip_to_stat( buf->dt_atime = be32_to_cpu(dic->di_atime.t_sec); buf->dt_mtime = be32_to_cpu(dic->di_mtime.t_sec); buf->dt_ctime = be32_to_cpu(dic->di_ctime.t_sec); - buf->dt_xfs_xflags = xfs_dic2dmflags(dip); + buf->dt_xfs_xflags = xfs_dic2dmflags(dic); buf->dt_xfs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->dt_xfs_extents = be32_to_cpu(dic->di_nextents); @@ -358,7 +356,7 @@ xfs_dip_to_stat( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->dt_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->dt_rdev = xfs_dinode_get_rdev(dic); buf->dt_blksize = BLKDEV_IOSIZE; buf->dt_blocks = 0; break; @@ -542,7 +540,7 @@ xfs_dm_inline_attr( caddr_t attr_buf, int *value_lenp) { - if (dip->di_core.di_aformat == XFS_DINODE_FMT_LOCAL) { + if (dip->di_aformat == XFS_DINODE_FMT_LOCAL) { xfs_attr_shortform_t *sf; xfs_attr_sf_entry_t *sfe; unsigned int namelen = strlen(attr_name); @@ -584,7 +582,7 @@ dm_dip_to_handle( fid.dm_fid_len = sizeof(struct dm_fid) - sizeof(fid.dm_fid_len); fid.dm_fid_pad = 0; fid.dm_fid_ino = ino; - fid.dm_fid_gen = be32_to_cpu(dip->di_core.di_gen); + fid.dm_fid_gen = be32_to_cpu(dip->di_gen); memcpy(&handlep->ha_fsid, fsid, sizeof(*fsid)); memcpy(&handlep->ha_fid, &fid, fid.dm_fid_len + sizeof(fid.dm_fid_len)); @@ -609,7 +607,7 @@ xfs_dm_bulkall_inline_one( int value_len = *value_lenp; int error; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, &xbuf->dx_statinfo); @@ -781,7 +779,7 @@ xfs_dm_bulkattr_inline_one( { dm_handle_t handle; - if (dip->di_core.di_mode == 0) + if (dip->di_mode == 0) return ENOENT; xfs_dip_to_stat(mp, ino, dip, sbuf); dm_dip_to_handle(ino, dip, fsid, &handle); Index: linux-2.6-xfs/fs/xfs/xfs_dinode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dinode.h 2008-10-25 13:22:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dinode.h 2008-10-25 13:22:29.000000000 +0200 @@ -18,32 +18,32 @@ #ifndef __XFS_DINODE_H__ #define __XFS_DINODE_H__ -struct xfs_buf; -struct xfs_mount; - #define XFS_DINODE_VERSION_1 1 #define XFS_DINODE_VERSION_2 2 #define XFS_DINODE_GOOD_VERSION(v) \ (((v) == XFS_DINODE_VERSION_1 || (v) == XFS_DINODE_VERSION_2)) #define XFS_DINODE_MAGIC 0x494e /* 'IN' */ -/* - * Disk inode structure. - * This is just the header; the inode is expanded to fill a variable size - * with the last field expanding. It is split into the core and "other" - * because we only need the core part in the in-core inode. - */ typedef struct xfs_timestamp { __be32 t_sec; /* timestamp seconds */ __be32 t_nsec; /* timestamp nanoseconds */ } xfs_timestamp_t; /* - * Note: Coordinate changes to this structure with the XFS_DI_* #defines - * below, the offsets table in xfs_ialloc_log_di() and struct xfs_icdinode - * in xfs_inode.h. + * On-disk inode structure. + * + * This is just the header or "dinode core", the inode is expanded to fill a + * variable size the leftover area split into a data and an attribute fork. + * The format of the data and attribute fork depends on the format of the + * inode as indicated by di_format and di_aformat. To access the data and + * attribute use the XFS_DFORK_PTR, XFS_DFORK_DPTR, and XFS_DFORK_PTR macros + * below. + * + * There is a very similar struct icdinode in xfs_inode which matches the + * layout of the first 96 bytes of this structure, but is kept in native + * format instead of big endian. */ -typedef struct xfs_dinode_core { +typedef struct xfs_dinode { __be16 di_magic; /* inode magic # = XFS_DINODE_MAGIC */ __be16 di_mode; /* mode and type of file */ __u8 di_version; /* inode version */ @@ -69,34 +69,13 @@ typedef struct xfs_dinode_core { __be16 di_dmstate; /* DMIG state info */ __be16 di_flags; /* random flags, XFS_DIFLAG_... */ __be32 di_gen; /* generation number */ -} xfs_dinode_core_t; - -#define DI_MAX_FLUSH 0xffff -typedef struct xfs_dinode -{ - xfs_dinode_core_t di_core; - /* - * In adding anything between the core and the union, be - * sure to update the macros like XFS_LITINO below. - */ - __be32 di_next_unlinked;/* agi unlinked list ptr */ - union { - xfs_bmdr_block_t di_bmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_bmx[1]; /* extent list */ - xfs_dir2_sf_t di_dir2sf; /* shortform directory v2 */ - char di_c[1]; /* local contents */ - __be32 di_dev; /* device for S_IFCHR/S_IFBLK */ - uuid_t di_muuid; /* mount point value */ - char di_symlink[1]; /* local symbolic link */ - } di_u; - union { - xfs_bmdr_block_t di_abmbt; /* btree root block */ - xfs_bmbt_rec_32_t di_abmx[1]; /* extent list */ - xfs_attr_shortform_t di_attrsf; /* shortform attribute list */ - } di_a; + /* di_next_unlinked is the only non-core field in the old dinode */ + __be32 di_next_unlinked;/* agi unlinked list ptr */ } xfs_dinode_t; +#define DI_MAX_FLUSH 0xffff + /* * The 32 bit link count in the inode theoretically maxes out at UINT_MAX. * Since the pathconf interface is signed, we use 2^31 - 1 instead. @@ -108,14 +87,12 @@ typedef struct xfs_dinode /* * Values for di_format */ -typedef enum xfs_dinode_fmt -{ - XFS_DINODE_FMT_DEV, /* CHR, BLK: di_dev */ - XFS_DINODE_FMT_LOCAL, /* DIR, REG: di_c */ - /* LNK: di_symlink */ - XFS_DINODE_FMT_EXTENTS, /* DIR, REG, LNK: di_bmx */ - XFS_DINODE_FMT_BTREE, /* DIR, REG, LNK: di_bmbt */ - XFS_DINODE_FMT_UUID /* MNT: di_uuid */ +typedef enum xfs_dinode_fmt { + XFS_DINODE_FMT_DEV, /* xfs_dev_t */ + XFS_DINODE_FMT_LOCAL, /* bulk data */ + XFS_DINODE_FMT_EXTENTS, /* struct xfs_bmbt_rec */ + XFS_DINODE_FMT_BTREE, /* struct xfs_bmdr_block */ + XFS_DINODE_FMT_UUID /* uuid_t */ } xfs_dinode_fmt_t; /* @@ -136,8 +113,8 @@ typedef enum xfs_dinode_fmt /* * Inode data & attribute fork sizes, per inode. */ -#define XFS_DFORK_Q(dip) ((dip)->di_core.di_forkoff != 0) -#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_core.di_forkoff << 3)) +#define XFS_DFORK_Q(dip) ((dip)->di_forkoff != 0) +#define XFS_DFORK_BOFF(dip) ((int)((dip)->di_forkoff << 3)) #define XFS_DFORK_DSIZE(dip,mp) \ (XFS_DFORK_Q(dip) ? \ @@ -152,23 +129,42 @@ typedef enum xfs_dinode_fmt XFS_DFORK_DSIZE(dip, mp) : \ XFS_DFORK_ASIZE(dip, mp)) -#define XFS_DFORK_DPTR(dip) ((dip)->di_u.di_c) +/* + * Return pointers to the data or attribute forks. + */ +#define XFS_DFORK_DPTR(dip) \ + ((char *)dip + sizeof(struct xfs_dinode)) #define XFS_DFORK_APTR(dip) \ - ((dip)->di_u.di_c + XFS_DFORK_BOFF(dip)) + (XFS_DFORK_DPTR(dip) + XFS_DFORK_BOFF(dip)) #define XFS_DFORK_PTR(dip,w) \ ((w) == XFS_DATA_FORK ? XFS_DFORK_DPTR(dip) : XFS_DFORK_APTR(dip)) + #define XFS_DFORK_FORMAT(dip,w) \ ((w) == XFS_DATA_FORK ? \ - (dip)->di_core.di_format : \ - (dip)->di_core.di_aformat) + (dip)->di_format : \ + (dip)->di_aformat) #define XFS_DFORK_NEXTENTS(dip,w) \ ((w) == XFS_DATA_FORK ? \ - be32_to_cpu((dip)->di_core.di_nextents) : \ - be16_to_cpu((dip)->di_core.di_anextents)) + be32_to_cpu((dip)->di_nextents) : \ + be16_to_cpu((dip)->di_anextents)) #define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) /* + * For block and character special files the 32bit dev_t is stored at the + * beginning of the data fork. + */ +static inline xfs_dev_t xfs_dinode_get_rdev(struct xfs_dinode *dip) +{ + return be32_to_cpu(*(__be32 *)XFS_DFORK_DPTR(dip)); +} + +static inline void xfs_dinode_put_rdev(struct xfs_dinode *dip, xfs_dev_t rdev) +{ + *(__be32 *)XFS_DFORK_DPTR(dip) = cpu_to_be32(rdev); +} + +/* * Values for di_flags * There should be a one-to-one correspondence between these flags and the * XFS_XFLAG_s. Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:22:21.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:23:00.000000000 +0200 @@ -174,8 +174,8 @@ xfs_imap_to_bp( dip = (xfs_dinode_t *)xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); - di_ok = be16_to_cpu(dip->di_core.di_magic) == XFS_DINODE_MAGIC && - XFS_DINODE_GOOD_VERSION(dip->di_core.di_version); + di_ok = be16_to_cpu(dip->di_magic) == XFS_DINODE_MAGIC && + XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { @@ -191,7 +191,7 @@ xfs_imap_to_bp( "daddr %lld #%d (magic=%x)", XFS_BUFTARG_NAME(mp->m_ddev_targp), (unsigned long long)imap->im_blkno, i, - be16_to_cpu(dip->di_core.di_magic)); + be16_to_cpu(dip->di_magic)); #endif xfs_trans_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); @@ -350,26 +350,26 @@ xfs_iformat( XFS_IFORK_DSIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); error = 0; - if (unlikely(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents) > - be64_to_cpu(dip->di_core.di_nblocks))) { + if (unlikely(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents) > + be64_to_cpu(dip->di_nblocks))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, extent total = %d, nblocks = %Lu.", (unsigned long long)ip->i_ino, - (int)(be32_to_cpu(dip->di_core.di_nextents) + - be16_to_cpu(dip->di_core.di_anextents)), + (int)(be32_to_cpu(dip->di_nextents) + + be16_to_cpu(dip->di_anextents)), (unsigned long long) - be64_to_cpu(dip->di_core.di_nblocks)); + be64_to_cpu(dip->di_nblocks)); XFS_CORRUPTION_ERROR("xfs_iformat(1)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } - if (unlikely(dip->di_core.di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { + if (unlikely(dip->di_forkoff > ip->i_mount->m_sb.sb_inodesize)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt dinode %Lu, forkoff = 0x%x.", (unsigned long long)ip->i_ino, - dip->di_core.di_forkoff); + dip->di_forkoff); XFS_CORRUPTION_ERROR("xfs_iformat(2)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); @@ -380,25 +380,25 @@ xfs_iformat( case S_IFCHR: case S_IFBLK: case S_IFSOCK: - if (unlikely(dip->di_core.di_format != XFS_DINODE_FMT_DEV)) { + if (unlikely(dip->di_format != XFS_DINODE_FMT_DEV)) { XFS_CORRUPTION_ERROR("xfs_iformat(3)", XFS_ERRLEVEL_LOW, ip->i_mount, dip); return XFS_ERROR(EFSCORRUPTED); } ip->i_d.di_size = 0; ip->i_size = 0; - ip->i_df.if_u2.if_rdev = be32_to_cpu(dip->di_u.di_dev); + ip->i_df.if_u2.if_rdev = xfs_dinode_get_rdev(dip); break; case S_IFREG: case S_IFLNK: case S_IFDIR: - switch (dip->di_core.di_format) { + switch (dip->di_format) { case XFS_DINODE_FMT_LOCAL: /* * no local regular files yet */ - if (unlikely((be16_to_cpu(dip->di_core.di_mode) & S_IFMT) == S_IFREG)) { + if (unlikely((be16_to_cpu(dip->di_mode) & S_IFMT) == S_IFREG)) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " "(local format for regular file).", @@ -409,7 +409,7 @@ xfs_iformat( return XFS_ERROR(EFSCORRUPTED); } - di_size = be64_to_cpu(dip->di_core.di_size); + di_size = be64_to_cpu(dip->di_size); if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) { xfs_fs_repair_cmn_err(CE_WARN, ip->i_mount, "corrupt inode %Lu " @@ -451,7 +451,7 @@ xfs_iformat( ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP); ip->i_afp->if_ext_max = XFS_IFORK_ASIZE(ip) / (uint)sizeof(xfs_bmbt_rec_t); - switch (dip->di_core.di_aformat) { + switch (dip->di_aformat) { case XFS_DINODE_FMT_LOCAL: atp = (xfs_attr_shortform_t *)XFS_DFORK_APTR(dip); size = be16_to_cpu(atp->hdr.totsize); @@ -663,7 +663,7 @@ xfs_iformat_btree( void xfs_dinode_from_disk( xfs_icdinode_t *to, - xfs_dinode_core_t *from) + xfs_dinode_t *from) { to->di_magic = be16_to_cpu(from->di_magic); to->di_mode = be16_to_cpu(from->di_mode); @@ -697,7 +697,7 @@ xfs_dinode_from_disk( void xfs_dinode_to_disk( - xfs_dinode_core_t *to, + xfs_dinode_t *to, xfs_icdinode_t *from) { to->di_magic = cpu_to_be16(from->di_magic); @@ -784,9 +784,7 @@ uint xfs_dic2xflags( xfs_dinode_t *dip) { - xfs_dinode_core_t *dic = &dip->di_core; - - return _xfs_dic2xflags(be16_to_cpu(dic->di_flags)) | + return _xfs_dic2xflags(be16_to_cpu(dip->di_flags)) | (XFS_DFORK_Q(dip) ? XFS_XFLAG_HASATTR : 0); } @@ -905,12 +903,12 @@ xfs_iread( * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC) { + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC) { #ifdef DEBUG xfs_fs_cmn_err(CE_ALERT, mp, "xfs_iread: " - "dip->di_core.di_magic (0x%x) != " + "dip->di_magic (0x%x) != " "XFS_DINODE_MAGIC (0x%x)", - be16_to_cpu(dip->di_core.di_magic), + be16_to_cpu(dip->di_magic), XFS_DINODE_MAGIC); #endif /* DEBUG */ error = XFS_ERROR(EINVAL); @@ -924,8 +922,8 @@ xfs_iread( * specific information. * Otherwise, just get the truly permanent information. */ - if (dip->di_core.di_mode) { - xfs_dinode_from_disk(&ip->i_d, &dip->di_core); + if (dip->di_mode) { + xfs_dinode_from_disk(&ip->i_d, dip); error = xfs_iformat(ip, dip); if (error) { #ifdef DEBUG @@ -936,10 +934,10 @@ xfs_iread( goto out_brelse; } } else { - ip->i_d.di_magic = be16_to_cpu(dip->di_core.di_magic); - ip->i_d.di_version = dip->di_core.di_version; - ip->i_d.di_gen = be32_to_cpu(dip->di_core.di_gen); - ip->i_d.di_flushiter = be16_to_cpu(dip->di_core.di_flushiter); + ip->i_d.di_magic = be16_to_cpu(dip->di_magic); + ip->i_d.di_version = dip->di_version; + ip->i_d.di_gen = be32_to_cpu(dip->di_gen); + ip->i_d.di_flushiter = be16_to_cpu(dip->di_flushiter); /* * Make sure to pull in the mode here as well in * case the inode is released without being used. @@ -2292,7 +2290,7 @@ xfs_ifree( * This is a temporary hack that would require a proper fix * in the future. */ - dip->di_core.di_mode = 0; + dip->di_mode = 0; if (delete) { xfs_ifree_cluster(ip, tp, first_ino); @@ -2906,15 +2904,16 @@ xfs_iflush_fork( case XFS_DINODE_FMT_DEV: if (iip->ili_format.ilf_fields & XFS_ILOG_DEV) { ASSERT(whichfork == XFS_DATA_FORK); - dip->di_u.di_dev = cpu_to_be32(ip->i_df.if_u2.if_rdev); + xfs_dinode_put_rdev(dip, ip->i_df.if_u2.if_rdev); } break; case XFS_DINODE_FMT_UUID: if (iip->ili_format.ilf_fields & XFS_ILOG_UUID) { ASSERT(whichfork == XFS_DATA_FORK); - memcpy(&dip->di_u.di_muuid, &ip->i_df.if_u2.if_uuid, - sizeof(uuid_t)); + memcpy(XFS_DFORK_DPTR(dip), + &ip->i_df.if_u2.if_uuid, + sizeof(uuid_t)); } break; @@ -3292,11 +3291,11 @@ xfs_iflush_int( */ xfs_synchronize_atime(ip); - if (XFS_TEST_ERROR(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC, + if (XFS_TEST_ERROR(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC, mp, XFS_ERRTAG_IFLUSH_1, XFS_RANDOM_IFLUSH_1)) { xfs_cmn_err(XFS_PTAG_IFLUSH, CE_ALERT, mp, "xfs_iflush: Bad inode %Lu magic number 0x%x, ptr 0x%p", - ip->i_ino, be16_to_cpu(dip->di_core.di_magic), dip); + ip->i_ino, be16_to_cpu(dip->di_magic), dip); goto corrupt_out; } if (XFS_TEST_ERROR(ip->i_d.di_magic != XFS_DINODE_MAGIC, @@ -3359,7 +3358,7 @@ xfs_iflush_int( * because if the inode is dirty at all the core must * be. */ - xfs_dinode_to_disk(&dip->di_core, &ip->i_d); + xfs_dinode_to_disk(dip, &ip->i_d); /* Wrap, we never let the log put out DI_MAX_FLUSH */ if (ip->i_d.di_flushiter == DI_MAX_FLUSH) @@ -3379,7 +3378,7 @@ xfs_iflush_int( * Convert it back. */ ASSERT(ip->i_d.di_nlink <= XFS_MAXLINK_1); - dip->di_core.di_onlink = cpu_to_be16(ip->i_d.di_nlink); + dip->di_onlink = cpu_to_be16(ip->i_d.di_nlink); } else { /* * The superblock version has already been bumped, @@ -3387,12 +3386,12 @@ xfs_iflush_int( * format permanent. */ ip->i_d.di_version = XFS_DINODE_VERSION_2; - dip->di_core.di_version = XFS_DINODE_VERSION_2; + dip->di_version = XFS_DINODE_VERSION_2; ip->i_d.di_onlink = 0; - dip->di_core.di_onlink = 0; + dip->di_onlink = 0; memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); - memset(&(dip->di_core.di_pad[0]), 0, - sizeof(dip->di_core.di_pad)); + memset(&(dip->di_pad[0]), 0, + sizeof(dip->di_pad)); ASSERT(ip->i_d.di_projid == 0); } } Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:23.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:29.000000000 +0200 @@ -2320,7 +2320,7 @@ xlog_recover_do_inode_trans( * Make sure the place we're flushing out to really looks * like an inode! */ - if (unlikely(be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC)) { + if (unlikely(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC)) { xfs_buf_relse(bp); xfs_fs_cmn_err(CE_ALERT, mp, "xfs_inode_recover: Bad inode magic number, dino ptr = 0x%p, dino bp = 0x%p, ino = %Ld", @@ -2343,12 +2343,12 @@ xlog_recover_do_inode_trans( } /* Skip replay when the on disk inode is newer than the log one */ - if (dicp->di_flushiter < be16_to_cpu(dip->di_core.di_flushiter)) { + if (dicp->di_flushiter < be16_to_cpu(dip->di_flushiter)) { /* * Deal with the wrap case, DI_MAX_FLUSH is less * than smaller numbers */ - if (be16_to_cpu(dip->di_core.di_flushiter) == DI_MAX_FLUSH && + if (be16_to_cpu(dip->di_flushiter) == DI_MAX_FLUSH && dicp->di_flushiter < (DI_MAX_FLUSH >> 1)) { /* do nothing */ } else { @@ -2408,7 +2408,7 @@ xlog_recover_do_inode_trans( error = EFSCORRUPTED; goto error; } - if (unlikely(item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t))) { + if (unlikely(item->ri_buf[1].i_len > sizeof(struct xfs_icdinode))) { XFS_CORRUPTION_ERROR("xlog_recover_do_inode_trans(7)", XFS_ERRLEVEL_LOW, mp, dicp); xfs_buf_relse(bp); @@ -2420,23 +2420,24 @@ xlog_recover_do_inode_trans( } /* The core is in in-core format */ - xfs_dinode_to_disk(&dip->di_core, - (xfs_icdinode_t *)item->ri_buf[1].i_addr); + xfs_dinode_to_disk(dip, (xfs_icdinode_t *)item->ri_buf[1].i_addr); /* the rest is in on-disk format */ - if (item->ri_buf[1].i_len > sizeof(xfs_dinode_core_t)) { - memcpy((xfs_caddr_t) dip + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_addr + sizeof(xfs_dinode_core_t), - item->ri_buf[1].i_len - sizeof(xfs_dinode_core_t)); + if (item->ri_buf[1].i_len > sizeof(struct xfs_icdinode)) { + memcpy((xfs_caddr_t) dip + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_addr + sizeof(struct xfs_icdinode), + item->ri_buf[1].i_len - sizeof(struct xfs_icdinode)); } fields = in_f->ilf_fields; switch (fields & (XFS_ILOG_DEV | XFS_ILOG_UUID)) { case XFS_ILOG_DEV: - dip->di_u.di_dev = cpu_to_be32(in_f->ilf_u.ilfu_rdev); + xfs_dinode_put_rdev(dip, in_f->ilf_u.ilfu_rdev); break; case XFS_ILOG_UUID: - dip->di_u.di_muuid = in_f->ilf_u.ilfu_uuid; + memcpy(XFS_DFORK_DPTR(dip), + &in_f->ilf_u.ilfu_uuid, + sizeof(uuid_t)); break; } @@ -2452,12 +2453,12 @@ xlog_recover_do_inode_trans( switch (fields & XFS_ILOG_DFORK) { case XFS_ILOG_DDATA: case XFS_ILOG_DEXT: - memcpy(&dip->di_u, src, len); + memcpy(XFS_DFORK_DPTR(dip), src, len); break; case XFS_ILOG_DBROOT: xfs_bmbt_to_bmdr(mp, (struct xfs_btree_block *)src, len, - &dip->di_u.di_bmbt, + (xfs_bmdr_block_t *)XFS_DFORK_DPTR(dip), XFS_DFORK_DSIZE(dip, mp)); break; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:15:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:22:29.000000000 +0200 @@ -19,7 +19,6 @@ #define __XFS_INODE_H__ struct xfs_dinode; -struct xfs_dinode_core; struct xfs_inode; /* @@ -112,7 +111,7 @@ typedef struct xfs_ictimestamp { } xfs_ictimestamp_t; /* - * NOTE: This structure must be kept identical to struct xfs_dinode_core + * NOTE: This structure must be kept identical to struct xfs_dinode * in xfs_dinode.h except for the endianess annotations. */ typedef struct xfs_icdinode { @@ -549,8 +548,8 @@ int xfs_itobp(struct xfs_mount *, struc struct xfs_inode *, struct xfs_dinode **, struct xfs_buf **, xfs_daddr_t, uint, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, - struct xfs_dinode_core *); -void xfs_dinode_to_disk(struct xfs_dinode_core *, + struct xfs_dinode *); +void xfs_dinode_to_disk(struct xfs_dinode *, struct xfs_icdinode *); void xfs_idestroy_fork(struct xfs_inode *, int); void xfs_idata_realloc(struct xfs_inode *, int, int); Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:02:57.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:22:29.000000000 +0200 @@ -125,13 +125,9 @@ STATIC void xfs_bulkstat_one_dinode( xfs_mount_t *mp, /* mount point for filesystem */ xfs_ino_t ino, /* inode number to get data for */ - xfs_dinode_t *dip, /* dinode inode pointer */ + xfs_dinode_t *dic, /* dinode inode pointer */ xfs_bstat_t *buf) /* return buffer */ { - xfs_dinode_core_t *dic; /* dinode core info pointer */ - - dic = &dip->di_core; - /* * The inode format changed when we moved the link count and * made it 32 bits long. If this is an old format inode, @@ -162,7 +158,7 @@ xfs_bulkstat_one_dinode( buf->bs_mtime.tv_nsec = be32_to_cpu(dic->di_mtime.t_nsec); buf->bs_ctime.tv_sec = be32_to_cpu(dic->di_ctime.t_sec); buf->bs_ctime.tv_nsec = be32_to_cpu(dic->di_ctime.t_nsec); - buf->bs_xflags = xfs_dic2xflags(dip); + buf->bs_xflags = xfs_dic2xflags(dic); buf->bs_extsize = be32_to_cpu(dic->di_extsize) << mp->m_sb.sb_blocklog; buf->bs_extents = be32_to_cpu(dic->di_nextents); buf->bs_gen = be32_to_cpu(dic->di_gen); @@ -173,7 +169,7 @@ xfs_bulkstat_one_dinode( switch (dic->di_format) { case XFS_DINODE_FMT_DEV: - buf->bs_rdev = be32_to_cpu(dip->di_u.di_dev); + buf->bs_rdev = xfs_dinode_get_rdev(dic); buf->bs_blksize = BLKDEV_IOSIZE; buf->bs_blocks = 0; break; @@ -287,19 +283,19 @@ xfs_bulkstat_use_dinode( * to disk yet. This is a temporary hack that would require a proper * fix in the future. */ - if (be16_to_cpu(dip->di_core.di_magic) != XFS_DINODE_MAGIC || - !XFS_DINODE_GOOD_VERSION(dip->di_core.di_version) || - !dip->di_core.di_mode) + if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC || + !XFS_DINODE_GOOD_VERSION(dip->di_version) || + !dip->di_mode) return 0; if (flags & BULKSTAT_FG_QUICK) { *dipp = dip; return 1; } /* BULKSTAT_FG_INLINE: if attr fork is local, or not there, use it */ - aformat = dip->di_core.di_aformat; + aformat = dip->di_aformat; if ((XFS_DFORK_Q(dip) == 0) || (aformat == XFS_DINODE_FMT_LOCAL) || - (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_core.di_anextents)) { + (aformat == XFS_DINODE_FMT_EXTENTS && !dip->di_anextents)) { *dipp = dip; return 1; } Index: linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_dir2_sf.h 2008-10-25 13:00:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_dir2_sf.h 2008-10-25 13:22:29.000000000 +0200 @@ -34,13 +34,6 @@ struct xfs_mount; struct xfs_trans; /* - * Maximum size of a shortform directory. - */ -#define XFS_DIR2_SF_MAX_SIZE \ - (XFS_DINODE_MAX_SIZE - (uint)sizeof(xfs_dinode_core_t) - \ - (uint)sizeof(xfs_agino_t)) - -/* * Inode number stored as 8 8-bit values. */ typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:22:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:22:29.000000000 +0200 @@ -355,12 +355,12 @@ xfs_ialloc_ag_alloc( xfs_biozero(fbuf, 0, ninodes << args.mp->m_sb.sb_inodelog); for (i = 0; i < ninodes; i++) { int ioffset = i << args.mp->m_sb.sb_inodelog; - uint isize = sizeof(xfs_dinode_t) + sizeof(__be32); + uint isize = sizeof(struct xfs_dinode); free = XFS_MAKE_IPTR(args.mp, fbuf, i); - free->di_core.di_magic = cpu_to_be16(XFS_DINODE_MAGIC); - free->di_core.di_version = version; - free->di_core.di_gen = cpu_to_be32(gen); + free->di_magic = cpu_to_be16(XFS_DINODE_MAGIC); + free->di_version = version; + free->di_gen = cpu_to_be32(gen); free->di_next_unlinked = cpu_to_be32(NULLAGINO); xfs_trans_log_buf(tp, fbuf, ioffset, ioffset + isize - 1); } Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-25 13:18:54.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-25 13:22:29.000000000 +0200 @@ -575,8 +575,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; - mp->m_litino = sbp->sb_inodesize - - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); + mp->m_litino = sbp->sb_inodesize - sizeof(struct xfs_dinode); mp->m_blockmask = sbp->sb_blocksize - 1; mp->m_blockwsize = sbp->sb_blocksize >> XFS_WORDLOG; mp->m_blockwmask = mp->m_blockwsize - 1; Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:22:23.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:22:29.000000000 +0200 @@ -3635,10 +3635,11 @@ xfs_inodebuf(xfs_buf_t *bp) di = (xfs_dinode_t *)xfs_buf_offset(bp, i * 256); - xfs_dinode_from_disk(&dic, &di->di_core); + xfs_dinode_from_disk(&dic, di); xfs_prdinode_incore(&dic); kdb_printf("next_unlinked 0x%x u@0x%p\n", - be32_to_cpu(di->di_next_unlinked), &di->di_u); + be32_to_cpu(di->di_next_unlinked), + XFS_DFORK_DPTR(di)); } } @@ -4847,7 +4848,7 @@ xfsidbg_xbuf_real(xfs_buf_t *bp, int sum kdb_printf("buf 0x%p dir/attr node 0x%p\n", bp, node); xfsidbg_xdanode(node); } - } else if (be16_to_cpu((di = d)->di_core.di_magic) == XFS_DINODE_MAGIC) { + } else if (be16_to_cpu((di = d)->di_magic) == XFS_DINODE_MAGIC) { if (summary) { kdb_printf("Disk Inode (at 0x%p)\n", di); } else { Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-25 13:00:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-25 13:22:29.000000000 +0200 @@ -281,7 +281,7 @@ xfs_inode_item_format( xfs_mark_inode_dirty_sync(ip); vecp->i_addr = (xfs_caddr_t)&ip->i_d; - vecp->i_len = sizeof(xfs_dinode_core_t); + vecp->i_len = sizeof(struct xfs_icdinode); XLOG_VEC_SET_TYPE(vecp, XLOG_REG_TYPE_ICORE); vecp++; nvecs++; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:39:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_65 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDdcWH023304 for ; Mon, 27 Oct 2008 06:39:39 -0700 X-ASG-Debug-ID: 1225114778-4d02015a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 75EFD1487F23 for ; Mon, 27 Oct 2008 06:39:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id B8ZIIqDy6rnJSXzY for ; Mon, 27 Oct 2008 06:39:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSJm-0000Ja-2F for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:39:38 +0000 Date: Mon, 27 Oct 2008 09:39:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 7/7] split up xlog_recover_process_iunlinks Subject: [PATCH 7/7] split up xlog_recover_process_iunlinks Message-ID: <20081027133938.GH1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-split-xlog_recover_process_iunlinks User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114778 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Split out the body of the main loop into a separate helper to make the code readable. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:44.000000000 +0200 @@ -3147,6 +3147,70 @@ out_error: return; } +STATIC xfs_agino_t +xlog_recover_process_one_iunlink( + struct xfs_mount *mp, + xfs_agnumber_t agno, + xfs_agino_t agino, + int bucket) +{ + struct xfs_buf *ibp; + struct xfs_dinode *dip; + struct xfs_inode *ip; + xfs_ino_t ino; + int error; + + ino = XFS_AGINO_TO_INO(mp, agno, agino); + error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); + if (error) + goto fail; + + /* + * Get the on disk inode to find the next inode in the bucket. + */ + ASSERT(ip != NULL); + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + if (error) + goto fail; + + ASSERT(dip != NULL); + ASSERT(ip->i_d.di_nlink == 0); + + /* setup for the next pass */ + agino = be32_to_cpu(dip->di_next_unlinked); + xfs_buf_relse(ibp); + + /* + * Prevent any DMAPI event from being sent when the reference on + * the inode is dropped. + */ + ip->i_d.di_dmevmask = 0; + + /* + * If this is a new inode, handle it specially. Otherwise, just + * drop our reference to the inode. If there are no other + * references, this will send the inode to xfs_inactive() which + * will truncate the file and free the inode. + */ + if (ip->i_d.di_mode == 0) + xfs_iput_new(ip, 0); + else + IRELE(ip); + return agino; + + fail: + /* + * We can't read in the inode this bucket points to, or this inode + * is messed up. Just ditch this bucket of inodes. We will lose + * some inodes and space, but at least we won't hang. + * + * Call xlog_recover_clear_agi_bucket() to perform a transaction to + * clear the inode pointer in the bucket. + */ + xlog_recover_clear_agi_bucket(mp, agno, bucket); + return NULLAGINO; +} + /* * xlog_iunlink_recover * @@ -3167,11 +3231,7 @@ xlog_recover_process_iunlinks( xfs_agnumber_t agno; xfs_agi_t *agi; xfs_buf_t *agibp; - xfs_buf_t *ibp; - xfs_dinode_t *dip; - xfs_inode_t *ip; xfs_agino_t agino; - xfs_ino_t ino; int bucket; int error; uint mp_dmevmask; @@ -3205,10 +3265,8 @@ xlog_recover_process_iunlinks( agi = XFS_BUF_TO_AGI(agibp); for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) { - agino = be32_to_cpu(agi->agi_unlinked[bucket]); while (agino != NULLAGINO) { - /* * Release the agi buffer so that it can * be acquired in the normal course of the @@ -3216,68 +3274,8 @@ xlog_recover_process_iunlinks( */ xfs_buf_relse(agibp); - ino = XFS_AGINO_TO_INO(mp, agno, agino); - error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); - ASSERT(error || (ip != NULL)); - - if (!error) { - /* - * Get the on disk inode to find the - * next inode in the bucket. - */ - error = xfs_itobp(mp, NULL, ip, &dip, - &ibp, 0, 0, - XFS_BUF_LOCK); - ASSERT(error || (dip != NULL)); - } - - if (!error) { - ASSERT(ip->i_d.di_nlink == 0); - - /* setup for the next pass */ - agino = be32_to_cpu( - dip->di_next_unlinked); - xfs_buf_relse(ibp); - /* - * Prevent any DMAPI event from - * being sent when the - * reference on the inode is - * dropped. - */ - ip->i_d.di_dmevmask = 0; - - /* - * If this is a new inode, handle - * it specially. Otherwise, - * just drop our reference to the - * inode. If there are no - * other references, this will - * send the inode to - * xfs_inactive() which will - * truncate the file and free - * the inode. - */ - if (ip->i_d.di_mode == 0) - xfs_iput_new(ip, 0); - else - IRELE(ip); - } else { - /* - * We can't read in the inode - * this bucket points to, or - * this inode is messed up. Just - * ditch this bucket of inodes. We - * will lose some inodes and space, - * but at least we won't hang. Call - * xlog_recover_clear_agi_bucket() - * to perform a transaction to clear - * the inode pointer in the bucket. - */ - xlog_recover_clear_agi_bucket(mp, agno, - bucket); - - agino = NULLAGINO; - } + agino = xlog_recover_process_one_iunlink(mp, + agno, agino, bucket); /* * Reacquire the agibuffer and continue around -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfJxV024560 for ; Mon, 27 Oct 2008 06:41:19 -0700 X-ASG-Debug-ID: 1225114878-1b3e01f10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A63AADE70A for ; Mon, 27 Oct 2008 06:41:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id vNpITqAC4xn6AR03 for ; Mon, 27 Oct 2008 06:41:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLO-0000pT-Jw for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:18 +0000 Date: Mon, 27 Oct 2008 09:41:18 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/6] inode location mapping refactoring Subject: [PATCH 0/6] inode location mapping refactoring Message-ID: <20081027134118.GA3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114879 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Refactor the inode to buffer mapping infrastructure. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.0 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfMDq024577 for ; Mon, 27 Oct 2008 06:41:23 -0700 X-ASG-Debug-ID: 1225114881-1b3d020c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E0B7ADE711 for ; Mon, 27 Oct 2008 06:41:21 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id YeHzy7dlVWWMamgG for ; Mon, 27 Oct 2008 06:41:21 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLQ-0000pd-Uo for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:20 +0000 Date: Mon, 27 Oct 2008 09:41:20 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/6] stop using xfs_itobp in xfs_iread Subject: [PATCH 1/6] stop using xfs_itobp in xfs_iread Message-ID: <20081027134120.GB3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-xfs_iread-dont-use-xfs_itobp User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114882 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The only caller of xfs_itobp that doesn't have i_blkno setup is now the initial inode read. It needs access to the whole xfs_imap so using xfs_inotobp is not an option. Instead opencode the buffer lookup in xfs_iread and kill all the functionality for the initial map from xfs_itobp. (First sent on October 21st) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:26:51.000000000 +0200 @@ -262,15 +262,11 @@ xfs_inotobp( * If a non-zero error is returned, then the contents of bpp and * dipp are undefined. * - * If the inode is new and has not yet been initialized, use xfs_imap() - * to determine the size and location of the buffer to read from disk. - * If the inode has already been mapped to its buffer and read in once, - * then use the mapping information stored in the inode rather than - * calling xfs_imap(). This allows us to avoid the overhead of looking - * at the inode btree for small block file systems (see xfs_dilocate()). - * We can tell whether the inode has been mapped in before by comparing - * its disk block address to 0. Only uninitialized inodes will have - * 0 for the disk block address. + * The inode is expected to already been mapped to its buffer and read + * in once, thus we can use the mapping information stored in the inode + * rather than calling xfs_imap(). This allows us to avoid the overhead + * of looking at the inode btree for small block file systems + * (see xfs_dilocate()). */ int xfs_itobp( @@ -279,40 +275,19 @@ xfs_itobp( xfs_inode_t *ip, xfs_dinode_t **dipp, xfs_buf_t **bpp, - xfs_daddr_t bno, - uint imap_flags, uint buf_flags) { xfs_imap_t imap; xfs_buf_t *bp; int error; - if (ip->i_blkno == (xfs_daddr_t)0) { - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); - if (error) - return error; + ASSERT(ip->i_blkno != 0); - /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. - */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - } else { - /* - * We've already mapped the inode once, so just use the - * mapping that we saved the first time. - */ - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - } - ASSERT(bno == 0 || bno == imap.im_blkno); + imap.im_blkno = ip->i_blkno; + imap.im_len = ip->i_len; + imap.im_boffset = ip->i_boffset; - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, imap_flags); + error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); if (error) return error; @@ -882,6 +857,7 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; + xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -889,15 +865,27 @@ xfs_iread( return ENOMEM; /* - * Get pointer's to the on-disk inode and the buffer containing it. - * If the inode number refers to a block outside the file system - * then xfs_itobp() will return NULL. In this case we should - * return NULL as well. Set i_blkno to 0 so that xfs_itobp() will - * know that this is a new incore inode. + * Get pointers to the on-disk inode and the buffer containing it. */ - error = xfs_itobp(mp, tp, ip, &dip, &bp, bno, imap_flags, XFS_BUF_LOCK); + imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &imap, + XFS_IMAP_LOOKUP | imap_flags); + if (error) + goto out_destroy_inode; + + /* + * Fill in the fields in the inode that will be used to + * map the inode to its buffer from now on. + */ + ip->i_blkno = imap.im_blkno; + ip->i_len = imap.im_len; + ip->i_boffset = imap.im_boffset; + ASSERT(bno == 0 || bno == imap.im_blkno); + + error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); if (error) goto out_destroy_inode; + dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); /* * If we got something that isn't an inode it means someone @@ -1872,7 +1860,7 @@ xfs_iunlink( * Here we put the head pointer into our next pointer, * and then we fall through to point the head at us. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -1957,7 +1945,7 @@ xfs_iunlink_remove( * of dealing with the buffer when there is no need to * change it. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2019,7 +2007,7 @@ xfs_iunlink_remove( * Now last_ibp points to the buffer previous to us on * the unlinked list. Pull us from the list. */ - error = xfs_itobp(mp, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) { cmn_err(CE_WARN, "xfs_iunlink_remove: xfs_itobp() returned an error %d on %s. Returning error.", @@ -2274,7 +2262,7 @@ xfs_ifree( xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(ip->i_mount, tp, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) return error; @@ -3188,7 +3176,7 @@ xfs_iflush( /* * Get the buffer containing the on-disk inode. */ - error = xfs_itobp(mp, NULL, ip, &dip, &bp, 0, 0, + error = xfs_itobp(mp, NULL, ip, &dip, &bp, noblock ? XFS_BUF_TRYLOCK : XFS_BUF_LOCK); if (error || !bp) { xfs_ifunlock(ip); Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:26:33.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:26:51.000000000 +0200 @@ -157,7 +157,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp, xfs_itobp(), xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ #define XFS_IMAP_LOOKUP 0x1 #define XFS_IMAP_BULKSTAT 0x2 @@ -547,7 +547,7 @@ int xfs_inotobp(struct xfs_mount *, str struct xfs_buf **, int *, uint); int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, struct xfs_dinode **, - struct xfs_buf **, xfs_daddr_t, uint, uint); + struct xfs_buf **, uint); void xfs_dinode_from_disk(struct xfs_icdinode *, struct xfs_dinode *); void xfs_dinode_to_disk(struct xfs_dinode *, Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:44.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:59.000000000 +0200 @@ -3169,7 +3169,7 @@ xlog_recover_process_one_iunlink( * Get the on disk inode to find the next inode in the bucket. */ ASSERT(ip != NULL); - error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, XFS_BUF_LOCK); if (error) goto fail; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfQ03024601 for ; Mon, 27 Oct 2008 06:41:27 -0700 X-ASG-Debug-ID: 1225114885-489401b70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C79141487F56 for ; Mon, 27 Oct 2008 06:41:25 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id GJBB86A50iQoyMjj for ; Mon, 27 Oct 2008 06:41:25 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLU-0000px-Vp for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:25 +0000 Date: Mon, 27 Oct 2008 09:41:24 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/6] merge xfs_imap into xfs_dilocate Subject: [PATCH 3/6] merge xfs_imap into xfs_dilocate Message-ID: <20081027134124.GD3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-merge-xfs_imap-xfs_dilocate User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114885 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 xfs_imap is the only caller of xfs_dilocate and doesn't add any significant value. Merge the two functions and document the various cases we have for inode cluster lookup in the new xfs_imap. Also remove the unused im_agblkno and im_ioffset fields from struct xfs_imap while we're at it. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:50.000000000 +0200 @@ -40,6 +40,7 @@ #include "xfs_rtalloc.h" #include "xfs_error.h" #include "xfs_bmap.h" +#include "xfs_imap.h" /* @@ -1196,36 +1197,28 @@ error0: } /* - * Return the location of the inode in bno/off, for mapping it into a buffer. + * Return the location of the inode in imap, for mapping it into a buffer. */ -/*ARGSUSED*/ int -xfs_dilocate( - xfs_mount_t *mp, /* file system mount structure */ - xfs_trans_t *tp, /* transaction pointer */ +xfs_imap( + xfs_mount_t *mp, /* file system mount structure */ + xfs_trans_t *tp, /* transaction pointer */ xfs_ino_t ino, /* inode to locate */ - xfs_fsblock_t *bno, /* output: block containing inode */ - int *len, /* output: num blocks in inode cluster */ - int *off, /* output: index in block of inode */ - uint flags) /* flags concerning inode lookup */ + struct xfs_imap *imap, /* location map structure */ + uint flags) /* flags for inode btree lookup */ { xfs_agblock_t agbno; /* block number of inode in the alloc group */ - xfs_buf_t *agbp; /* agi buffer */ xfs_agino_t agino; /* inode number within alloc group */ xfs_agnumber_t agno; /* allocation group number */ int blks_per_cluster; /* num blocks per inode cluster */ xfs_agblock_t chunk_agbno; /* first block in inode chunk */ - xfs_agino_t chunk_agino; /* first agino in inode chunk */ - __int32_t chunk_cnt; /* count of free inodes in chunk */ - xfs_inofree_t chunk_free; /* mask of free inodes in chunk */ xfs_agblock_t cluster_agbno; /* first block in inode cluster */ - xfs_btree_cur_t *cur; /* inode btree cursor */ int error; /* error code */ - int i; /* temp state */ int offset; /* index of inode in its buffer */ int offset_agbno; /* blks from chunk start to inode */ ASSERT(ino != NULLFSINO); + /* * Split up the inode number into its parts. */ @@ -1240,20 +1233,20 @@ xfs_dilocate( return XFS_ERROR(EINVAL); if (agno >= mp->m_sb.sb_agcount) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: agno (%d) >= " + "xfs_imap: agno (%d) >= " "mp->m_sb.sb_agcount (%d)", agno, mp->m_sb.sb_agcount); } if (agbno >= mp->m_sb.sb_agblocks) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: agbno (0x%llx) >= " + "xfs_imap: agbno (0x%llx) >= " "mp->m_sb.sb_agblocks (0x%lx)", (unsigned long long) agbno, (unsigned long) mp->m_sb.sb_agblocks); } if (ino != XFS_AGINO_TO_INO(mp, agno, agino)) { xfs_fs_cmn_err(CE_ALERT, mp, - "xfs_dilocate: ino (0x%llx) != " + "xfs_imap: ino (0x%llx) != " "XFS_AGINO_TO_INO(mp, agno, agino) " "(0x%llx)", ino, XFS_AGINO_TO_INO(mp, agno, agino)); @@ -1262,34 +1255,65 @@ xfs_dilocate( #endif /* DEBUG */ return XFS_ERROR(EINVAL); } - if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp))) { + + /* + * If the inode cluster size is the same as the blocksize or + * bigger we get to the buffer by simple arithmetics. + */ + if (XFS_INODE_CLUSTER_SIZE(mp) <= mp->m_sb.sb_blocksize) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); - *bno = XFS_AGB_TO_FSB(mp, agno, agbno); - *off = offset; - *len = 1; + + imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, agbno); + imap->im_len = XFS_FSB_TO_BB(mp, 1); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); return 0; } + blks_per_cluster = XFS_INODE_CLUSTER_SIZE(mp) >> mp->m_sb.sb_blocklog; - if (*bno != NULLFSBLOCK) { + + /* + * If we get a block number passed from bulkstat we can use it to + * find the buffer easily. + */ + if (imap->im_blkno) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); - cluster_agbno = XFS_FSB_TO_AGBNO(mp, *bno); - *off = ((agbno - cluster_agbno) * mp->m_sb.sb_inopblock) + - offset; - *len = blks_per_cluster; + + cluster_agbno = XFS_DADDR_TO_AGBNO(mp, imap->im_blkno); + offset += (agbno - cluster_agbno) * mp->m_sb.sb_inopblock; + + imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); return 0; } + + /* + * With aligned inodes it's again quite simple and we can skip the + * btree lookup. + */ if (mp->m_inoalign_mask) { offset_agbno = agbno & mp->m_inoalign_mask; chunk_agbno = agbno - offset_agbno; + + /* + * Worst case: we actually have to actually perform a lookup in the + * inode btree. + */ } else { + xfs_btree_cur_t *cur; /* inode btree cursor */ + xfs_agino_t chunk_agino; /* first agino in inode chunk */ + __int32_t chunk_cnt; /* count of free inodes in chunk */ + xfs_inofree_t chunk_free; /* mask of free inodes in chunk */ + xfs_buf_t *agbp; /* agi buffer */ + int i; /* temp state */ + down_read(&mp->m_peraglock); error = xfs_ialloc_read_agi(mp, tp, agno, &agbp); up_read(&mp->m_peraglock); if (error) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_ialloc_read_agi() returned " "error %d, agno %d", error, agno); @@ -1299,7 +1323,7 @@ xfs_dilocate( cur = xfs_inobt_init_cursor(mp, tp, agbp, agno); if ((error = xfs_inobt_lookup_le(cur, agino, 0, 0, &i))) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_lookup_le() failed"); #endif /* DEBUG */ goto error0; @@ -1307,18 +1331,19 @@ xfs_dilocate( if ((error = xfs_inobt_get_rec(cur, &chunk_agino, &chunk_cnt, &chunk_free, &i))) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_get_rec() failed"); #endif /* DEBUG */ goto error0; } if (i == 0) { #ifdef DEBUG - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_dilocate: " + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " "xfs_inobt_get_rec() failed"); #endif /* DEBUG */ error = XFS_ERROR(EINVAL); } + error0: xfs_trans_brelse(tp, agbp); xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); if (error) @@ -1326,19 +1351,35 @@ xfs_dilocate( chunk_agbno = XFS_AGINO_TO_AGBNO(mp, chunk_agino); offset_agbno = agbno - chunk_agbno; } + ASSERT(agbno >= chunk_agbno); cluster_agbno = chunk_agbno + ((offset_agbno / blks_per_cluster) * blks_per_cluster); offset = ((agbno - cluster_agbno) * mp->m_sb.sb_inopblock) + XFS_INO_TO_OFFSET(mp, ino); - *bno = XFS_AGB_TO_FSB(mp, agno, cluster_agbno); - *off = offset; - *len = blks_per_cluster; + + imap->im_blkno = XFS_AGB_TO_DADDR(mp, agno, cluster_agbno); + imap->im_len = XFS_FSB_TO_BB(mp, blks_per_cluster); + imap->im_boffset = (ushort)(offset << mp->m_sb.sb_inodelog); + + /* + * If the inode number maps to a block outside the bounds + * of the file system then return NULL rather than calling + * read_buf and panicing when we get an error from the + * driver. + */ + if ((imap->im_blkno + imap->im_len) > + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { + xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " + "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " + " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", + (unsigned long long) imap->im_blkno, + (unsigned long long) imap->im_len, + XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); + return EINVAL; + } + return 0; -error0: - xfs_trans_brelse(tp, agbp); - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; } /* Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.h 2008-10-01 06:30:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.h 2008-10-25 13:28:50.000000000 +0200 @@ -20,6 +20,7 @@ struct xfs_buf; struct xfs_dinode; +struct xfs_imap; struct xfs_mount; struct xfs_trans; @@ -104,17 +105,14 @@ xfs_difree( xfs_ino_t *first_ino); /* first inode in deleted cluster */ /* - * Return the location of the inode in bno/len/off, - * for mapping it into a buffer. + * Return the location of the inode in imap, for mapping it into a buffer. */ int -xfs_dilocate( +xfs_imap( struct xfs_mount *mp, /* file system mount structure */ struct xfs_trans *tp, /* transaction pointer */ xfs_ino_t ino, /* inode to locate */ - xfs_fsblock_t *bno, /* output: block containing inode */ - int *len, /* output: num blocks in cluster*/ - int *off, /* output: index in block of inode */ + struct xfs_imap *imap, /* location map structure */ uint flags); /* flags for inode btree lookup */ /* Index: linux-2.6-xfs/fs/xfs/xfs_imap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_imap.h 2008-10-01 06:30:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_imap.h 2008-10-25 13:28:50.000000000 +0200 @@ -25,14 +25,7 @@ typedef struct xfs_imap { xfs_daddr_t im_blkno; /* starting BB of inode chunk */ uint im_len; /* length in BBs of inode chunk */ - xfs_agblock_t im_agblkno; /* logical block of inode chunk in ag */ - ushort im_ioffset; /* inode offset in block in "inodes" */ ushort im_boffset; /* inode offset in block in bytes */ } xfs_imap_t; -struct xfs_mount; -struct xfs_trans; -int xfs_imap(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - xfs_imap_t *, uint); - #endif /* __XFS_IMAP_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:28:50.000000000 +0200 @@ -266,7 +266,7 @@ xfs_inotobp( * in once, thus we can use the mapping information stored in the inode * rather than calling xfs_imap(). This allows us to avoid the overhead * of looking at the inode btree for small block file systems - * (see xfs_dilocate()). + * (see xfs_imap()). */ int xfs_itobp( @@ -2505,64 +2505,6 @@ xfs_idata_realloc( ASSERT(ifp->if_bytes <= XFS_IFORK_SIZE(ip, whichfork)); } - - - -/* - * Map inode to disk block and offset. - * - * mp -- the mount point structure for the current file system - * tp -- the current transaction - * ino -- the inode number of the inode to be located - * imap -- this structure is filled in with the information necessary - * to retrieve the given inode from disk - * flags -- flags to pass to xfs_dilocate indicating whether or not - * lookups in the inode btree were OK or not - */ -int -xfs_imap( - xfs_mount_t *mp, - xfs_trans_t *tp, - xfs_ino_t ino, - xfs_imap_t *imap, - uint flags) -{ - xfs_fsblock_t fsbno; - int len; - int off; - int error; - - fsbno = imap->im_blkno ? - XFS_DADDR_TO_FSB(mp, imap->im_blkno) : NULLFSBLOCK; - error = xfs_dilocate(mp, tp, ino, &fsbno, &len, &off, flags); - if (error) - return error; - - imap->im_blkno = XFS_FSB_TO_DADDR(mp, fsbno); - imap->im_len = XFS_FSB_TO_BB(mp, len); - imap->im_agblkno = XFS_FSB_TO_AGBNO(mp, fsbno); - imap->im_ioffset = (ushort)off; - imap->im_boffset = (ushort)(off << mp->m_sb.sb_inodelog); - - /* - * If the inode number maps to a block outside the bounds - * of the file system then return NULL rather than calling - * read_buf and panicing when we get an error from the - * driver. - */ - if ((imap->im_blkno + imap->im_len) > - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)) { - xfs_fs_cmn_err(CE_ALERT, mp, "xfs_imap: " - "(imap->im_blkno (0x%llx) + imap->im_len (0x%llx)) > " - " XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks) (0x%llx)", - (unsigned long long) imap->im_blkno, - (unsigned long long) imap->im_len, - XFS_FSB_TO_BB(mp, mp->m_sb.sb_dblocks)); - return EINVAL; - } - return 0; -} - void xfs_idestroy_fork( xfs_inode_t *ip, Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:28:32.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:28:50.000000000 +0200 @@ -157,7 +157,7 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). + * Flags for xfs_inotobp and xfs_imap(). */ #define XFS_IMAP_BULKSTAT 0x1 -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:29 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.9 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_63,J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfS4e024608 for ; Mon, 27 Oct 2008 06:41:29 -0700 X-ASG-Debug-ID: 1225114887-1376025f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B4465ADE72E for ; Mon, 27 Oct 2008 06:41:27 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id XMB4cIKTRHnAT57s for ; Mon, 27 Oct 2008 06:41:27 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLW-0000q3-V6 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:26 +0000 Date: Mon, 27 Oct 2008 09:41:26 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/6] embededd struct xfs_imap into xfs_inode Subject: [PATCH 4/6] embededd struct xfs_imap into xfs_inode Message-ID: <20081027134126.GE3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-imap-cleanup User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114887 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Most uses of struct xfs_imap are to map and inode to a buffer. To avoid copying around the inode location information we should just embedd a strcut xfs_imap into the xfs_inode. To make sure it doesn't bloat an inode the im_len is changed to a ushort, which is fine as that's what the users exepect anyway. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:30:56.000000000 +0200 @@ -23,7 +23,6 @@ #include "xfs_bit.h" #include "xfs_log.h" #include "xfs_inum.h" -#include "xfs_imap.h" #include "xfs_trans.h" #include "xfs_trans_priv.h" #include "xfs_sb.h" @@ -134,7 +133,7 @@ STATIC int xfs_imap_to_bp( xfs_mount_t *mp, xfs_trans_t *tp, - xfs_imap_t *imap, + struct xfs_imap *imap, xfs_buf_t **bpp, uint buf_flags, uint imap_flags) @@ -232,7 +231,7 @@ xfs_inotobp( int *offset, uint imap_flags) { - xfs_imap_t imap; + struct xfs_imap imap; xfs_buf_t *bp; int error; @@ -277,17 +276,12 @@ xfs_itobp( xfs_buf_t **bpp, uint buf_flags) { - xfs_imap_t imap; xfs_buf_t *bp; int error; - ASSERT(ip->i_blkno != 0); + ASSERT(ip->i_imap.im_blkno != 0); - imap.im_blkno = ip->i_blkno; - imap.im_len = ip->i_len; - imap.im_boffset = ip->i_boffset; - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, buf_flags, 0); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, buf_flags, 0); if (error) return error; @@ -298,7 +292,7 @@ xfs_itobp( return EAGAIN; } - *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + *dipp = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); *bpp = bp; return 0; } @@ -799,9 +793,7 @@ xfs_inode_alloc( /* initialise the xfs inode */ ip->i_ino = ino; ip->i_mount = mp; - ip->i_blkno = 0; - ip->i_len = 0; - ip->i_boffset =0; + memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); ip->i_afp = NULL; memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); ip->i_flags = 0; @@ -857,7 +849,6 @@ xfs_iread( xfs_buf_t *bp; xfs_dinode_t *dip; xfs_inode_t *ip; - xfs_imap_t imap; int error; ip = xfs_inode_alloc(mp, ino); @@ -865,26 +856,22 @@ xfs_iread( return ENOMEM; /* - * Get pointers to the on-disk inode and the buffer containing it. + * Fill in the location information in the in-core inode. */ - imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); + ip->i_imap.im_blkno = bno; + error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, imap_flags); if (error) goto out_destroy_inode; + ASSERT(bno == 0 || bno == ip->i_imap.im_blkno); /* - * Fill in the fields in the inode that will be used to - * map the inode to its buffer from now on. + * Get pointers to the on-disk inode and the buffer containing it. */ - ip->i_blkno = imap.im_blkno; - ip->i_len = imap.im_len; - ip->i_boffset = imap.im_boffset; - ASSERT(bno == 0 || bno == imap.im_blkno); - - error = xfs_imap_to_bp(mp, tp, &imap, &bp, XFS_BUF_LOCK, imap_flags); + error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, + XFS_BUF_LOCK, imap_flags); if (error) goto out_destroy_inode; - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * If we got something that isn't an inode it means someone @@ -1866,7 +1853,7 @@ xfs_iunlink( ASSERT(be32_to_cpu(dip->di_next_unlinked) == NULLAGINO); /* both on-disk, don't endian flip twice */ dip->di_next_unlinked = agi->agi_unlinked[bucket_index]; - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -1955,7 +1942,7 @@ xfs_iunlink_remove( ASSERT(next_agino != 0); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -2018,7 +2005,7 @@ xfs_iunlink_remove( ASSERT(next_agino != agino); if (next_agino != NULLAGINO) { dip->di_next_unlinked = cpu_to_be32(NULLAGINO); - offset = ip->i_boffset + + offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); xfs_trans_inode_buf(tp, ibp); xfs_trans_log_buf(tp, ibp, offset, @@ -3198,7 +3185,7 @@ xfs_iflush_int( } /* set *dip = inode's place in the buffer */ - dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* * Clear i_update_core before copying out the data. Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:30:56.000000000 +0200 @@ -83,6 +83,16 @@ typedef struct xfs_ifork { } xfs_ifork_t; /* + * Inode location information. Stored in the inode and passed to + * xfs_imap_to_bp() to get a buffer and dinode for a given inode. + */ +struct xfs_imap { + xfs_daddr_t im_blkno; /* starting BB of inode chunk */ + ushort im_len; /* length in BBs of inode chunk */ + ushort im_boffset; /* inode offset in block in bytes */ +}; + +/* * This is the xfs in-core inode structure. * Most of the on-disk inode is embedded in the i_d field. * @@ -239,9 +249,7 @@ typedef struct xfs_inode { /* Inode location stuff */ xfs_ino_t i_ino; /* inode number (agno/agino)*/ - xfs_daddr_t i_blkno; /* blkno of inode buffer */ - ushort i_len; /* len of inode buffer */ - ushort i_boffset; /* off of inode in buffer */ + struct xfs_imap i_imap; /* location for xfs_imap() */ /* Extent information. */ xfs_ifork_t *i_afp; /* attribute fork pointer */ Index: linux-2.6-xfs/fs/xfs/xfs_inode_item.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode_item.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode_item.c 2008-10-25 13:30:56.000000000 +0200 @@ -942,9 +942,9 @@ xfs_inode_item_init( iip->ili_format.ilf_type = XFS_LI_INODE; iip->ili_format.ilf_ino = ip->i_ino; - iip->ili_format.ilf_blkno = ip->i_blkno; - iip->ili_format.ilf_len = ip->i_len; - iip->ili_format.ilf_boffset = ip->i_boffset; + iip->ili_format.ilf_blkno = ip->i_imap.im_blkno; + iip->ili_format.ilf_len = ip->i_imap.im_len; + iip->ili_format.ilf_boffset = ip->i_imap.im_boffset; } /* Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:30:56.000000000 +0200 @@ -69,7 +69,7 @@ xfs_bulkstat_one_iget( } ASSERT(ip != NULL); - ASSERT(ip->i_blkno != (xfs_daddr_t)0); + ASSERT(ip->i_imap.im_blkno != 0); dic = &ip->i_d; Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:29:58.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:30:56.000000000 +0200 @@ -36,7 +36,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" -#include "xfs_imap.h" #include "xfs_alloc.h" #include "xfs_ialloc.h" #include "xfs_log_priv.h" Index: linux-2.6-xfs/fs/xfs/xfs_imap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_imap.h 2008-10-25 13:30:03.000000000 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IMAP_H__ -#define __XFS_IMAP_H__ - -/* - * This is the structure passed to xfs_imap() to map - * an inode number to its on disk location. - */ -typedef struct xfs_imap { - xfs_daddr_t im_blkno; /* starting BB of inode chunk */ - uint im_len; /* length in BBs of inode chunk */ - ushort im_boffset; /* inode offset in block in bytes */ -} xfs_imap_t; - -#endif /* __XFS_IMAP_H__ */ Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:03.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:56.000000000 +0200 @@ -40,7 +40,6 @@ #include "xfs_rtalloc.h" #include "xfs_error.h" #include "xfs_bmap.h" -#include "xfs_imap.h" /* Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:31:11.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:31:17.000000000 +0200 @@ -20,7 +20,6 @@ #include "xfs_bit.h" #include "xfs_buf.h" #include "xfs_log.h" -#include "xfs_imap.h" #include "xfs_inum.h" #include "xfs_trans.h" #include "xfs_sb.h" Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:32:18.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:32:53.000000000 +0200 @@ -6559,9 +6559,9 @@ xfsidbg_xnode(xfs_inode_t *ip) ip->i_mount->m_ddev_targp->bt_dev, xfs_fmtino(ip->i_ino, ip->i_mount)); kdb_printf("blkno 0x%llx len 0x%x boffset 0x%x\n", - (long long) ip->i_blkno, - ip->i_len, - ip->i_boffset); + (long long) ip->i_imap.im_blkno, + ip->i_imap.im_len, + ip->i_imap.im_boffset); kdb_printf("transp 0x%p &itemp 0x%p\n", ip->i_transp, ip->i_itemp); -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfTaK024622 for ; Mon, 27 Oct 2008 06:41:31 -0700 X-ASG-Debug-ID: 1225114889-6dc3006c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 56BD31487F5B for ; Mon, 27 Oct 2008 06:41:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id yxKrmIiX8fT0mbLb for ; Mon, 27 Oct 2008 06:41:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLZ-0000q9-0e for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:29 +0000 Date: Mon, 27 Oct 2008 09:41:29 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/6] kill the XFS_IMAP_BULKSTAT flag Subject: [PATCH 5/6] kill the XFS_IMAP_BULKSTAT flag Message-ID: <20081027134129.GF3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-XFS_IMAP_BULKSTAT User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114889 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Just pass down the XFS_IGET_* flags all the way down to xfs_imap instead of translating them mid-way. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:33:21.000000000 +0200 @@ -1228,7 +1228,7 @@ xfs_imap( ino != XFS_AGINO_TO_INO(mp, agno, agino)) { #ifdef DEBUG /* no diagnostics for bulkstat, ino comes from userspace */ - if (flags & XFS_IMAP_BULKSTAT) + if (flags & XFS_IGET_BULKSTAT) return XFS_ERROR(EINVAL); if (agno >= mp->m_sb.sb_agcount) { xfs_fs_cmn_err(CE_ALERT, mp, Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:15:42.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:40:06.000000000 +0200 @@ -147,8 +147,7 @@ xfs_iget_cache_miss( * Read the disk inode attributes into a new inode structure and get * a new vnode for it. This should also initialize i_ino and i_mount. */ - error = xfs_iread(mp, tp, ino, &ip, bno, - (flags & XFS_IGET_BULKSTAT) ? XFS_IMAP_BULKSTAT : 0); + error = xfs_iread(mp, tp, ino, &ip, bno, flags); if (error) return error; Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:40:06.000000000 +0200 @@ -136,7 +136,7 @@ xfs_imap_to_bp( struct xfs_imap *imap, xfs_buf_t **bpp, uint buf_flags, - uint imap_flags) + uint iget_flags) { int error; int i; @@ -178,7 +178,7 @@ xfs_imap_to_bp( if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, XFS_RANDOM_ITOBP_INOTOBP))) { - if (imap_flags & XFS_IMAP_BULKSTAT) { + if (iget_flags & XFS_IGET_BULKSTAT) { xfs_trans_brelse(tp, bp); return XFS_ERROR(EINVAL); } Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:40:06.000000000 +0200 @@ -167,11 +167,6 @@ typedef struct xfs_icdinode { #define XFS_IFEXTIREC 0x08 /* Indirection array of extent blocks */ /* - * Flags for xfs_inotobp and xfs_imap(). - */ -#define XFS_IMAP_BULKSTAT 0x1 - -/* * Fork handling. */ Index: linux-2.6-xfs/fs/xfs/xfs_itable.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_itable.c 2008-10-25 13:30:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_itable.c 2008-10-25 13:33:21.000000000 +0200 @@ -595,7 +595,7 @@ xfs_bulkstat( error = xfs_inotobp(mp, NULL, ino, &dip, &bp, &offset, - XFS_IMAP_BULKSTAT); + XFS_IGET_BULKSTAT); if (!error) clustidx = offset / mp->m_sb.sb_inodesize; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfWn7024652 for ; Mon, 27 Oct 2008 06:41:32 -0700 X-ASG-Debug-ID: 1225114891-12e6027d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A1792ADE734 for ; Mon, 27 Oct 2008 06:41:31 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id v7tBloy9l1DIoRRs for ; Mon, 27 Oct 2008 06:41:31 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLa-0000qF-Tm for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:30 +0000 Date: Mon, 27 Oct 2008 09:41:30 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 6/6] move inode allocation out xfs_iread Subject: [PATCH 6/6] move inode allocation out xfs_iread Message-ID: <20081027134130.GG3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-move-xfs_inode_alloc-out-of-xfs_iread User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114891 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Allocate the inode in xfs_iget_cache_miss and pass it into xfs_iread. This simplifies the error handling and allows xfs_iread to be shared with userspace which already uses these semantics. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:46:29.000000000 +0200 @@ -40,6 +40,82 @@ #include "xfs_utils.h" #include "xfs_trans_priv.h" #include "xfs_inode_item.h" +#include "xfs_bmap.h" +#include "xfs_btree_trace.h" +#include "xfs_dir2_trace.h" + + +/* + * Allocate and initialise an xfs_inode. + */ +STATIC struct xfs_inode * +xfs_inode_alloc( + struct xfs_mount *mp, + xfs_ino_t ino) +{ + struct xfs_inode *ip; + + /* + * if this didn't occur in transactions, we could use + * KM_MAYFAIL and return NULL here on ENOMEM. Set the + * code up to do this anyway. + */ + ip = kmem_zone_alloc(xfs_inode_zone, KM_SLEEP); + if (!ip) + return NULL; + + ASSERT(atomic_read(&ip->i_iocount) == 0); + ASSERT(atomic_read(&ip->i_pincount) == 0); + ASSERT(!spin_is_locked(&ip->i_flags_lock)); + ASSERT(completion_done(&ip->i_flush)); + + /* + * initialise the VFS inode here to get failures + * out of the way early. + */ + if (!inode_init_always(mp->m_super, VFS_I(ip))) { + kmem_zone_free(xfs_inode_zone, ip); + return NULL; + } + + /* initialise the xfs inode */ + ip->i_ino = ino; + ip->i_mount = mp; + memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); + ip->i_afp = NULL; + memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); + ip->i_flags = 0; + ip->i_update_core = 0; + ip->i_update_size = 0; + ip->i_delayed_blks = 0; + memset(&ip->i_d, 0, sizeof(xfs_icdinode_t)); + ip->i_size = 0; + ip->i_new_size = 0; + + /* + * Initialize inode's trace buffers. + */ +#ifdef XFS_INODE_TRACE + ip->i_trace = ktrace_alloc(INODE_TRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_BMAP_TRACE + ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_BTREE_TRACE + ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_RW_TRACE + ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_ILOCK_TRACE + ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, KM_NOFS); +#endif +#ifdef XFS_DIR2_TRACE + ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); +#endif + + return ip; +} /* * Check the validity of the inode we just found it the cache @@ -143,13 +219,13 @@ xfs_iget_cache_miss( unsigned long first_index, mask; xfs_agino_t agino = XFS_INO_TO_AGINO(mp, ino); - /* - * Read the disk inode attributes into a new inode structure and get - * a new vnode for it. This should also initialize i_ino and i_mount. - */ - error = xfs_iread(mp, tp, ino, &ip, bno, flags); + ip = xfs_inode_alloc(mp, ino); + if (!ip) + return ENOMEM; + + error = xfs_iread(mp, tp, ip, bno, flags); if (error) - return error; + goto out_destroy; xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:47:05.000000000 +0200 @@ -758,119 +758,36 @@ xfs_dic2xflags( } /* - * Allocate and initialise an xfs_inode. - */ -STATIC struct xfs_inode * -xfs_inode_alloc( - struct xfs_mount *mp, - xfs_ino_t ino) -{ - struct xfs_inode *ip; - - /* - * if this didn't occur in transactions, we could use - * KM_MAYFAIL and return NULL here on ENOMEM. Set the - * code up to do this anyway. - */ - ip = kmem_zone_alloc(xfs_inode_zone, KM_SLEEP); - if (!ip) - return NULL; - - ASSERT(atomic_read(&ip->i_iocount) == 0); - ASSERT(atomic_read(&ip->i_pincount) == 0); - ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(completion_done(&ip->i_flush)); - - /* - * initialise the VFS inode here to get failures - * out of the way early. - */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { - kmem_zone_free(xfs_inode_zone, ip); - return NULL; - } - - /* initialise the xfs inode */ - ip->i_ino = ino; - ip->i_mount = mp; - memset(&ip->i_imap, 0, sizeof(struct xfs_imap)); - ip->i_afp = NULL; - memset(&ip->i_df, 0, sizeof(xfs_ifork_t)); - ip->i_flags = 0; - ip->i_update_core = 0; - ip->i_update_size = 0; - ip->i_delayed_blks = 0; - memset(&ip->i_d, 0, sizeof(xfs_icdinode_t)); - ip->i_size = 0; - ip->i_new_size = 0; - - /* - * Initialize inode's trace buffers. - */ -#ifdef XFS_INODE_TRACE - ip->i_trace = ktrace_alloc(INODE_TRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_BMAP_TRACE - ip->i_xtrace = ktrace_alloc(XFS_BMAP_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_BTREE_TRACE - ip->i_btrace = ktrace_alloc(XFS_BMBT_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_RW_TRACE - ip->i_rwtrace = ktrace_alloc(XFS_RW_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_ILOCK_TRACE - ip->i_lock_trace = ktrace_alloc(XFS_ILOCK_KTRACE_SIZE, KM_NOFS); -#endif -#ifdef XFS_DIR2_TRACE - ip->i_dir_trace = ktrace_alloc(XFS_DIR2_KTRACE_SIZE, KM_NOFS); -#endif - - return ip; -} - -/* - * Given a mount structure and an inode number, return a pointer - * to a newly allocated in-core inode corresponding to the given - * inode number. - * - * Initialize the inode's attributes and extent pointers if it - * already has them (it will not if the inode has no links). + * Read the disk inode attributes into the in-core inode structure. */ int xfs_iread( xfs_mount_t *mp, xfs_trans_t *tp, - xfs_ino_t ino, - xfs_inode_t **ipp, + xfs_inode_t *ip, xfs_daddr_t bno, - uint imap_flags) + uint iget_flags) { xfs_buf_t *bp; xfs_dinode_t *dip; - xfs_inode_t *ip; int error; - ip = xfs_inode_alloc(mp, ino); - if (!ip) - return ENOMEM; - /* * Fill in the location information in the in-core inode. */ ip->i_imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, imap_flags); + error = xfs_imap(mp, tp, ip->i_ino, &ip->i_imap, iget_flags); if (error) - goto out_destroy_inode; + return error; ASSERT(bno == 0 || bno == ip->i_imap.im_blkno); /* * Get pointers to the on-disk inode and the buffer containing it. */ error = xfs_imap_to_bp(mp, tp, &ip->i_imap, &bp, - XFS_BUF_LOCK, imap_flags); + XFS_BUF_LOCK, iget_flags); if (error) - goto out_destroy_inode; + return error; dip = (xfs_dinode_t *)xfs_buf_offset(bp, ip->i_imap.im_boffset); /* @@ -968,14 +885,8 @@ xfs_iread( * to worry about the inode being changed just because we released * the buffer. */ - xfs_trans_brelse(tp, bp); - *ipp = ip; - return 0; - out_brelse: xfs_trans_brelse(tp, bp); - out_destroy_inode: - xfs_destroy_inode(ip); return error; } Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:45:30.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:46:29.000000000 +0200 @@ -512,8 +512,8 @@ void xfs_ireclaim(xfs_inode_t *); /* * xfs_inode.c prototypes. */ -int xfs_iread(struct xfs_mount *, struct xfs_trans *, xfs_ino_t, - xfs_inode_t **, xfs_daddr_t, uint); +int xfs_iread(struct xfs_mount *, struct xfs_trans *, + struct xfs_inode *, xfs_daddr_t, uint); int xfs_ialloc(struct xfs_trans *, xfs_inode_t *, mode_t, xfs_nlink_t, xfs_dev_t, struct cred *, xfs_prid_t, int, struct xfs_buf **, boolean_t *, xfs_inode_t **); -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDl8Ta026097 for ; Mon, 27 Oct 2008 06:47:08 -0700 X-ASG-Debug-ID: 1225115227-42ac00990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2357354B8C8 for ; Mon, 27 Oct 2008 06:47:07 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id sq9L7v8ZoJz3pGYg for ; Mon, 27 Oct 2008 06:47:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSR1-0001Ud-9P for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:07 +0000 Date: Mon, 27 Oct 2008 09:47:07 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 00/10] various cleanups Subject: [PATCH 00/10] various cleanups Message-ID: <20081027134707.GA5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115228 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Various random cleanups -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDlBZ4026105 for ; Mon, 27 Oct 2008 06:47:11 -0700 X-ASG-Debug-ID: 1225115230-6db800ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C53081488018 for ; Mon, 27 Oct 2008 06:47:10 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 7kmQYtvGayzNmptA for ; Mon, 27 Oct 2008 06:47:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSR4-0001Vs-1A for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:10 +0000 Date: Mon, 27 Oct 2008 09:47:10 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/10] cleanup the inode reclaim path Subject: [PATCH 01/10] cleanup the inode reclaim path Message-ID: <20081027134710.GB5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-cleanup-xfs_ireclaim User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115230 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Merge xfs_iextract and xfs_idestory into xfs_ireclaim as they are never called individually. Also rewrite most comments in this area as they were serverly out of date. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:42:16.000000000 +0200 @@ -363,65 +363,109 @@ xfs_iput_new( IRELE(ip); } - /* - * This routine embodies the part of the reclaim code that pulls - * the inode from the inode hash table and the mount structure's - * inode list. - * This should only be called from xfs_reclaim(). + * This is called free all the memory associated with an inode. + * It must free the inode itself and any buffers allocated for + * if_extents/if_data and if_broot. It must also free the lock + * associated with the inode. + * + * Note: because we don't initialise everything on reallocation out + * of the zone, we must ensure we nullify everything correctly before + * freeing the structure. */ void -xfs_ireclaim(xfs_inode_t *ip) +xfs_ireclaim( + struct xfs_inode *ip) { - /* - * Remove from old hash list and mount list. - */ - XFS_STATS_INC(xs_ig_reclaims); + struct xfs_mount *mp = ip->i_mount; + struct xfs_perag *pag; - xfs_iextract(ip); + XFS_STATS_INC(xs_ig_reclaims); /* - * Here we do a spurious inode lock in order to coordinate with inode - * cache radix tree lookups. This is because the lookup can reference - * the inodes in the cache without taking references. We make that OK - * here by ensuring that we wait until the inode is unlocked after the - * lookup before we go ahead and free it. We get both the ilock and - * the iolock because the code may need to drop the ilock one but will - * still hold the iolock. + * Remove the inode from the per-AG radix tree. It doesn't matter + * if it was never added to it because radix_tree_delete can deal + * with that case just fine. */ - xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + pag = xfs_get_perag(mp, ip->i_ino); + write_lock(&pag->pag_ici_lock); + radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); + write_unlock(&pag->pag_ici_lock); + xfs_put_perag(mp, pag); /* - * Release dquots (and their references) if any. An inode may escape - * xfs_inactive and get here via vn_alloc->vn_reclaim path. + * Here we do an (almost) spurious inode lock in order to coordinate + * with inode cache radix tree lookups. This is because the lookup + * can reference the inodes in the cache without taking references. + * + * We make that OK here by ensuring that we wait until the inode is + * unlocked after the lookup before we go ahead and free it. We get + * both the ilock and the iolock because the code may need to drop the + * ilock one but will still hold the iolock. */ - XFS_QM_DQDETACH(ip->i_mount, ip); - + xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); /* - * Free all memory associated with the inode. + * Release dquots (and their references) if any. */ + XFS_QM_DQDETACH(ip->i_mount, ip); xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - xfs_idestroy(ip); -} -/* - * This routine removes an about-to-be-destroyed inode from - * all of the lists in which it is located with the exception - * of the behavior chain. - */ -void -xfs_iextract( - xfs_inode_t *ip) -{ - xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + switch (ip->i_d.di_mode & S_IFMT) { + case S_IFREG: + case S_IFDIR: + case S_IFLNK: + xfs_idestroy_fork(ip, XFS_DATA_FORK); + break; + } - write_lock(&pag->pag_ici_lock); - radix_tree_delete(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, ip->i_ino)); - write_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + if (ip->i_afp) + xfs_idestroy_fork(ip, XFS_ATTR_FORK); + +#ifdef XFS_INODE_TRACE + ktrace_free(ip->i_trace); +#endif +#ifdef XFS_BMAP_TRACE + ktrace_free(ip->i_xtrace); +#endif +#ifdef XFS_BTREE_TRACE + ktrace_free(ip->i_btrace); +#endif +#ifdef XFS_RW_TRACE + ktrace_free(ip->i_rwtrace); +#endif +#ifdef XFS_ILOCK_TRACE + ktrace_free(ip->i_lock_trace); +#endif +#ifdef XFS_DIR2_TRACE + ktrace_free(ip->i_dir_trace); +#endif + if (ip->i_itemp) { + /* + * Only if we are shutting down the fs will we see an + * inode still in the AIL. If it is there, we should remove + * it to prevent a use-after-free from occurring. + */ + xfs_log_item_t *lip = &ip->i_itemp->ili_item; + struct xfs_ail *ailp = lip->li_ailp; - mp->m_ireclaims++; + ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || + XFS_FORCED_SHUTDOWN(ip->i_mount)); + if (lip->li_flags & XFS_LI_IN_AIL) { + spin_lock(&ailp->xa_lock); + if (lip->li_flags & XFS_LI_IN_AIL) + xfs_trans_ail_delete(ailp, lip); + else + spin_unlock(&ailp->xa_lock); + } + xfs_inode_item_destroy(ip); + ip->i_itemp = NULL; + } + /* asserts to verify all state is correct here */ + ASSERT(atomic_read(&ip->i_iocount) == 0); + ASSERT(atomic_read(&ip->i_pincount) == 0); + ASSERT(!spin_is_locked(&ip->i_flags_lock)); + ASSERT(completion_done(&ip->i_flush)); + kmem_zone_free(xfs_inode_zone, ip); } /* Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:42:16.000000000 +0200 @@ -531,8 +531,6 @@ int xfs_itruncate_finish(struct xfs_tra xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); -void xfs_idestroy(xfs_inode_t *); -void xfs_iextract(xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); void xfs_ipin(xfs_inode_t *); void xfs_iunpin(xfs_inode_t *); Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-25 13:42:16.000000000 +0200 @@ -241,7 +241,6 @@ typedef struct xfs_mount { xfs_agnumber_t m_agirotor; /* last ag dir inode alloced */ spinlock_t m_agirotor_lock;/* .. and lock protecting it */ xfs_agnumber_t m_maxagi; /* highest inode alloc group */ - uint m_ireclaims; /* count of calls to reclaim*/ uint m_readio_log; /* min read size log bytes */ uint m_readio_blocks; /* min read size blocks */ uint m_writeio_log; /* min write size log bytes */ Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:41:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:42:16.000000000 +0200 @@ -2664,78 +2664,6 @@ xfs_idestroy_fork( } /* - * This is called free all the memory associated with an inode. - * It must free the inode itself and any buffers allocated for - * if_extents/if_data and if_broot. It must also free the lock - * associated with the inode. - * - * Note: because we don't initialise everything on reallocation out - * of the zone, we must ensure we nullify everything correctly before - * freeing the structure. - */ -void -xfs_idestroy( - xfs_inode_t *ip) -{ - switch (ip->i_d.di_mode & S_IFMT) { - case S_IFREG: - case S_IFDIR: - case S_IFLNK: - xfs_idestroy_fork(ip, XFS_DATA_FORK); - break; - } - if (ip->i_afp) - xfs_idestroy_fork(ip, XFS_ATTR_FORK); - -#ifdef XFS_INODE_TRACE - ktrace_free(ip->i_trace); -#endif -#ifdef XFS_BMAP_TRACE - ktrace_free(ip->i_xtrace); -#endif -#ifdef XFS_BTREE_TRACE - ktrace_free(ip->i_btrace); -#endif -#ifdef XFS_RW_TRACE - ktrace_free(ip->i_rwtrace); -#endif -#ifdef XFS_ILOCK_TRACE - ktrace_free(ip->i_lock_trace); -#endif -#ifdef XFS_DIR2_TRACE - ktrace_free(ip->i_dir_trace); -#endif - if (ip->i_itemp) { - /* - * Only if we are shutting down the fs will we see an - * inode still in the AIL. If it is there, we should remove - * it to prevent a use-after-free from occurring. - */ - xfs_log_item_t *lip = &ip->i_itemp->ili_item; - struct xfs_ail *ailp = lip->li_ailp; - - ASSERT(((lip->li_flags & XFS_LI_IN_AIL) == 0) || - XFS_FORCED_SHUTDOWN(ip->i_mount)); - if (lip->li_flags & XFS_LI_IN_AIL) { - spin_lock(&ailp->xa_lock); - if (lip->li_flags & XFS_LI_IN_AIL) - xfs_trans_ail_delete(ailp, lip); - else - spin_unlock(&ailp->xa_lock); - } - xfs_inode_item_destroy(ip); - ip->i_itemp = NULL; - } - /* asserts to verify all state is correct here */ - ASSERT(atomic_read(&ip->i_iocount) == 0); - ASSERT(atomic_read(&ip->i_pincount) == 0); - ASSERT(!spin_is_locked(&ip->i_flags_lock)); - ASSERT(completion_done(&ip->i_flush)); - kmem_zone_free(xfs_inode_zone, ip); -} - - -/* * Increment the pin count of the given buffer. * This value is protected by ipinlock spinlock in the mount structure. */ Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-10-25 13:42:16.000000000 +0200 @@ -214,8 +214,6 @@ EXPORT_SYMBOL(xfs_error_trap); EXPORT_SYMBOL(xfs_file_last_byte); EXPORT_SYMBOL(xfs_freesb); EXPORT_SYMBOL(xfs_fs_cmn_err); -EXPORT_SYMBOL(xfs_idestroy); -EXPORT_SYMBOL(xfs_iextract); EXPORT_SYMBOL(xfs_iext_add); EXPORT_SYMBOL(xfs_iext_destroy); EXPORT_SYMBOL(xfs_iext_get_ext); Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:41:17.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:42:16.000000000 +0200 @@ -6519,7 +6519,6 @@ xfsidbg_xmount(xfs_mount_t *mp) mp->m_rtdev_targp ? mp->m_rtdev_targp->bt_dev : 0); kdb_printf("bsize %d agfrotor %d xfs_rotorstep %d agirotor %d\n", mp->m_bsize, mp->m_agfrotor, xfs_rotorstep, mp->m_agirotor); - kdb_printf("ireclaims 0x%x\n", mp->m_ireclaims); kdb_printf("readio_log 0x%x readio_blocks 0x%x ", mp->m_readio_log, mp->m_readio_blocks); kdb_printf("writeio_log 0x%x writeio_blocks 0x%x\n", -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDlFu0026125 for ; Mon, 27 Oct 2008 06:47:15 -0700 X-ASG-Debug-ID: 1225115234-4a51000d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD9FE54B8D2 for ; Mon, 27 Oct 2008 06:47:14 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id LNIAtmqZKdnV66j1 for ; Mon, 27 Oct 2008 06:47:14 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSR8-0001YX-Be for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:14 +0000 Date: Mon, 27 Oct 2008 09:47:14 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/10] stop using igrab in xfs_vn_link Subject: [PATCH 03/10] stop using igrab in xfs_vn_link Message-ID: <20081027134714.GD5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-stop-using-igrab-in-xfs_link User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115234 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- ->link is guranteed to get an already reference inode passed so we can do a simple increment of i_count instead of using igrab and thus avoid banging on the global inode_lock. This is what most filesystems already do. Also move the increment after the call to xfs_link to simplify error handling. (First sent on July 26th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:13:24.000000000 +0200 @@ -366,21 +366,18 @@ xfs_vn_link( struct inode *dir, struct dentry *dentry) { - struct inode *inode; /* inode of guy being linked to */ + struct inode *inode = old_dentry->d_inode; struct xfs_name name; int error; - inode = old_dentry->d_inode; xfs_dentry_to_name(&name, dentry); - igrab(inode); error = xfs_link(XFS_I(dir), XFS_I(inode), &name); - if (unlikely(error)) { - iput(inode); + if (unlikely(error)) return -error; - } xfs_iflags_set(XFS_I(dir), XFS_IMODIFIED); + atomic_inc(&inode->i_count); d_instantiate(dentry, inode); return 0; } -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDlDsn026113 for ; Mon, 27 Oct 2008 06:47:14 -0700 X-ASG-Debug-ID: 1225115232-1b3b021f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E11F5ADE7B4 for ; Mon, 27 Oct 2008 06:47:12 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id EbF3fDSvYEinZVid for ; Mon, 27 Oct 2008 06:47:12 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSR6-0001YP-5A for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:12 +0000 Date: Mon, 27 Oct 2008 09:47:12 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 02/10] kill xfs_buf_iostart Subject: [PATCH 02/10] kill xfs_buf_iostart Message-ID: <20081027134712.GC5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-bdwrite_cleanup User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115232 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_buf_iostart is a "shared" helper for xfs_buf_read_flags, xfs_bawrite, and xfs_bdwrite - except that there isn't much shared code but rather special cases for each caller. So remove this function and move the functionality to the caller. xfs_bawrite and xfs_bdwrite are now big enough to be moved out of line and the xfs_buf_read_flags is moved into a new helper called _xfs_buf_read. (First sent on August 2nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-09-29 18:18:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-09-29 18:18:35.000000000 +0200 @@ -630,6 +630,29 @@ xfs_buf_get_flags( return NULL; } +STATIC int +_xfs_buf_read( + xfs_buf_t *bp, + xfs_buf_flags_t flags) +{ + int status; + + XB_TRACE(bp, "_xfs_buf_read", (unsigned long)flags); + + ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); + ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); + + bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ + XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | \ + XBF_READ_AHEAD | _XBF_RUN_QUEUES); + + status = xfs_buf_iorequest(bp); + if (!status && !(flags & XBF_ASYNC)) + status = xfs_buf_iowait(bp); + return status; +} + xfs_buf_t * xfs_buf_read_flags( xfs_buftarg_t *target, @@ -646,7 +669,7 @@ xfs_buf_read_flags( if (!XFS_BUF_ISDONE(bp)) { XB_TRACE(bp, "read", (unsigned long)flags); XFS_STATS_INC(xb_get_read); - xfs_buf_iostart(bp, flags); + _xfs_buf_read(bp, flags); } else if (flags & XBF_ASYNC) { XB_TRACE(bp, "read_async", (unsigned long)flags); /* @@ -1047,50 +1070,39 @@ xfs_buf_ioerror( XB_TRACE(bp, "ioerror", (unsigned long)error); } -/* - * Initiate I/O on a buffer, based on the flags supplied. - * The b_iodone routine in the buffer supplied will only be called - * when all of the subsidiary I/O requests, if any, have been completed. - */ int -xfs_buf_iostart( - xfs_buf_t *bp, - xfs_buf_flags_t flags) +xfs_bawrite( + void *mp, + struct xfs_buf *bp) { - int status = 0; + XB_TRACE(bp, "bawrite", 0); - XB_TRACE(bp, "iostart", (unsigned long)flags); + ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); - if (flags & XBF_DELWRI) { - bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC); - bp->b_flags |= flags & (XBF_DELWRI | XBF_ASYNC); - xfs_buf_delwri_queue(bp, 1); - return 0; - } + xfs_buf_delwri_dequeue(bp); - bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); - bp->b_flags |= flags & (XBF_READ | XBF_WRITE | XBF_ASYNC | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_READ | XBF_DELWRI | XBF_READ_AHEAD); + bp->b_flags |= (XBF_WRITE | XBF_ASYNC | _XBF_RUN_QUEUES); + + bp->b_fspriv3 = mp; + bp->b_strat = xfs_bdstrat_cb; + return xfs_bdstrat_cb(bp); +} - BUG_ON(bp->b_bn == XFS_BUF_DADDR_NULL); +void +xfs_bdwrite( + void *mp, + struct xfs_buf *bp) +{ + XB_TRACE(bp, "bdwrite", 0); - /* For writes allow an alternate strategy routine to precede - * the actual I/O request (which may not be issued at all in - * a shutdown situation, for example). - */ - status = (flags & XBF_WRITE) ? - xfs_buf_iostrategy(bp) : xfs_buf_iorequest(bp); + bp->b_strat = xfs_bdstrat_cb; + bp->b_fspriv3 = mp; - /* Wait for I/O if we are not an async request. - * Note: async I/O request completion will release the buffer, - * and that can already be done by this point. So using the - * buffer pointer from here on, after async I/O, is invalid. - */ - if (!status && !(flags & XBF_ASYNC)) - status = xfs_buf_iowait(bp); + bp->b_flags &= ~XBF_READ; + bp->b_flags |= (XBF_DELWRI | XBF_ASYNC); - return status; + xfs_buf_delwri_queue(bp, 1); } STATIC_INLINE void Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-09-29 18:18:16.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-09-29 18:18:35.000000000 +0200 @@ -206,9 +206,10 @@ extern void xfs_buf_lock(xfs_buf_t *); extern void xfs_buf_unlock(xfs_buf_t *); /* Buffer Read and Write Routines */ +extern int xfs_bawrite(void *mp, xfs_buf_t *bp); +extern void xfs_bdwrite(void *mp, xfs_buf_t *bp); extern void xfs_buf_ioend(xfs_buf_t *, int); extern void xfs_buf_ioerror(xfs_buf_t *, int); -extern int xfs_buf_iostart(xfs_buf_t *, xfs_buf_flags_t); extern int xfs_buf_iorequest(xfs_buf_t *); extern int xfs_buf_iowait(xfs_buf_t *); extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, xfs_caddr_t, @@ -358,14 +359,6 @@ extern void xfs_buf_trace(xfs_buf_t *, c #define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) -static inline int xfs_bawrite(void *mp, xfs_buf_t *bp) -{ - bp->b_fspriv3 = mp; - bp->b_strat = xfs_bdstrat_cb; - xfs_buf_delwri_dequeue(bp); - return xfs_buf_iostart(bp, XBF_WRITE | XBF_ASYNC | _XBF_RUN_QUEUES); -} - static inline void xfs_buf_relse(xfs_buf_t *bp) { if (!bp->b_relse) @@ -406,17 +399,6 @@ static inline int XFS_bwrite(xfs_buf_t * return error; } -/* - * No error can be returned from xfs_buf_iostart for delwri - * buffers as they are queued and no I/O is issued. - */ -static inline void xfs_bdwrite(void *mp, xfs_buf_t *bp) -{ - bp->b_strat = xfs_bdstrat_cb; - bp->b_fspriv3 = mp; - (void)xfs_buf_iostart(bp, XBF_DELWRI | XBF_ASYNC); -} - #define XFS_bdstrat(bp) xfs_buf_iorequest(bp) #define xfs_iowait(bp) xfs_buf_iowait(bp) Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:18:35.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c 2008-09-29 18:18:35.000000000 +0200 @@ -162,7 +162,8 @@ EXPORT_SYMBOL(xfs_file_operations); EXPORT_SYMBOL(xfs_invis_file_operations); EXPORT_SYMBOL(xfs_buf_delwri_dequeue); EXPORT_SYMBOL(_xfs_buf_find); -EXPORT_SYMBOL(xfs_buf_iostart); +EXPORT_SYMBOL(xfs_bawrite); +EXPORT_SYMBOL(xfs_bdwrite); EXPORT_SYMBOL(xfs_buf_ispin); #ifdef DEBUG EXPORT_SYMBOL(xfs_buf_lock_value); -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_65 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDlH7u026136 for ; Mon, 27 Oct 2008 06:47:17 -0700 X-ASG-Debug-ID: 1225115236-68a3010f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9DE51488026 for ; Mon, 27 Oct 2008 06:47:16 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id uo2c71pxUm5GC0ig for ; Mon, 27 Oct 2008 06:47:16 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSRA-0001Yf-GK for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:16 +0000 Date: Mon, 27 Oct 2008 09:47:16 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/10] reduce l_icloglock roundtrips Subject: [PATCH 04/10] reduce l_icloglock roundtrips Message-ID: <20081027134716.GE5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-reduce-log-lock-roundtrips User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115236 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- All but one caller of xlog_state_want_sync drop and re-acquire l_icloglock around the call to it, just so that xlog_state_want_sync can acquire and drop it. Move all lock operation out of l_icloglock and assert that the lock is held when it is called. Note that it would make sense to extende this scheme to xlog_state_release_iclog, but the locking in there is more complicated and we'd like to keep the atomic_dec_and_lock optmization for those callers not having l_icloglock yet. (First sent on Semptember 29th) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log.c 2008-09-29 10:54:19.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log.c 2008-09-29 10:58:23.000000000 +0200 @@ -724,8 +724,8 @@ xfs_log_unmount_write(xfs_mount_t *mp) spin_lock(&log->l_icloglock); iclog = log->l_iclog; atomic_inc(&iclog->ic_refcnt); - spin_unlock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); error = xlog_state_release_iclog(log, iclog); spin_lock(&log->l_icloglock); @@ -762,9 +762,9 @@ xfs_log_unmount_write(xfs_mount_t *mp) spin_lock(&log->l_icloglock); iclog = log->l_iclog; atomic_inc(&iclog->ic_refcnt); - spin_unlock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); error = xlog_state_release_iclog(log, iclog); spin_lock(&log->l_icloglock); @@ -1957,7 +1957,9 @@ xlog_write(xfs_mount_t * mp, if (iclog->ic_size - log_offset <= sizeof(xlog_op_header_t)) { xlog_state_finish_copy(log, iclog, record_cnt, data_cnt); record_cnt = data_cnt = 0; + spin_lock(&log->l_icloglock); xlog_state_want_sync(log, iclog); + spin_unlock(&log->l_icloglock); if (commit_iclog) { ASSERT(flags & XLOG_COMMIT_TRANS); *commit_iclog = iclog; @@ -3166,7 +3168,7 @@ try_again: STATIC void xlog_state_want_sync(xlog_t *log, xlog_in_core_t *iclog) { - spin_lock(&log->l_icloglock); + ASSERT(spin_is_locked(&log->l_icloglock)); if (iclog->ic_state == XLOG_STATE_ACTIVE) { xlog_state_switch_iclogs(log, iclog, 0); @@ -3174,10 +3176,7 @@ xlog_state_want_sync(xlog_t *log, xlog_i ASSERT(iclog->ic_state & (XLOG_STATE_WANT_SYNC|XLOG_STATE_IOERROR)); } - - spin_unlock(&log->l_icloglock); -} /* xlog_state_want_sync */ - +} /***************************************************************************** -- From owner-xfs@oss.sgi.com Mon Oct 27 06:47:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDlJdd026147 for ; Mon, 27 Oct 2008 06:47:19 -0700 X-ASG-Debug-ID: 1225115238-4a4100140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1372354B8D5 for ; Mon, 27 Oct 2008 06:47:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id VNOQ6WJgzMrKIysy for ; Mon, 27 Oct 2008 06:47:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSRC-0001c9-HM for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:47:18 +0000 Date: Mon, 27 Oct 2008 09:47:18 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/10] remove dead code from sv_t implementation Subject: [PATCH 05/10] remove dead code from sv_t implementation Message-ID: <20081027134718.GF5730@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-simplify-sv User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115239 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/linux-2.6/sv.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/sv.h 2008-09-29 10:45:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/sv.h 2008-09-29 10:49:16.000000000 +0200 @@ -32,23 +32,15 @@ typedef struct sv_s { wait_queue_head_t waiters; } sv_t; -#define SV_FIFO 0x0 /* sv_t is FIFO type */ -#define SV_LIFO 0x2 /* sv_t is LIFO type */ -#define SV_PRIO 0x4 /* sv_t is PRIO type */ -#define SV_KEYED 0x6 /* sv_t is KEYED type */ -#define SV_DEFAULT SV_FIFO - - -static inline void _sv_wait(sv_t *sv, spinlock_t *lock, int state, - unsigned long timeout) +static inline void _sv_wait(sv_t *sv, spinlock_t *lock) { DECLARE_WAITQUEUE(wait, current); add_wait_queue_exclusive(&sv->waiters, &wait); - __set_current_state(state); + __set_current_state(TASK_UNINTERRUPTIBLE); spin_unlock(lock); - schedule_timeout(timeout); + schedule(); remove_wait_queue(&sv->waiters, &wait); } @@ -58,13 +50,7 @@ static inline void _sv_wait(sv_t *sv, sp #define sv_destroy(sv) \ /*NOTHING*/ #define sv_wait(sv, pri, lock, s) \ - _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT) -#define sv_wait_sig(sv, pri, lock, s) \ - _sv_wait(sv, lock, TASK_INTERRUPTIBLE, MAX_SCHEDULE_TIMEOUT) -#define sv_timedwait(sv, pri, lock, s, svf, ts, rts) \ - _sv_wait(sv, lock, TASK_UNINTERRUPTIBLE, timespec_to_jiffies(ts)) -#define sv_timedwait_sig(sv, pri, lock, s, svf, ts, rts) \ - _sv_wait(sv, lock, TASK_INTERRUPTIBLE, timespec_to_jiffies(ts)) + _sv_wait(sv, lock) #define sv_signal(sv) \ wake_up(&(sv)->waiters) #define sv_broadcast(sv) \ -- From owner-xfs@oss.sgi.com Mon Oct 27 06:48:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDmgin027389 for ; Mon, 27 Oct 2008 06:48:42 -0700 X-ASG-Debug-ID: 1225115321-1b42023a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD312ADE7D6 for ; Mon, 27 Oct 2008 06:48:41 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id pnhYgDNIY5YQfJPO for ; Mon, 27 Oct 2008 06:48:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSSX-0001fw-Ae for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:48:41 +0000 Date: Mon, 27 Oct 2008 09:48:41 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/10] kill dead quota flags Subject: [PATCH 06/10] kill dead quota flags Message-ID: <20081027134841.GA6440@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-dead-quota-flags User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115321 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8841 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_quota.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_quota.h 2008-08-14 18:27:11.000000000 -0300 +++ linux-2.6-xfs/fs/xfs/xfs_quota.h 2008-08-14 18:28:04.000000000 -0300 @@ -84,11 +84,9 @@ typedef struct xfs_dqblk { #define XFS_DQ_USER 0x0001 /* a user quota */ #define XFS_DQ_PROJ 0x0002 /* project quota */ #define XFS_DQ_GROUP 0x0004 /* a group quota */ -#define XFS_DQ_FLOCKED 0x0008 /* flush lock taken */ -#define XFS_DQ_DIRTY 0x0010 /* dquot is dirty */ -#define XFS_DQ_WANT 0x0020 /* for lookup/reclaim race */ -#define XFS_DQ_INACTIVE 0x0040 /* dq off mplist & hashlist */ -#define XFS_DQ_MARKER 0x0080 /* sentinel */ +#define XFS_DQ_DIRTY 0x0008 /* dquot is dirty */ +#define XFS_DQ_WANT 0x0010 /* for lookup/reclaim race */ +#define XFS_DQ_INACTIVE 0x0020 /* dq off mplist & hashlist */ #define XFS_DQ_ALLTYPES (XFS_DQ_USER|XFS_DQ_PROJ|XFS_DQ_GROUP) Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-08-14 18:27:23.000000000 -0300 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-08-14 18:27:50.000000000 -0300 @@ -6644,11 +6644,9 @@ static char *xdq_flags[] = { "USER", /* XFS_DQ_USER */ "PROJ", /* XFS_DQ_PROJ */ "GROUP", /* XFS_DQ_GROUP */ - "FLKD", /* XFS_DQ_FLOCKED */ "DIRTY", /* XFS_DQ_DIRTY */ "WANT", /* XFS_DQ_WANT */ "INACT", /* XFS_DQ_INACTIVE */ - "MARKER", /* XFS_DQ_MARKER */ NULL }; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:48:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDmjZC027405 for ; Mon, 27 Oct 2008 06:48:45 -0700 X-ASG-Debug-ID: 1225115324-42ad00860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9060854B900 for ; Mon, 27 Oct 2008 06:48:44 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id OzvfgQ2nAOorV0RZ for ; Mon, 27 Oct 2008 06:48:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSSZ-0001g2-Rb for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:48:43 +0000 Date: Mon, 27 Oct 2008 09:48:43 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/10] cleanup xfs_sb.h feature flag helpers Subject: [PATCH 07/10] cleanup xfs_sb.h feature flag helpers Message-ID: <20081027134843.GB6440@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="xfs-cleanup-sb.h-helpers" User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115324 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The various inlines in xfs_sb.h that deal with the superblock version and fature flags were converted from macros a while ago, and this show by the odd coding style full of useless braces and backslashes and the avoidance of conditionals. Clean these up to look like normal C code. (First sent on August 2nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_sb.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_sb.h 2008-07-24 22:27:36.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_sb.h 2008-07-24 22:47:12.000000000 +0200 @@ -296,30 +296,34 @@ typedef enum { #define XFS_SB_VERSION_NUM(sbp) ((sbp)->sb_versionnum & XFS_SB_VERSION_NUMBITS) -#ifdef __KERNEL__ static inline int xfs_sb_good_version(xfs_sb_t *sbp) { - return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \ - (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \ - ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \ - (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \ - (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN))); -} + /* We always support version 1-3 */ + if (sbp->sb_versionnum >= XFS_SB_VERSION_1 && + sbp->sb_versionnum <= XFS_SB_VERSION_3) + return 1; + + /* We support version 4 if all feature bits are supported */ + if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) { + if ((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || + ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && + (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) + return 0; + +#ifdef __KERNEL__ + if (sbp->sb_shared_vn > XFS_SB_MAX_SHARED_VN) + return 0; #else -static inline int xfs_sb_good_version(xfs_sb_t *sbp) -{ - return (((sbp->sb_versionnum >= XFS_SB_VERSION_1) && \ - (sbp->sb_versionnum <= XFS_SB_VERSION_3)) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - !((sbp->sb_versionnum & ~XFS_SB_VERSION_OKREALBITS) || \ - ((sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT) && \ - (sbp->sb_features2 & ~XFS_SB_VERSION2_OKREALBITS))) && \ - (!(sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) || \ - (sbp->sb_shared_vn <= XFS_SB_MAX_SHARED_VN)))); + if ((sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT) && + sbp->sb_shared_vn > XFS_SB_MAX_SHARED_VN) + return 0; +#endif + + return 1; + } + + return 0; } -#endif /* __KERNEL__ */ /* * Detect a mismatched features2 field. Older kernels read/wrote @@ -332,123 +336,127 @@ static inline int xfs_sb_has_mismatched_ static inline unsigned xfs_sb_version_tonew(unsigned v) { - return ((((v) == XFS_SB_VERSION_1) ? \ - 0 : \ - (((v) == XFS_SB_VERSION_2) ? \ - XFS_SB_VERSION_ATTRBIT : \ - (XFS_SB_VERSION_ATTRBIT | XFS_SB_VERSION_NLINKBIT))) | \ - XFS_SB_VERSION_4); + if (v == XFS_SB_VERSION_1) + return XFS_SB_VERSION_4; + + if (v == XFS_SB_VERSION_2) + return XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT; + + return XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT | + XFS_SB_VERSION_NLINKBIT; } static inline unsigned xfs_sb_version_toold(unsigned v) { - return (((v) & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) ? \ - 0 : \ - (((v) & XFS_SB_VERSION_NLINKBIT) ? \ - XFS_SB_VERSION_3 : \ - (((v) & XFS_SB_VERSION_ATTRBIT) ? \ - XFS_SB_VERSION_2 : \ - XFS_SB_VERSION_1))); + if (v & (XFS_SB_VERSION_QUOTABIT | XFS_SB_VERSION_ALIGNBIT)) + return 0; + if (v & XFS_SB_VERSION_NLINKBIT) + return XFS_SB_VERSION_3; + if (v & XFS_SB_VERSION_ATTRBIT) + return XFS_SB_VERSION_2; + return XFS_SB_VERSION_1; } static inline int xfs_sb_version_hasattr(xfs_sb_t *sbp) { - return ((sbp)->sb_versionnum == XFS_SB_VERSION_2) || \ - ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ATTRBIT)); + return sbp->sb_versionnum == XFS_SB_VERSION_2 || + sbp->sb_versionnum == XFS_SB_VERSION_3 || + (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_ATTRBIT)); } static inline void xfs_sb_version_addattr(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = (((sbp)->sb_versionnum == XFS_SB_VERSION_1) ? \ - XFS_SB_VERSION_2 : \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_ATTRBIT) : \ - (XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT))); + if (sbp->sb_versionnum == XFS_SB_VERSION_1) + sbp->sb_versionnum = XFS_SB_VERSION_2; + else if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) + sbp->sb_versionnum |= XFS_SB_VERSION_ATTRBIT; + else + sbp->sb_versionnum = XFS_SB_VERSION_4 | XFS_SB_VERSION_ATTRBIT; } static inline int xfs_sb_version_hasnlink(xfs_sb_t *sbp) { - return ((sbp)->sb_versionnum == XFS_SB_VERSION_3) || \ - ((XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_NLINKBIT)); + return sbp->sb_versionnum == XFS_SB_VERSION_3 || + (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_NLINKBIT)); } static inline void xfs_sb_version_addnlink(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = ((sbp)->sb_versionnum <= XFS_SB_VERSION_2 ? \ - XFS_SB_VERSION_3 : \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_NLINKBIT)); + if (sbp->sb_versionnum <= XFS_SB_VERSION_2) + sbp->sb_versionnum = XFS_SB_VERSION_3; + else + sbp->sb_versionnum |= XFS_SB_VERSION_NLINKBIT; } static inline int xfs_sb_version_hasquota(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_QUOTABIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_QUOTABIT); } static inline void xfs_sb_version_addquota(xfs_sb_t *sbp) { - (sbp)->sb_versionnum = \ - (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 ? \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_QUOTABIT) : \ - (xfs_sb_version_tonew((sbp)->sb_versionnum) | \ - XFS_SB_VERSION_QUOTABIT)); + if (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) + sbp->sb_versionnum |= XFS_SB_VERSION_QUOTABIT; + else + sbp->sb_versionnum = xfs_sb_version_tonew(sbp->sb_versionnum) | + XFS_SB_VERSION_QUOTABIT; } static inline int xfs_sb_version_hasalign(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_ALIGNBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_ALIGNBIT); } static inline int xfs_sb_version_hasdalign(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DALIGNBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT); } static inline int xfs_sb_version_hasshared(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_SHAREDBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT); } static inline int xfs_sb_version_hasdirv2(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_DIRV2BIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT); } static inline int xfs_sb_version_haslogv2(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_LOGV2BIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_LOGV2BIT); } static inline int xfs_sb_version_hasextflgbit(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_EXTFLGBIT); } static inline int xfs_sb_version_hassector(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_SECTORBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_SECTORBIT); } static inline int xfs_sb_version_hasasciici(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && (sbp->sb_versionnum & XFS_SB_VERSION_BORGBIT); } static inline int xfs_sb_version_hasmorebits(xfs_sb_t *sbp) { - return (XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4) && \ - ((sbp)->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT); + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 && + (sbp->sb_versionnum & XFS_SB_VERSION_MOREBITSBIT); } /* @@ -463,22 +471,20 @@ static inline int xfs_sb_version_hasmore static inline int xfs_sb_version_haslazysbcount(xfs_sb_t *sbp) { - return (xfs_sb_version_hasmorebits(sbp) && \ - ((sbp)->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT)); + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_LAZYSBCOUNTBIT); } static inline int xfs_sb_version_hasattr2(xfs_sb_t *sbp) { - return (xfs_sb_version_hasmorebits(sbp)) && \ - ((sbp)->sb_features2 & XFS_SB_VERSION2_ATTR2BIT); + return xfs_sb_version_hasmorebits(sbp) && + (sbp->sb_features2 & XFS_SB_VERSION2_ATTR2BIT); } static inline void xfs_sb_version_addattr2(xfs_sb_t *sbp) { - ((sbp)->sb_versionnum = \ - ((sbp)->sb_versionnum | XFS_SB_VERSION_MOREBITSBIT), \ - ((sbp)->sb_features2 = \ - ((sbp)->sb_features2 | XFS_SB_VERSION2_ATTR2BIT))); + sbp->sb_versionnum |= XFS_SB_VERSION_MOREBITSBIT; + sbp->sb_features2 |= XFS_SB_VERSION2_ATTR2BIT; } static inline void xfs_sb_version_removeattr2(xfs_sb_t *sbp) -- From owner-xfs@oss.sgi.com Mon Oct 27 06:48:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDmlFY027424 for ; Mon, 27 Oct 2008 06:48:47 -0700 X-ASG-Debug-ID: 1225115326-3d3d00f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 203C754B902 for ; Mon, 27 Oct 2008 06:48:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id dAd0vfr19oWcyOL9 for ; Mon, 27 Oct 2008 06:48:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSSc-0001gE-Br for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:48:46 +0000 Date: Mon, 27 Oct 2008 09:48:46 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/10] kill dead inode flags Subject: [PATCH 08/10] kill dead inode flags Message-ID: <20081027134846.GC6440@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-dead-inode-flags User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115327 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- There are a few inode flags around that aren't used anywhere, so remove them. Also update xfsidbg to display all used inode flags correctly. (First sent on July 23nd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/dmapi/xfs_dm.c 2008-10-25 13:15:42.000000000 +0200 @@ -2494,7 +2494,6 @@ xfs_dm_punch_hole( /* Let threads in send_data_event know we punched the file. */ ip->i_d.di_dmstate++; xfs_iunlock(ip, XFS_IOLOCK_EXCL); - xfs_iflags_set(ip, XFS_IMODIFIED); up_and_out: up_rw_sems(inode, DM_SEM_FLAG_WR); Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_aops.c 2008-10-25 13:15:42.000000000 +0200 @@ -317,14 +317,9 @@ xfs_map_blocks( xfs_iomap_t *mapp, int flags) { - xfs_inode_t *ip = XFS_I(inode); - int error, nmaps = 1; + int nmaps = 1; - error = xfs_iomap(ip, offset, count, - flags, mapp, &nmaps); - if (!error && (flags & (BMAPI_WRITE|BMAPI_ALLOCATE))) - xfs_iflags_set(ip, XFS_IMODIFIED); - return -error; + return -xfs_iomap(XFS_I(inode), offset, count, flags, mapp, &nmaps); } STATIC_INLINE int Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2008-10-25 13:11:38.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_file.c 2008-10-25 13:15:42.000000000 +0200 @@ -434,11 +434,8 @@ xfs_file_ioctl( unsigned int cmd, unsigned long p) { - int error; struct inode *inode = filp->f_path.dentry->d_inode; - error = xfs_ioctl(XFS_I(inode), filp, 0, cmd, (void __user *)p); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); /* NOTE: some of the ioctl's return positive #'s as a * byte count indicating success, such as @@ -446,7 +443,7 @@ xfs_file_ioctl( * like most other routines. This means true * errors need to be returned as a negative value. */ - return error; + return xfs_ioctl(XFS_I(inode), filp, 0, cmd, (void __user *)p); } STATIC long @@ -455,11 +452,8 @@ xfs_file_ioctl_invis( unsigned int cmd, unsigned long p) { - int error; struct inode *inode = filp->f_path.dentry->d_inode; - error = xfs_ioctl(XFS_I(inode), filp, IO_INVIS, cmd, (void __user *)p); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); /* NOTE: some of the ioctl's return positive #'s as a * byte count indicating success, such as @@ -467,7 +461,7 @@ xfs_file_ioctl_invis( * like most other routines. This means true * errors need to be returned as a negative value. */ - return error; + return xfs_ioctl(XFS_I(inode), filp, IO_INVIS, cmd, (void __user *)p); } #ifdef HAVE_DMAPI Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:13:24.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c 2008-10-25 13:15:54.000000000 +0200 @@ -158,8 +158,6 @@ xfs_init_security( } error = xfs_attr_set(ip, name, value, length, ATTR_SECURE); - if (!error) - xfs_iflags_set(ip, XFS_IMODIFIED); kfree(name); kfree(value); @@ -260,7 +258,6 @@ xfs_vn_mknod( error = _ACL_INHERIT(inode, mode, default_acl); if (unlikely(error)) goto out_cleanup_inode; - xfs_iflags_set(ip, XFS_IMODIFIED); _ACL_FREE(default_acl); } @@ -376,7 +373,6 @@ xfs_vn_link( if (unlikely(error)) return -error; - xfs_iflags_set(XFS_I(dir), XFS_IMODIFIED); atomic_inc(&inode->i_count); d_instantiate(dentry, inode); return 0; @@ -805,7 +801,6 @@ xfs_setup_inode( inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec; inode->i_ctime.tv_nsec = ip->i_d.di_ctime.t_nsec; xfs_diflags_to_iflags(inode, ip); - xfs_iflags_clear(ip, XFS_IMODIFIED); switch (inode->i_mode & S_IFMT) { case S_IFREG: Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl32.c 2008-10-25 13:15:42.000000000 +0200 @@ -375,7 +375,6 @@ xfs_compat_ioctl( unsigned long arg) { struct inode *inode = file->f_path.dentry->d_inode; - int error; switch (cmd) { case XFS_IOC_DIOINFO: @@ -463,10 +462,7 @@ xfs_compat_ioctl( return -ENOIOCTLCMD; } - error = xfs_ioctl(XFS_I(inode), file, mode, cmd, (void __user *)arg); - xfs_iflags_set(XFS_I(inode), XFS_IMODIFIED); - - return error; + return xfs_ioctl(XFS_I(inode), file, mode, cmd, (void __user *)arg); } long Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:00:29.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:15:42.000000000 +0200 @@ -1021,7 +1021,6 @@ xfs_fs_clear_inode( XFS_STATS_DEC(vn_active); xfs_inactive(ip); - xfs_iflags_clear(ip, XFS_IMODIFIED); } STATIC void Index: linux-2.6-xfs/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_iget.c 2008-10-25 13:02:56.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_iget.c 2008-10-25 13:15:42.000000000 +0200 @@ -275,7 +275,6 @@ again: } xfs_put_perag(mp, pag); - xfs_iflags_set(ip, XFS_IMODIFIED); *ipp = ip; ASSERT(ip->i_df.if_ext_max == Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:02:57.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:15:42.000000000 +0200 @@ -403,17 +403,12 @@ static inline void xfs_ifunlock(xfs_inod /* * In-core inode flags. */ -#define XFS_IGRIO 0x0001 /* inode used for guaranteed rate i/o */ -#define XFS_IUIOSZ 0x0002 /* inode i/o sizes have been explicitly set */ -#define XFS_IQUIESCE 0x0004 /* we have started quiescing for this inode */ -#define XFS_IRECLAIM 0x0008 /* we have started reclaiming this inode */ -#define XFS_ISTALE 0x0010 /* inode has been staled */ -#define XFS_IRECLAIMABLE 0x0020 /* inode can be reclaimed */ -#define XFS_INEW 0x0040 -#define XFS_IFILESTREAM 0x0080 /* inode is in a filestream directory */ -#define XFS_IMODIFIED 0x0100 /* XFS inode state possibly differs */ - /* to the Linux inode state. */ -#define XFS_ITRUNCATED 0x0200 /* truncated down so flush-on-close */ +#define XFS_IRECLAIM 0x0001 /* we have started reclaiming this inode */ +#define XFS_ISTALE 0x0002 /* inode has been staled */ +#define XFS_IRECLAIMABLE 0x0004 /* inode can be reclaimed */ +#define XFS_INEW 0x0008 /* inode has just been allocated */ +#define XFS_IFILESTREAM 0x0010 /* inode is in a filestream directory */ +#define XFS_ITRUNCATED 0x0020 /* truncated down so flush-on-close */ /* * Flags for inode locking. Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:15:38.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:15:42.000000000 +0200 @@ -157,7 +157,6 @@ static void xfsidbg_xiclogall(xlog_in_co static void xfsidbg_xiclogcb(xlog_in_core_t *); static void xfsidbg_xinodes(xfs_mount_t *); static void xfsidbg_delayed_blocks(xfs_mount_t *); -static void xfsidbg_xinodes_quiesce(xfs_mount_t *); static void xfsidbg_xlog(xlog_t *); static void xfsidbg_xlog_ritem(xlog_recover_item_t *); static void xfsidbg_xlog_rtrans(xlog_recover_t *); @@ -1318,26 +1317,6 @@ static int kdbm_xfs_delayed_blocks( return 0; } - -static int kdbm_xfs_xinodes_quiesce( - int argc, - const char **argv) -{ - unsigned long addr; - int nextarg = 1; - long offset = 0; - int diag; - - if (argc != 1) - return KDB_ARGCOUNT; - diag = kdbgetaddrarg(argc, argv, &nextarg, &addr, &offset, NULL); - if (diag) - return diag; - - xfsidbg_xinodes_quiesce((xfs_mount_t *) addr); - return 0; -} - static int kdbm_xfs_xlog( int argc, const char **argv) @@ -2415,8 +2394,6 @@ static struct xif xfsidbg_funcs[] = { #endif { "xinodes", kdbm_xfs_xinodes, "", "Dump XFS inodes per mount"}, - { "xquiesce",kdbm_xfs_xinodes_quiesce, "", - "Dump non-quiesced XFS inodes per mount"}, #ifdef XFS_LOG_TRACE { "xl_grtr", kdbm_xfs_xlog_granttrace, "", "Dump XFS log grant trace" }, @@ -5971,35 +5948,6 @@ xfsidbg_delayed_blocks(xfs_mount_t *mp) kdb_printf("delayed blocks total: %d in %d inodes\n", total, icount); } -static void -xfsidbg_xinodes_quiesce(xfs_mount_t *mp) -{ - int i; - - kdb_printf("xfs_mount at 0x%p\n", mp); - for (i = 0; i < mp->m_sb.sb_agcount; i++) { - xfs_perag_t *pag = &mp->m_perag[i]; - xfs_inode_t *ip = NULL; - int first_index = 0; - int nr_found; - - if (!pag->pag_ici_init) - continue; - do { - nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, - (void**)&ip, first_index, 1); - if (!nr_found) - break; - /* update the index for the next lookup */ - first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); - if (!(ip->i_flags & XFS_IQUIESCE)) { - kdb_printf("ip 0x%p not quiesced\n", ip); - } - } while (nr_found); - } - kdb_printf("\nEnd of Inodes\n"); -} - static char * xfsidbg_get_cstate(int state) { @@ -6597,12 +6545,11 @@ static void xfsidbg_xnode(xfs_inode_t *ip) { static char *tab_flags[] = { - "grio", /* XFS_IGRIO */ - "uiosize", /* XFS_IUIOSZ */ - "quiesce", /* XFS_IQUIESCE */ "reclaim", /* XFS_IRECLAIM */ "stale", /* XFS_ISTALE */ - "modified", /* XFS_IMODIFIED */ + "reclaimable", /* XFS_IRECLAIMABLE */ + "new", /* XFS_INEW */ + "filestream", /* XFS_IFILESTREAM */ "truncated", /* XFS_ITRUNCATED */ NULL }; -- From owner-xfs@oss.sgi.com Mon Oct 27 06:48:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDmqBj027460 for ; Mon, 27 Oct 2008 06:48:53 -0700 X-ASG-Debug-ID: 1225115331-42ad00870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31CCB54B908 for ; Mon, 27 Oct 2008 06:48:51 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id hTJYiOQcgcBgh6B5 for ; Mon, 27 Oct 2008 06:48:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSSh-0001gR-I2 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:48:51 +0000 Date: Mon, 27 Oct 2008 09:48:51 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/10] remove leftovers of shared read-only support Subject: [PATCH 10/10] remove leftovers of shared read-only support Message-ID: <20081027134851.GE6440@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-m_mk_sharedro User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115332 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- We never supported shared read-only filesystems, so remove the dead code left over from IRIX for it. Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2008-10-25 13:00:27.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2008-10-25 13:18:54.000000000 +0200 @@ -1353,24 +1353,6 @@ xfs_log_sbcount( return error; } -STATIC void -xfs_mark_shared_ro( - xfs_mount_t *mp, - xfs_buf_t *bp) -{ - xfs_dsb_t *sb = XFS_BUF_TO_SBP(bp); - __uint16_t version; - - if (!(sb->sb_flags & XFS_SBF_READONLY)) - sb->sb_flags |= XFS_SBF_READONLY; - - version = be16_to_cpu(sb->sb_versionnum); - if ((version & XFS_SB_VERSION_NUMBITS) != XFS_SB_VERSION_4 || - !(version & XFS_SB_VERSION_SHAREDBIT)) - version |= XFS_SB_VERSION_SHAREDBIT; - sb->sb_versionnum = cpu_to_be16(version); -} - int xfs_unmountfs_writesb(xfs_mount_t *mp) { @@ -1386,12 +1368,6 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) sbp = xfs_getsb(mp, 0); - /* - * mark shared-readonly if desired - */ - if (mp->m_mk_sharedro) - xfs_mark_shared_ro(mp, sbp); - XFS_BUF_UNDONE(sbp); XFS_BUF_UNREAD(sbp); XFS_BUF_UNDELAYWRITE(sbp); @@ -1403,8 +1379,6 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) if (error) xfs_ioerror_alert("xfs_unmountfs_writesb", mp, sbp, XFS_BUF_ADDR(sbp)); - if (error && mp->m_mk_sharedro) - xfs_fs_cmn_err(CE_ALERT, mp, "Superblock write error detected while unmounting. Filesystem may not be marked shared readonly"); xfs_buf_relse(sbp); } return error; Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-25 13:18:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-25 13:18:54.000000000 +0200 @@ -302,7 +302,6 @@ typedef struct xfs_mount { int m_sinoalign; /* stripe unit inode alignment */ int m_attr_magicpct;/* 37% of the blocksize */ int m_dir_magicpct; /* 37% of the dir blocksize */ - __uint8_t m_mk_sharedro; /* mark shared ro on unmount */ __uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ int m_dirblksize; /* directory block sz--bytes */ Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-25 13:18:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-25 13:18:54.000000000 +0200 @@ -6523,8 +6523,7 @@ xfsidbg_xmount(xfs_mount_t *mp) kdb_printf("dalign %d swidth %d sinoalign %d attr_magicpct %d dir_magicpct %d\n", mp->m_dalign, mp->m_swidth, mp->m_sinoalign, mp->m_attr_magicpct, mp->m_dir_magicpct); - kdb_printf("mk_sharedro %d sectbb_log %d\n", - mp->m_mk_sharedro, mp->m_sectbb_log); + kdb_printf("sectbb_log %d\n", mp->m_sectbb_log); kdb_printf("dirblkfsbs %d\n", mp->m_dirblkfsbs); kdb_printf("dirblksize %d dirdatablk 0x%Lx dirleafblk 0x%Lx dirfreeblk 0x%Lx\n", mp->m_dirblksize, Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:20:10.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-10-25 13:20:16.000000000 +0200 @@ -1384,35 +1384,6 @@ xfs_finish_flags( return XFS_ERROR(EROFS); } -#if 0 /* shared mounts were never supported on Linux */ - /* - * check for shared mount. - */ - if (ap->flags & XFSMNT_SHARED) { - if (!xfs_sb_version_hasshared(&mp->m_sb)) - return XFS_ERROR(EINVAL); - - /* - * For IRIX 6.5, shared mounts must have the shared - * version bit set, have the persistent readonly - * field set, must be version 0 and can only be mounted - * read-only. - */ - if (!ronly || !(mp->m_sb.sb_flags & XFS_SBF_READONLY) || - (mp->m_sb.sb_shared_vn != 0)) - return XFS_ERROR(EINVAL); - - mp->m_flags |= XFS_MOUNT_SHARED; - - /* - * Shared XFS V0 can't deal with DMI. Return EINVAL. - */ - if (mp->m_sb.sb_shared_vn == 0 && - (mp->m_flags & XFS_MOUNT_DMAPI)) - return XFS_ERROR(EINVAL); - } -#endif - return 0; } -- From owner-xfs@oss.sgi.com Mon Oct 27 06:41:24 2008 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDfNTI024588 for ; Mon, 27 Oct 2008 06:41:24 -0700 X-ASG-Debug-ID: 1225114883-62ba03ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8A0EB54BB0D for ; Mon, 27 Oct 2008 06:41:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id aZ5Pr7OgC8LKn4Y0 for ; Mon, 27 Oct 2008 06:41:23 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSLS-0000ps-TU for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:41:22 +0000 Date: Mon, 27 Oct 2008 09:41:22 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/6] remove dead code for old inode item recovery Subject: [PATCH 2/6] remove dead code for old inode item recovery Message-ID: <20081027134122.GC3183@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-remove-dead-log-recovery-code User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225114883 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8840 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- We have removed the support for old-style inode items a while ago and xlog_recover_do_inode_trans is now only called for XFS_LI_INODE items. That means we can remove the call to xfs_imap there and with it the XFS_IMAP_LOOKUP that is set by all other callers. We can also mark xfs_imap static now. (First sent on October 21st) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:59.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:28:32.000000000 +0200 @@ -2245,7 +2245,6 @@ xlog_recover_do_inode_trans( xfs_inode_log_format_t *in_f; xfs_mount_t *mp; xfs_buf_t *bp; - xfs_imap_t imap; xfs_dinode_t *dip; xfs_ino_t ino; int len; @@ -2273,48 +2272,29 @@ xlog_recover_do_inode_trans( } ino = in_f->ilf_ino; mp = log->l_mp; - if (ITEM_TYPE(item) == XFS_LI_INODE) { - imap.im_blkno = (xfs_daddr_t)in_f->ilf_blkno; - imap.im_len = in_f->ilf_len; - imap.im_boffset = in_f->ilf_boffset; - } else { - /* - * It's an old inode format record. We don't know where - * its cluster is located on disk, and we can't allow - * xfs_imap() to figure it out because the inode btrees - * are not ready to be used. Therefore do not pass the - * XFS_IMAP_LOOKUP flag to xfs_imap(). This will give - * us only the single block in which the inode lives - * rather than its cluster, so we must make sure to - * invalidate the buffer when we write it out below. - */ - imap.im_blkno = 0; - error = xfs_imap(log->l_mp, NULL, ino, &imap, 0); - if (error) - goto error; - } /* * Inode buffers can be freed, look out for it, * and do not replay the inode. */ - if (xlog_check_buffer_cancelled(log, imap.im_blkno, imap.im_len, 0)) { + if (xlog_check_buffer_cancelled(log, in_f->ilf_blkno, + in_f->ilf_len, 0)) { error = 0; goto error; } - bp = xfs_buf_read_flags(mp->m_ddev_targp, imap.im_blkno, imap.im_len, - XFS_BUF_LOCK); + bp = xfs_buf_read_flags(mp->m_ddev_targp, in_f->ilf_blkno, + in_f->ilf_len, XFS_BUF_LOCK); if (XFS_BUF_ISERROR(bp)) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, - bp, imap.im_blkno); + bp, in_f->ilf_blkno); error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); goto error; } error = 0; ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); - dip = (xfs_dinode_t *)xfs_buf_offset(bp, imap.im_boffset); + dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset); /* * Make sure the place we're flushing out to really looks Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.c 2008-10-25 13:24:43.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.c 2008-10-25 13:28:32.000000000 +0200 @@ -1262,8 +1262,7 @@ xfs_dilocate( #endif /* DEBUG */ return XFS_ERROR(EINVAL); } - if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp)) || - !(flags & XFS_IMAP_LOOKUP)) { + if ((mp->m_sb.sb_blocksize >= XFS_INODE_CLUSTER_SIZE(mp))) { offset = XFS_INO_TO_OFFSET(mp, ino); ASSERT(offset < mp->m_sb.sb_inopblock); *bno = XFS_AGB_TO_FSB(mp, agno, agbno); Index: linux-2.6-xfs/fs/xfs/xfs_inode.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.c 2008-10-25 13:26:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.c 2008-10-25 13:28:32.000000000 +0200 @@ -237,7 +237,7 @@ xfs_inotobp( int error; imap.im_blkno = 0; - error = xfs_imap(mp, tp, ino, &imap, imap_flags | XFS_IMAP_LOOKUP); + error = xfs_imap(mp, tp, ino, &imap, imap_flags); if (error) return error; @@ -868,8 +868,7 @@ xfs_iread( * Get pointers to the on-disk inode and the buffer containing it. */ imap.im_blkno = bno; - error = xfs_imap(mp, tp, ip->i_ino, &imap, - XFS_IMAP_LOOKUP | imap_flags); + error = xfs_imap(mp, tp, ip->i_ino, &imap, imap_flags); if (error) goto out_destroy_inode; Index: linux-2.6-xfs/fs/xfs/xfs_inode.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_inode.h 2008-10-25 13:26:51.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_inode.h 2008-10-25 13:28:32.000000000 +0200 @@ -159,8 +159,7 @@ typedef struct xfs_icdinode { /* * Flags for xfs_inotobp, xfs_imap() and xfs_dilocate(). */ -#define XFS_IMAP_LOOKUP 0x1 -#define XFS_IMAP_BULKSTAT 0x2 +#define XFS_IMAP_BULKSTAT 0x1 /* * Fork handling. -- From owner-xfs@oss.sgi.com Mon Oct 27 06:48:49 2008 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDmn26027438 for ; Mon, 27 Oct 2008 06:48:49 -0700 X-ASG-Debug-ID: 1225115328-468800490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31C3054B906 for ; Mon, 27 Oct 2008 06:48:48 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 101qtOsnc6bIwDzZ for ; Mon, 27 Oct 2008 06:48:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KuSSe-0001gK-L7 for xfs@oss.sgi.com; Mon, 27 Oct 2008 13:48:48 +0000 Date: Mon, 27 Oct 2008 09:48:48 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/10] remove unused m_inode_quiesce member from struct xfs_mount Subject: [PATCH 09/10] remove unused m_inode_quiesce member from struct xfs_mount Message-ID: <20081027134848.GD6440@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=xfs-kill-m_inode_quiesce User-Agent: quilt/0.46-1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225115329 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- (First sent on July 23rd) Signed-off-by: Christoph Hellwig Index: linux-2.6-xfs/fs/xfs/xfs_mount.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.h 2008-10-22 09:33:02.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfs_mount.h 2008-10-22 09:43:34.000000000 +0200 @@ -303,7 +303,6 @@ typedef struct xfs_mount { int m_attr_magicpct;/* 37% of the blocksize */ int m_dir_magicpct; /* 37% of the dir blocksize */ __uint8_t m_mk_sharedro; /* mark shared ro on unmount */ - __uint8_t m_inode_quiesce;/* call quiesce on new inodes. */ __uint8_t m_sectbb_log; /* sectlog - BBSHIFT */ const struct xfs_nameops *m_dirnameops; /* vector of dir name ops */ int m_dirblksize; /* directory block sz--bytes */ Index: linux-2.6-xfs/fs/xfs/xfsidbg.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfsidbg.c 2008-10-22 09:40:15.000000000 +0200 +++ linux-2.6-xfs/fs/xfs/xfsidbg.c 2008-10-22 09:43:08.000000000 +0200 @@ -6523,8 +6523,8 @@ xfsidbg_xmount(xfs_mount_t *mp) kdb_printf("dalign %d swidth %d sinoalign %d attr_magicpct %d dir_magicpct %d\n", mp->m_dalign, mp->m_swidth, mp->m_sinoalign, mp->m_attr_magicpct, mp->m_dir_magicpct); - kdb_printf("mk_sharedro %d inode_quiesce %d sectbb_log %d\n", - mp->m_mk_sharedro, mp->m_inode_quiesce, mp->m_sectbb_log); + kdb_printf("mk_sharedro %d sectbb_log %d\n", + mp->m_mk_sharedro, mp->m_sectbb_log); kdb_printf("dirblkfsbs %d\n", mp->m_dirblkfsbs); kdb_printf("dirblksize %d dirdatablk 0x%Lx dirleafblk 0x%Lx dirfreeblk 0x%Lx\n", mp->m_dirblksize, -- From owner-xfs@oss.sgi.com Mon Oct 27 06:54:42 2008 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RDsfB3028560 for ; Mon, 27 Oct 2008 06:54:42 -0700 X-ASG-Debug-ID: 1225115679-42ef00ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6544D54B98E for ; Mon, 27 Oct 2008 06:54:39 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id d29g7XiyeVWTdtYA for ; Mon, 27 Oct 2008 06:54:39 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id 0C799C701B0; Mon, 27 Oct 2008 14:54:38 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id C4D4WTUGFNqs; Mon, 27 Oct 2008 14:54:37 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id 936BCC701A2; Mon, 27 Oct 2008 14:54:37 +0100 (CET) Message-ID: <4905C81B.50103@aei.mpg.de> Date: Mon, 27 Oct 2008 14:54:35 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Michal Soltys CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> In-Reply-To: <4905BC13.3030402@drutsystem.com> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225115681 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0211 1.0000 -1.8840 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.88 X-Barracuda-Spam-Status: No, SCORE=-1.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Michal Michal Soltys wrote: > > Wouldn't something like (under xfs_db) : > > getblock -b #block -n > ncheck -i #inode > > where required #inode is reported by getblock > > do the thing ? > Sounds nice, but my (ancient? 2.8.11) version of xfs_db does not know getblock (only blockget) since that also matches the command line and the usage looks about to be right, I'm currently trying that one, e.g. smartctl reports a bad LBA at 36922326. fdisk tells me the partition starts at 31069773, hence the block under question is 5852553. xfs_info tells be a bsize of 4096 which I take as the block size, thus the xfs block to look at should be 731569, right? xfs_db> blockget -b 731569 -n setting block 0/731569 to free1 setting block 0/731569 to free2 xfs_db> hmm, no inode number. Does that mean this block is not used by any file currently - which might be perfectly fine since this partition is only 31% full. Everything right so far? Cheers Carsten From owner-xfs@oss.sgi.com Mon Oct 27 09:25:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RGPfCf015095 for ; Mon, 27 Oct 2008 09:25:42 -0700 X-ASG-Debug-ID: 1225124739-517d035a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from drutsystem.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 057241488E06 for ; Mon, 27 Oct 2008 09:25:40 -0700 (PDT) Received: from drutsystem.com (drutsystem.com [80.72.38.138]) by cuda.sgi.com with ESMTP id HlJpZwgxtDNnIYAe for ; Mon, 27 Oct 2008 09:25:40 -0700 (PDT) Received: from drutsystem.com (localhost.drutsystem.com [127.0.0.1]) by drutsystem.com (Postfix) with ESMTP id 3131B9480AE; Mon, 27 Oct 2008 15:56:35 +0000 (GMT) Received: from [10.0.0.2] (87-205-173-130.adsl.inetia.pl [87.205.173.130]) by drutsystem.com (Postfix) with ESMTP id BAF379480A6; Mon, 27 Oct 2008 16:56:34 +0100 (CET) Message-ID: <4905E4B2.2010303@drutsystem.com> Date: Mon, 27 Oct 2008 16:56:34 +0100 From: Michal Soltys User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Carsten Aulbert Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <4905C81B.50103@aei.mpg.de> In-Reply-To: <4905C81B.50103@aei.mpg.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-AV-Checked: ClamAV on drutsystem.com X-Barracuda-Connect: drutsystem.com[80.72.38.138] X-Barracuda-Start-Time: 1225124741 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0534 1.0000 -1.6786 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.68 X-Barracuda-Spam-Status: No, SCORE=-1.68 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8851 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Carsten Aulbert wrote: > Michal Soltys wrote: >> >> Wouldn't something like (under xfs_db) : >> >> getblock -b #block -n >> ncheck -i #inode >> >> where required #inode is reported by getblock >> >> do the thing ? >> > > Sounds nice, but my (ancient? 2.8.11) version of xfs_db does not know > getblock (only blockget) since that also matches the command line and > the usage looks about to be right, I'm currently trying that one, e.g. > Sorry, I meant blockget. > smartctl reports a bad LBA at 36922326. fdisk tells me the partition > starts at 31069773, hence the block under question is 5852553. > > xfs_info tells be a bsize of 4096 which I take as the block size, thus > the xfs block to look at should be 731569, right? > > xfs_db> blockget -b 731569 -n > setting block 0/731569 to free1 > setting block 0/731569 to free2 > xfs_db> > > hmm, no inode number. Does that mean this block is not used by any file > currently - which might be perfectly fine since this partition is only > 31% full. > > Everything right so far? > Yes, calculations look fine. I'm not sure what exactly is the difference between free1 and free2 - someone more knowledgable would have to comment (and overally comment about this method). In my case when I check block allocated by some file, I get results such as: xfs_db> blockget -b 4584722 -n setting block 0/4584722 to data setting inode to 36231069 for block 0/4584722 inode 36231069 block 4584722 at offset 810 sb_fdblocks 1330583, aggregate AGF count 7983498 xfs_db> ncheck -i 36231069 36231069 stuff/data/arst.dat and further: xfs_db> inode 36231069 xfs_db> bmap data offset 0 startblock 4583912 (0/4583912) count 832 flag 0 Here the file lies in the first extent, taking 832*4096 blocks. From owner-xfs@oss.sgi.com Mon Oct 27 09:57:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_12 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RGvEZB016774 for ; Mon, 27 Oct 2008 09:57:15 -0700 X-ASG-Debug-ID: 1225126632-787d02610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rproxy.teamix.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A7C31AE2AFE for ; Mon, 27 Oct 2008 09:57:12 -0700 (PDT) Received: from rproxy.teamix.net (postman.teamix.net [194.150.191.120]) by cuda.sgi.com with ESMTP id n6mOazH144DechcV for ; Mon, 27 Oct 2008 09:57:12 -0700 (PDT) Received: from mango.of.teamix.net (unknown [172.21.123.1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by rproxy.teamix.net (Postfix) with ESMTP id CD2567DCA; Mon, 27 Oct 2008 17:57:10 +0100 (CET) From: Martin Steigerwald Organization: team(ix) GmbH To: Eric Sandeen X-ASG-Orig-Subj: Re: Is it possible the check an frozen XFS filesytem to avoid downtime Subject: Re: Is it possible the check an frozen XFS filesytem to avoid downtime Date: Mon, 27 Oct 2008 17:57:09 +0100 User-Agent: KMail/1.9.9 Cc: Timothy Shimmin , xfs@oss.sgi.com References: <200807141542.51613.ms@teamix.de> <200807150944.13277.ms@teamix.de> <487CC1EB.6030100@sandeen.net> In-Reply-To: <487CC1EB.6030100@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810271757.09915.ms@teamix.de> X-Barracuda-Connect: postman.teamix.net[194.150.191.120] X-Barracuda-Start-Time: 1225126633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8852 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Am Dienstag, 15. Juli 2008 schrieb Eric Sandeen: > Martin Steigerwald wrote: > > Okay... we recommended the customer to do it the safe way unmounting the > > filesystem completely. He did and the filesystem appear to be intact > > *phew*. XFS appeared to detect the in memory corruption early enough. > > > > Its a bit strange however, cause we now know that the server sports ECC > > RAM. Well we will see what memtest86+ has to say about it. > > in-memory corruption could mean, but certainly does not absolutely mean, > problematic memory. It could be, and usually is, a plain ol' bug (in > xfs or elsewhere). Ok, just as a follow up: Now we got similar XFS errors on the second backend server, this time on a local hardware RAID1 while on the first backend server it was on logical volumes on a soft RAID spread over two dislocated external hardware RAID boxes. So this appears to be an XFS bug to me. Maybe when running for long time it corrupts its in-memory structures. Fortunately we did not see errors in on-disk structures. A colleague did a kernel update on the inactive backend 1 server from 2.6.21 to 2.6.26 kernel from backports.org, tommorow backend 2 will follow. Let's see whether that solves the issue. Anyway it seems to be a hard to trigger bug and before bugging you with something in kernel 2.6.21, we at least update to the latest backports.org kernel. -- Martin Steigerwald - team(ix) GmbH - http://www.teamix.de gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90 From owner-xfs@oss.sgi.com Mon Oct 27 10:15:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RHFNbS018277 for ; Mon, 27 Oct 2008 10:15:23 -0700 X-ASG-Debug-ID: 1225127722-313e01730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DB26D54CFDA; Mon, 27 Oct 2008 10:15:22 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id vdWaHK7Zg7SJGwOL; Mon, 27 Oct 2008 10:15:22 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9RHFLqE006058; Mon, 27 Oct 2008 13:15:21 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9RHFKuT020479; Mon, 27 Oct 2008 13:15:20 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9RHFJk4011569; Mon, 27 Oct 2008 13:15:20 -0400 Message-ID: <4905F727.8030005@sandeen.net> Date: Mon, 27 Oct 2008 12:15:19 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Martin Steigerwald CC: Timothy Shimmin , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Is it possible the check an frozen XFS filesytem to avoid downtime Subject: Re: Is it possible the check an frozen XFS filesytem to avoid downtime References: <200807141542.51613.ms@teamix.de> <200807150944.13277.ms@teamix.de> <487CC1EB.6030100@sandeen.net> <200810271757.09915.ms@teamix.de> In-Reply-To: <200810271757.09915.ms@teamix.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225127722 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8853 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Martin Steigerwald wrote: > A colleague did a kernel update on the inactive backend 1 server from 2.6.21 > to 2.6.26 kernel from backports.org, tommorow backend 2 will follow. Let's > see whether that solves the issue. > > Anyway it seems to be a hard to trigger bug and before bugging you with > something in kernel 2.6.21, we at least update to the latest backports.org > kernel. Honestly, I'd try a 2.6.27 kernel if you can, a few more problems were fixed there. -Eric From owner-xfs@oss.sgi.com Mon Oct 27 15:22:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RMMISM012335 for ; Mon, 27 Oct 2008 15:22:18 -0700 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by netops-testserver-3.corp.sgi.com (Postfix) with ESMTP id B50D2908A8 for ; Mon, 27 Oct 2008 15:22:14 -0700 (PDT) Received: from [134.15.64.119] (cf-vpn-sw-corp-64-119.corp.sgi.com [134.15.64.119]) by estes.americas.sgi.com (Postfix) with ESMTP id 32E6B70001D5; Mon, 27 Oct 2008 17:22:14 -0500 (CDT) Message-ID: <49063F75.7000604@sgi.com> Date: Mon, 27 Oct 2008 17:23:49 -0500 From: Bill Kendall User-Agent: Thunderbird 1.5.0.14ubu (X11/20080502) MIME-Version: 1.0 To: mlueck@lueckdatasystems.com Cc: linux-xfs@oss.sgi.com Subject: Re: Bad day with xfsrestore, what went wrong? References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Michael Lueck wrote: > No suggestions / possible answers anyone for my question... > > Michael Lueck wrote: >> Greetings- >> >> I hope this is the NNTP equiv of the email list found on this web page: >> http://oss.sgi.com/projects/xfs/ >> >> I have been using XFS with Debian for a number of years with great >> success. Today, xfsrestore really threw me a curve ball. I am >> wondering what went wrong. >> >> I had wanted to restore from an old backup some directories that I >> discovered I had need of. I used the following syntax to get the >> restore started: >> >> xfsrestore -J -E -f /mnt/ext_backup/ldslnx01/20061220/data -s >> shares/data -i -v verbose /srv >> >> I selected some directories to restore through the interactive >> interface, then allowed it to restore the specified files. >> >> What it ended up doing, HOWEVER, was to restore every file present in >> that old backup that was no longer on disk! >> >> Thus, what went wrong? >> >> Thanks! > Hi Michael, I tried to reproduce this using the command line you supplied, but everything worked as expected for me. Perhaps try it without the -i (so that only subtrees given with -s are restored), just to rule out the possibility that you inadvertently added all files to the restore list. Bill From owner-xfs@oss.sgi.com Mon Oct 27 16:35:26 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNZPts021386 for ; Mon, 27 Oct 2008 16:35:26 -0700 X-ASG-Debug-ID: 1225150523-420603d10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A69754F2D0 for ; Mon, 27 Oct 2008 16:35:24 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id pJoSYVFWH2ln8OOf for ; Mon, 27 Oct 2008 16:35:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219376556" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:05:21 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KubcC-0007ZK-Nu; Tue, 28 Oct 2008 10:35:16 +1100 Date: Tue, 28 Oct 2008 10:35:16 +1100 From: Dave Chinner To: Michal Soltys Cc: Carsten Aulbert , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081027233516.GG4985@disturbed> Mail-Followup-To: Michal Soltys , Carsten Aulbert , xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4905BC13.3030402@drutsystem.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150525 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0377 1.0000 -1.7778 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.78 X-Barracuda-Spam-Status: No, SCORE=-1.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8865 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 02:03:15PM +0100, Michal Soltys wrote: > Carsten Aulbert wrote: >> >> Dave Chinner wrote: >>> Use xfs_bmap to find the location on disk of the extents in each >>> file. Recurse over the filesystem until you find the file that owns >>> the block that went bad. >> >> Sounds like a tedious but doable route to take. >> > > Wouldn't something like (under xfs_db) : > > getblock -b #block -n > ncheck -i #inode > > where required #inode is reported by getblock > > do the thing ? Blockget - yes it will. It just does the traversal internally to build the mapping. With large filesystems xfs_db can run out of memory building the mapping, which is why I've used the explicit traverse+xfs_bmap method in the past.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:37:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNbEdl021801 for ; Mon, 27 Oct 2008 16:37:14 -0700 X-ASG-Debug-ID: 1225150633-30da03b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D49A12AE0C9 for ; Mon, 27 Oct 2008 16:37:13 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id vyp3HLqVKgTenOdF for ; Mon, 27 Oct 2008 16:37:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219378081" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:07:00 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kubdr-0007bX-TE; Tue, 28 Oct 2008 10:36:59 +1100 Date: Tue, 28 Oct 2008 10:36:59 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/2] wire up ->open for directories Subject: Re: [PATCH 1/2] wire up ->open for directories Message-ID: <20081027233659.GH4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133013.GB30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133013.GB30607@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150634 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:30:13AM -0400, Christoph Hellwig wrote: > Currently there's no ->open method set for directories on XFS. That > means we don't perform any check for opening too large directories > without O_LARGEFILE, we don't check for shut down filesystems, and we > don't actually do the readahead for the first block in the directory. > > Instead of just setting the directories open routine to xfs_file_open > we merge the shutdown check directly into xfs_file_open and create > a new xfs_dir_open that first calls xfs_file_open and then performs > the readahead for block 0. > > (First sent on September 29th) > > > Signed-off-by: Christoph Hellwig Reviewed-by; Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:37:30 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNbSIR021900 for ; Mon, 27 Oct 2008 16:37:30 -0700 X-ASG-Debug-ID: 1225150646-340f00990000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E37FE1492814 for ; Mon, 27 Oct 2008 16:37:27 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id jDr2fFPF06agBK85 for ; Mon, 27 Oct 2008 16:37:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219378398" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:07:21 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KubeD-0007c5-4A; Tue, 28 Oct 2008 10:37:21 +1100 Date: Tue, 28 Oct 2008 10:37:21 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/2] allow inode64 mount option on 32 bit systems Subject: Re: [PATCH 2/2] allow inode64 mount option on 32 bit systems Message-ID: <20081027233721.GI4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133015.GC30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133015.GC30607@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150647 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8865 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:30:15AM -0400, Christoph Hellwig wrote: > Now that we've stopped using the Linux inode cache when can trivally > support the inode64 mount option on 32bit architectures. As far as the > kernel and most userspace is concerned this works perfectly, but > applications still using really old stat and readdir interfaces will get > an EOVERFLOW error when hitting an inode number not fitting into 32 > bits (that problem of course also exists when using these applications > on a 64bit kernel). > > Note that because inode64 is simply a mount option we can currently > mount a filesystem having > 32 bit inode numbers and cause a variety of > problems, all this is solved but this patch which enables XFS_BIG_INUMS, > even when inode64 is not used. > > (First sent on October 18th) > > > Signed-off-by: Christoph Hellwig Reviewed-by; Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:38:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNcB0O022421 for ; Mon, 27 Oct 2008 16:38:11 -0700 X-ASG-Debug-ID: 1225150690-313803e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 958C2AEA949 for ; Mon, 27 Oct 2008 16:38:10 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id gbWIf7ABC7He1BvV for ; Mon, 27 Oct 2008 16:38:10 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219378976" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:07:57 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kubem-0007cy-PX; Tue, 28 Oct 2008 10:37:56 +1100 Date: Tue, 28 Oct 2008 10:37:56 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] remove bhv_statvfs_t typedef Subject: Re: [PATCH 1/3] remove bhv_statvfs_t typedef Message-ID: <20081027233756.GJ4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133331.GB31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133331.GB31125@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150691 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:33:31AM -0400, Christoph Hellwig wrote: > > Signed-off-by: Christoph Hellwig Reviewed-by; Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:41:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNf2T5023021 for ; Mon, 27 Oct 2008 16:41:03 -0700 X-ASG-Debug-ID: 1225150860-3719002c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E48F11312C2B for ; Mon, 27 Oct 2008 16:41:01 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Lhuiqaknq33k8HSy for ; Mon, 27 Oct 2008 16:41:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219381905" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:10:49 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KubhX-0007hH-FJ; Tue, 28 Oct 2008 10:40:47 +1100 Date: Tue, 28 Oct 2008 10:40:47 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] remove xfs_vfs.h Subject: Re: [PATCH 2/3] remove xfs_vfs.h Message-ID: <20081027234047.GK4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133334.GC31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133334.GC31125@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150861 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:33:34AM -0400, Christoph Hellwig wrote: > The only thing left are the forced shutdown flags and freeze macros which > fit into xfs_mount.h much better. > > > Signed-off-by: Christoph Hellwig Reviewed-by; Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:41:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNfR1g023204 for ; Mon, 27 Oct 2008 16:41:27 -0700 X-ASG-Debug-ID: 1225150886-371b003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E2331312C30 for ; Mon, 27 Oct 2008 16:41:26 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id kFy0aWzeT32z3u8t for ; Mon, 27 Oct 2008 16:41:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219382358" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 10:11:24 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kubi8-0007iA-7E; Tue, 28 Oct 2008 10:41:24 +1100 Date: Tue, 28 Oct 2008 10:41:24 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] remove xfs_vfsops.h Subject: Re: [PATCH 3/3] remove xfs_vfsops.h Message-ID: <20081027234124.GL4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133337.GD31125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133337.GD31125@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225150887 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:33:37AM -0400, Christoph Hellwig wrote: > The only think left is xfs_do_force_shutdown which already has a defintion > in xfs_mount.h, too. > > > Signed-off-by: Christoph Hellwig Reviewed-by; Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 16:59:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9RNxtPt024704 for ; Mon, 27 Oct 2008 16:59:55 -0700 X-ASG-Debug-ID: 1225151994-4882009f0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ciao.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DCECA54F4F2 for ; Mon, 27 Oct 2008 16:59:54 -0700 (PDT) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by cuda.sgi.com with ESMTP id s3eMfXAtTcBBXYfa for ; Mon, 27 Oct 2008 16:59:54 -0700 (PDT) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Kuc01-0007n8-Mx for linux-xfs@oss.sgi.com; Mon, 27 Oct 2008 23:59:53 +0000 Received: from 75-134-105-39.dhcp.aldl.mi.charter.com ([75.134.105.39]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 27 Oct 2008 23:59:53 +0000 Received: from mlueck by 75-134-105-39.dhcp.aldl.mi.charter.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 27 Oct 2008 23:59:53 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Michael Lueck X-ASG-Orig-Subj: Re: Bad day with xfsrestore, what went wrong? Subject: Re: Bad day with xfsrestore, what went wrong? Date: Mon, 27 Oct 2008 19:59:50 -0400 Organization: Lueck Data Systems Lines: 20 Message-ID: References: <49063F75.7000604@sgi.com> Reply-To: mlueck@lueckdatasystems.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 75-134-105-39.dhcp.aldl.mi.charter.com User-Agent: Thunderbird 2.0.0.16 (X11/20080707) In-Reply-To: <49063F75.7000604@sgi.com> Sender: news X-Barracuda-Connect: main.gmane.org[80.91.229.2] X-Barracuda-Start-Time: 1225151994 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8866 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Bill Kendall wrote: > I tried to reproduce this using the command line you supplied, but > everything worked as expected for me. Glad to hear that. Seems my tried and true syntax _can_ still work. > Perhaps try it without the -i (so that only subtrees given with -s are restored), just to rule out > the possibility that you inadvertently added all files to the restore list. Enough putzing with a production server I think. It was odd that it only put back files present in that old backup set and did not overwrite everything... thankfully! Anyway, thanks for checking / verifying my usual restore syntax that it is the correct syntax. -- Michael Lueck Lueck Data Systems http://www.lueckdatasystems.com/ From owner-xfs@oss.sgi.com Mon Oct 27 19:10:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S2AADg032198 for ; Mon, 27 Oct 2008 19:10:10 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 79B578F80BF; Mon, 27 Oct 2008 19:10:05 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA01471; Tue, 28 Oct 2008 13:10:02 +1100 Message-ID: <49067479.6070604@sgi.com> Date: Tue, 28 Oct 2008 13:10:01 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: mlueck@lueckdatasystems.com CC: linux-xfs@oss.sgi.com Subject: Re: Bad day with xfsrestore, what went wrong? References: <49063F75.7000604@sgi.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Hi Michael, Michael Lueck wrote: > xfsrestore -J -E -f /mnt/ext_backup/ldslnx01/20061220/data -s shares/data -i -v verbose /srv > Bill Kendall wrote: > >> I tried to reproduce this using the command line you supplied, but >> everything worked as expected for me. > > Glad to hear that. Seems my tried and true syntax _can_ still work. > >> Perhaps try it without the -i (so that only subtrees given with -s are >> restored), just to rule out >> the possibility that you inadvertently added all files to the restore >> list. > > Enough putzing with a production server I think. > > It was odd that it only put back files present in that old backup set > and did not overwrite everything... thankfully! > Maybe the -E option helped you out there. -E Prevents xfsrestore from overwriting newer versions of files. The inode modification time of the on-media file is com‐ pared to the inode modification time of corresponding file in the dest directory. The file is restored only if the on-media version is newer than the version in the dest directory. The inode modification time of a file can be displayed with the ls -lc command. --Tim From owner-xfs@oss.sgi.com Mon Oct 27 19:16:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S2Gv2p000319 for ; Mon, 27 Oct 2008 19:16:58 -0700 X-ASG-Debug-ID: 1225160215-380203940000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ciao.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 399A41495725 for ; Mon, 27 Oct 2008 19:16:56 -0700 (PDT) Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by cuda.sgi.com with ESMTP id ZyQa614F02ecdw7F for ; Mon, 27 Oct 2008 19:16:56 -0700 (PDT) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Kue8a-0003sD-Ht for linux-xfs@oss.sgi.com; Tue, 28 Oct 2008 02:16:52 +0000 Received: from 75-134-105-39.dhcp.aldl.mi.charter.com ([75.134.105.39]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 28 Oct 2008 02:16:52 +0000 Received: from mlueck by 75-134-105-39.dhcp.aldl.mi.charter.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 28 Oct 2008 02:16:52 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Michael Lueck X-ASG-Orig-Subj: Re: Bad day with xfsrestore, what went wrong? Subject: Re: Bad day with xfsrestore, what went wrong? Date: Mon, 27 Oct 2008 22:16:47 -0400 Organization: Lueck Data Systems Lines: 17 Message-ID: References: <49063F75.7000604@sgi.com> <49067479.6070604@sgi.com> Reply-To: mlueck@lueckdatasystems.com Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 75-134-105-39.dhcp.aldl.mi.charter.com User-Agent: Thunderbird 2.0.0.16 (X11/20080707) In-Reply-To: <49067479.6070604@sgi.com> Sender: news X-Barracuda-Connect: main.gmane.org[80.91.229.2] X-Barracuda-Start-Time: 1225160217 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0169 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8872 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Timothy Shimmin wrote: > Maybe the -E option helped you out there. > > -E Prevents xfsrestore from overwriting newer versions of files. fffffeeeeeeeewwwwwwwwww!!!!!!!!!!! :-) Thank you Tim! You put a smile on my face. I worked out that syntax about 5 years ago, keep it in a text file, update as needed, and paste it into an SSH session. That is why I was so surprised that "something" went wrong. Thanks again! -- Michael Lueck Lueck Data Systems http://www.lueckdatasystems.com/ From owner-xfs@oss.sgi.com Mon Oct 27 19:53:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S2rK3a002326 for ; Mon, 27 Oct 2008 19:53:22 -0700 X-ASG-Debug-ID: 1225162398-7253008b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C32881495763 for ; Mon, 27 Oct 2008 19:53:18 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id jVqXXaxVC71P99oj for ; Mon, 27 Oct 2008 19:53:18 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219541095" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 13:23:17 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kuehn-0001cX-RG; Tue, 28 Oct 2008 13:53:15 +1100 Date: Tue, 28 Oct 2008 13:53:15 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] kill sys_cred Subject: Re: [PATCH 1/3] kill sys_cred Message-ID: <20081028025315.GN4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133635.GB761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133635.GB761@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225162400 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0038 1.0000 -1.9964 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8875 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:36:35AM -0400, Christoph Hellwig wrote: > capable_cred has been unused for a while so we can kill it and sys_cred. > That also means the cred argument to xfs_setattr and > xfs_change_file_space can be removed now. > > (First sent on Semptember 29th) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 19:54:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S2sc57002567 for ; Mon, 27 Oct 2008 19:54:39 -0700 X-ASG-Debug-ID: 1225162476-7254009f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55C8A1495774 for ; Mon, 27 Oct 2008 19:54:37 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id WCkqTTW2vyQeP51n for ; Mon, 27 Oct 2008 19:54:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlYDAPgaBkl5LE2tgWdsb2JhbACTfwEBFiKyR4NP X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="241673217" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail05.adl2.internode.on.net with ESMTP; 28 Oct 2008 13:24:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kuej3-0002Xk-DD; Tue, 28 Oct 2008 13:54:33 +1100 Date: Tue, 28 Oct 2008 13:54:33 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, Tim Shimmin X-ASG-Orig-Subj: Re: [PATCH 2/3] remove restricted_chown parameter Subject: Re: [PATCH 2/3] remove restricted_chown parameter Message-ID: <20081028025433.GO4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, Tim Shimmin References: <20081027133637.GC761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133637.GC761@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225162478 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8875 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:36:37AM -0400, Christoph Hellwig wrote: > From: Tim Shimmin > > On Linux all filesystems are supposed to be operating under > Posix' restricted chown. Restricted chown means it restricts > chown to the owner unless you have CAP_FOWNER. > > [hch: forward-ported to the current tree] > > > Signed-off-by: Tim Shimmin > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 20:00:46 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S30kAV003308 for ; Mon, 27 Oct 2008 20:00:46 -0700 X-ASG-Debug-ID: 1225162845-488d03d10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C35C854F99D for ; Mon, 27 Oct 2008 20:00:46 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id mk6syfa1bySI7BbO for ; Mon, 27 Oct 2008 20:00:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,495,1220193000"; d="scan'208";a="219546251" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 13:30:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kueoz-0004A4-8J; Tue, 28 Oct 2008 14:00:41 +1100 Date: Tue, 28 Oct 2008 14:00:41 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] use inode_change_ok for setattr permission checking Subject: Re: [PATCH 3/3] use inode_change_ok for setattr permission checking Message-ID: <20081028030040.GP4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133640.GD761@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133640.GD761@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225162846 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0194 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8875 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:36:40AM -0400, Christoph Hellwig wrote: > Instead of implementing our own checks use inode_change_ok to check for > nessecary permission in setattr. There is a slight change in behaviour ^^^^^^^^^ necessary > as inode_change_ok doesn't allow i_mode updates to add the suid or sgid > without superuser privilegues while the old XFS code just stripped away > those bits from the file mode. Better to get an error than silently lose them, I think. > (First sent on Semptember 29th) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 21:47:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S4lbt2013997 for ; Mon, 27 Oct 2008 21:47:37 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id A74F68F80AB; Mon, 27 Oct 2008 21:47:30 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA05846; Tue, 28 Oct 2008 15:47:24 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id DF87058AE1E9; Tue, 28 Oct 2008 15:47:23 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 988918 - kill sys_cred Message-Id: <20081028044723.DF87058AE1E9@chook.melbourne.sgi.com> Date: Tue, 28 Oct 2008 15:47:23 +1100 (EST) From: tes@sgi.com (Tim Shimmin) X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean kill sys_cred capable_cred has been unused for a while so we can kill it and sys_cred. That also means the cred argument to xfs_setattr and xfs_change_file_space can be removed now. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Date: Tue Oct 28 15:45:57 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/2.6.x-xfs-quilt Inspected by: hch@lst.de,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32412a fs/xfs/xfs_vnodeops.c - 1.783 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.783&r2=text&tr2=1.782&f=h fs/xfs/xfs_acl.c - 1.80 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_acl.c.diff?r1=text&tr1=1.80&r2=text&tr2=1.79&f=h fs/xfs/linux-2.6/xfs_ioctl.c - 1.174 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.174&r2=text&tr2=1.173&f=h fs/xfs/linux-2.6/xfs_globals.h - 1.21 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_globals.h.diff?r1=text&tr1=1.21&r2=text&tr2=1.20&f=h fs/xfs/linux-2.6/xfs_globals.c - 1.75 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_globals.c.diff?r1=text&tr1=1.75&r2=text&tr2=1.74&f=h fs/xfs/linux-2.6/xfs_cred.h - 1.26 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_cred.h.diff?r1=text&tr1=1.26&r2=text&tr2=1.25&f=h fs/xfs/linux-2.6/xfs_iops.c - 1.303 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.303&r2=text&tr2=1.302&f=h fs/xfs/linux-2.6/xfs_ksyms.c - 1.96 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.96&r2=text&tr2=1.95&f=h fs/xfs/dmapi/xfs_dm.c - 1.81 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/dmapi/xfs_dm.c.diff?r1=text&tr1=1.81&r2=text&tr2=1.80&f=h fs/xfs/xfs_vnodeops.h - 1.20 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.h.diff?r1=text&tr1=1.20&r2=text&tr2=1.19&f=h - kill sys_cred From owner-xfs@oss.sgi.com Mon Oct 27 22:09:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_65 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S592Yx015854 for ; Mon, 27 Oct 2008 22:09:02 -0700 X-ASG-Debug-ID: 1225170539-4bbb03be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B177C10EE4A9 for ; Mon, 27 Oct 2008 22:09:00 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id Sgz4eysTs8GfOO1b for ; Mon, 27 Oct 2008 22:09:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,496,1220193000"; d="scan'208";a="219660866" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 15:38:53 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kugp2-0005mk-96; Tue, 28 Oct 2008 16:08:52 +1100 Date: Tue, 28 Oct 2008 16:08:52 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/7] factor out xfs_read_agi helper Subject: Re: [PATCH 1/7] factor out xfs_read_agi helper Message-ID: <20081028050852.GA17077@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133901.GB1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133901.GB1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225170541 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8880 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:01AM -0400, Christoph Hellwig wrote: > Add a helper to read the AGI header and perform basic verification. > Based on hunks from a larger patch from Dave Chinner. > > (First sent on Juli 23rd) Couple of small things. > @@ -1882,45 +1862,23 @@ xfs_iunlink_remove( > short bucket_index; > int offset, last_offset = 0; > int error; > - int agi_ok; > > - /* > - * First pull the on-disk inode from the AGI unlinked list. > - */ > mp = tp->t_mountp; > - > agno = XFS_INO_TO_AGNO(mp, ip->i_ino); > - agdaddr = XFS_AG_DADDR(mp, agno, XFS_AGI_DADDR(mp)); > > /* > * Get the agi buffer first. It ensures lock ordering > * on the list. > */ > - error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, agdaddr, > - XFS_FSS_TO_BB(mp, 1), 0, &agibp); > + error = xfs_read_agi(mp, tp, agno, &agibp); > if (error) { > cmn_err(CE_WARN, > - "xfs_iunlink_remove: xfs_trans_read_buf() returned an error %d on %s. Returning error.", > + "xfs_iunlink_remove: xfs_read_agi() returned an error %d on %s. Returning error.", > error, mp->m_fsname); > return error; > } Do we need this warning here? xfs_read_agi() will have already issued an error, right? Also, xfs_fs_cmn_err() is probably better to use here rather than manually encoding the fsname into the error message.... > @@ -3295,22 +3297,18 @@ xlog_recover_process_iunlinks( > > /* > * Reacquire the agibuffer and continue around > - * the loop. > + * the loop. This should never fail as we know > + * the buffer was good earlier on. > */ > - agibp = xfs_buf_read(mp->m_ddev_targp, > - XFS_AG_DADDR(mp, agno, > - XFS_AGI_DADDR(mp)), > - XFS_FSS_TO_BB(mp, 1), 0); > - if (XFS_BUF_ISERROR(agibp)) { > - xfs_ioerror_alert( > - "xlog_recover_process_iunlinks(#2)", > - log->l_mp, agibp, > - XFS_AG_DADDR(mp, agno, > - XFS_AGI_DADDR(mp))); > + error = xfs_read_agi(mp, NULL, agno, &agibp); > + ASSERT(error == 0); > + if (error) { > + xfs_fs_cmn_err(CE_ALERT, mp, > + "xlog_recover_process_iunlinks(#2)" > + "agi read failed agno %d error %d", > + agno, error); Move the assert into the if (error) branch after the message is logged so that it is clear the reason for the assert failure. Otherwise seems fine. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 22:11:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S5BrKA016265 for ; Mon, 27 Oct 2008 22:11:53 -0700 X-ASG-Debug-ID: 1225170712-14df01460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 977D455030B for ; Mon, 27 Oct 2008 22:11:52 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id lvJSRh5fhwFWJcua for ; Mon, 27 Oct 2008 22:11:52 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,496,1220193000"; d="scan'208";a="219663076" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 15:41:45 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kugrm-0007jW-I9; Tue, 28 Oct 2008 16:11:42 +1100 Date: Tue, 28 Oct 2008 16:11:42 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/7] factor out xfs_read_agf helper Subject: Re: [PATCH 2/7] factor out xfs_read_agf helper Message-ID: <20081028051142.GB17077@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133903.GC1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133903.GC1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225170713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0162 1.0000 -1.9156 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8879 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:03AM -0400, Christoph Hellwig wrote: > Add a helper to read the AGF header and perform basic verification. > Based on hunks from a larger patch from Dave Chinner. > > (First sent on Juli 23rd) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 22:17:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S5Hcpq017111 for ; Mon, 27 Oct 2008 22:17:38 -0700 X-ASG-Debug-ID: 1225171057-7db501440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 998A613130B6 for ; Mon, 27 Oct 2008 22:17:37 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id hiWTQLCZgpWmF24a for ; Mon, 27 Oct 2008 22:17:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,496,1220193000"; d="scan'208";a="219667690" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 15:47:36 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KugxS-00034D-57; Tue, 28 Oct 2008 16:17:34 +1100 Date: Tue, 28 Oct 2008 16:17:34 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Subject: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Message-ID: <20081028051734.GC17077@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133907.GD1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133907.GD1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225171058 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8880 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:07AM -0400, Christoph Hellwig wrote: > Move all fields from xlog_iclog_fields_t into xlog_in_core_t instead of having > them in a substructure and the using #defines to make it look like they were > directly in xlog_in_core_t. Also document that xlog_in_core_2_t is grossly > misnamed, and make all references to it typesafe. > > (First sent on Semptember 15th) Couple of things. > @@ -361,41 +371,11 @@ typedef struct xlog_iclog_fields { > > /* reference counts need their own cacheline */ > atomic_t ic_refcnt ____cacheline_aligned_in_smp; > -} xlog_iclog_fields_t; > - > -typedef union xlog_in_core2 { > - xlog_rec_header_t hic_header; > - xlog_rec_ext_header_t hic_xheader; > - char hic_sector[XLOG_HEADER_SIZE]; > -} xlog_in_core_2_t; > - > -typedef struct xlog_in_core { > - xlog_iclog_fields_t hic_fields; > - xlog_in_core_2_t *hic_data; > + xlog_in_core_2_t *ic_data; > +#define ic_header ic_data->hic_header > } xlog_in_core_t; The ic_data pointer should not be on the same cacheline as the reference count seeing as it is read-only field. Otherwise seems ok. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 23:09:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S69D35020990 for ; Mon, 27 Oct 2008 23:09:13 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 93A279088C; Mon, 27 Oct 2008 23:09:06 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA07369; Tue, 28 Oct 2008 16:50:52 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 16305) id 3CCD058AE1E9; Tue, 28 Oct 2008 16:50:52 +1100 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: TAKE 988919 - remove restricted chown parameter from xfs linux Message-Id: <20081028055052.3CCD058AE1E9@chook.melbourne.sgi.com> Date: Tue, 28 Oct 2008 16:50:52 +1100 (EST) From: tes@sgi.com (Tim Shimmin) X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean remove restricted chown parameter from xfs linux On Linux all filesystems are supposed to be operating under Posix' restricted chown. Restricted chown means it restricts chown to the owner unless you have CAP_FOWNER. NOTE: that 2 files outside of fs/xfs have been modified too for this change. Signed-off-by: Tim Shimmin Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Date: Tue Oct 28 16:49:18 EST 2008 Workarea: chook.melbourne.sgi.com:/build/tes/2.6.x-xfs-quilt Inspected by: hch@lst.de,david@fromorbit.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32413a fs/xfs/xfs_vnodeops.c - 1.784 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.784&r2=text&tr2=1.783&f=h fs/xfs/linux-2.6/xfs_ioctl.c - 1.175 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.175&r2=text&tr2=1.174&f=h fs/xfs/linux-2.6/xfs_globals.c - 1.76 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_globals.c.diff?r1=text&tr1=1.76&r2=text&tr2=1.75&f=h fs/xfs/linux-2.6/xfs_linux.h - 1.172 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.172&r2=text&tr2=1.171&f=h fs/xfs/linux-2.6/xfs_sysctl.c - 1.47 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.c.diff?r1=text&tr1=1.47&r2=text&tr2=1.46&f=h fs/xfs/linux-2.6/xfs_sysctl.h - 1.32 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.h.diff?r1=text&tr1=1.32&r2=text&tr2=1.31&f=h - remove restricted chown parameter from xfs linux Modid: 2.6.x-xfs-melb:linux:32413b Documentation/filesystems/xfs.txt - 1.22 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/Documentation/filesystems/xfs.txt.diff?r1=text&tr1=1.22&r2=text&tr2=1.21&f=h kernel/sysctl_check.c - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.6-xfs/kernel/sysctl_check.c.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h - remove restricted chown parameter from xfs linux From owner-xfs@oss.sgi.com Mon Oct 27 23:16:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6GJ6n021671 for ; Mon, 27 Oct 2008 23:16:19 -0700 X-ASG-Debug-ID: 1225174573-7da902420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp1.linux-foundation.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2538810EE6B4 for ; Mon, 27 Oct 2008 23:16:13 -0700 (PDT) Received: from smtp1.linux-foundation.org (smtp1.linux-foundation.org [140.211.169.13]) by cuda.sgi.com with ESMTP id p5rwG4nU0SFRKb3w for ; Mon, 27 Oct 2008 23:16:13 -0700 (PDT) Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [140.211.169.55]) by smtp1.linux-foundation.org (8.14.2/8.13.5/Debian-3ubuntu1.1) with ESMTP id m9S6FZ2D016798 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 27 Oct 2008 23:15:36 -0700 Received: from y.localdomain (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with SMTP id m9S6FXOF019985; Mon, 27 Oct 2008 23:15:34 -0700 Date: Mon, 27 Oct 2008 23:15:33 -0700 From: Andrew Morton To: Takashi Sato Cc: Christoph Hellwig , "linux-fsdevel@vger.kernel.org" , "dm-devel@redhat.com" , "viro@ZenIV.linux.org.uk" , "linux-ext4@vger.kernel.org" , "xfs@oss.sgi.com" , "mtk.manpages@googlemail.com" , "axboe@kernel.dk" , "linux-kernel@vger.kernel.org" X-ASG-Orig-Subj: Re: [PATCH 2/3] Implement generic freeze feature Subject: Re: [PATCH 2/3] Implement generic freeze feature Message-Id: <20081027231533.96c42a78.akpm@linux-foundation.org> In-Reply-To: <20081027215855t-sato@mail.jp.nec.com> References: <20081027215855t-sato@mail.jp.nec.com> X-Mailer: Sylpheed 2.4.8 (GTK+ 2.12.5; x86_64-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-MIMEDefang-Filter: lf$Revision: 1.188 $ X-Scanned-By: MIMEDefang 2.63 on 140.211.169.13 X-Barracuda-Connect: smtp1.linux-foundation.org[140.211.169.13] X-Barracuda-Start-Time: 1225174574 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8882 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 27 Oct 2008 21:58:54 +0900 Takashi Sato wrote: > -void thaw_bdev(struct block_device *bdev, struct super_block *sb) > +int thaw_bdev(struct block_device *bdev, struct super_block *sb) > { > + int error = 0; > + > + mutex_lock(&bdev->bd_fsfreeze_mutex); > + if (!bdev->bd_fsfreeze_count) { > + mutex_unlock(&bdev->bd_fsfreeze_mutex); > + return -EINVAL; This would be a programming error, yes? If so, a WARN_ON is more appropriate than a silent runtime error. > + } From owner-xfs@oss.sgi.com Mon Oct 27 23:25:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6PYCw022718 for ; Mon, 27 Oct 2008 23:25:34 -0700 X-ASG-Debug-ID: 1225175132-3cf802280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 042021B662BB for ; Mon, 27 Oct 2008 23:25:32 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id zZhwob5SsTBHzWlx for ; Mon, 27 Oct 2008 23:25:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219723787" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 16:55:27 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kui16-0005gk-J0; Tue, 28 Oct 2008 17:25:24 +1100 Date: Tue, 28 Oct 2008 17:25:24 +1100 From: Dave Chinner To: Nick Piggin Cc: Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org X-ASG-Orig-Subj: Re: deadlock with latest xfs Subject: Re: deadlock with latest xfs Message-ID: <20081028062524.GQ4985@disturbed> Mail-Followup-To: Nick Piggin , Lachlan McIlroy , Christoph Hellwig , xfs-oss , linux-mm@kvack.org References: <4900412A.2050802@sgi.com> <20081026005351.GK18495@disturbed> <20081026025013.GL18495@disturbed> <200810281702.17135.nickpiggin@yahoo.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200810281702.17135.nickpiggin@yahoo.com.au> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225175134 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8883 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Oct 28, 2008 at 05:02:16PM +1100, Nick Piggin wrote: > On Sunday 26 October 2008 13:50, Dave Chinner wrote: > > > [1] I don't see how any of the XFS changes we made make this easier to hit. > > What I suspect is a VM regression w.r.t. memory reclaim because this is > > the second problem since 2.6.26 that appears to be a result of memory > > allocation failures in places that we've never, ever seen failures before. > > > > The other new failure is this one: > > > > http://bugzilla.kernel.org/show_bug.cgi?id=11805 > > > > which is an alloc_pages(GFP_KERNEL) failure.... > > > > mm-folk - care to weight in? > > order-0 alloc page GFP_KERNEL can fail sometimes. If it is called > from reclaim or PF_MEMALLOC thread; if it is OOM-killed; fault > injection. > > This is even the case for __GFP_NOFAIL allocations (which basically > are buggy anyway). > > Not sure why it might have started happening, but I didn't see > exactly which alloc_pages you are talking about? If it is via slab, > then maybe some parameters have changed (eg. in SLUB) which is > using higher order allocations. In fs/xfs/linux-2.6/xfs_buf.c::xfs_buf_get_noaddr(). It's doing a single page allocation at a time. It may be that this failure is caused by an increase base memory consumption of the kernel as this failure was reported in an lguest and reproduced with a simple 'modprobe xfs ; mount /dev/xxx /mnt/xfs' command. Maybe the lguest had very little memory available to begin with and trying to allocate 2MB of pages for 8x256k log buffers may have been too much for it... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 23:40:48 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6eldi023804 for ; Mon, 27 Oct 2008 23:40:48 -0700 X-ASG-Debug-ID: 1225176046-5cc100b90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D564EAF0D1A for ; Mon, 27 Oct 2008 23:40:47 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id CXNltfaqoI2WGOcF for ; Mon, 27 Oct 2008 23:40:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219734627" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:10:44 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuiFu-0004Kk-1T; Tue, 28 Oct 2008 17:40:42 +1100 Date: Tue, 28 Oct 2008 17:40:41 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/7] kill xfs_ialloc_log_di Subject: Re: [PATCH 4/7] kill xfs_ialloc_log_di Message-ID: <20081028064041.GR4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133909.GE1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133909.GE1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225176047 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:09AM -0400, Christoph Hellwig wrote: > xfs_ialloc_log_di is only used to log the full inode core + di_next_unlinked. > That means all the offset magic is not nessecary and we can simply use > xfs_trans_log_buf directly. Also add a comment describing what we should do > here instead. > > (First sent on October 7th) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 23:41:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=AWL,BAYES_00,SUBJ_URGENT autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6ftOb024016 for ; Mon, 27 Oct 2008 23:41:56 -0700 X-ASG-Debug-ID: 1225176114-3d16029c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3BBF1B66418 for ; Mon, 27 Oct 2008 23:41:54 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 5jaxmGiwbcPKL0HH for ; Mon, 27 Oct 2008 23:41:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219735311" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:11:50 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuiH0-00052B-93; Tue, 28 Oct 2008 17:41:50 +1100 Date: Tue, 28 Oct 2008 17:41:50 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/2] Urgent queue Subject: Re: [PATCH 0/2] Urgent queue Message-ID: <20081028064150.GS4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133010.GA30607@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133010.GA30607@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225176115 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0344 1.0000 -1.7984 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.80 X-Barracuda-Spam-Status: No, SCORE=-1.80 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8883 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:30:10AM -0400, Christoph Hellwig wrote: > Two patches that are small bugfixes / features that are what I consider the > immediately merge queue. The entire set of 30 patches has passed XFSQA on my test box.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Mon Oct 27 23:56:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6uXMw025133 for ; Mon, 27 Oct 2008 23:56:34 -0700 X-ASG-Debug-ID: 1225176991-118202e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 06E145506FF for ; Mon, 27 Oct 2008 23:56:32 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id G0Gq3oDWxa06dCet for ; Mon, 27 Oct 2008 23:56:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219745071" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:26:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuiVB-0002gG-7J; Tue, 28 Oct 2008 17:56:29 +1100 Date: Tue, 28 Oct 2008 17:56:29 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/7] kill xfs_dinode_core_t Subject: Re: [PATCH 5/7] kill xfs_dinode_core_t Message-ID: <20081028065629.GT4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133912.GF1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133912.GF1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225176993 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:12AM -0400, Christoph Hellwig wrote: > Now that we have a separate xfs_icdinode_t for the in-core inode which > gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core > split - the fact that part of the structure gets logged through the inode > log item and a small part not can better be described in a comment. > > All sizeof operations on the dinode_core either really wanted the > icdinode and are switched to that one, or had already added the size > of the agi unlinked list pointer. Later both will be replaced with > helpers once we get the larger CRC-enabled dinode. > > Removing the data and attribute fork unions also has the advantage that > xfs_dinode.h doesn't need to pull in every header under the sun. > > While we're at it also add some more comments describing the dinode > structure. > > (First sent on October 7th) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 00:11:51 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S7BoPd028379 for ; Tue, 28 Oct 2008 00:11:51 -0700 X-ASG-Debug-ID: 1225177909-728401320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A4B0C54ED93 for ; Tue, 28 Oct 2008 00:11:49 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id RkruxnDihSeXMJAg for ; Tue, 28 Oct 2008 00:11:49 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id A0A0B2181CF; Tue, 28 Oct 2008 08:11:48 +0100 (CET) X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GW1bIuj9RDRf; Tue, 28 Oct 2008 08:11:48 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id 33F43218052; Tue, 28 Oct 2008 08:11:48 +0100 (CET) Message-ID: <4906BB32.8080403@aei.mpg.de> Date: Tue, 28 Oct 2008 08:11:46 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Michal Soltys , david@fromorbit.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> In-Reply-To: <20081027233516.GG4985@disturbed> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225177910 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1466 1.0000 -1.1205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.12 X-Barracuda-Spam-Status: No, SCORE=-1.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Hi Dave et al Dave Chinner wrote: > Blockget - yes it will. It just does the traversal internally to > build the mapping. With large filesystems xfs_db can run out of > memory building the mapping, which is why I've used the > explicit traverse+xfs_bmap method in the past.... How expensive is this operation (rule of thumb)? We will mostly use this on compute nodes where the partition is 500-750 GB large and the node has 8 GB of memory. For the simple test where I apparently hit thin air I have not seen anything bad in terms of memory consumption. Cheers Carsten From owner-xfs@oss.sgi.com Mon Oct 27 23:58:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S6wHDa025478 for ; Mon, 27 Oct 2008 23:58:18 -0700 X-ASG-Debug-ID: 1225177096-2fbf00cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC2881B66327 for ; Mon, 27 Oct 2008 23:58:16 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id IEElmqGm7uaTIBny for ; Mon, 27 Oct 2008 23:58:16 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219745968" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:28:11 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuiWo-0003Co-Kk; Tue, 28 Oct 2008 17:58:10 +1100 Date: Tue, 28 Oct 2008 17:58:10 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Subject: Re: [PATCH 6/7] kill XFS_DINODE_VERSION_ defines Message-ID: <20081028065810.GU4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133914.GG1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133914.GG1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225177097 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0483 1.0000 -1.7104 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.71 X-Barracuda-Spam-Status: No, SCORE=-1.71 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:14AM -0400, Christoph Hellwig wrote: > These names don't add any value at all over just using the numerical > values. > > (First sent on October 9th) > > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 00:17:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S7HucX029424 for ; Tue, 28 Oct 2008 00:17:57 -0700 X-ASG-Debug-ID: 1225178275-3d0f03300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 661C21B6689F for ; Tue, 28 Oct 2008 00:17:55 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id CQ4Gzqv1JR5tBhE7 for ; Tue, 28 Oct 2008 00:17:55 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219757834" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:47:52 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kuipq-0006LM-QX; Tue, 28 Oct 2008 18:17:50 +1100 Date: Tue, 28 Oct 2008 18:17:50 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Subject: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Message-ID: <20081028071750.GV4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133938.GH1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133938.GH1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225178276 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Oct 27, 2008 at 09:39:38AM -0400, Christoph Hellwig wrote: > Split out the body of the main loop into a separate helper to make the > code readable. > > > Signed-off-by: Christoph Hellwig ..... > Index: linux-2.6-xfs/fs/xfs/xfs_log_recover.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_log_recover.c 2008-10-25 13:22:29.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_log_recover.c 2008-10-25 13:26:44.000000000 +0200 > @@ -3147,6 +3147,70 @@ out_error: > return; > } > > +STATIC xfs_agino_t > +xlog_recover_process_one_iunlink( > + struct xfs_mount *mp, > + xfs_agnumber_t agno, > + xfs_agino_t agino, > + int bucket) > +{ > + struct xfs_buf *ibp; > + struct xfs_dinode *dip; > + struct xfs_inode *ip; > + xfs_ino_t ino; > + int error; > + > + ino = XFS_AGINO_TO_INO(mp, agno, agino); > + error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); > + if (error) > + goto fail; > + > + /* > + * Get the on disk inode to find the next inode in the bucket. > + */ > + ASSERT(ip != NULL); > + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); > + if (error) > + goto fail; Jumping to 'fail' at this point leaks the xfs_inode returned from xfs_iget(). Hmmmm - it appears the original code leaked too.... Also, I don't think we need the assert for ip, either. If it's NULL then we'll panic immediately on entering xfs_itobp(). Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 00:21:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S7LEPU002231 for ; Tue, 28 Oct 2008 00:21:14 -0700 X-ASG-Debug-ID: 1225178472-37fb034e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A47F1B6678D for ; Tue, 28 Oct 2008 00:21:13 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id x4Q7UCsm2juxljgK for ; Tue, 28 Oct 2008 00:21:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,497,1220193000"; d="scan'208";a="219760037" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 28 Oct 2008 17:51:12 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kuit4-0000Oc-Ua; Tue, 28 Oct 2008 18:21:10 +1100 Date: Tue, 28 Oct 2008 18:21:05 +1100 From: Dave Chinner To: Carsten Aulbert Cc: Michal Soltys , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081028072105.GW4985@disturbed> Mail-Followup-To: Carsten Aulbert , Michal Soltys , xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4906BB32.8080403@aei.mpg.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225178474 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1572 1.0000 -1.0608 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.06 X-Barracuda-Spam-Status: No, SCORE=-1.06 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8885 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Oct 28, 2008 at 08:11:46AM +0100, Carsten Aulbert wrote: > Hi Dave et al > > Dave Chinner wrote: > > > Blockget - yes it will. It just does the traversal internally to > > build the mapping. With large filesystems xfs_db can run out of > > memory building the mapping, which is why I've used the > > explicit traverse+xfs_bmap method in the past.... > > How expensive is this operation (rule of thumb)? We will mostly use this > on compute nodes where the partition is 500-750 GB large and the node > has 8 GB of memory. For the simple test where I apparently hit thin air > I have not seen anything bad in terms of memory consumption. Shouldn't be a problem with a filesystem that size. It's when you're dealing with tens of terabytes in a single filesystem that it can be a problem... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 00:38:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S7cIxZ003169 for ; Tue, 28 Oct 2008 00:38:20 -0700 X-ASG-Debug-ID: 1225179495-728201680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0355A55093C for ; Tue, 28 Oct 2008 00:38:15 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id L1ypm2jw7ZDBKUHs for ; Tue, 28 Oct 2008 00:38:15 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id A4EF82181CF; Tue, 28 Oct 2008 08:38:14 +0100 (CET) X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6l+8Oxb8b5Dw; Tue, 28 Oct 2008 08:38:14 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id 38EE2218052; Tue, 28 Oct 2008 08:38:14 +0100 (CET) Message-ID: <4906C164.6090704@aei.mpg.de> Date: Tue, 28 Oct 2008 08:38:12 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Carsten Aulbert , Michal Soltys , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> In-Reply-To: <20081028072105.GW4985@disturbed> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225179498 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8885 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Dave Chinner wrote: > Shouldn't be a problem with a filesystem that size. It's when you're > dealing with tens of terabytes in a single filesystem that it can > be a problem... It used a bit less than 900MB, so no problem at all. But I think I'm a bit stuck now, because I know not enough about the conventions used: # xfs_info /dev/sda6 meta-data=/dev/sda6 isize=256 agcount=16, agsize=7388267 blks = sectsz=512 attr=1 data = bsize=4096 blocks=118212272, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal bsize=4096 blocks=32768, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0 >From this I gather that this file system as about 118 million blocks for data, each holding 4096 bytes, this is consistent with the file system size as reported by df and the like. However, when I look at a file on this FS, e.g. ls -l /local/MCP/root/root.tar.bz2 ---xr-xr-- 1 root root 134 Sep 26 15:20 /local/MCP/root/root.tar.bz2 where /local is in /dev/sda6 (nevermind the weird permissions). Running xfs_bmap on this file gives: # xfs_bmap -l /local/MCP/root/root.tar.bz2 /local/MCP/root/root.tar.bz2: 0: [0..7]: 847868600..847868607 8 blocks But somehow this does not work out since 847868600>118212272. Any idea where my logical error is? Thanks puzzled Carsten From owner-xfs@oss.sgi.com Tue Oct 28 00:52:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S7qWC0004113 for ; Tue, 28 Oct 2008 00:52:34 -0700 X-ASG-Debug-ID: 1225180348-14c4038e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ninsei.hu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1DD34550802 for ; Tue, 28 Oct 2008 00:52:30 -0700 (PDT) Received: from ninsei.hu (ninsei.hu [212.92.23.158]) by cuda.sgi.com with ESMTP id wqRfFiKDgsY6MPsi for ; Tue, 28 Oct 2008 00:52:30 -0700 (PDT) Received: from kyra (lns-bzn-35-82-250-224-246.adsl.proxad.net [82.250.224.246]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by chatsubo.ninsei.hu (Postfix) with ESMTP id C92617833 for ; Tue, 28 Oct 2008 08:52:25 +0100 (CET) Received: by kyra (Postfix, from userid 32266) id E855F20B1892; Tue, 28 Oct 2008 08:52:31 +0100 (CET) Date: Tue, 28 Oct 2008 08:52:31 +0100 From: KELEMEN Peter To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081028075231.GA21181@kyra> Mail-Followup-To: xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4906C164.6090704@aei.mpg.de> Errors-To: Peter.Kelemen@free.fr Organization: CERN European Laboratory for Particle Physics, Switzerland X-GPG-KeyID: 1024D/9FF0CABE 2004-04-03 X-GPG-Fingerprint: 6C9E 5917 3B06 E4EE 6356 7BF0 8F3E CAB6 9FF0 CABE X-Comment: Personal opinion. Paragraphs might have been reformatted. X-Copyright: Forwarding or publishing without permission is prohibited. X-Accept-Language: hu,en User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Barracuda-Connect: ninsei.hu[212.92.23.158] X-Barracuda-Start-Time: 1225180352 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3191 1.0000 -0.2695 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.27 X-Barracuda-Spam-Status: No, SCORE=-0.27 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8886 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean * Carsten Aulbert (carsten.aulbert@aei.mpg.de) [20081028 08:38]: > # xfs_bmap -l /local/MCP/root/root.tar.bz2 > /local/MCP/root/root.tar.bz2: > 0: [0..7]: 847868600..847868607 8 blocks > But somehow this does not work out since 847868600>118212272. xfs_bmap(8) talks in basic blocks (512 bytes). 847868600*512 < 118212272*4096. HTH, Peter -- .+'''+. .+'''+. .+'''+. .+'''+. .+'' Kelemen PĂ©ter / \ / \ Peter.Kelemen@cern.ch .+' `+...+' `+...+' `+...+' `+...+' From owner-xfs@oss.sgi.com Tue Oct 28 01:36:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_12 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S8a7eR006636 for ; Tue, 28 Oct 2008 01:36:08 -0700 X-ASG-Debug-ID: 1225182966-2fb202330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rproxy.teamix.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A2551496475 for ; Tue, 28 Oct 2008 01:36:06 -0700 (PDT) Received: from rproxy.teamix.net (postman.teamix.net [194.150.191.120]) by cuda.sgi.com with ESMTP id 2m1BqAB5YZOXy6NE for ; Tue, 28 Oct 2008 01:36:06 -0700 (PDT) Received: from nb27steigerwald.qs.de (unknown [212.204.70.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by rproxy.teamix.net (Postfix) with ESMTP id 7803E7DCA; Tue, 28 Oct 2008 09:36:06 +0100 (CET) From: Martin Steigerwald Organization: team(ix) GmbH To: Eric Sandeen X-ASG-Orig-Subj: Re: Is it possible the check an frozen XFS filesytem to avoid downtime Subject: Re: Is it possible the check an frozen XFS filesytem to avoid downtime Date: Tue, 28 Oct 2008 09:36:04 +0100 User-Agent: KMail/1.9.9 Cc: Timothy Shimmin , xfs@oss.sgi.com References: <200807141542.51613.ms@teamix.de> <200810271757.09915.ms@teamix.de> <4905F727.8030005@sandeen.net> In-Reply-To: <4905F727.8030005@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810280936.05409.ms@teamix.de> X-Barracuda-Connect: postman.teamix.net[194.150.191.120] X-Barracuda-Start-Time: 1225182967 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8888 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Am Monday 27 October 2008 18:15:19 schrieb Eric Sandeen: > Martin Steigerwald wrote: > > A colleague did a kernel update on the inactive backend 1 server from > > 2.6.21 to 2.6.26 kernel from backports.org, tommorow backend 2 will > > follow. Let's see whether that solves the issue. > > > > Anyway it seems to be a hard to trigger bug and before bugging you with > > something in kernel 2.6.21, we at least update to the latest > > backports.org kernel. > > Honestly, I'd try a 2.6.27 kernel if you can, a few more problems were > fixed there. Thanks for the hint. backports.org doesn't contain a 2.6.26 and AFAIK lenny will ship with 2.6.26 as well, thus I'd like to try that one before doing a backport of 2.6.27 from sid myself. Thus I hope the issue that is triggered on those servers is fixed with 2.6.26 or some prior kernel since 2.6.21 already. If not, we will consider backporting 2.6.27. At least on my notebook I didn't have any issues so far with any kernel since 2.6.17.7. But even with TuxOnIce it doesn't have uptimes of 100 days or more, since I compile a new kernel for it once in a while. -- Martin Steigerwald - team(ix) GmbH - http://www.teamix.de gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90 From owner-xfs@oss.sgi.com Tue Oct 28 02:14:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9Ekgm008956 for ; Tue, 28 Oct 2008 02:14:47 -0700 X-ASG-Debug-ID: 1225185286-577b01b90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB22B550D02 for ; Tue, 28 Oct 2008 02:14:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id KFYvrGGelncRHsuv for ; Tue, 28 Oct 2008 02:14:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kukf0-00059T-9N; Tue, 28 Oct 2008 09:14:46 +0000 Date: Tue, 28 Oct 2008 05:14:46 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Subject: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Message-ID: <20081028091446.GB1662@infradead.org> References: <20081027133938.GH1109@infradead.org> <20081028071750.GV4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028071750.GV4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225185286 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.77 X-Barracuda-Spam-Status: No, SCORE=1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RATWARE_EFROM X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8889 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 3.79 RATWARE_EFROM Bulk email fingerprint (envfrom) found X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean > > + error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); > > + if (error) > > + goto fail; > > + > > + /* > > + * Get the on disk inode to find the next inode in the bucket. > > + */ > > + ASSERT(ip != NULL); > > + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); > > + if (error) > > + goto fail; > > Jumping to 'fail' at this point leaks the xfs_inode returned from > xfs_iget(). Hmmmm - it appears the original code leaked too.... > > Also, I don't think we need the assert for ip, either. If it's NULL > then we'll panic immediately on entering xfs_itobp(). Yeah. I'll fix this in a separate patch as this one is just suposed to be purely refactoring. From owner-xfs@oss.sgi.com Tue Oct 28 02:15:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9F1XP008981 for ; Tue, 28 Oct 2008 02:15:02 -0700 X-ASG-Debug-ID: 1225185300-5277022d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp.welcomes-you.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 61A28550D04 for ; Tue, 28 Oct 2008 02:15:00 -0700 (PDT) Received: from smtp.welcomes-you.com (welcomes-you.com [85.214.50.128]) by cuda.sgi.com with ESMTP id G25mgDFhZOSzAkGp for ; Tue, 28 Oct 2008 02:15:00 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.welcomes-you.com (Postfix) with ESMTP id DB1B82181CF; Tue, 28 Oct 2008 10:14:58 +0100 (CET) X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at welcomes-you.com Received: from smtp.welcomes-you.com ([127.0.0.1]) by localhost (smtp.welcomes-you.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r9sRcW2yQJQI; Tue, 28 Oct 2008 10:14:58 +0100 (CET) Received: from [10.117.96.105] (unknown [130.75.117.49]) by smtp.welcomes-you.com (Postfix) with ESMTP id 551E5218052; Tue, 28 Oct 2008 10:14:58 +0100 (CET) Message-ID: <4906D80F.9050500@aei.mpg.de> Date: Tue, 28 Oct 2008 10:14:55 +0100 From: Carsten Aulbert User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> In-Reply-To: <4906C164.6090704@aei.mpg.de> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: welcomes-you.com[85.214.50.128] X-Barracuda-Start-Time: 1225185301 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0916 1.0000 -1.4429 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.44 X-Barracuda-Spam-Status: No, SCORE=-1.44 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8889 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Carsten Aulbert wrote: > > Any idea where my logical error is? > Related, more logical errors on my side probably: Can someone give me a hint what I'm doing wrong here? xfs_bmap -l /local/boinc/time_stats_log /local/boinc/time_stats_log: 0: [0..127]: 280..407 128 blocks 1: [128..159]: 728..759 32 blocks 2: [160..167]: 1016..1023 8 blocks 3: [168..183]: 54120..54135 16 blocks 4: [184..207]: 656..679 24 blocks 5: [208..215]: 3451664..3451671 8 blocks 6: [216..255]: 3451624..3451663 40 blocks 7: [256..287]: 3451672..3451703 32 blocks >From that I assume that this file lives in several block strips, when I subsequently try to get this back via xfs_db I fail miserably: xfs_db -i /dev/sda6 xfs_db> blockget -b 660 -n setting block 0/660 to data setting inode to 2787 for block 0/660 inode 2787 block 660 at offset 346 xfs_db> ncheck -i 2787 2787 CT_oneyear_01/S_noise_wu_84/Fstats_105.25_Snoise__WU84_84_out xfs_db> quit Is it possible that blocks != bsized_blocks? Sorry for these questions, but I'm quite lost and I have not been able to find the answer in the man pages. Cheers Carsten -- Dr. Carsten Aulbert - Max Planck Institute for Gravitational Physics Callinstrasse 38, 30167 Hannover, Germany Phone/Fax: +49 511 762-17185 / -17193 http://www.top500.org/system/9234 | http://www.top500.org/connfam/6/list/31 From owner-xfs@oss.sgi.com Tue Oct 28 02:16:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9GFkt009440 for ; Tue, 28 Oct 2008 02:16:15 -0700 X-ASG-Debug-ID: 1225185375-577b01c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 63338550E98 for ; Tue, 28 Oct 2008 02:16:15 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id fWryDXKlV5orpObr for ; Tue, 28 Oct 2008 02:16:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KukgQ-0000l8-Qq; Tue, 28 Oct 2008 09:16:14 +0000 Date: Tue, 28 Oct 2008 05:16:14 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Subject: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Message-ID: <20081028091614.GC1662@infradead.org> References: <20081027133907.GD1109@infradead.org> <20081028051734.GC17077@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028051734.GC17077@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225185375 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.77 X-Barracuda-Spam-Status: No, SCORE=1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RATWARE_EFROM X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8889 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 3.79 RATWARE_EFROM Bulk email fingerprint (envfrom) found X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Oct 28, 2008 at 04:17:34PM +1100, Dave Chinner wrote: > > -typedef union xlog_in_core2 { > > - xlog_rec_header_t hic_header; > > - xlog_rec_ext_header_t hic_xheader; > > - char hic_sector[XLOG_HEADER_SIZE]; > > -} xlog_in_core_2_t; > > - > > -typedef struct xlog_in_core { > > - xlog_iclog_fields_t hic_fields; > > - xlog_in_core_2_t *hic_data; > > + xlog_in_core_2_t *ic_data; > > +#define ic_header ic_data->hic_header > > } xlog_in_core_t; > > The ic_data pointer should not be on the same cacheline as the > reference count seeing as it is read-only field. Makes sense, but I'll leave that for a separate patch to keep things bisectable. From owner-xfs@oss.sgi.com Tue Oct 28 02:38:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9cQLd011166 for ; Tue, 28 Oct 2008 02:38:27 -0700 X-ASG-Debug-ID: 1225186703-75f701600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ninsei.hu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F098551024 for ; Tue, 28 Oct 2008 02:38:23 -0700 (PDT) Received: from ninsei.hu (ninsei.hu [212.92.23.158]) by cuda.sgi.com with ESMTP id lAzC5LmC0HdCxTHG for ; Tue, 28 Oct 2008 02:38:23 -0700 (PDT) Received: from kyra (pb-d-128-141-133-196.cern.ch [128.141.133.196]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by chatsubo.ninsei.hu (Postfix) with ESMTP id 3FA86782E for ; Tue, 28 Oct 2008 10:38:20 +0100 (CET) Received: by kyra (Postfix, from userid 32266) id 787B120B1892; Tue, 28 Oct 2008 10:38:27 +0100 (CET) Date: Tue, 28 Oct 2008 10:38:27 +0100 From: KELEMEN Peter To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081028093827.GA12133@kyra> Mail-Followup-To: xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> <4906D80F.9050500@aei.mpg.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4906D80F.9050500@aei.mpg.de> Errors-To: Peter.Kelemen@free.fr Organization: CERN European Laboratory for Particle Physics, Switzerland X-GPG-KeyID: 1024D/9FF0CABE 2004-04-03 X-GPG-Fingerprint: 6C9E 5917 3B06 E4EE 6356 7BF0 8F3E CAB6 9FF0 CABE X-Comment: Personal opinion. Paragraphs might have been reformatted. X-Copyright: Forwarding or publishing without permission is prohibited. X-Accept-Language: hu,en User-Agent: Mutt/1.5.17+20080114 (2008-01-14) X-Barracuda-Connect: ninsei.hu[212.92.23.158] X-Barracuda-Start-Time: 1225186706 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0122 1.0000 -1.9415 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.94 X-Barracuda-Spam-Status: No, SCORE=-1.94 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean * Carsten Aulbert (carsten.aulbert@aei.mpg.de) [20081028 10:14]: > Is it possible that blocks != bsized_blocks? xfs_bmap(8) talks in basic blocks (512 bytes). 660 div 8 = 82, so try: blockget -b 82 -n > Sorry for these questions, but I'm quite lost and I have not > been able to find the answer in the man pages. The second paragraph of man xfs_bmap says: “[...] All the file offsets and disk blocks are in units of 512-byte blocks, no matter what the filesystem’s block size is.” HTH, Peter -- .+'''+. .+'''+. .+'''+. .+'''+. .+'' Kelemen PĂ©ter / \ / \ Peter.Kelemen@cern.ch .+' `+...+' `+...+' `+...+' `+...+' From owner-xfs@oss.sgi.com Tue Oct 28 02:52:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_84 autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9qSQe012105 for ; Tue, 28 Oct 2008 02:52:28 -0700 X-ASG-Debug-ID: 1225187546-75f701d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay.ppgk.com.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FD05550EE6 for ; Tue, 28 Oct 2008 02:52:27 -0700 (PDT) Received: from relay.ppgk.com.pl (relay.ppgk.com.pl [80.53.243.36]) by cuda.sgi.com with ESMTP id KKvKYQyeYzCTxheY for ; Tue, 28 Oct 2008 02:52:27 -0700 (PDT) Received: from relay.ppgk.com.pl (localhost [127.0.0.1]) by relay.ppgk.com.pl (Postfix) with ESMTP id 6ACD2375E9; Tue, 28 Oct 2008 10:52:25 +0100 (CET) X-PPGK-Scanned: amavisd-new 2.6.0 (20080423) at ppgk.com.pl Received: from relay.ppgk.com.pl ([127.0.0.1]) by relay.ppgk.com.pl (relay.ppgk.com.pl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Vj+KTJ+fbtxr; Tue, 28 Oct 2008 10:52:24 +0100 (CET) Received: from [192.168.100.249] (shodan.ppgk.com.pl [192.168.100.249]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by relay.ppgk.com.pl (Postfix) with ESMTPS id E1021375DC; Tue, 28 Oct 2008 10:52:24 +0100 (CET) Message-ID: <4906E0BE.8050903@drutsystem.com> Date: Tue, 28 Oct 2008 10:51:58 +0100 From: Michal Soltys User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Carsten Aulbert CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> <4906D80F.9050500@aei.mpg.de> In-Reply-To: <4906D80F.9050500@aei.mpg.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: relay.ppgk.com.pl[80.53.243.36] X-Barracuda-Start-Time: 1225187548 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8892 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean Carsten Aulbert wrote: > > Carsten Aulbert wrote: > >> Any idea where my logical error is? >> > > Related, more logical errors on my side probably: > > Can someone give me a hint what I'm doing wrong here? > > xfs_bmap -l /local/boinc/time_stats_log > /local/boinc/time_stats_log: > 0: [0..127]: 280..407 128 blocks > 1: [128..159]: 728..759 32 blocks > 2: [160..167]: 1016..1023 8 blocks > 3: [168..183]: 54120..54135 16 blocks > 4: [184..207]: 656..679 24 blocks > 5: [208..215]: 3451664..3451671 8 blocks > 6: [216..255]: 3451624..3451663 40 blocks > 7: [256..287]: 3451672..3451703 32 blocks > >>From that I assume that this file lives in several block strips, when I > subsequently try to get this back via xfs_db I fail miserably: > > xfs_db -i /dev/sda6 > xfs_db> blockget -b 660 -n > setting block 0/660 to data > setting inode to 2787 for block 0/660 > inode 2787 block 660 at offset 346 > xfs_db> ncheck -i 2787 > 2787 CT_oneyear_01/S_noise_wu_84/Fstats_105.25_Snoise__WU84_84_out > xfs_db> quit > > Is it possible that blocks != bsized_blocks? > > Sorry for these questions, but I'm quite lost and I have not been able > to find the answer in the man pages. > 660 is interpreted (by blockget) using filesystem's block size - so it'd correspond to 5280 in 512 byte units. That file isn't that long. Another example: 10:37 > ls -al /music/The\ Flashbulb\ -\ 11\ -\ Remember\ Tomorrow.flac -rw-r--r-- 1 admin users 21921889 2008-09-08 09:07 /music/The Flashbulb - 11 - Remember Tomorrow.flac xfs_bmap -l /music/The\ Flashbulb\ -\ 11\ -\ Remember\ Tomorrow.flac /music/The Flashbulb - 11 - Remember Tomorrow.flac: 0: [0..35039]: 12140432..12175471 35040 blocks 1: [35040..42823]: 12200864..12208647 7784 blocks Let's check file's sector 36000 - from the perspective of filesystem - sector 12200864+(36000-35040) = 12201824. Using 4096 block size - 1525228. Now let's check using xfs_db: 10:38 > xfs_db -r /dev/mapper/vg1-music xfs_db> blockget -b 1525228 -n setting block 0/1525228 to data setting inode to 126 for block 0/1525228 inode 126 block 1525228 at offset 4500 sb_fdblocks 1330583, aggregate AGF count 2661166 xfs_db> ncheck -i 126 126 The Flashbulb - 11 - Remember Tomorrow.flac From owner-xfs@oss.sgi.com Tue Oct 28 02:52:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_101 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9S9qXqZ012122 for ; Tue, 28 Oct 2008 02:52:35 -0700 X-ASG-Debug-ID: 1225187550-402601770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3F367ECCF69 for ; Tue, 28 Oct 2008 02:52:30 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id qtLNs07fFdyRE4UW for ; Tue, 28 Oct 2008 02:52:30 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id D8628F527E; Tue, 28 Oct 2008 05:52:29 -0400 (EDT) Date: Tue, 28 Oct 2008 05:52:29 -0400 (EDT) From: Justin Piszcz To: KELEMEN Peter cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? In-Reply-To: <20081028093827.GA12133@kyra> Message-ID: References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> <4906D80F.9050500@aei.mpg.de> <20081028093827.GA12133@kyra> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463747160-1319962850-1225187549=:14523" X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1225187553 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8891 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on oss.sgi.com X-Virus-Status: Clean This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463747160-1319962850-1225187549=:14523 Content-Type: TEXT/PLAIN; charset=utf-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Tue, 28 Oct 2008, KELEMEN Peter wrote: > * Carsten Aulbert (carsten.aulbert@aei.mpg.de) [20081028 10:14]: > >> Is it possible that blocks !=3D bsized_blocks? > > xfs_bmap(8) talks in basic blocks (512 bytes). > 660 div 8 =3D 82, so try: > > blockget -b 82 -n > >> Sorry for these questions, but I'm quite lost and I have not >> been able to find the answer in the man pages. > > The second paragraph of man xfs_bmap says: > > ?[...] All the file offsets and disk blocks are in units of > 512-byte blocks, no matter what the filesystem?s block size > is.? > > HTH, > Peter > > -- > .+'''+. .+'''+. .+'''+. .+'''+. .+'' > Kelemen P=C3=A9ter / \ / \ Peter.Kelemen@cern.ch > .+' `+...+' `+...+' `+...+' `+...+' > > If you figure it out a little how-to would be nice :) Justin. ---1463747160-1319962850-1225187549=:14523-- From owner-xfs@oss.sgi.com Tue Oct 28 04:12:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=SUBJ_URGENT autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SBCVYb014371 for ; Tue, 28 Oct 2008 04:12:33 -0700 X-ASG-Debug-ID: 1225191202-0c16036e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 30FCB551346 for ; Tue, 28 Oct 2008 03:53:22 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id mn63TtvwBUT1w9G8 for ; Tue, 28 Oct 2008 03:53:22 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KumCP-0005VY-Sx; Tue, 28 Oct 2008 10:53:21 +0000 Date: Tue, 28 Oct 2008 06:53:21 -0400 From: Christoph Hellwig To: Mark Goodwin Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/2] Urgent queue Subject: Re: [PATCH 0/2] Urgent queue Message-ID: <20081028105321.GA30522@infradead.org> References: <20081027133010.GA30607@infradead.org> <20081028064150.GS4985@disturbed> <4906EB5B.2020004@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4906EB5B.2020004@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225191203 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8895 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 28, 2008 at 09:37:15PM +1100, Mark Goodwin wrote: > individually (by series) or only after all 30? Bisectability is important, > as Christoph alluded to in another thread. Is the intention to try and take > this lot for 28-rc3? I think Lachlan is now very close to a pull req for > .28, depending on his testing for the memleak and deadlock fixes - time > is now getting pretty short :) Even urgent isn't urgent enough for the first 2.6.28 series, please get that one out ASAP, I don't want to miss it. The two patches from the urgent queue are something I would consider for a second .28 pull, everything else is .29 material. But it would be highly useful if we could open up a .29 staging tree that can be QAed and included in linux-next ASAP.. From owner-xfs@oss.sgi.com Tue Oct 28 04:32:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=HTML_MESSAGE,MIME_8BIT_HEADER autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SBWVjb021146 for ; Tue, 28 Oct 2008 04:32:32 -0700 X-ASG-Debug-ID: 1225189099-578803cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from [117.83.149.199] (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C96C5551087 for ; Tue, 28 Oct 2008 03:18:20 -0700 (PDT) Received: from [117.83.149.199] ([117.83.149.199]) by cuda.sgi.com with ESMTP id jkfiEtxedv9Cj42C for ; Tue, 28 Oct 2008 03:18:20 -0700 (PDT) Message-ID: <000901c938e6$039e1e12$324646ad@wviramj> From: =?koi8-r?B?7sHUwczY0Q==?= To: X-ASG-Orig-Subj: =?koi8-r?B?88TBxc0g8/Lv/u7vICjCxdog0M/T0sXEzsnLz9cpIM/GydPOz8Ug0A==?= =?koi8-r?B?z83F3cXOycU=?= Subject: =?koi8-r?B?88TBxc0g8/Lv/u7vICjCxdog0M/T0sXEzsnLz9cpIM/GydPOz8Ug0A==?= =?koi8-r?B?z83F3cXOycU=?= Date: Tue, 28 Oct 2008 08:31:03 +0000 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 X-Barracuda-Connect: UNKNOWN[117.83.149.199] X-Barracuda-Start-Time: 1225189101 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5007 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.85 X-Barracuda-Spam-Status: No, SCORE=0.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_TG035a, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8893 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 BSF_SC0_TG035a Message contains invalid style definition 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 301 =F3=C4=C1=C5=CD =F3=F2=EF=FE=EE=EF (=C2=C5=DA =D0=CF=D3=D2=C5=C4=CE= =C9=CB=CF=D7) =CF=C6=C9=D3=CE=CF=C5 =D0=CF=CD=C5=DD=C5=CE=C9=C5 24,5=CD 2. =CD.=F7=CF=C4=CE=D9=CA =D3=D4=C1=C4=C9=CF=CE, 16.530 =D2=D5=C2./=CD 2. =F4=C5=CC.: 765-3486, 998-0030. =20 [[HTML alternate version deleted]] From owner-xfs@oss.sgi.com Tue Oct 28 04:53:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=SUBJ_URGENT autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SBrulf022211 for ; Tue, 28 Oct 2008 04:53:56 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id B92258F80B7 for ; Tue, 28 Oct 2008 04:53:49 -0700 (PDT) Received: from [134.15.251.4] (melb-sw-corp-251-4.corp.sgi.com [134.15.251.4]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id VAA12332; Tue, 28 Oct 2008 21:37:21 +1100 Message-ID: <4906EB5B.2020004@sgi.com> Date: Tue, 28 Oct 2008 21:37:15 +1100 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Christoph Hellwig , xfs@oss.sgi.com Subject: Re: [PATCH 0/2] Urgent queue References: <20081027133010.GA30607@infradead.org> <20081028064150.GS4985@disturbed> In-Reply-To: <20081028064150.GS4985@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Mon, Oct 27, 2008 at 09:30:10AM -0400, Christoph Hellwig wrote: >> Two patches that are small bugfixes / features that are what I consider the >> immediately merge queue. > > The entire set of 30 patches has passed XFSQA on my test box.... individually (by series) or only after all 30? Bisectability is important, as Christoph alluded to in another thread. Is the intention to try and take this lot for 28-rc3? I think Lachlan is now very close to a pull req for .28, depending on his testing for the memleak and deadlock fixes - time is now getting pretty short :) Cheers -- Mark From owner-xfs@oss.sgi.com Tue Oct 28 05:34:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=STOX_REPLY_TYPE autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SCYEH6024631 for ; Tue, 28 Oct 2008 05:34:15 -0700 X-ASG-Debug-ID: 1225197254-670003170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tyo201.gate.nec.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F2BCB5517F2 for ; Tue, 28 Oct 2008 05:34:14 -0700 (PDT) Received: from tyo201.gate.nec.co.jp (TYO201.gate.nec.co.jp [202.32.8.193]) by cuda.sgi.com with ESMTP id ixDPZnr9AvVjq1mv for ; Tue, 28 Oct 2008 05:34:14 -0700 (PDT) Received: from mailgate3.nec.co.jp ([10.7.69.192]) by tyo201.gate.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9SCY0mT027026; Tue, 28 Oct 2008 21:34:00 +0900 (JST) Received: (from root@localhost) by mailgate3.nec.co.jp (8.11.7/3.7W-MAILGATE-NEC) id m9SCY0927641; Tue, 28 Oct 2008 21:34:00 +0900 (JST) Received: from togyo.jp.nec.com (togyo.jp.nec.com [10.26.220.4]) by mailsv3.nec.co.jp (8.13.8/8.13.4) with ESMTP id m9SCY0bw002602; Tue, 28 Oct 2008 21:34:00 +0900 (JST) Received: from TNESB07336 ([10.64.168.65] [10.64.168.65]) by mail.jp.nec.com with ESMTP; Tue, 28 Oct 2008 21:34:00 +0900 Message-ID: From: "Takashi Sato" To: "Andrew Morton" Cc: "Christoph Hellwig" , , , , , , , , References: <20081027215855t-sato@mail.jp.nec.com> <20081027231533.96c42a78.akpm@linux-foundation.org> In-Reply-To: <20081027231533.96c42a78.akpm@linux-foundation.org> X-ASG-Orig-Subj: Re: [PATCH 2/3] Implement generic freeze feature Subject: Re: [PATCH 2/3] Implement generic freeze feature Date: Tue, 28 Oct 2008 21:33:59 +0900 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Windows Mail 6.0.6000.16480 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6000.16545 X-Barracuda-Connect: TYO201.gate.nec.co.jp[202.32.8.193] X-Barracuda-Start-Time: 1225197254 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT, STOX_REPLY_TYPE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8900 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 STOX_REPLY_TYPE STOX_REPLY_TYPE 0.60 MARKETING_SUBJECT Subject contains popular marketing words Hi, >> -void thaw_bdev(struct block_device *bdev, struct super_block *sb) >> +int thaw_bdev(struct block_device *bdev, struct super_block *sb) >> { >> + int error = 0; >> + >> + mutex_lock(&bdev->bd_fsfreeze_mutex); >> + if (!bdev->bd_fsfreeze_count) { >> + mutex_unlock(&bdev->bd_fsfreeze_mutex); >> + return -EINVAL; > > This would be a programming error, yes? This is not a kernel programming error but a user's. thaw_bdev() is called via the unfreeze ioctl. If a user calls the unfreeze ioctl for an unfrozen filesystem, this error will be returned. So a WARN_ON isn't needed. > If so, a WARN_ON is more appropriate than a silent runtime error. > >> + } Cheers, Takashi From owner-xfs@oss.sgi.com Tue Oct 28 06:47:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=J_CHICKENPOX_12, J_CHICKENPOX_43 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SDl92s028506 for ; Tue, 28 Oct 2008 06:47:10 -0700 X-ASG-Debug-ID: 1225201612-47bc03520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rproxy.teamix.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A518551B0D for ; Tue, 28 Oct 2008 06:46:53 -0700 (PDT) Received: from rproxy.teamix.net (postman.teamix.net [194.150.191.120]) by cuda.sgi.com with ESMTP id Ch4waPUVmiokWReG for ; Tue, 28 Oct 2008 06:46:53 -0700 (PDT) Received: from nb27steigerwald.qs.de (unknown [212.204.70.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by rproxy.teamix.net (Postfix) with ESMTP id 452B37DCA; Tue, 28 Oct 2008 14:46:52 +0100 (CET) From: Martin Steigerwald Organization: team(ix) GmbH To: backports-users@lists.backports.org X-ASG-Orig-Subj: Debian Etch Backport of xfsprogs 2.9.8-1 Subject: Debian Etch Backport of xfsprogs 2.9.8-1 Date: Tue, 28 Oct 2008 14:46:34 +0100 User-Agent: KMail/1.9.9 Cc: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1349160.xvHALXmB7a"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200810281446.45521.ms@teamix.de> X-Barracuda-Connect: postman.teamix.net[194.150.191.120] X-Barracuda-Start-Time: 1225201613 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8905 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --nextPart1349160.xvHALXmB7a Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi! I made a xfsprogs-Backports for Debian Etch, since the xfsprogs for Etch is= at=20 version 2.8.11 - so fairly outdated: http://people.teamix.net/~ms/backports/etch-backports/xfsprogs/ I would be willing to maintain this - at least until Debian Lenny is out. S= o=20 if someone wants to sponsor an upload please tell me in case any changes ar= e=20 needed. Important: You may need a newer kernel than the one in Debian Etch (2.6.18)= in=20 order to access XFS partitions that you formatted with mkfs.xfs from this= =20 backport. But I since it does not set lazy superblock counters by default= =20 since xfsprogs 2.9.7 it might just work. Otherwise better use EtchNHalf ode= r=20 current backport kernel with it. Ciao, --=20 Martin Steigerwald - team(ix) GmbH - http://www.teamix.de gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90 --nextPart1349160.xvHALXmB7a Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEABECAAYFAkkHF7sACgkQHhDFkwOZrpAvOQCeI5OSWNB2vIDXJAXYqJKxCQGY tK4An2/TBa/B7QVVoIyXkueF2GdQT5km =CW2M -----END PGP SIGNATURE----- --nextPart1349160.xvHALXmB7a-- From owner-xfs@oss.sgi.com Tue Oct 28 07:25:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SEPZbW030767 for ; Tue, 28 Oct 2008 07:25:36 -0700 X-ASG-Debug-ID: 1225203934-6ce201910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1050B13132A2 for ; Tue, 28 Oct 2008 07:25:35 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id Kxo8XGwDqG1jvGS9 for ; Tue, 28 Oct 2008 07:25:35 -0700 (PDT) Received: from funky.thebarn.com (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m9SEPXSl022372 for ; Tue, 28 Oct 2008 09:25:34 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <490720DD.2050502@thebarn.com> Date: Tue, 28 Oct 2008 09:25:33 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: oss.sgi.com and mailman, looking for volunteers. Subject: oss.sgi.com and mailman, looking for volunteers. Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8525/Tue Oct 28 07:42:35 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1225203936 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2975 1.0000 -0.3590 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.36 X-Barracuda-Spam-Status: No, SCORE=-0.36 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8905 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- I've set up mailman on oss in an effort to dump the current list handling software (ecartis), which has been causing us fits for a while now. I would be helpful if a few people would sign up to the new list to help test out the install and configuration, so we can make sure things still show up correctly. The signup url is http://oss.sgi.com/mailman/listinfo/xfs or send an email to xfs-subscribe@oss.sgi.com with "subscribe" as the subject. If everything works out then I will move the entire list over to using mailman. Note the old list and new list are running in parallel so unless you have a duplicate filter unsubscribing from the old list is also recommended. http://oss.sgi.com/cgi-bin/lsg2.cgi The archives can be viewed at http://oss.sgi.com/pipermail/xfs/ I haven't quite come up with a plan for the archives, right now that is also running in parallel so we can lean one way or the other depending on what is preferred. -Russell From owner-xfs@oss.sgi.com Tue Oct 28 07:58:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_12 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SEwwn2032588 for ; Tue, 28 Oct 2008 07:58:58 -0700 X-ASG-Debug-ID: 1225205932-447b017d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rproxy.teamix.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91724149AB7A for ; Tue, 28 Oct 2008 07:58:53 -0700 (PDT) Received: from rproxy.teamix.net (postman.teamix.net [194.150.191.120]) by cuda.sgi.com with ESMTP id zST0zTgQ7ExGkXig for ; Tue, 28 Oct 2008 07:58:53 -0700 (PDT) Received: from nb27steigerwald.qs.de (unknown [212.204.70.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by rproxy.teamix.net (Postfix) with ESMTP id 931B07DCA for ; Tue, 28 Oct 2008 15:58:52 +0100 (CET) From: Martin Steigerwald Organization: team(ix) GmbH To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Debian Etch Backport of xfsprogs 2.9.8-1 Subject: Re: Debian Etch Backport of xfsprogs 2.9.8-1 Date: Tue, 28 Oct 2008 15:58:51 +0100 User-Agent: KMail/1.9.9 References: <200810281446.45521.ms@teamix.de> (sfid-20081028_144836_639822_756F01B9) In-Reply-To: <200810281446.45521.ms@teamix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810281558.51613.ms@teamix.de> X-Barracuda-Connect: postman.teamix.net[194.150.191.120] X-Barracuda-Start-Time: 1225205937 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8908 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Am Tuesday 28 October 2008 14:46:34 schrieb Martin Steigerwald: > Hi! > > I made a xfsprogs-Backports for Debian Etch, since the xfsprogs for Etch is > at version 2.8.11 - so fairly outdated: Something in the SGI mail infrastructure appears to break the GPG signature. It appears fine on backports-users mailing list. -- Martin Steigerwald - team(ix) GmbH - http://www.teamix.de gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90 From owner-xfs@oss.sgi.com Tue Oct 28 08:39:58 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SFdup2007298 for ; Tue, 28 Oct 2008 08:39:58 -0700 X-ASG-Debug-ID: 1225208395-447b03470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 805E9149B07D for ; Tue, 28 Oct 2008 08:39:55 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id vFTmb7Oz2R8CPQSK for ; Tue, 28 Oct 2008 08:39:55 -0700 (PDT) Received: from Relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 6BB90464BC; Tue, 28 Oct 2008 16:39:54 +0100 (CET) Date: Tue, 28 Oct 2008 16:39:53 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org, Dave Chinner , Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081028153953.GB3082@wotan.suse.de> References: <20081028144715.683011000@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028144715.683011000@suse.de> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225208396 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8909 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Wed, Oct 29, 2008 at 01:47:15AM +1100, npiggin@suse.de wrote: > OK, I'm happier with this patchset now. Note that I've taken your patch > and mangled it a bit at the end of the series. > > This one survives and seems to run OK here, but I'm mainly doing dumb > stress testing with a handful of filesystems, and data-io error injection > testing. There are a lot of combinations of ways this function can operate > and interact obviously, so it would be helpful to get more review. > > Chris, would you possibly have time to run your btrfs tests that are > sensitive to problems in this code? I could provide you a single patch > rollup against mainline if it helps. BTW. XFS seems to be doing something interesting with my simple sync test case with IO error injection. I map a file MAP_SHARED into a number of processes, which then each run a loop that dirties the memory then calls msync(MS_SYNC) on the range. ext2 mostly reports -EIO back to userspace when a failure is injected AFAIKS. ext3 (ordered) doesn't until a lot of errors have been injected, but eventually reports -EIO and shuts down the filesystem. reiserfs seems to report failure more consistently. I haven't seen any -EIO failures from XFS... maybe I'm just not doing the right thing, or there is a caveat I'm not aware of. All fault injections I noticed had a trace like this: FAULT_INJECTION: forcing a failure Call Trace: 9f9cd758: [<6019f1de>] random32+0xe/0x20 9f9cd768: [<601a31b9>] should_fail+0xd9/0x130 9f9cd798: [<6018d0c4>] generic_make_request+0x304/0x4e0 9f9cd7a8: [<60062301>] mempool_alloc+0x51/0x130 9f9cd858: [<6018e6bf>] submit_bio+0x4f/0xe0 9f9cd8a8: [<60165505>] xfs_submit_ioend_bio+0x25/0x40 9f9cd8c8: [<6016603c>] xfs_submit_ioend+0xbc/0xf0 9f9cd908: [<60166bf9>] xfs_page_state_convert+0x3d9/0x6a0 9f9cd928: [<6005d515>] delayacct_end+0x95/0xb0 9f9cda08: [<60166ffd>] xfs_vm_writepage+0x6d/0x110 9f9cda18: [<6006618b>] set_page_dirty+0x4b/0xd0 9f9cda58: [<60066115>] __writepage+0x15/0x40 9f9cda78: [<60066775>] write_cache_pages+0x255/0x470 9f9cda90: [<60066100>] __writepage+0x0/0x40 9f9cdb98: [<600669b0>] generic_writepages+0x20/0x30 9f9cdba8: [<60165ba3>] xfs_vm_writepages+0x53/0x70 9f9cdbd8: [<600669eb>] do_writepages+0x2b/0x40 9f9cdbf8: [<6006004c>] __filemap_fdatawrite_range+0x5c/0x70 9f9cdc58: [<6006026a>] filemap_fdatawrite+0x1a/0x20 9f9cdc68: [<600a7a05>] do_fsync+0x45/0xe0 9f9cdc98: [<6007794b>] sys_msync+0x14b/0x1d0 9f9cdcf8: [<60019a70>] handle_syscall+0x50/0x80 9f9cdd18: [<6002a10f>] userspace+0x44f/0x510 9f9cdfc8: [<60016792>] fork_handler+0x62/0x70 And the kernel would sometimes say this: Buffer I/O error on device ram0, logical block 279 lost page write due to I/O error on ram0 Buffer I/O error on device ram0, logical block 379 lost page write due to I/O error on ram0 Buffer I/O error on device ram0, logical block 389 lost page write due to I/O error on ram0 I think I also saw a slab bug when running dbench with fault injection on. Running latest Linus kernel. bash-3.1# dbench -t10 -c ../client.txt 8 dbench version 3.04 - Copyright Andrew Tridgell 1999-2004 Running for 10 seconds with load '../client.txt' and minimum warmup 2 secs 8 clients started FAULT_INJECTION: forcing a failure Call Trace: 9e7bb548: [<601623ae>] random32+0xe/0x20 9e7bb558: [<60166389>] should_fail+0xd9/0x130 9e7bb588: [<60150294>] generic_make_request+0x304/0x4e0 9e7bb598: [<60062301>] mempool_alloc+0x51/0x130 9e7bb648: [<6015188f>] submit_bio+0x4f/0xe0 9e7bb698: [<6012b440>] _xfs_buf_ioapply+0x180/0x2a0 9e7bb6a0: [<6002f600>] default_wake_function+0x0/0x10 9e7bb6f8: [<6012bae1>] xfs_buf_iorequest+0x31/0x90 9e7bb718: [<60112f75>] xlog_bdstrat_cb+0x45/0x50 9e7bb738: [<60114135>] xlog_sync+0x195/0x440 9e7bb778: [<60114491>] xlog_state_release_iclog+0xb1/0xc0 9e7bb7a8: [<60114ca9>] xlog_write+0x539/0x550 9e7bb858: [<60114e60>] xfs_log_write+0x40/0x60 9e7bb888: [<6011fbaa>] _xfs_trans_commit+0x19a/0x360 9e7bb8b8: [<600838e2>] poison_obj+0x42/0x60 9e7bb8d0: [<60082cb3>] dbg_redzone1+0x13/0x30 9e7bb8e8: [<60083999>] cache_alloc_debugcheck_after+0x99/0x1c0 9e7bb918: [<6008517b>] kmem_cache_alloc+0x8b/0x100 9e7bb958: [<60128084>] kmem_zone_alloc+0x74/0xe0 9e7bb998: [<60082ad9>] kmem_cache_size+0x9/0x10 9e7bb9a8: [<60128124>] kmem_zone_zalloc+0x34/0x50 9e7bb9e8: [<60121e8b>] xfs_dir_ialloc+0x13b/0x2e0 9e7bba58: [<601f534b>] __down_write+0xb/0x10 9e7bbaa8: [<60125b9e>] xfs_mkdir+0x37e/0x4b0 9e7bbb38: [<601f5589>] _spin_unlock+0x9/0x10 9e7bbb78: [<601301a4>] xfs_vn_mknod+0xf4/0x1a0 9e7bbbd8: [<6013025e>] xfs_vn_mkdir+0xe/0x10 9e7bbbe8: [<60091010>] vfs_mkdir+0x90/0xc0 9e7bbc18: [<600934d6>] sys_mkdirat+0x106/0x120 9e7bbc88: [<6008629b>] filp_close+0x4b/0x80 9e7bbce8: [<60093503>] sys_mkdir+0x13/0x20 9e7bbcf8: [<60019a70>] handle_syscall+0x50/0x80 9e7bbd18: [<6002a10f>] userspace+0x44f/0x510 9e7bbfc8: [<60016792>] fork_handler+0x62/0x70 I/O error in filesystem ("ram0") meta-data dev ram0 block 0x8002c ("xlog_i odone") error 5 buf count 32768 xfs_force_shutdown(ram0,0x2) called from line 1056 of file /home/npiggin/usr/src /linux-2.6/fs/xfs/xfs_log.c. Return address = 0x000000006011370d Filesystem "ram0": Log I/O Error Detected. Shutting down filesystem: ram0 Please umount the filesystem, and rectify the problem(s) xfs_force_shutdown(ram0,0x2) called from line 818 of file /home/npiggin/usr/src/ linux-2.6/fs/xfs/xfs_log.c. Return address = 0x0000000060114e7d slab error in verify_redzone_free(): cache `xfs_log_ticket': double free detecte d Call Trace: 9e7bb998: [<6008372f>] __slab_error+0x1f/0x30 9e7bb9a8: [<60083cae>] cache_free_debugcheck+0x1ee/0x240 9e7bb9b0: [<60112ef0>] xlog_ticket_put+0x10/0x20 9e7bb9e8: [<60083f70>] kmem_cache_free+0x50/0xc0 9e7bba18: [<60112ef0>] xlog_ticket_put+0x10/0x20 9e7bba28: [<60114dc9>] xfs_log_done+0x59/0xb0 9e7bba68: [<6011f5de>] xfs_trans_cancel+0x7e/0x140 9e7bbaa8: [<60125a1e>] xfs_mkdir+0x1fe/0x4b0 9e7bbb38: [<601f5589>] _spin_unlock+0x9/0x10 9e7bbb78: [<601301a4>] xfs_vn_mknod+0xf4/0x1a0 9e7bbbd8: [<6013025e>] xfs_vn_mkdir+0xe/0x10 9e7bbbe8: [<60091010>] vfs_mkdir+0x90/0xc0 9e7bbc18: [<600934d6>] sys_mkdirat+0x106/0x120 9e7bbc88: [<6008629b>] filp_close+0x4b/0x80 9e7bbce8: [<60093503>] sys_mkdir+0x13/0x20 9e7bbcf8: [<60019a70>] handle_syscall+0x50/0x80 9e7bbd18: [<6002a10f>] userspace+0x44f/0x510 9e7bbfc8: [<60016792>] fork_handler+0x62/0x70 000000009e0d4ec0: redzone 1:0x9f911029d74e35b, redzone 2:0x9f911029d74e35b. (3) open ./clients/client1 failed for handle 16385 (No such file or directory) (4) ERROR: handle 16385 was not found Child failed with status 1 (kernel died soon afterwards) From owner-xfs@oss.sgi.com Tue Oct 28 14:38:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SLcBBJ001222 for ; Tue, 28 Oct 2008 14:38:12 -0700 X-ASG-Debug-ID: 1225229891-341003e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEEDA55556B for ; Tue, 28 Oct 2008 14:38:11 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id 23HD9sNuay0gSmuc for ; Tue, 28 Oct 2008 14:38:11 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9SLc8YP009017 for ; Tue, 28 Oct 2008 17:38:09 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9SLc8mt026768 for ; Tue, 28 Oct 2008 17:38:08 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9SLc72H006962 for ; Tue, 28 Oct 2008 17:38:07 -0400 Message-ID: <4907863F.3030005@sandeen.net> Date: Tue, 28 Oct 2008 16:38:07 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: Re: [PATCH 0/3 v3] hook xfs to fiemap ioctl Subject: Re: [PATCH 0/3 v3] hook xfs to fiemap ioctl References: <4904E0DE.3040902@sandeen.net> In-Reply-To: <4904E0DE.3040902@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225229891 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0167 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8929 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Eric Sandeen wrote: > v2: Update & resend, including some checkpatch fixes, a bugfix, and > incorporating some of Christoph's and Dave's comments. > > v3: Address more review comments, and split into 3 patches this time. > > Also, here's a very hacky (don't laugh!) test app. I'll clean it > up at some point :) > > -Eric > Apologies, I'm going to have to send at least one more round. I left out the bit where the fiemap interface lets you pass in just the header, and no array for extents information, to simply get back an extent count. I have a fix for that, will send later tonight. Is there any chance of this making .28 still? :) -Eric From owner-xfs@oss.sgi.com Tue Oct 28 14:50:38 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SLoa4u002053 for ; Tue, 28 Oct 2008 14:50:38 -0700 X-ASG-Debug-ID: 1225230634-538b00560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 86BB0149E701 for ; Tue, 28 Oct 2008 14:50:34 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id sDBEI7od5xfnPbBn for ; Tue, 28 Oct 2008 14:50:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,501,1220193000"; d="scan'208";a="220071268" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 08:20:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuwSN-0005iD-MJ; Wed, 29 Oct 2008 08:50:31 +1100 Date: Wed, 29 Oct 2008 08:50:31 +1100 From: Dave Chinner To: Russell Cattelan Cc: xfs-oss X-ASG-Orig-Subj: Re: oss.sgi.com and mailman, looking for volunteers. Subject: Re: oss.sgi.com and mailman, looking for volunteers. Message-ID: <20081028215031.GY4985@disturbed> Mail-Followup-To: Russell Cattelan , xfs-oss References: <490720DD.2050502@thebarn.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490720DD.2050502@thebarn.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225230636 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0024 1.0000 -2.0053 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8931 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 28, 2008 at 09:25:33AM -0500, Russell Cattelan wrote: > I've set up mailman on oss in an effort to dump the current list > handling software (ecartis), > which has been causing us fits for a while now. > > I would be helpful if a few people would sign up to the new list to help > test out the > install and configuration, so we can make sure things still show up > correctly. > > The signup url is > http://oss.sgi.com/mailman/listinfo/xfs What is the point? Let's just move the list to vger.kernel.org and we can forget about all these problems.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 14:51:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SLpFXd002247 for ; Tue, 28 Oct 2008 14:51:15 -0700 X-ASG-Debug-ID: 1225230672-768d00850000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94F7B55538B for ; Tue, 28 Oct 2008 14:51:12 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id izciBG3dFh4DMLM4 for ; Tue, 28 Oct 2008 14:51:12 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,501,1220193000"; d="scan'208";a="220071734" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 08:21:11 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuwT1-0005j9-6M; Wed, 29 Oct 2008 08:51:11 +1100 Date: Wed, 29 Oct 2008 08:51:11 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Subject: Re: [PATCH 3/7] sanitize xlog_in_core_t definition Message-ID: <20081028215111.GZ4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133907.GD1109@infradead.org> <20081028051734.GC17077@disturbed> <20081028091614.GC1662@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028091614.GC1662@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225230675 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0409 1.0000 -1.7572 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.76 X-Barracuda-Spam-Status: No, SCORE=-1.76 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8931 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 28, 2008 at 05:16:14AM -0400, Christoph Hellwig wrote: > On Tue, Oct 28, 2008 at 04:17:34PM +1100, Dave Chinner wrote: > > > -typedef union xlog_in_core2 { > > > - xlog_rec_header_t hic_header; > > > - xlog_rec_ext_header_t hic_xheader; > > > - char hic_sector[XLOG_HEADER_SIZE]; > > > -} xlog_in_core_2_t; > > > - > > > -typedef struct xlog_in_core { > > > - xlog_iclog_fields_t hic_fields; > > > - xlog_in_core_2_t *hic_data; > > > + xlog_in_core_2_t *ic_data; > > > +#define ic_header ic_data->hic_header > > > } xlog_in_core_t; > > > > The ic_data pointer should not be on the same cacheline as the > > reference count seeing as it is read-only field. > > Makes sense, but I'll leave that for a separate patch to keep things > bisectable. ok. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 14:51:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_62 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SLpZ5D002401 for ; Tue, 28 Oct 2008 14:51:35 -0700 X-ASG-Debug-ID: 1225230694-62a600730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D62CAFE1E9 for ; Tue, 28 Oct 2008 14:51:34 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id L5Z89KQjznYqFH2i for ; Tue, 28 Oct 2008 14:51:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,501,1220193000"; d="scan'208";a="220071951" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 08:21:33 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KuwTN-0005ji-BT; Wed, 29 Oct 2008 08:51:33 +1100 Date: Wed, 29 Oct 2008 08:51:33 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Subject: Re: [PATCH 7/7] split up xlog_recover_process_iunlinks Message-ID: <20081028215133.GA4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133938.GH1109@infradead.org> <20081028071750.GV4985@disturbed> <20081028091446.GB1662@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028091446.GB1662@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225230695 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8930 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 28, 2008 at 05:14:46AM -0400, Christoph Hellwig wrote: > > > + error = xfs_iget(mp, NULL, ino, 0, 0, &ip, 0); > > > + if (error) > > > + goto fail; > > > + > > > + /* > > > + * Get the on disk inode to find the next inode in the bucket. > > > + */ > > > + ASSERT(ip != NULL); > > > + error = xfs_itobp(mp, NULL, ip, &dip, &ibp, 0, 0, XFS_BUF_LOCK); > > > + if (error) > > > + goto fail; > > > > Jumping to 'fail' at this point leaks the xfs_inode returned from > > xfs_iget(). Hmmmm - it appears the original code leaked too.... > > > > Also, I don't think we need the assert for ip, either. If it's NULL > > then we'll panic immediately on entering xfs_itobp(). > > Yeah. I'll fix this in a separate patch as this one is just suposed to > be purely refactoring. Ok, sounds fair. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 15:27:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SMRrqj004699 for ; Tue, 28 Oct 2008 15:27:54 -0700 X-ASG-Debug-ID: 1225232870-535f01400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC9C0149EB88 for ; Tue, 28 Oct 2008 15:27:51 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id c1DAxolGeBKkCxEu for ; Tue, 28 Oct 2008 15:27:51 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,501,1220193000"; d="scan'208";a="220096116" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 08:57:48 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kux2Q-0006Wn-9T; Wed, 29 Oct 2008 09:27:46 +1100 Date: Wed, 29 Oct 2008 09:27:46 +1100 From: Dave Chinner To: Nick Piggin Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081028222746.GB4985@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028153953.GB3082@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225232872 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8932 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > On Wed, Oct 29, 2008 at 01:47:15AM +1100, npiggin@suse.de wrote: > > OK, I'm happier with this patchset now. Note that I've taken your patch > > and mangled it a bit at the end of the series. > > > > This one survives and seems to run OK here, but I'm mainly doing dumb > > stress testing with a handful of filesystems, and data-io error injection > > testing. There are a lot of combinations of ways this function can operate > > and interact obviously, so it would be helpful to get more review. > > > > Chris, would you possibly have time to run your btrfs tests that are > > sensitive to problems in this code? I could provide you a single patch > > rollup against mainline if it helps. > > BTW. XFS seems to be doing something interesting with my simple sync > test case with IO error injection. I map a file MAP_SHARED into a number of > processes, which then each run a loop that dirties the memory then calls > msync(MS_SYNC) on the range. > > ext2 mostly reports -EIO back to userspace when a failure is injected AFAIKS. > ext3 (ordered) doesn't until a lot of errors have been injected, but eventually > reports -EIO and shuts down the filesystem. reiserfs seems to report failure > more consistently. > > I haven't seen any -EIO failures from XFS... maybe I'm just not doing the > right thing, or there is a caveat I'm not aware of. > > All fault injections I noticed had a trace like this: > FAULT_INJECTION: forcing a failure > Call Trace: > 9f9cd758: [<6019f1de>] random32+0xe/0x20 > 9f9cd768: [<601a31b9>] should_fail+0xd9/0x130 > 9f9cd798: [<6018d0c4>] generic_make_request+0x304/0x4e0 > 9f9cd7a8: [<60062301>] mempool_alloc+0x51/0x130 > 9f9cd858: [<6018e6bf>] submit_bio+0x4f/0xe0 > 9f9cd8a8: [<60165505>] xfs_submit_ioend_bio+0x25/0x40 > 9f9cd8c8: [<6016603c>] xfs_submit_ioend+0xbc/0xf0 > 9f9cd908: [<60166bf9>] xfs_page_state_convert+0x3d9/0x6a0 > 9f9cd928: [<6005d515>] delayacct_end+0x95/0xb0 > 9f9cda08: [<60166ffd>] xfs_vm_writepage+0x6d/0x110 > 9f9cda18: [<6006618b>] set_page_dirty+0x4b/0xd0 > 9f9cda58: [<60066115>] __writepage+0x15/0x40 > 9f9cda78: [<60066775>] write_cache_pages+0x255/0x470 > 9f9cda90: [<60066100>] __writepage+0x0/0x40 > 9f9cdb98: [<600669b0>] generic_writepages+0x20/0x30 > 9f9cdba8: [<60165ba3>] xfs_vm_writepages+0x53/0x70 > 9f9cdbd8: [<600669eb>] do_writepages+0x2b/0x40 > 9f9cdbf8: [<6006004c>] __filemap_fdatawrite_range+0x5c/0x70 > 9f9cdc58: [<6006026a>] filemap_fdatawrite+0x1a/0x20 > 9f9cdc68: [<600a7a05>] do_fsync+0x45/0xe0 > 9f9cdc98: [<6007794b>] sys_msync+0x14b/0x1d0 > 9f9cdcf8: [<60019a70>] handle_syscall+0x50/0x80 > 9f9cdd18: [<6002a10f>] userspace+0x44f/0x510 > 9f9cdfc8: [<60016792>] fork_handler+0x62/0x70 XFS reports bio errors through the I/O completion path, not the submission path. > And the kernel would sometimes say this: > Buffer I/O error on device ram0, logical block 279 > lost page write due to I/O error on ram0 > Buffer I/O error on device ram0, logical block 379 > lost page write due to I/O error on ram0 > Buffer I/O error on device ram0, logical block 389 > lost page write due to I/O error on ram0 Yes - that's coming from end_buffer_async_write() when an error is reported in bio completion. This does: 465 set_bit(AS_EIO, &page->mapping->flags); 466 set_buffer_write_io_error(bh); 467 clear_buffer_uptodate(bh); 468 SetPageError(page); Hmmmm - do_fsync() calls filemap_fdatawait() which ends up in wait_on_page_writeback_range() which is appears to be checking the mapping flags for errors. I wonder why that error is not being propagated then? AFAICT both XFS and the fsync code are doing the right thing but somewhere the error has gone missing... > I think I also saw a slab bug when running dbench with fault injection on. > Running latest Linus kernel. > > bash-3.1# dbench -t10 -c ../client.txt 8 > dbench version 3.04 - Copyright Andrew Tridgell 1999-2004 > > Running for 10 seconds with load '../client.txt' and minimum warmup 2 secs > 8 clients started > FAULT_INJECTION: forcing a failure > Call Trace: > 9e7bb548: [<601623ae>] random32+0xe/0x20 > 9e7bb558: [<60166389>] should_fail+0xd9/0x130 > 9e7bb588: [<60150294>] generic_make_request+0x304/0x4e0 > 9e7bb598: [<60062301>] mempool_alloc+0x51/0x130 > 9e7bb648: [<6015188f>] submit_bio+0x4f/0xe0 > 9e7bb698: [<6012b440>] _xfs_buf_ioapply+0x180/0x2a0 > 9e7bb6a0: [<6002f600>] default_wake_function+0x0/0x10 > 9e7bb6f8: [<6012bae1>] xfs_buf_iorequest+0x31/0x90 > 9e7bb718: [<60112f75>] xlog_bdstrat_cb+0x45/0x50 > 9e7bb738: [<60114135>] xlog_sync+0x195/0x440 > 9e7bb778: [<60114491>] xlog_state_release_iclog+0xb1/0xc0 > 9e7bb7a8: [<60114ca9>] xlog_write+0x539/0x550 > 9e7bb858: [<60114e60>] xfs_log_write+0x40/0x60 > 9e7bb888: [<6011fbaa>] _xfs_trans_commit+0x19a/0x360 > 9e7bb8b8: [<600838e2>] poison_obj+0x42/0x60 > 9e7bb8d0: [<60082cb3>] dbg_redzone1+0x13/0x30 > 9e7bb8e8: [<60083999>] cache_alloc_debugcheck_after+0x99/0x1c0 > 9e7bb918: [<6008517b>] kmem_cache_alloc+0x8b/0x100 > 9e7bb958: [<60128084>] kmem_zone_alloc+0x74/0xe0 > 9e7bb998: [<60082ad9>] kmem_cache_size+0x9/0x10 > 9e7bb9a8: [<60128124>] kmem_zone_zalloc+0x34/0x50 > 9e7bb9e8: [<60121e8b>] xfs_dir_ialloc+0x13b/0x2e0 > 9e7bba58: [<601f534b>] __down_write+0xb/0x10 > 9e7bbaa8: [<60125b9e>] xfs_mkdir+0x37e/0x4b0 > 9e7bbb38: [<601f5589>] _spin_unlock+0x9/0x10 > 9e7bbb78: [<601301a4>] xfs_vn_mknod+0xf4/0x1a0 > 9e7bbbd8: [<6013025e>] xfs_vn_mkdir+0xe/0x10 > 9e7bbbe8: [<60091010>] vfs_mkdir+0x90/0xc0 > 9e7bbc18: [<600934d6>] sys_mkdirat+0x106/0x120 > 9e7bbc88: [<6008629b>] filp_close+0x4b/0x80 > 9e7bbce8: [<60093503>] sys_mkdir+0x13/0x20 > 9e7bbcf8: [<60019a70>] handle_syscall+0x50/0x80 > 9e7bbd18: [<6002a10f>] userspace+0x44f/0x510 > 9e7bbfc8: [<60016792>] fork_handler+0x62/0x70 > > I/O error in filesystem ("ram0") meta-data dev ram0 block 0x8002c ("xlog_i > odone") error 5 buf count 32768 > xfs_force_shutdown(ram0,0x2) called from line 1056 of file /home/npiggin/usr/src > /linux-2.6/fs/xfs/xfs_log.c. Return address = 0x000000006011370d > Filesystem "ram0": Log I/O Error Detected. Shutting down filesystem: ram0 > Please umount the filesystem, and rectify the problem(s) > xfs_force_shutdown(ram0,0x2) called from line 818 of file /home/npiggin/usr/src/ > linux-2.6/fs/xfs/xfs_log.c. Return address = 0x0000000060114e7d > slab error in verify_redzone_free(): cache `xfs_log_ticket': double free detecte > d > Call Trace: > 9e7bb998: [<6008372f>] __slab_error+0x1f/0x30 > 9e7bb9a8: [<60083cae>] cache_free_debugcheck+0x1ee/0x240 > 9e7bb9b0: [<60112ef0>] xlog_ticket_put+0x10/0x20 > 9e7bb9e8: [<60083f70>] kmem_cache_free+0x50/0xc0 > 9e7bba18: [<60112ef0>] xlog_ticket_put+0x10/0x20 > 9e7bba28: [<60114dc9>] xfs_log_done+0x59/0xb0 > 9e7bba68: [<6011f5de>] xfs_trans_cancel+0x7e/0x140 > 9e7bbaa8: [<60125a1e>] xfs_mkdir+0x1fe/0x4b0 > 9e7bbb38: [<601f5589>] _spin_unlock+0x9/0x10 > 9e7bbb78: [<601301a4>] xfs_vn_mknod+0xf4/0x1a0 > 9e7bbbd8: [<6013025e>] xfs_vn_mkdir+0xe/0x10 > 9e7bbbe8: [<60091010>] vfs_mkdir+0x90/0xc0 > 9e7bbc18: [<600934d6>] sys_mkdirat+0x106/0x120 > 9e7bbc88: [<6008629b>] filp_close+0x4b/0x80 > 9e7bbce8: [<60093503>] sys_mkdir+0x13/0x20 > 9e7bbcf8: [<60019a70>] handle_syscall+0x50/0x80 > 9e7bbd18: [<6002a10f>] userspace+0x44f/0x510 > 9e7bbfc8: [<60016792>] fork_handler+0x62/0x70 Now that is interesting. We've got a rolling transaction in progress, and the commit of the first part of the transaction has got the I/O error. That frees the transaction structure used during that commit, as well as the ticket. However, before we committed the initial transaction, we duplicated the transaction structure to allow the transaction to continue to track all the dirty objects in the first commit. That included duplicating the pointer to the ticket. Then the EIO is returned to mkdir code with the duplicated transaction, which is then cancelled, and that frees the transaction and the ticket it holds. However, we'd already freed the ticket. Ok, we're only seeing this problem now because I recently modified the ticket allocation to use a slab instead of a roll-your-own free list structure that wouldn't have been poisoned. Nice to know that this change did more than just remove code. ;) This might take a little while to fix - a lot of code needs auditing - but thanks for reporting the problem. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 15:30:54 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SMUrGx005115 for ; Tue, 28 Oct 2008 15:30:54 -0700 X-ASG-Debug-ID: 1225233053-538601570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D2234149EBBC for ; Tue, 28 Oct 2008 15:30:53 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id TfQTDx6OtsaqbXA0 for ; Tue, 28 Oct 2008 15:30:53 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kux5R-0000yZ-B5; Tue, 28 Oct 2008 22:30:53 +0000 Date: Tue, 28 Oct 2008 18:30:53 -0400 From: Christoph Hellwig To: Russell Cattelan , xfs-oss X-ASG-Orig-Subj: Re: oss.sgi.com and mailman, looking for volunteers. Subject: Re: oss.sgi.com and mailman, looking for volunteers. Message-ID: <20081028223053.GA458@infradead.org> References: <490720DD.2050502@thebarn.com> <20081028215031.GY4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028215031.GY4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225233053 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 08:50:31AM +1100, Dave Chinner wrote: > What is the point? Let's just move the list to vger.kernel.org and > we can forget about all these problems.... Yeah. ecartis is just part of the problem. barracuda is another at least as big problem, and I guess there are many other hiding. From owner-xfs@oss.sgi.com Tue Oct 28 16:42:03 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9SNg3Be014002 for ; Tue, 28 Oct 2008 16:42:03 -0700 X-ASG-Debug-ID: 1225237323-62a303d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EAC8B12AF538 for ; Tue, 28 Oct 2008 16:42:03 -0700 (PDT) Received: from sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 4PKh7rORJgjpEL6D for ; Tue, 28 Oct 2008 16:42:03 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTP id 8DA1BAC626E; Tue, 28 Oct 2008 18:42:02 -0500 (CDT) Message-ID: <4907A34A.1060407@sandeen.net> Date: Tue, 28 Oct 2008 18:42:02 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: Russell Cattelan , xfs-oss X-ASG-Orig-Subj: Re: oss.sgi.com and mailman, looking for volunteers. Subject: Re: oss.sgi.com and mailman, looking for volunteers. References: <490720DD.2050502@thebarn.com> <20081028215031.GY4985@disturbed> <20081028223053.GA458@infradead.org> In-Reply-To: <20081028223053.GA458@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1225237323 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8936 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Wed, Oct 29, 2008 at 08:50:31AM +1100, Dave Chinner wrote: >> What is the point? Let's just move the list to vger.kernel.org and >> we can forget about all these problems.... > > Yeah. ecartis is just part of the problem. barracuda is another at > least as big problem, and I guess there are many other hiding. I suppose that this is sgi's decision in the end ;) Any comment from those folks? -Eric From owner-xfs@oss.sgi.com Tue Oct 28 17:04:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T04XVm015438 for ; Tue, 28 Oct 2008 17:04:34 -0700 X-ASG-Debug-ID: 1225238668-536103ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A66C6149FC9C for ; Tue, 28 Oct 2008 17:04:28 -0700 (PDT) Received: from mx1.suse.de (ns.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id dOWknbg6tZz3cc5F for ; Tue, 28 Oct 2008 17:04:28 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id CC11E4294E; Wed, 29 Oct 2008 01:04:27 +0100 (CET) Date: Wed, 29 Oct 2008 01:04:24 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029000424.GD15599@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028222746.GB4985@disturbed> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: ns.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1225238670 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 09:27:46AM +1100, Dave Chinner wrote: > On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > > On Wed, Oct 29, 2008 at 01:47:15AM +1100, npiggin@suse.de wrote: > > I haven't seen any -EIO failures from XFS... maybe I'm just not doing the > > right thing, or there is a caveat I'm not aware of. > > > > All fault injections I noticed had a trace like this: [...] > > XFS reports bio errors through the I/O completion path, not the > submission path. Right, that's just to give you an indication of where it's failing... > > And the kernel would sometimes say this: > > Buffer I/O error on device ram0, logical block 279 > > lost page write due to I/O error on ram0 > > Buffer I/O error on device ram0, logical block 379 > > lost page write due to I/O error on ram0 > > Buffer I/O error on device ram0, logical block 389 > > lost page write due to I/O error on ram0 > > Yes - that's coming from end_buffer_async_write() when an error is > reported in bio completion. This does: > > 465 set_bit(AS_EIO, &page->mapping->flags); > 466 set_buffer_write_io_error(bh); > 467 clear_buffer_uptodate(bh); > 468 SetPageError(page); > > Hmmmm - do_fsync() calls filemap_fdatawait() which ends up in > wait_on_page_writeback_range() which is appears to be checking the > mapping flags for errors. I wonder why that error is not being > propagated then? AFAICT both XFS and the fsync code are doing the > right thing but somewhere the error has gone missing... Yeah, I couldn't immediately see why nothing comes out. I'll do a bit more digging. > > I think I also saw a slab bug when running dbench with fault injection on. > > Running latest Linus kernel. [...] > > Now that is interesting. > > We've got a rolling transaction in progress, and the commit of the > first part of the transaction has got the I/O error. That frees the > transaction structure used during that commit, as well as the > ticket. > > However, before we committed the initial transaction, we duplicated > the transaction structure to allow the transaction to continue to > track all the dirty objects in the first commit. That included > duplicating the pointer to the ticket. > > Then the EIO is returned to mkdir code with the duplicated > transaction, which is then cancelled, and that frees the transaction > and the ticket it holds. However, we'd already freed the ticket. > > Ok, we're only seeing this problem now because I recently modified > the ticket allocation to use a slab instead of a roll-your-own free > list structure that wouldn't have been poisoned. Nice to know that > this change did more than just remove code. ;) > > This might take a little while to fix - a lot of code needs > auditing - but thanks for reporting the problem. No problem, hope it helps. Thanks, Nick From owner-xfs@oss.sgi.com Tue Oct 28 17:12:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T0CZdr016029 for ; Tue, 28 Oct 2008 17:12:35 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 4AC888F8051; Tue, 28 Oct 2008 17:12:31 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA29094; Wed, 29 Oct 2008 11:12:27 +1100 Message-ID: <4907AA64.4010603@sgi.com> Date: Wed, 29 Oct 2008 11:12:20 +1100 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Eric Sandeen CC: Christoph Hellwig , Russell Cattelan , xfs-oss Subject: Re: oss.sgi.com and mailman, looking for volunteers. References: <490720DD.2050502@thebarn.com> <20081028215031.GY4985@disturbed> <20081028223053.GA458@infradead.org> <4907A34A.1060407@sandeen.net> In-Reply-To: <4907A34A.1060407@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Eric Sandeen wrote: > Christoph Hellwig wrote: >> On Wed, Oct 29, 2008 at 08:50:31AM +1100, Dave Chinner wrote: >>> What is the point? Let's just move the list to vger.kernel.org and >>> we can forget about all these problems.... >> Yeah. ecartis is just part of the problem. barracuda is another at >> least as big problem, and I guess there are many other hiding. > > I suppose that this is sgi's decision in the end ;) Any comment from > those folks? just discussing it with various people now - will send out something later today. Cheers -- Mark > > -Eric > > -- Mark Goodwin markgw@sgi.com Engineering Manager for XFS and PCP Phone: +61-3-99631937 SGI Australian Software Group Cell: +61-4-18969583 ------------------------------------------------------------- From owner-xfs@oss.sgi.com Tue Oct 28 17:16:55 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T0Gtoi016585 for ; Tue, 28 Oct 2008 17:16:55 -0700 X-ASG-Debug-ID: 1225239414-74d200a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 747AC12AF843 for ; Tue, 28 Oct 2008 17:16:54 -0700 (PDT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id sd5RGfp0fy0ct3Ab for ; Tue, 28 Oct 2008 17:16:54 -0700 (PDT) Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id D42714643F; Wed, 29 Oct 2008 01:16:53 +0100 (CET) Date: Wed, 29 Oct 2008 01:16:53 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029001653.GF15599@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028222746.GB4985@disturbed> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: mx2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225239415 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8938 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Wed, Oct 29, 2008 at 09:27:46AM +1100, Dave Chinner wrote: > On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > > > > I haven't seen any -EIO failures from XFS... maybe I'm just not doing the > > right thing, or there is a caveat I'm not aware of. > > > > All fault injections I noticed had a trace like this: > > FAULT_INJECTION: forcing a failure > > Call Trace: > > 9f9cd758: [<6019f1de>] random32+0xe/0x20 > > 9f9cd768: [<601a31b9>] should_fail+0xd9/0x130 > > 9f9cd798: [<6018d0c4>] generic_make_request+0x304/0x4e0 > > 9f9cd7a8: [<60062301>] mempool_alloc+0x51/0x130 > > 9f9cd858: [<6018e6bf>] submit_bio+0x4f/0xe0 > > 9f9cd8a8: [<60165505>] xfs_submit_ioend_bio+0x25/0x40 > > 9f9cd8c8: [<6016603c>] xfs_submit_ioend+0xbc/0xf0 > > 9f9cd908: [<60166bf9>] xfs_page_state_convert+0x3d9/0x6a0 > > 9f9cd928: [<6005d515>] delayacct_end+0x95/0xb0 > > 9f9cda08: [<60166ffd>] xfs_vm_writepage+0x6d/0x110 > > 9f9cda18: [<6006618b>] set_page_dirty+0x4b/0xd0 > > 9f9cda58: [<60066115>] __writepage+0x15/0x40 > > 9f9cda78: [<60066775>] write_cache_pages+0x255/0x470 > > 9f9cda90: [<60066100>] __writepage+0x0/0x40 > > 9f9cdb98: [<600669b0>] generic_writepages+0x20/0x30 > > 9f9cdba8: [<60165ba3>] xfs_vm_writepages+0x53/0x70 > > 9f9cdbd8: [<600669eb>] do_writepages+0x2b/0x40 > > 9f9cdbf8: [<6006004c>] __filemap_fdatawrite_range+0x5c/0x70 > > 9f9cdc58: [<6006026a>] filemap_fdatawrite+0x1a/0x20 > > 9f9cdc68: [<600a7a05>] do_fsync+0x45/0xe0 > > 9f9cdc98: [<6007794b>] sys_msync+0x14b/0x1d0 > > 9f9cdcf8: [<60019a70>] handle_syscall+0x50/0x80 > > 9f9cdd18: [<6002a10f>] userspace+0x44f/0x510 > > 9f9cdfc8: [<60016792>] fork_handler+0x62/0x70 > > XFS reports bio errors through the I/O completion path, not the > submission path. > > > And the kernel would sometimes say this: > > Buffer I/O error on device ram0, logical block 279 > > lost page write due to I/O error on ram0 > > Buffer I/O error on device ram0, logical block 379 > > lost page write due to I/O error on ram0 > > Buffer I/O error on device ram0, logical block 389 > > lost page write due to I/O error on ram0 > > Yes - that's coming from end_buffer_async_write() when an error is > reported in bio completion. This does: > > 465 set_bit(AS_EIO, &page->mapping->flags); > 466 set_buffer_write_io_error(bh); > 467 clear_buffer_uptodate(bh); > 468 SetPageError(page); > > Hmmmm - do_fsync() calls filemap_fdatawait() which ends up in > wait_on_page_writeback_range() which is appears to be checking the > mapping flags for errors. I wonder why that error is not being > propagated then? AFAICT both XFS and the fsync code are doing the > right thing but somewhere the error has gone missing... This one-liner has it reporting EIO errors like a champion. I don't know if you'll actually need to put this into the linux API layer or not, but anyway the root cause of the problem AFAIKS is this. -- XFS: fix fsync errors not being propogated back to userspace. --- Index: linux-2.6/fs/xfs/xfs_vnodeops.c =================================================================== --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c +++ linux-2.6/fs/xfs/xfs_vnodeops.c @@ -715,7 +715,7 @@ xfs_fsync( /* capture size updates in I/O completion before writing the inode. */ error = filemap_fdatawait(VFS_I(ip)->i_mapping); if (error) - return XFS_ERROR(error); + return XFS_ERROR(-error); /* * We always need to make sure that the required inode state is safe on From owner-xfs@oss.sgi.com Tue Oct 28 17:45:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T0jDZE018338 for ; Tue, 28 Oct 2008 17:45:14 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 320F28F8068; Tue, 28 Oct 2008 17:45:12 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA29781; Wed, 29 Oct 2008 11:45:08 +1100 Message-ID: <4907B1B3.4020008@sgi.com> Date: Wed, 29 Oct 2008 11:43:31 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Christoph Hellwig , Lachlan McIlroy , xfs-oss Subject: Re: assertion failure with latest xfs References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> In-Reply-To: <20081023222126.GA18495@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Thu, Oct 23, 2008 at 01:31:49PM -0400, Christoph Hellwig wrote: >> On Thu, Oct 23, 2008 at 07:08:15PM +1000, Lachlan McIlroy wrote: >>> Just encountered this after pulling in the latest changes. We are trying to >>> initialise an inode that should have an i_count of 1 but instead it is 2. I >>> was running XFSQA test 167 when it happened. >> I think the assert is incorrect. The inode has been added to the radix >> tree in xfs_iget_cache_miss, and starting from that point an igrab can >> kick in from the sync code and bump the refcount. > > Actually, it was put there for a reason. The generic code doesn't > allow new inodes to be found in the cache until the I_LOCK flag is > cleared. This is done by calling wait_on_inode() after a successful > lookup (which waits on I_LOCK) and unlock_new_inode() clears the > I_LOCK|I_NEW bits and wakes anyone who was waiting on that inode via > wake_up_inode(). So the assert was put there to catch potential > races in lookup where a second process does a successful igrab() > before the inode is fully initialised. > > I think the race is in dealing with cache hits and recycling a > XFS_IRECLAIMABLE inode. We set the XFS_INEW flag there under > the radix tree read lock, which means we can have parallel lookups > on the same inode that goes: > > thread 1 thread 2 > test XFS_INEW > -> not set > test XFS_IRECLAIMABLE > -> set > test XFS_INEW > -> not set > set XFS_INEW > clear XFS_IRECLAIMABLE > test XFS_IRECLAIMABLE > -> not set > xfs_setup_inode() > -> i_state = I_NEW|I_LOCK > igrab(inode) > -> I_CLEAR not set > -> refcount = 2 > -> inode_add_to_lists > -> assert(refcount == 1) > ..... > -> clear XFS_INEW > -> unlock_new_inode() > -> clear I_NEW|I_LOCK > > I thought I'd handled this race with the ordering of setting/clearing > XFS_INEW/XFS_IRECLAIMABLE. Clearly not. I'll add a comment to this > ordering because it is key to actually detecting the race condition > so we can handle it. > > Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't > drop the reference we got if we found an unlinked inode after the > igrab() (the ENOENT case). I'll fix that as well. > > Patch below that I'm currently running through xfsqa. I gave this patch a go and it still asserted at the same place running the same test. From owner-xfs@oss.sgi.com Tue Oct 28 18:02:50 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T12nAq019453 for ; Tue, 28 Oct 2008 18:02:50 -0700 X-ASG-Debug-ID: 1225242169-261b025c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CBC9414A0730 for ; Tue, 28 Oct 2008 18:02:49 -0700 (PDT) Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by cuda.sgi.com with ESMTP id rlsHfVGYWu6ENmEc for ; Tue, 28 Oct 2008 18:02:49 -0700 (PDT) Received: from funky.thebarn.com (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id m9T12fCS035694; Tue, 28 Oct 2008 20:02:41 -0500 (CDT) (envelope-from cattelan@xfs.org) Message-ID: <4907B631.1090205@xfs.org> Date: Tue, 28 Oct 2008 20:02:41 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs-oss X-ASG-Orig-Subj: Re: oss.sgi.com and mailman, looking for volunteers. Subject: Re: oss.sgi.com and mailman, looking for volunteers. References: <490720DD.2050502@thebarn.com> <20081028215031.GY4985@disturbed> <20081028223053.GA458@infradead.org> In-Reply-To: <20081028223053.GA458@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/8529/Tue Oct 28 17:21:11 2008 on slurp.thebarn.com X-Virus-Status: Clean X-Barracuda-Connect: cattelan-host202.dsl.visi.com[208.42.117.202] X-Barracuda-Start-Time: 1225242169 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2250 1.0000 -0.6984 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.70 X-Barracuda-Spam-Status: No, SCORE=-0.70 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8940 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Christoph Hellwig wrote: > On Wed, Oct 29, 2008 at 08:50:31AM +1100, Dave Chinner wrote: > >> What is the point? Let's just move the list to vger.kernel.org and >> we can forget about all these problems.... >> > > Yeah. ecartis is just part of the problem. barracuda is another at > least as big problem, and I guess there are many other hiding. > > ya it has dropped 39 messages this month oss[5:59pm]#formail -x Subject: -s < xfs.2008-10 |wc -l 741 oss[5:59pm]#formail -x Subject: -s < xfs-procmail-2008_10 | wc -l 780 I think using mailman will clear up the dropped mail problems. What other issues do you think is there? The barracuda problem is outside of oss and affects all mail from 1st.de to sgi. Did you ever find out why barracuda thinks your ip has a "poor" rating? From owner-xfs@oss.sgi.com Tue Oct 28 18:18:41 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T1IfYN020501 for ; Tue, 28 Oct 2008 18:18:41 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id EC8718F8074; Tue, 28 Oct 2008 18:18:37 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id MAA00489; Wed, 29 Oct 2008 12:18:35 +1100 Message-ID: <4907B9E4.8090609@sgi.com> Date: Wed, 29 Oct 2008 12:18:28 +1100 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Russell Cattelan CC: Christoph Hellwig , xfs-oss Subject: Re: oss.sgi.com and mailman, looking for volunteers. References: <490720DD.2050502@thebarn.com> <20081028215031.GY4985@disturbed> <20081028223053.GA458@infradead.org> <4907B631.1090205@xfs.org> In-Reply-To: <4907B631.1090205@xfs.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Russell Cattelan wrote: > Christoph Hellwig wrote: >> On Wed, Oct 29, 2008 at 08:50:31AM +1100, Dave Chinner wrote: >> >>> What is the point? Let's just move the list to vger.kernel.org and >>> we can forget about all these problems.... >>> >> >> Yeah. ecartis is just part of the problem. barracuda is another at >> least as big problem, and I guess there are many other hiding. >> >> > ya it has dropped 39 messages this month > oss[5:59pm]#formail -x Subject: -s < xfs.2008-10 |wc -l > 741 > oss[5:59pm]#formail -x Subject: -s < xfs-procmail-2008_10 | wc -l > 780 > > > I think using mailman will clear up the dropped mail problems. > > What other issues do you think is there? I will reply later today on this > > The barracuda problem is outside of oss and affects all mail from 1st.de > to sgi. all mail to any list @sgi.com goes thru the internal barracuda spam filter. > > Did you ever find out why barracuda thinks your ip has a "poor" rating? > Christoph's IP has now been whitelisted (or should have been by now). I have no insight as to which other IP addresses have a poor rating, there may be others (that are not spammers). -- Mark From owner-xfs@oss.sgi.com Tue Oct 28 20:16:53 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T3GrNe026407 for ; Tue, 28 Oct 2008 20:16:53 -0700 X-ASG-Debug-ID: 1225250208-115200360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 22DD98A1C0F for ; Tue, 28 Oct 2008 20:16:49 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id PRAvFZChMCT5AmoI for ; Tue, 28 Oct 2008 20:16:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,503,1220193000"; d="scan'208";a="220369512" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 13:46:47 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv1Y5-0003Di-LR; Wed, 29 Oct 2008 14:16:45 +1100 Date: Wed, 29 Oct 2008 14:16:45 +1100 From: Dave Chinner To: Nick Piggin Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029031645.GE4985@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029001653.GF15599@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225250210 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8947 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 01:16:53AM +0100, Nick Piggin wrote: > On Wed, Oct 29, 2008 at 09:27:46AM +1100, Dave Chinner wrote: > > On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > > Yes - that's coming from end_buffer_async_write() when an error is > > reported in bio completion. This does: > > > > 465 set_bit(AS_EIO, &page->mapping->flags); > > 466 set_buffer_write_io_error(bh); > > 467 clear_buffer_uptodate(bh); > > 468 SetPageError(page); > > > > Hmmmm - do_fsync() calls filemap_fdatawait() which ends up in > > wait_on_page_writeback_range() which is appears to be checking the > > mapping flags for errors. I wonder why that error is not being > > propagated then? AFAICT both XFS and the fsync code are doing the > > right thing but somewhere the error has gone missing... > > This one-liner has it reporting EIO errors like a champion. I > don't know if you'll actually need to put this into the > linux API layer or not, but anyway the root cause of the problem > AFAIKS is this. > -- > > XFS: fix fsync errors not being propogated back to userspace. > --- > Index: linux-2.6/fs/xfs/xfs_vnodeops.c > =================================================================== > --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c > +++ linux-2.6/fs/xfs/xfs_vnodeops.c > @@ -715,7 +715,7 @@ xfs_fsync( > /* capture size updates in I/O completion before writing the inode. */ > error = filemap_fdatawait(VFS_I(ip)->i_mapping); > if (error) > - return XFS_ERROR(error); > + return XFS_ERROR(-error); Yeah, that'd do it. Good catch. I can't believe I recently fixed a bug that touched these lines of code without noticing the inversion. Sometimes I wonder if we should just conver the entire of XFS to return negative errors - mistakes in handling negative error numbers in the core XFS code happen all the time. FWIW, the core issue here is that we've got to do the filemap_fdatawait() call in the ->fsync method because ->fsync gets called before we've waited for the data I/O to complete. XFS updates inode state on I/O completion, so we *must* wait for data I/O to complete before logging the inode changes. I think btrfs has the same problem.... Thanks again, Nick. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 20:26:08 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T3Q78I031983 for ; Tue, 28 Oct 2008 20:26:07 -0700 X-ASG-Debug-ID: 1225250764-1d7d03540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5C7E21B1B485 for ; Tue, 28 Oct 2008 20:26:05 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id guocWQAScag37G39 for ; Tue, 28 Oct 2008 20:26:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,503,1220193000"; d="scan'208";a="220379159" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 13:56:03 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv1h3-0003Sg-Re; Wed, 29 Oct 2008 14:26:01 +1100 Date: Wed, 29 Oct 2008 14:26:01 +1100 From: Dave Chinner To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029032601.GF4985@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029031645.GE4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225250767 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8948 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > On Wed, Oct 29, 2008 at 01:16:53AM +0100, Nick Piggin wrote: > > XFS: fix fsync errors not being propogated back to userspace. > > --- > > Index: linux-2.6/fs/xfs/xfs_vnodeops.c > > =================================================================== > > --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c > > +++ linux-2.6/fs/xfs/xfs_vnodeops.c > > @@ -715,7 +715,7 @@ xfs_fsync( > > /* capture size updates in I/O completion before writing the inode. */ > > error = filemap_fdatawait(VFS_I(ip)->i_mapping); > > if (error) > > - return XFS_ERROR(error); > > + return XFS_ERROR(-error); > > > > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > bug that touched these lines of code without noticing the inversion. > Sometimes I wonder if we should just conver the entire of XFS to > return negative errors - mistakes in handling negative error numbers > in the core XFS code happen all the time. Ok, I was right - these problems happen all the time. The above call should really call xfs_flush_pages() to do the flush and wait. I note that xfs_flush_pages() returns negative errors, and all the callers expect positive errors. I bet the same occurs for xfs_flushinval_pages() and xfs_tosspages() which are the wrappers that core XFS code is supposed to be using for flushing and invalidating file ranges.... I'll write up a patch that covers all of these. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 20:29:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T3Th7H032364 for ; Tue, 28 Oct 2008 20:29:43 -0700 X-ASG-Debug-ID: 1225250982-2bdf011c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FAC7556939 for ; Tue, 28 Oct 2008 20:29:43 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 2AMMbTBbySg9VJ8m for ; Tue, 28 Oct 2008 20:29:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,504,1220193000"; d="scan'208";a="220382829" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 13:59:42 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv1kb-0003YF-5N; Wed, 29 Oct 2008 14:29:41 +1100 Date: Wed, 29 Oct 2008 14:29:41 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: assertion failure with latest xfs Subject: Re: assertion failure with latest xfs Message-ID: <20081029032941.GG4985@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> <4907B1B3.4020008@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4907B1B3.4020008@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225250984 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8948 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 11:43:31AM +1100, Lachlan McIlroy wrote: > Dave Chinner wrote: >> Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't >> drop the reference we got if we found an unlinked inode after the >> igrab() (the ENOENT case). I'll fix that as well. >> >> Patch below that I'm currently running through xfsqa. > > I gave this patch a go and it still asserted at the same place running > the same test. Can you put more inode trace points in so that we can see where the extra reference is coming from? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 20:39:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T3dVm6000639 for ; Tue, 28 Oct 2008 20:39:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 34EBD90890; Tue, 28 Oct 2008 20:39:25 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA03082; Wed, 29 Oct 2008 14:39:23 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 0A8A558AE1E9; Wed, 29 Oct 2008 14:39:23 +1100 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 987246 - Fix race when looking up reclaimable inodes Message-Id: <20081029033923.0A8A558AE1E9@chook.melbourne.sgi.com> Date: Wed, 29 Oct 2008 14:39:23 +1100 (EST) From: lachlan@sgi.com (Lachlan McIlroy) Fix race when looking up reclaimable inodes If we get a race looking up a reclaimable inode, we can end up with the winner proceeding to use the inode before it has been completely re-initialised. This is a Bad Thing. Fix the race by checking whether we are still initialising the inod eonce we have a reference to it, and if so wait for the initialisation to complete before continuing. While there, fix a leaked reference count in the same code when encountering an unlinked inode and we are not doing a lookup for a create operation. Signed-off-by: Dave Chinner Date: Wed Oct 29 14:38:57 EST 2008 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-xfs Inspected by: lachlan Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:32429a fs/xfs/xfs_iget.c - 1.256 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.256&r2=text&tr2=1.255&f=h fs/xfs/linux-2.6/xfs_linux.h - 1.173 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.173&r2=text&tr2=1.172&f=h - Fix race when looking up reclaimable inodes From owner-xfs@oss.sgi.com Tue Oct 28 21:00:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T40JLe001945 for ; Tue, 28 Oct 2008 21:00:21 -0700 X-ASG-Debug-ID: 1225252818-2c3d024f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A6842554E72 for ; Tue, 28 Oct 2008 21:00:18 -0700 (PDT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id MLDZ4PD06g38F5vR for ; Tue, 28 Oct 2008 21:00:18 -0700 (PDT) Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id BE57946499; Wed, 29 Oct 2008 05:00:15 +0100 (CET) Date: Wed, 29 Oct 2008 05:00:14 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason Cc: linux-ext4@vger.kernel.org X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029040014.GB17624@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029031645.GE4985@disturbed> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: mx2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225252819 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8949 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > On Wed, Oct 29, 2008 at 01:16:53AM +0100, Nick Piggin wrote: > > On Wed, Oct 29, 2008 at 09:27:46AM +1100, Dave Chinner wrote: > > > On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > > > Yes - that's coming from end_buffer_async_write() when an error is > > > reported in bio completion. This does: > > > > > > 465 set_bit(AS_EIO, &page->mapping->flags); > > > 466 set_buffer_write_io_error(bh); > > > 467 clear_buffer_uptodate(bh); > > > 468 SetPageError(page); > > > > > > Hmmmm - do_fsync() calls filemap_fdatawait() which ends up in > > > wait_on_page_writeback_range() which is appears to be checking the > > > mapping flags for errors. I wonder why that error is not being > > > propagated then? AFAICT both XFS and the fsync code are doing the > > > right thing but somewhere the error has gone missing... > > > > This one-liner has it reporting EIO errors like a champion. I > > don't know if you'll actually need to put this into the > > linux API layer or not, but anyway the root cause of the problem > > AFAIKS is this. > > -- > > > > XFS: fix fsync errors not being propogated back to userspace. > > --- > > Index: linux-2.6/fs/xfs/xfs_vnodeops.c > > =================================================================== > > --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c > > +++ linux-2.6/fs/xfs/xfs_vnodeops.c > > @@ -715,7 +715,7 @@ xfs_fsync( > > /* capture size updates in I/O completion before writing the inode. */ > > error = filemap_fdatawait(VFS_I(ip)->i_mapping); > > if (error) > > - return XFS_ERROR(error); > > + return XFS_ERROR(-error); > > > > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > bug that touched these lines of code without noticing the inversion. > Sometimes I wonder if we should just conver the entire of XFS to > return negative errors - mistakes in handling negative error numbers > in the core XFS code happen all the time. Heh, yeah it seems a bit tricky. BTW. feel free to add Signed-off-by: Nick Piggin if you would like to merge it, or alternatively if you fix it another way then I can rerun the test in 2 minutes if it is not 100% obviously correct. BTW. XFS seems to really be a lot more consistent than ext3 (ordered) in reporting EIO with this change in place. I don't know why exactly, but in ext3 I can see hundreds or thousands of failures injected in this manner: FAULT_INJECTION: forcing a failure Call Trace: 9ebe17f8: [<6019f34e>] random32+0xe/0x20 9ebe1808: [<601a3329>] should_fail+0xd9/0x130 9ebe1838: [<6018d234>] generic_make_request+0x304/0x4e0 9ebe1848: [<600622e1>] mempool_alloc+0x51/0x130 9ebe18f8: [<6018e82f>] submit_bio+0x4f/0xe0 9ebe1948: [<600a8969>] submit_bh+0xd9/0x130 9ebe1978: [<600aab08>] __block_write_full_page+0x198/0x310 9ebe1988: [<600a8487>] alloc_buffer_head+0x37/0x50 9ebe19a0: [<600f6ec0>] ext3_get_block+0x0/0x110 9ebe19d8: [<600f6ec0>] ext3_get_block+0x0/0x110 9ebe19e8: [<600aad48>] block_write_full_page+0xc8/0x100 9ebe1a38: [<600f8951>] ext3_ordered_writepage+0xd1/0x180 9ebe1a48: [<6006616b>] set_page_dirty+0x4b/0xd0 9ebe1a88: [<600660f5>] __writepage+0x15/0x40 9ebe1aa8: [<60066755>] write_cache_pages+0x255/0x470 9ebe1ac0: [<600660e0>] __writepage+0x0/0x40 9ebe1bc8: [<60066990>] generic_writepages+0x20/0x30 9ebe1bd8: [<600669db>] do_writepages+0x3b/0x40 9ebe1bf8: [<6006006c>] __filemap_fdatawrite_range+0x5c/0x70 9ebe1c58: [<6006028a>] filemap_fdatawrite+0x1a/0x20 9ebe1c68: [<600a7a15>] do_fsync+0x45/0xe0 9ebe1c98: [<6007792b>] sys_msync+0x14b/0x1d0 9ebe1cf8: [<60019a70>] handle_syscall+0x50/0x80 9ebe1d18: [<6002a10f>] userspace+0x44f/0x510 9ebe1fc8: [<60016792>] fork_handler+0x62/0x70 Buffer I/O error on device ram0, logical block 8228 lost page write due to I/O error on ram0 But eventually the filesystem aborts when we get a journal writing error, and sometimes I see a single EIO to msync, sometimes not (cc ext3 list). Wheras XFS reports a lot more EIOs as it goes... If ext3 guys have any suggestions, I could test them out. > FWIW, the core issue here is that we've got to do the > filemap_fdatawait() call in the ->fsync method because ->fsync > gets called before we've waited for the data I/O to complete. > XFS updates inode state on I/O completion, so we *must* wait > for data I/O to complete before logging the inode changes. I > think btrfs has the same problem.... Interesting. Does that mean you can do without the final filemap_fdatawait? Can you do the first fdatawait without i_mutex held? There was some talk IIRC about moving all this logic into the filesystem to provide more flexibility here. If there is still enough interest, we should get that moving... > Thanks again, Nick. No problem. Thanks, Nick From owner-xfs@oss.sgi.com Tue Oct 28 21:11:15 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T4BEjH002907 for ; Tue, 28 Oct 2008 21:11:15 -0700 X-ASG-Debug-ID: 1225253473-3b1600430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D5167B00303 for ; Tue, 28 Oct 2008 21:11:14 -0700 (PDT) Received: from mx1.suse.de (ns1.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id 0p7Xy6a9Ol98Ndoe for ; Tue, 28 Oct 2008 21:11:14 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from Relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 432D6429D0; Wed, 29 Oct 2008 05:11:13 +0100 (CET) Date: Wed, 29 Oct 2008 05:11:12 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029041112.GC17624@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029032601.GF4985@disturbed> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: ns1.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1225253474 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 02:26:01PM +1100, Dave Chinner wrote: > On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > > On Wed, Oct 29, 2008 at 01:16:53AM +0100, Nick Piggin wrote: > > > XFS: fix fsync errors not being propogated back to userspace. > > > --- > > > Index: linux-2.6/fs/xfs/xfs_vnodeops.c > > > =================================================================== > > > --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c > > > +++ linux-2.6/fs/xfs/xfs_vnodeops.c > > > @@ -715,7 +715,7 @@ xfs_fsync( > > > /* capture size updates in I/O completion before writing the inode. */ > > > error = filemap_fdatawait(VFS_I(ip)->i_mapping); > > > if (error) > > > - return XFS_ERROR(error); > > > + return XFS_ERROR(-error); > > > > > > > > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > > bug that touched these lines of code without noticing the inversion. > > Sometimes I wonder if we should just conver the entire of XFS to > > return negative errors - mistakes in handling negative error numbers > > in the core XFS code happen all the time. > > Ok, I was right - these problems happen all the time. The above call > should really call xfs_flush_pages() to do the flush and wait. I > note that xfs_flush_pages() returns negative errors, and all the > callers expect positive errors. I bet the same occurs for > xfs_flushinval_pages() and xfs_tosspages() which are the wrappers > that core XFS code is supposed to be using for flushing and > invalidating file ranges.... Just be careful -- in your xfs_flush_pages, I think after the first filemap_fdatawrite, the mapping may no longer be tagged with PAGECACHE_TAG_DIRTY, so you may not pick up those writeback ones you need to wait on. Might need a different variant, or we could just bite the bullet and push through the ->fsync conversion so you get full control of the writeout. BTW. the Linux pagecache APIs should support range operations quite nicely for these. Any reason not to use them (it looks like the wrappers can take ranges)? From owner-xfs@oss.sgi.com Tue Oct 28 21:57:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T4vKpx005646 for ; Tue, 28 Oct 2008 21:57:21 -0700 X-ASG-Debug-ID: 1225256237-799e00570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D2ADF556CAA for ; Tue, 28 Oct 2008 21:57:19 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id DrXceA856oO2pCng for ; Tue, 28 Oct 2008 21:57:19 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,504,1220193000"; d="scan'208";a="220469691" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 15:27:08 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv37D-0008LC-8G; Wed, 29 Oct 2008 15:57:07 +1100 Date: Wed, 29 Oct 2008 15:57:07 +1100 From: Dave Chinner To: Nick Piggin Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029045707.GF17077@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> <20081029041112.GC17624@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029041112.GC17624@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225256240 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8951 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 05:11:12AM +0100, Nick Piggin wrote: > On Wed, Oct 29, 2008 at 02:26:01PM +1100, Dave Chinner wrote: > > On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > > > On Wed, Oct 29, 2008 at 01:16:53AM +0100, Nick Piggin wrote: > > > > XFS: fix fsync errors not being propogated back to userspace. > > > > --- > > > > Index: linux-2.6/fs/xfs/xfs_vnodeops.c > > > > =================================================================== > > > > --- linux-2.6.orig/fs/xfs/xfs_vnodeops.c > > > > +++ linux-2.6/fs/xfs/xfs_vnodeops.c > > > > @@ -715,7 +715,7 @@ xfs_fsync( > > > > /* capture size updates in I/O completion before writing the inode. */ > > > > error = filemap_fdatawait(VFS_I(ip)->i_mapping); > > > > if (error) > > > > - return XFS_ERROR(error); > > > > + return XFS_ERROR(-error); > > > > > > > > > > > > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > > > bug that touched these lines of code without noticing the inversion. > > > Sometimes I wonder if we should just conver the entire of XFS to > > > return negative errors - mistakes in handling negative error numbers > > > in the core XFS code happen all the time. > > > > Ok, I was right - these problems happen all the time. The above call > > should really call xfs_flush_pages() to do the flush and wait. I > > note that xfs_flush_pages() returns negative errors, and all the > > callers expect positive errors. I bet the same occurs for > > xfs_flushinval_pages() and xfs_tosspages() which are the wrappers > > that core XFS code is supposed to be using for flushing and > > invalidating file ranges.... > > Just be careful -- in your xfs_flush_pages, I think after the first > filemap_fdatawrite, the mapping may no longer be tagged with > PAGECACHE_TAG_DIRTY, so you may not pick up those writeback ones > you need to wait on. Yes, I realised this as soon as I looked at the code. I added xfs_wait_on_pages() to do this wait. ;) > Might need a different variant, or we could just bite the bullet and > push through the ->fsync conversion so you get full control of the > writeout. Not important right now, though.... > BTW. the Linux pagecache APIs should support range operations quite > nicely for these. Any reason not to use them (it looks like the > wrappers can take ranges)? Because I haven't got around to modifying these wrappers now that the range primitives are in place - XFS inherited the range operations from Irix and have sat unimplemented since being ported to Linux. The patch below should fix this entire class of error value screwup in XFS. I've just started running it through XFSQA, so it's not really tested yet. FWIW, your entire patch series made it through XFSQA without any new regressions, so it looks good from that POV. Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: fix error inversion problems with data flushing XFS gets the sign of the error wrong in several places when gathering the error from generic linux functions. These functions return negative error values, while the core XFS code returns positive error values. Hence when XFS inverts the error to be returned to the VFS, it can incorrectly invert a negative error and this error will be ignored by the syscall return. Fix all the problems related to calling filemap_* functions. Problem initially identified by Nick Piggin in xfs_fsync(). Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_fs_subr.c | 23 ++++++++++++++++++++--- fs/xfs/linux-2.6/xfs_lrw.c | 2 +- fs/xfs/linux-2.6/xfs_super.c | 13 +++++++++---- fs/xfs/xfs_vnodeops.c | 2 +- fs/xfs/xfs_vnodeops.h | 1 + 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index 36caa6d..5aeb777 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c @@ -24,6 +24,10 @@ int fs_noerr(void) { return 0; } int fs_nosys(void) { return ENOSYS; } void fs_noval(void) { return; } +/* + * note: all filemap functions return negative error codes. These + * need to be inverted before returning to the xfs core functions. + */ void xfs_tosspages( xfs_inode_t *ip, @@ -53,7 +57,7 @@ xfs_flushinval_pages( if (!ret) truncate_inode_pages(mapping, first); } - return ret; + return -ret; } int @@ -72,10 +76,23 @@ xfs_flush_pages( xfs_iflags_clear(ip, XFS_ITRUNCATED); ret = filemap_fdatawrite(mapping); if (flags & XFS_B_ASYNC) - return ret; + return -ret; ret2 = filemap_fdatawait(mapping); if (!ret) ret = ret2; } - return ret; + return -ret; +} + +int +xfs_wait_on_pages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last) +{ + struct address_space *mapping = VFS_I(ip)->i_mapping; + + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) + return -filemap_fdatawait(mapping); + return 0; } diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 1957e53..4959c87 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c @@ -243,7 +243,7 @@ xfs_read( if (unlikely(ioflags & IO_ISDIRECT)) { if (inode->i_mapping->nrpages) - ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), + ret = -xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), -1, FI_REMAPF_LOCKED); mutex_unlock(&inode->i_mutex); if (ret) { diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 9dc977d..c5cfc1e 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1012,21 +1012,26 @@ xfs_fs_write_inode( struct inode *inode, int sync) { + struct xfs_inode *ip = XFS_I(inode); int error = 0; int flags = 0; - xfs_itrace_entry(XFS_I(inode)); + xfs_itrace_entry(ip); if (sync) { - filemap_fdatawait(inode->i_mapping); + error = xfs_wait_on_pages(ip, 0, -1); + if (error) + goto out_error; flags |= FLUSH_SYNC; } - error = xfs_inode_flush(XFS_I(inode), flags); + error = xfs_inode_flush(ip, flags); + +out_error: /* * if we failed to write out the inode then mark * it dirty again so we'll try again later. */ if (error) - xfs_mark_inode_dirty_sync(XFS_I(inode)); + xfs_mark_inode_dirty_sync(ip); return -error; } diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 2e2fbd9..5809c42 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -713,7 +713,7 @@ xfs_fsync( return XFS_ERROR(EIO); /* capture size updates in I/O completion before writing the inode. */ - error = filemap_fdatawait(VFS_I(ip)->i_mapping); + error = xfs_wait_on_pages(ip, 0, -1); if (error) return XFS_ERROR(error); diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index e932a96..f9cd376 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h @@ -78,5 +78,6 @@ int xfs_flushinval_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last, int fiopt); int xfs_flush_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last, uint64_t flags, int fiopt); +int xfs_wait_on_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last); #endif /* _XFS_VNODEOPS_H */ From owner-xfs@oss.sgi.com Tue Oct 28 22:07:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T575On006274 for ; Tue, 28 Oct 2008 22:07:05 -0700 X-ASG-Debug-ID: 1225256824-3b1702a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6AA3FB0056D for ; Tue, 28 Oct 2008 22:07:04 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id W0b0J8pRUrUzZAtW for ; Tue, 28 Oct 2008 22:07:04 -0700 (PDT) Received: from Relay2.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id A41534648A; Wed, 29 Oct 2008 06:07:01 +0100 (CET) Date: Wed, 29 Oct 2008 06:06:59 +0100 From: Nick Piggin To: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029050659.GD17624@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> <20081029041112.GC17624@wotan.suse.de> <20081029045707.GF17077@disturbed> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029045707.GF17077@disturbed> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225256825 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8952 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 03:57:07PM +1100, Dave Chinner wrote: > On Wed, Oct 29, 2008 at 05:11:12AM +0100, Nick Piggin wrote: > > Just be careful -- in your xfs_flush_pages, I think after the first > > filemap_fdatawrite, the mapping may no longer be tagged with > > PAGECACHE_TAG_DIRTY, so you may not pick up those writeback ones > > you need to wait on. > > Yes, I realised this as soon as I looked at the code. > I added xfs_wait_on_pages() to do this wait. ;) Oh good. > > Might need a different variant, or we could just bite the bullet and > > push through the ->fsync conversion so you get full control of the > > writeout. > > Not important right now, though.... OK. > > BTW. the Linux pagecache APIs should support range operations quite > > nicely for these. Any reason not to use them (it looks like the > > wrappers can take ranges)? > > Because I haven't got around to modifying these wrappers now that > the range primitives are in place - XFS inherited the range > operations from Irix and have sat unimplemented since being ported > to Linux. OK, fair enough. Just something easy to stick on a todo list somewhere ;) Probably doesn't make much difference now, but we might start seeing apps using range syncs. > The patch below should fix this entire class of error value screwup > in XFS. I've just started running it through XFSQA, so it's not > really tested yet. I'll sanity check it by running it through my basic fault injection tests here. > FWIW, your entire patch series made it through XFSQA without any new > regressions, so it looks good from that POV. Thanks, very good to know. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > XFS: fix error inversion problems with data flushing > > XFS gets the sign of the error wrong in several places when > gathering the error from generic linux functions. These functions > return negative error values, while the core XFS code returns > positive error values. Hence when XFS inverts the error to be > returned to the VFS, it can incorrectly invert a negative > error and this error will be ignored by the syscall return. > > Fix all the problems related to calling filemap_* functions. > > Problem initially identified by Nick Piggin in xfs_fsync(). > > Signed-off-by: Dave Chinner > --- > fs/xfs/linux-2.6/xfs_fs_subr.c | 23 ++++++++++++++++++++--- > fs/xfs/linux-2.6/xfs_lrw.c | 2 +- > fs/xfs/linux-2.6/xfs_super.c | 13 +++++++++---- > fs/xfs/xfs_vnodeops.c | 2 +- > fs/xfs/xfs_vnodeops.h | 1 + > 5 files changed, 32 insertions(+), 9 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c > index 36caa6d..5aeb777 100644 > --- a/fs/xfs/linux-2.6/xfs_fs_subr.c > +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c > @@ -24,6 +24,10 @@ int fs_noerr(void) { return 0; } > int fs_nosys(void) { return ENOSYS; } > void fs_noval(void) { return; } > > +/* > + * note: all filemap functions return negative error codes. These > + * need to be inverted before returning to the xfs core functions. > + */ > void > xfs_tosspages( > xfs_inode_t *ip, > @@ -53,7 +57,7 @@ xfs_flushinval_pages( > if (!ret) > truncate_inode_pages(mapping, first); > } > - return ret; > + return -ret; > } > > int > @@ -72,10 +76,23 @@ xfs_flush_pages( > xfs_iflags_clear(ip, XFS_ITRUNCATED); > ret = filemap_fdatawrite(mapping); > if (flags & XFS_B_ASYNC) > - return ret; > + return -ret; > ret2 = filemap_fdatawait(mapping); > if (!ret) > ret = ret2; > } > - return ret; > + return -ret; > +} > + > +int > +xfs_wait_on_pages( > + xfs_inode_t *ip, > + xfs_off_t first, > + xfs_off_t last) > +{ > + struct address_space *mapping = VFS_I(ip)->i_mapping; > + > + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) > + return -filemap_fdatawait(mapping); > + return 0; > } > diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c > index 1957e53..4959c87 100644 > --- a/fs/xfs/linux-2.6/xfs_lrw.c > +++ b/fs/xfs/linux-2.6/xfs_lrw.c > @@ -243,7 +243,7 @@ xfs_read( > > if (unlikely(ioflags & IO_ISDIRECT)) { > if (inode->i_mapping->nrpages) > - ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), > + ret = -xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), > -1, FI_REMAPF_LOCKED); > mutex_unlock(&inode->i_mutex); > if (ret) { > diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c > index 9dc977d..c5cfc1e 100644 > --- a/fs/xfs/linux-2.6/xfs_super.c > +++ b/fs/xfs/linux-2.6/xfs_super.c > @@ -1012,21 +1012,26 @@ xfs_fs_write_inode( > struct inode *inode, > int sync) > { > + struct xfs_inode *ip = XFS_I(inode); > int error = 0; > int flags = 0; > > - xfs_itrace_entry(XFS_I(inode)); > + xfs_itrace_entry(ip); > if (sync) { > - filemap_fdatawait(inode->i_mapping); > + error = xfs_wait_on_pages(ip, 0, -1); > + if (error) > + goto out_error; > flags |= FLUSH_SYNC; > } > - error = xfs_inode_flush(XFS_I(inode), flags); > + error = xfs_inode_flush(ip, flags); > + > +out_error: > /* > * if we failed to write out the inode then mark > * it dirty again so we'll try again later. > */ > if (error) > - xfs_mark_inode_dirty_sync(XFS_I(inode)); > + xfs_mark_inode_dirty_sync(ip); > > return -error; > } > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > index 2e2fbd9..5809c42 100644 > --- a/fs/xfs/xfs_vnodeops.c > +++ b/fs/xfs/xfs_vnodeops.c > @@ -713,7 +713,7 @@ xfs_fsync( > return XFS_ERROR(EIO); > > /* capture size updates in I/O completion before writing the inode. */ > - error = filemap_fdatawait(VFS_I(ip)->i_mapping); > + error = xfs_wait_on_pages(ip, 0, -1); > if (error) > return XFS_ERROR(error); > > diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h > index e932a96..f9cd376 100644 > --- a/fs/xfs/xfs_vnodeops.h > +++ b/fs/xfs/xfs_vnodeops.h > @@ -78,5 +78,6 @@ int xfs_flushinval_pages(struct xfs_inode *ip, xfs_off_t first, > xfs_off_t last, int fiopt); > int xfs_flush_pages(struct xfs_inode *ip, xfs_off_t first, > xfs_off_t last, uint64_t flags, int fiopt); > +int xfs_wait_on_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last); > > #endif /* _XFS_VNODEOPS_H */ From owner-xfs@oss.sgi.com Tue Oct 28 22:27:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T5RBbq007633 for ; Tue, 28 Oct 2008 22:27:11 -0700 X-ASG-Debug-ID: 1225258030-0d4700800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF132556CFC for ; Tue, 28 Oct 2008 22:27:11 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 5rnpDDNClKvpkk2i for ; Tue, 28 Oct 2008 22:27:11 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,505,1220193000"; d="scan'208";a="220493806" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 15:57:09 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv3aF-0004fj-My; Wed, 29 Oct 2008 16:27:07 +1100 Date: Wed, 29 Oct 2008 16:27:07 +1100 From: Dave Chinner To: Nick Piggin Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason , linux-ext4@vger.kernel.org X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029052707.GH4985@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason , linux-ext4@vger.kernel.org References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029040014.GB17624@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029040014.GB17624@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225258031 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8953 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 05:00:14AM +0100, Nick Piggin wrote: > On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > > FWIW, the core issue here is that we've got to do the > > filemap_fdatawait() call in the ->fsync method because ->fsync > > gets called before we've waited for the data I/O to complete. > > XFS updates inode state on I/O completion, so we *must* wait > > for data I/O to complete before logging the inode changes. I > > think btrfs has the same problem.... > > Interesting. Does that mean you can do without the final filemap_fdatawait? We could, yes. > Can you do the first fdatawait without i_mutex held? I don't see why not - I/O completion is only touching the XFS inode. XFS has it's own inode locks for I/O and inode exclusion, and the mapping tree lock protects the tree walk that the fdatawait is doing... > There was some talk IIRC about moving all this logic into the filesystem > to provide more flexibility here. If there is still enough interest, > we should get that moving... It would simplify some of the code in XFS, that's for sure ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Tue Oct 28 23:35:19 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_33 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T6ZIYC011344 for ; Tue, 28 Oct 2008 23:35:18 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 7654B8F805A; Tue, 28 Oct 2008 23:35:15 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA06000; Wed, 29 Oct 2008 17:35:11 +1100 Message-ID: <4908041F.2020905@sgi.com> Date: Wed, 29 Oct 2008 17:35:11 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] use inode_change_ok for setattr permission checking References: <20080929215329.GC30363@lst.de> In-Reply-To: <20080929215329.GC30363@lst.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Christoph Hellwig wrote: > Instead of implementing our own checks use inode_change_ok to check for > nessecary permission in setattr. Yeah, the 1st bit I quite like and is similar to what I did in some nfs4acl code, as you know. We put all the EPERM cases early on which is nice. > There is a slight change in behaviour > as inode_change_ok doesn't allow i_mode updates to add the suid or sgid > without superuser privilegues while the old XFS code just stripped away > those bits from the file mode. > This bit is of concern for me. And I want to understand. It seems confusing. So for xfs, we currently have it that if we try to set the suid/sgid bit on the mode, and we are not the owner/group-member, and we don't have CAP_FSETID, then we clear that bit out of the mode (setuid/setgid) that we were going to set below. Now in inode_change_ok() we have some relevant code: /* Make sure a caller can chmod. */ if (ia_valid & ATTR_MODE) { if (!is_owner_or_cap(inode)) goto error; /* Also check the setgid bit! */ if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid : inode->i_gid) && !capable(CAP_FSETID)) attr->ia_mode &= ~S_ISGID; } It "looks" like it is doing a similar thing for the S_ISGID case but not for the S_ISUID case. And then we have similar code in inode_setattr() if (ia_valid & ATTR_MODE) { umode_t mode = attr->ia_mode; if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) mode &= ~S_ISGID; inode->i_mode = mode; } But what about the suid case? And also, what is with the ATTR_KILL_* bits? Lemme look... should_remove_suid: CAP_FSETID -> return 0 else -> return (S_ISUID ? ATTR_KILL_SUID : 0) | (S_ISGID & S_IXGRP ? ATTR_KILL_SGID : 0) do_truncate: /* Remove suid/sgid on truncate too */ newattrs.ia_valid |= should_remove_suid(dentry); err = notify_change(dentry, &newattrs); Oh okay, so in notify_change() we clear the S_SUID/S_SGID bits in the cases that ATTR_KILL_SUID/ATTR_KILL_SGID are set and let lower setattr funcs interpret the KILL bits (as said in a comment). Hmmm....but it first clears the bits out of the attr->ia_mode so it does interpret them. This seems a bit twisty to follow. --Tim > > Signed-off-by: Christoph Hellwig > > Index: linux-2.6-xfs/fs/xfs/xfs_vnodeops.c > =================================================================== > --- linux-2.6-xfs.orig/fs/xfs/xfs_vnodeops.c 2008-09-29 18:27:29.000000000 +0200 > +++ linux-2.6-xfs/fs/xfs/xfs_vnodeops.c 2008-09-29 18:27:32.000000000 +0200 > @@ -158,56 +161,6 @@ xfs_setattr( > > xfs_ilock(ip, lock_flags); > > - /* boolean: are we the file owner? */ > - file_owner = (current_fsuid(credp) == ip->i_d.di_uid); > - > - /* > - * Change various properties of a file. > - * Only the owner or users with CAP_FOWNER > - * capability may do these things. > - */ > - if (mask & (ATTR_MODE|ATTR_UID|ATTR_GID)) { > - /* > - * CAP_FOWNER overrides the following restrictions: > - * > - * The user ID of the calling process must be equal > - * to the file owner ID, except in cases where the > - * CAP_FSETID capability is applicable. > - */ > - if (!file_owner && !capable(CAP_FOWNER)) { > - code = XFS_ERROR(EPERM); > - goto error_return; > - } > - > - /* > - * CAP_FSETID overrides the following restrictions: > - * > - * The effective user ID of the calling process shall match > - * the file owner when setting the set-user-ID and > - * set-group-ID bits on that file. > - * > - * The effective group ID or one of the supplementary group > - * IDs of the calling process shall match the group owner of > - * the file when setting the set-group-ID bit on that file > - */ > - if (mask & ATTR_MODE) { > - mode_t m = 0; > - > - if ((iattr->ia_mode & S_ISUID) && !file_owner) > - m |= S_ISUID; > - if ((iattr->ia_mode & S_ISGID) && > - !in_group_p((gid_t)ip->i_d.di_gid)) > - m |= S_ISGID; > -#if 0 > - /* Linux allows this, Irix doesn't. */ > - if ((iattr->ia_mode & S_ISVTX) && !S_ISDIR(ip->i_d.di_mode)) > - m |= S_ISVTX; > -#endif > - if (m && !capable(CAP_FSETID)) > - iattr->ia_mode &= ~m; > - } > - } > - From owner-xfs@oss.sgi.com Wed Oct 29 01:41:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=MISSING_MIMEOLE autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T8fl9s025857 for ; Wed, 29 Oct 2008 01:41:47 -0700 X-ASG-Debug-ID: 1225269704-476d02ee0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from truetug.info (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C26F14A6E43 for ; Wed, 29 Oct 2008 01:41:44 -0700 (PDT) Received: from truetug.info (truetug.info [82.146.61.203]) by cuda.sgi.com with ESMTP id szjwPSyTUGSmjuCy for ; Wed, 29 Oct 2008 01:41:44 -0700 (PDT) Received: from localhost (localhost) by truetug.info (8.14.3/8.14.2) id m9T5YGXN058420; Wed, 29 Oct 2008 11:41:43 +0300 (MSK) (envelope-from MAILER-DAEMON) Date: Wed, 29 Oct 2008 11:41:43 +0300 (MSK) From: Mail Delivery Subsystem Message-Id: <200810290841.m9T5YGXN058420@truetug.info> To: MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="m9T5YGXN058420.1225269703/truetug.info" X-ASG-Orig-Subj: Returned mail: see transcript for details Subject: ***** SUSPECTED SPAM ***** Returned mail: see transcript for details Auto-Submitted: auto-generated (failure) X-Barracuda-Connect: truetug.info[82.146.61.203] X-Barracuda-Start-Time: 1225269707 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4398 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Tag: HEADER (^X-Barracuda-Connect: .*\.info\[.*) X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=ANY_BOUNCE_MESSAGE, BOUNCE_MESSAGE, INFO_TLD X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8960 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 INFO_TLD URI: Contains an URL in the INFO top-level domain 0.00 BOUNCE_MESSAGE MTA bounce message 0.00 ANY_BOUNCE_MESSAGE Message is some kind of bounce message X-Priority: 5 (Lowest) X-MSMail-Priority: Low Importance: Low X-Barracuda-Spam-Flag: YES This is a MIME-encapsulated message --m9T5YGXN058420.1225269703/truetug.info The original message was received at Fri, 24 Oct 2008 12:40:48 +0300 (MSK) from 89-139-72-155.bb.netvision.net.il [89.139.72.155] ----- The following addresses had permanent fatal errors ----- \virtuser_1024 (reason: 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded) (expanded from: ) ----- Transcript of session follows ----- ... while talking to local: >>> DATA <<< 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded \virtuser_1024... Deferred: 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded Message could not be delivered for 5 days Message will be deleted from queue --m9T5YGXN058420.1225269703/truetug.info Content-Type: message/delivery-status Reporting-MTA: dns; truetug.info Arrival-Date: Fri, 24 Oct 2008 12:40:48 +0300 (MSK) Final-Recipient: RFC822; mail@grafimex.ru X-Actual-Recipient: RFC822; virtuser_1024@truetug.info Action: failed Status: 4.4.7 Diagnostic-Code: SMTP; 450 4.2.0 /var/mail/virtuser_1024: Disc quota exceeded Last-Attempt-Date: Wed, 29 Oct 2008 11:41:43 +0300 (MSK) --m9T5YGXN058420.1225269703/truetug.info Content-Type: text/rfc822-headers Return-Path: Received: from 89-139-72-155.bb.netvision.net.il (89-139-72-155.bb.netvision.net.il [89.139.72.155]) by truetug.info (8.14.3/8.14.2) with ESMTP id m9O8ecOj066996 for ; Fri, 24 Oct 2008 12:40:48 +0400 (MSD) (envelope-from xfs@oss.sgi.com) Message-ID: <000a01c935b4$0419a775$71530ba4@iuqwygul> From: =?koi8-r?B?4cbJ28Eg7c/Ty9fZ?= To: Subject: =?koi8-r?B?987JzcHOycUhIPTJ1MHOycsh?= Date: Fri, 24 Oct 2008 06:52:53 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0007_01C935B4.0416C9D8" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2720.3000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2727.1300 --m9T5YGXN058420.1225269703/truetug.info-- From owner-xfs@oss.sgi.com Wed Oct 29 01:51:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=LOCAL_GNU_PATCH autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T8pZkF026487 for ; Wed, 29 Oct 2008 01:51:37 -0700 X-ASG-Debug-ID: 1225270294-2dbb00840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F38C955748B for ; Wed, 29 Oct 2008 01:51:34 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id WI8Rci1DraXnTrAF for ; Wed, 29 Oct 2008 01:51:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am4DAM8S9kh5LE2tgWdsb2JhbACTYAEBFiKuDIFr X-IronPort-AV: E=Sophos;i="4.33,505,1220193000"; d="scan'208";a="220609395" Received: from ppp121-44-77-173.lns10.syd6.internode.on.net (HELO disturbed) ([121.44.77.173]) by ipmail01.adl6.internode.on.net with ESMTP; 29 Oct 2008 19:21:31 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kv6m2-0008Dc-4n; Wed, 29 Oct 2008 19:51:30 +1100 Date: Wed, 29 Oct 2008 19:51:30 +1100 From: Dave Chinner To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029085129.GJ4985@disturbed> Mail-Followup-To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028222746.GB4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225270295 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8962 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 09:27:46AM +1100, Dave Chinner wrote: > On Tue, Oct 28, 2008 at 04:39:53PM +0100, Nick Piggin wrote: > > On Wed, Oct 29, 2008 at 01:47:15AM +1100, npiggin@suse.de wrote: > > I think I also saw a slab bug when running dbench with fault injection on. > > Running latest Linus kernel. ..... > > xfs_force_shutdown(ram0,0x2) called from line 1056 of file /home/npiggin/usr/src > > /linux-2.6/fs/xfs/xfs_log.c. Return address = 0x000000006011370d > > Filesystem "ram0": Log I/O Error Detected. Shutting down filesystem: ram0 > > Please umount the filesystem, and rectify the problem(s) > > xfs_force_shutdown(ram0,0x2) called from line 818 of file /home/npiggin/usr/src/ > > linux-2.6/fs/xfs/xfs_log.c. Return address = 0x0000000060114e7d > > slab error in verify_redzone_free(): cache `xfs_log_ticket': double free detecte > > d .... > Now that is interesting. > > We've got a rolling transaction in progress, and the commit of the > first part of the transaction has got the I/O error. That frees the > transaction structure used during that commit, as well as the > ticket. > > However, before we committed the initial transaction, we duplicated > the transaction structure to allow the transaction to continue to > track all the dirty objects in the first commit. That included > duplicating the pointer to the ticket. > > Then the EIO is returned to mkdir code with the duplicated > transaction, which is then cancelled, and that frees the transaction > and the ticket it holds. However, we'd already freed the ticket. > > Ok, we're only seeing this problem now because I recently modified > the ticket allocation to use a slab instead of a roll-your-own free > list structure that wouldn't have been poisoned. Nice to know that > this change did more than just remove code. ;) > > This might take a little while to fix - a lot of code needs > auditing - but thanks for reporting the problem. The patch below should fix this problem. It's about 10% of the way through XFSQA, which means there's nothing obviously bad about it, but it will need many more eyes on it before we decide if this is the best way to fix the problem.... Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS: Fix double free of log tickets When an I/O error occurs during an intermediate commit on a rolling transaction, xfs_trans_commit() will free the transaction structure and the related ticket. However, the duplicate transaction that gets used as the transaction continues still contains a pointer to the ticket. Hence when the duplicate transaction is cancelled and freed, we free the ticket a second time. Add reference counting to the ticket so that we hold an extra reference to the ticket over the transaction commit. We drop the extra reference once we have checked that the transaction commit did not return an error, thus avoiding a double free on commit error. Credit to Nick Piggin for tripping over the problem. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap.c | 10 ++++++++-- fs/xfs/xfs_inode.c | 10 ++++++++-- fs/xfs/xfs_log.c | 39 +++++++++++++++++++++++++-------------- fs/xfs/xfs_log.h | 4 ++++ fs/xfs/xfs_log_priv.h | 1 + fs/xfs/xfs_trans.c | 9 ++++++++- fs/xfs/xfs_utils.c | 6 ++++++ fs/xfs/xfs_vnodeops.c | 6 ++++++ 8 files changed, 66 insertions(+), 19 deletions(-) diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index db28905..c391221 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4292,9 +4292,15 @@ xfs_bmap_finish( * We have a new transaction, so we should return committed=1, * even though we're returning an error. */ - if (error) { + if (error) return error; - } + + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(ntp->t_ticket); + if ((error = xfs_trans_reserve(ntp, 0, logres, 0, XFS_TRANS_PERM_LOG_RES, logcount))) return error; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index cd52282..b977100 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1782,8 +1782,14 @@ xfs_itruncate_finish( xfs_trans_ijoin(ntp, ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); xfs_trans_ihold(ntp, ip); - if (!error) - error = xfs_trans_reserve(ntp, 0, + if (error) + return error; + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(ntp->t_ticket); + error = xfs_trans_reserve(ntp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, XFS_TRANS_PERM_LOG_RES, XFS_ITRUNCATE_LOG_COUNT); diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index cc1e789..9aecefd 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -100,12 +100,11 @@ STATIC void xlog_ungrant_log_space(xlog_t *log, /* local ticket functions */ -STATIC xlog_ticket_t *xlog_ticket_get(xlog_t *log, +STATIC xlog_ticket_t *xlog_ticket_alloc(xlog_t *log, int unit_bytes, int count, char clientid, uint flags); -STATIC void xlog_ticket_put(xlog_t *log, xlog_ticket_t *ticket); #if defined(DEBUG) STATIC void xlog_verify_dest_ptr(xlog_t *log, __psint_t ptr); @@ -360,7 +359,7 @@ xfs_log_done(xfs_mount_t *mp, */ xlog_trace_loggrant(log, ticket, "xfs_log_done: (non-permanent)"); xlog_ungrant_log_space(log, ticket); - xlog_ticket_put(log, ticket); + xfs_log_ticket_put(ticket); } else { xlog_trace_loggrant(log, ticket, "xfs_log_done: (permanent)"); xlog_regrant_reserve_log_space(log, ticket); @@ -514,7 +513,7 @@ xfs_log_reserve(xfs_mount_t *mp, retval = xlog_regrant_write_log_space(log, internal_ticket); } else { /* may sleep if need to allocate more tickets */ - internal_ticket = xlog_ticket_get(log, unit_bytes, cnt, + internal_ticket = xlog_ticket_alloc(log, unit_bytes, cnt, client, flags); if (!internal_ticket) return XFS_ERROR(ENOMEM); @@ -749,7 +748,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) if (tic) { xlog_trace_loggrant(log, tic, "unmount rec"); xlog_ungrant_log_space(log, tic); - xlog_ticket_put(log, tic); + xfs_log_ticket_put(tic); } } else { /* @@ -3223,22 +3222,33 @@ xlog_state_want_sync(xlog_t *log, xlog_in_core_t *iclog) */ /* - * Free a used ticket. + * Free a used ticket when it's refcount falls to zero. */ -STATIC void -xlog_ticket_put(xlog_t *log, - xlog_ticket_t *ticket) +void +xfs_log_ticket_put( + xlog_ticket_t *ticket) { - sv_destroy(&ticket->t_wait); - kmem_zone_free(xfs_log_ticket_zone, ticket); -} /* xlog_ticket_put */ + ASSERT(atomic_read(&ticket->t_ref) > 0); + if (atomic_dec_and_test(&ticket->t_ref)) { + sv_destroy(&ticket->t_wait); + kmem_zone_free(xfs_log_ticket_zone, ticket); + } +} +xlog_ticket_t * +xfs_log_ticket_get( + xlog_ticket_t *ticket) +{ + ASSERT(atomic_read(&ticket->t_ref) > 0); + atomic_inc(&ticket->t_ref); + return ticket; +} /* * Allocate and initialise a new log ticket. */ STATIC xlog_ticket_t * -xlog_ticket_get(xlog_t *log, +xlog_ticket_alloc(xlog_t *log, int unit_bytes, int cnt, char client, @@ -3309,6 +3319,7 @@ xlog_ticket_get(xlog_t *log, unit_bytes += 2*BBSIZE; } + atomic_set(&tic->t_ref, 1); tic->t_unit_res = unit_bytes; tic->t_curr_res = unit_bytes; tic->t_cnt = cnt; @@ -3324,7 +3335,7 @@ xlog_ticket_get(xlog_t *log, xlog_tic_reset_res(tic); return tic; -} /* xlog_ticket_get */ +} /****************************************************************************** diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h index d47b91f..8a3e84e 100644 --- a/fs/xfs/xfs_log.h +++ b/fs/xfs/xfs_log.h @@ -134,6 +134,7 @@ typedef struct xfs_log_callback { #ifdef __KERNEL__ /* Log manager interfaces */ struct xfs_mount; +struct xlog_ticket; xfs_lsn_t xfs_log_done(struct xfs_mount *mp, xfs_log_ticket_t ticket, void **iclog, @@ -177,6 +178,9 @@ int xfs_log_need_covered(struct xfs_mount *mp); void xlog_iodone(struct xfs_buf *); +struct xlog_ticket * xfs_log_ticket_get(struct xlog_ticket *ticket); +void xfs_log_ticket_put(struct xlog_ticket *ticket); + #endif diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index de7ef6c..b39a198 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -245,6 +245,7 @@ typedef struct xlog_ticket { struct xlog_ticket *t_next; /* :4|8 */ struct xlog_ticket *t_prev; /* :4|8 */ xlog_tid_t t_tid; /* transaction identifier : 4 */ + atomic_t t_ref; /* ticket reference count : 4 */ int t_curr_res; /* current reservation in bytes : 4 */ int t_unit_res; /* unit reservation in bytes : 4 */ char t_ocnt; /* original count : 1 */ diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index ad137ef..8570b82 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -290,7 +290,7 @@ xfs_trans_dup( ASSERT(tp->t_ticket != NULL); ntp->t_flags = XFS_TRANS_PERM_LOG_RES | (tp->t_flags & XFS_TRANS_RESERVE); - ntp->t_ticket = tp->t_ticket; + ntp->t_ticket = xfs_log_ticket_get(tp->t_ticket); ntp->t_blk_res = tp->t_blk_res - tp->t_blk_res_used; tp->t_blk_res = tp->t_blk_res_used; ntp->t_rtx_res = tp->t_rtx_res - tp->t_rtx_res_used; @@ -1260,6 +1260,13 @@ xfs_trans_roll( trans = *tpp; /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(trans->t_ticket); + + + /* * Reserve space in the log for th next transaction. * This also pushes items in the "AIL", the list of logged items, * out to disk if they are taking up space at the tail of the log diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 35d4d41..7711449 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c @@ -172,6 +172,12 @@ xfs_dir_ialloc( *ipp = NULL; return code; } + + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(tp->t_ticket); code = xfs_trans_reserve(tp, 0, log_res, 0, XFS_TRANS_PERM_LOG_RES, log_count); /* diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 5809c42..f7eea70 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -1029,6 +1029,12 @@ xfs_inactive_symlink_rmt( goto error0; } /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(tp->t_ticket); + + /* * Remove the memory for extent descriptions (just bookkeeping). */ if (ip->i_df.if_bytes) From owner-xfs@oss.sgi.com Wed Oct 29 02:12:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T9C5SF027646 for ; Wed, 29 Oct 2008 02:12:07 -0700 X-ASG-Debug-ID: 1225271525-0c17014f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A99514A6C21 for ; Wed, 29 Oct 2008 02:12:06 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 0XGI3y7r8xqUhwjh for ; Wed, 29 Oct 2008 02:12:06 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kv75v-0002xC-TZ; Wed, 29 Oct 2008 09:12:03 +0000 Date: Wed, 29 Oct 2008 05:12:03 -0400 From: Christoph Hellwig To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029091203.GA32545@infradead.org> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029031645.GE4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225271526 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > bug that touched these lines of code without noticing the inversion. > Sometimes I wonder if we should just conver the entire of XFS to > return negative errors - mistakes in handling negative error numbers > in the core XFS code happen all the time. > > FWIW, the core issue here is that we've got to do the > filemap_fdatawait() call in the ->fsync method because ->fsync > gets called before we've waited for the data I/O to complete. > XFS updates inode state on I/O completion, so we *must* wait > for data I/O to complete before logging the inode changes. I > think btrfs has the same problem.... Yes. I have patches to fix this by changing what ->fsync does and how it's called. I really need to get them out on the list. From owner-xfs@oss.sgi.com Wed Oct 29 02:13:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T9DRpi027904 for ; Wed, 29 Oct 2008 02:13:27 -0700 X-ASG-Debug-ID: 1225271607-26f0013b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CFAF45576F5 for ; Wed, 29 Oct 2008 02:13:27 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id l9Wc20BEXRLgQQhC for ; Wed, 29 Oct 2008 02:13:27 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kv77G-0005QU-1T; Wed, 29 Oct 2008 09:13:26 +0000 Date: Wed, 29 Oct 2008 05:13:26 -0400 From: Christoph Hellwig To: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029091326.GB32545@infradead.org> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029032601.GF4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225271607 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 02:26:01PM +1100, Dave Chinner wrote: > Ok, I was right - these problems happen all the time. The above call > should really call xfs_flush_pages() to do the flush and wait. I > note that xfs_flush_pages() returns negative errors, and all the > callers expect positive errors. I bet the same occurs for > xfs_flushinval_pages() and xfs_tosspages() which are the wrappers > that core XFS code is supposed to be using for flushing and > invalidating file ranges.... > > I'll write up a patch that covers all of these. Can you also merge xfs_fsync into xfs_file_fsync while you're at it? The split newer made any sense as xfs_fsync is as Linux-specific as it gets and shouldn't be in the pseudo OS-independent layer. From owner-xfs@oss.sgi.com Wed Oct 29 02:21:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T9Lj0E028713 for ; Wed, 29 Oct 2008 02:21:45 -0700 X-ASG-Debug-ID: 1225272105-18d302c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA4A95575B7 for ; Wed, 29 Oct 2008 02:21:45 -0700 (PDT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id w1RySkyLs6e9f0oN for ; Wed, 29 Oct 2008 02:21:45 -0700 (PDT) Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 28642463F4; Wed, 29 Oct 2008 10:21:44 +0100 (CET) Date: Wed, 29 Oct 2008 10:21:43 +0100 From: Nick Piggin To: Christoph Hellwig Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029092143.GA5953@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029091203.GA32545@infradead.org> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: mx2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225272105 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8964 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 05:12:03AM -0400, Christoph Hellwig wrote: > On Wed, Oct 29, 2008 at 02:16:45PM +1100, Dave Chinner wrote: > > Yeah, that'd do it. Good catch. I can't believe I recently fixed a > > bug that touched these lines of code without noticing the inversion. > > Sometimes I wonder if we should just conver the entire of XFS to > > return negative errors - mistakes in handling negative error numbers > > in the core XFS code happen all the time. > > > > FWIW, the core issue here is that we've got to do the > > filemap_fdatawait() call in the ->fsync method because ->fsync > > gets called before we've waited for the data I/O to complete. > > XFS updates inode state on I/O completion, so we *must* wait > > for data I/O to complete before logging the inode changes. I > > think btrfs has the same problem.... > > Yes. I have patches to fix this by changing what ->fsync does and > how it's called. I really need to get them out on the list. Please do. From owner-xfs@oss.sgi.com Wed Oct 29 02:44:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9T9iI4K030051 for ; Wed, 29 Oct 2008 02:44:18 -0700 X-ASG-Debug-ID: 1225273458-268b01f10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E2B4C10F2EAC for ; Wed, 29 Oct 2008 02:44:18 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ZVxLW0LGGzz2f5Ji for ; Wed, 29 Oct 2008 02:44:18 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kv7b7-0005iw-3x; Wed, 29 Oct 2008 09:44:17 +0000 Date: Wed, 29 Oct 2008 05:44:17 -0400 From: Christoph Hellwig To: Nick Piggin Cc: Christoph Hellwig , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029094417.GA21824@infradead.org> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029092143.GA5953@wotan.suse.de> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225273458 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 10:21:43AM +0100, Nick Piggin wrote: > Please do. Well, there's one stumling block I haven't made progress on yet: I've changed the prototype of ->fsync to lose the dentry as we should always have a valid file struct. Except that nfsd doesn't on directories. So I either need to fake up a file there, or bail out and add a ->dir_sync export operation that needs just a dentry. From owner-xfs@oss.sgi.com Wed Oct 29 03:30:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TAUXKl000760 for ; Wed, 29 Oct 2008 03:30:35 -0700 X-ASG-Debug-ID: 1225276233-76ad00040000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8D0C1B0162F for ; Wed, 29 Oct 2008 03:30:34 -0700 (PDT) Received: from mx1.suse.de (ns1.suse.de [195.135.220.2]) by cuda.sgi.com with ESMTP id 6rTy94e23RUSrLAa for ; Wed, 29 Oct 2008 03:30:34 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from Relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id CA08242937; Wed, 29 Oct 2008 11:30:32 +0100 (CET) Date: Wed, 29 Oct 2008 11:30:29 +0100 From: Nick Piggin To: Christoph Hellwig , linux-nfs@vger.kernel.org Cc: akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029103029.GC5953@wotan.suse.de> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029094417.GA21824@infradead.org> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: ns1.suse.de[195.135.220.2] X-Barracuda-Start-Time: 1225276234 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Wed, Oct 29, 2008 at 05:44:17AM -0400, Christoph Hellwig wrote: > On Wed, Oct 29, 2008 at 10:21:43AM +0100, Nick Piggin wrote: > > Please do. > > Well, there's one stumling block I haven't made progress on yet: > > I've changed the prototype of ->fsync to lose the dentry as we should > always have a valid file struct. Except that nfsd doesn't on > directories. So I either need to fake up a file there, or bail out > and add a ->dir_sync export operation that needs just a dentry. OK. I don't know much about hthat code, but I would think nfsd should look as close to the syscall layer as possible. I guess there must be something prohibitive (some protocol semantics?). Is there anything that particularly makes it a file operation as opposed to an inode operation? From owner-xfs@oss.sgi.com Wed Oct 29 05:22:43 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TCMh2w012456 for ; Wed, 29 Oct 2008 05:22:43 -0700 X-ASG-Debug-ID: 1225282962-60f100740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail2.shareable.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7486012B01F2 for ; Wed, 29 Oct 2008 05:22:42 -0700 (PDT) Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by cuda.sgi.com with ESMTP id KiCks52JX96YWIgC for ; Wed, 29 Oct 2008 05:22:42 -0700 (PDT) Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from ) id 1KvA4J-0000R3-3L; Wed, 29 Oct 2008 12:22:35 +0000 Date: Wed, 29 Oct 2008 12:22:35 +0000 From: Jamie Lokier To: Nick Piggin Cc: Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029122234.GE846@shareable.org> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029103029.GC5953@wotan.suse.de> User-Agent: Mutt/1.5.13 (2006-08-11) X-Barracuda-Connect: mail2.shareable.org[80.68.89.115] X-Barracuda-Start-Time: 1225282963 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8972 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Nick Piggin wrote: > On Wed, Oct 29, 2008 at 05:44:17AM -0400, Christoph Hellwig wrote: > > On Wed, Oct 29, 2008 at 10:21:43AM +0100, Nick Piggin wrote: > > > Please do. > > > > Well, there's one stumling block I haven't made progress on yet: > > > > I've changed the prototype of ->fsync to lose the dentry as we should > > always have a valid file struct. Except that nfsd doesn't on > > directories. So I either need to fake up a file there, or bail out > > and add a ->dir_sync export operation that needs just a dentry. > > OK. I don't know much about hthat code, but I would think nfsd > should look as close to the syscall layer as possible. I guess > there must be something prohibitive (some protocol semantics?). > > Is there anything that particularly makes it a file operation > as opposed to an inode operation? In principle, is fsync() required to flush all dirty data written through any file descriptor ever, or just dirty data written through the file descriptor used for fsync()? -- Jamie From owner-xfs@oss.sgi.com Wed Oct 29 06:32:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_53 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TDWYvL016496 for ; Wed, 29 Oct 2008 06:32:34 -0700 X-ASG-Debug-ID: 1225287153-6fc502d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from qw-out-1920.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F546891158 for ; Wed, 29 Oct 2008 06:32:33 -0700 (PDT) Received: from qw-out-1920.google.com (qw-out-1920.google.com [74.125.92.150]) by cuda.sgi.com with ESMTP id yFDmT1JTDfqZDgNn for ; Wed, 29 Oct 2008 06:32:33 -0700 (PDT) Received: by qw-out-1920.google.com with SMTP id 5so1432070qwc.32 for ; Wed, 29 Oct 2008 06:32:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=HA1KBVG7mk/5f0JCHPh6uBtzyo4SbOW/Ir9kFqbyW7g=; b=p+/cLn5abWcUcOWDlCgRHJsqOtsn1BJ7JFa6KQmxV92PIUKOz9XPsPBobxZ0otHtat KZbPa6+LdSpJu2jojMeWki/c7fNN7Z9gDZu0+2hTaovvv0027cdZH6emPRv6+ARRsDgG gP6AzsAOhHWaHAapeHRJIf9LmXuA7GFKIxPW8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=HQzGR9UXephigYB9SObcky3ML8JjzoQ5apeMZiYr5tiJ8D3tHViwfxdVhbHSExFGNP 8t553j9MOLgzmDPYHQ4ccCl5f2fKpLz1eWaF1gOt7Z14g5WO6eW4UW6Y6hI42G359Dqr z9RC99iYb78CXQqjq5dndPxxZoP/uzGMidoSk= Received: by 10.214.25.19 with SMTP id 19mr2119483qay.262.1225287153176; Wed, 29 Oct 2008 06:32:33 -0700 (PDT) Received: from localhost.localdomain (lan-nat-pool-bos.redhat.com [66.187.234.200]) by mx.google.com with ESMTPS id 7sm2020738qwf.0.2008.10.29.06.32.30 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 29 Oct 2008 06:32:31 -0700 (PDT) Message-ID: <490865E3.8070102@gmail.com> Date: Wed, 29 Oct 2008 09:32:19 -0400 From: Ric Wheeler User-Agent: Thunderbird 2.0.0.17 (X11/20081009) MIME-Version: 1.0 To: Jamie Lokier CC: Nick Piggin , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> In-Reply-To: <20081029122234.GE846@shareable.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: qw-out-1920.google.com[74.125.92.150] X-Barracuda-Start-Time: 1225287154 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8975 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Jamie Lokier wrote: > Nick Piggin wrote: > >> On Wed, Oct 29, 2008 at 05:44:17AM -0400, Christoph Hellwig wrote: >> >>> On Wed, Oct 29, 2008 at 10:21:43AM +0100, Nick Piggin wrote: >>> >>>> Please do. >>>> >>> Well, there's one stumling block I haven't made progress on yet: >>> >>> I've changed the prototype of ->fsync to lose the dentry as we should >>> always have a valid file struct. Except that nfsd doesn't on >>> directories. So I either need to fake up a file there, or bail out >>> and add a ->dir_sync export operation that needs just a dentry. >>> >> OK. I don't know much about hthat code, but I would think nfsd >> should look as close to the syscall layer as possible. I guess >> there must be something prohibitive (some protocol semantics?). >> >> Is there anything that particularly makes it a file operation >> as opposed to an inode operation? >> > > In principle, is fsync() required to flush all dirty data written > through any file descriptor ever, or just dirty data written through > the file descriptor used for fsync()? > > -- Jamie > -- > Is a pointer to what seems to be the official posix spec for this - it is definitely per file descriptor, not per file system, etc... What can happen by side effect (depending on the implementation) is that you can actually force out all data for any file. I found that you can approach non-fsync speeds for an fsync per file workload by simply writing all of the files out, then going back and fsync'ing them one at a time (last file first makes a bit of a difference). With that technique, you do get the hard promise of full data integrity and high speed. This is useful when you want to do bulk writes (tar, etc) ric From owner-xfs@oss.sgi.com Wed Oct 29 07:57:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TEvUIU021605 for ; Wed, 29 Oct 2008 07:57:31 -0700 X-ASG-Debug-ID: 1225292250-209100f20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rgminet13.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D03014A8B54 for ; Wed, 29 Oct 2008 07:57:30 -0700 (PDT) Received: from rgminet13.oracle.com (rcsinet13.oracle.com [148.87.113.125]) by cuda.sgi.com with ESMTP id iYH9YmmR6YjgKUTv for ; Wed, 29 Oct 2008 07:57:30 -0700 (PDT) Received: from rgminet15.oracle.com (mail-router.oracle.com [148.87.113.117]) by rgminet13.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id m9TEuqI9020815 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 29 Oct 2008 14:56:53 GMT Received: from acsmt700.oracle.com (acsmt700.oracle.com [141.146.40.70]) by rgminet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id m9TEufD8001332; Wed, 29 Oct 2008 14:56:42 GMT Received: from [192.168.1.15] (/72.225.43.119) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 29 Oct 2008 14:56:38 +0000 X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) From: Chris Mason To: Ric Wheeler Cc: Jamie Lokier , Nick Piggin , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org In-Reply-To: <490865E3.8070102@gmail.com> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> <490865E3.8070102@gmail.com> Content-Type: text/plain Date: Wed, 29 Oct 2008 10:56:36 -0400 Message-Id: <1225292196.6448.263.camel@think.oraclecorp.com> Mime-Version: 1.0 X-Mailer: Evolution 2.22.2 Content-Transfer-Encoding: 7bit X-Source-IP: acsmt700.oracle.com [141.146.40.70] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090209.490879AC.01ED:SCFSTAT928724,ss=1,fgs=0 X-Barracuda-Connect: rcsinet13.oracle.com[148.87.113.125] X-Barracuda-Start-Time: 1225292250 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, 2008-10-29 at 09:32 -0400, Ric Wheeler wrote: > Jamie Lokier wrote: > >> Is there anything that particularly makes it a file operation > >> as opposed to an inode operation? > >> > > > > In principle, is fsync() required to flush all dirty data written > > through any file descriptor ever, or just dirty data written through > > the file descriptor used for fsync()? > > > > -- Jamie > > -- > > > http://www.opengroup.org/onlinepubs/009695399/functions/fsync.html > > Is a pointer to what seems to be the official posix spec for this - it > is definitely per file descriptor, not per file system, etc... > Maybe I'm reading Jamie's question wrong, but I think he's saying: /* open exactly the same file twice */ fd = open("file"); fd2 = open("file"); write(fd, "stuff") write(fd2, "more stuff") fsync(fd); Does the fsync promise "more stuff" will be on disk? I think the answer should be yes. -chris From owner-xfs@oss.sgi.com Wed Oct 29 09:02:02 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_43 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TG21tf030247 for ; Wed, 29 Oct 2008 09:02:02 -0700 X-ASG-Debug-ID: 1225296121-1c3902c20000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6CE9A559841 for ; Wed, 29 Oct 2008 09:02:01 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by cuda.sgi.com with ESMTP id MjRXL2xsD4RlIepX for ; Wed, 29 Oct 2008 09:02:01 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id m9TG20re021512 for ; Wed, 29 Oct 2008 12:02:00 -0400 Received: from pobox.stuttgart.redhat.com (pobox.stuttgart.redhat.com [172.16.2.10]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9TG1wi9013780 for ; Wed, 29 Oct 2008 12:01:59 -0400 Received: from dhcp-lab-218.englab.brq.redhat.com (dhcp-lab-225.englab.brq.redhat.com [10.34.33.225]) by pobox.stuttgart.redhat.com (8.13.1/8.13.1) with ESMTP id m9TG1wQq005984 for ; Wed, 29 Oct 2008 12:01:58 -0400 Message-ID: <490888F6.8000101@redhat.com> Date: Wed, 29 Oct 2008 17:01:58 +0100 From: Zdenek Prikryl User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: getfattr and -d options Subject: getfattr and -d options X-Enigmail-Version: 0.95.7 Content-Type: multipart/mixed; boundary="------------030807070105090905020207" X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 X-Barracuda-Connect: mx1.redhat.com[66.187.233.31] X-Barracuda-Start-Time: 1225296122 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com This is a multi-part message in MIME format. --------------030807070105090905020207 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hello, in getfattr's man page there is "-d Dump the values of all extended attributes associated with path-name". If you use SELinux, files have this extended attribute: security.selinux="...". -d option works in such way that it only prints extended attributes, which names begin with "user." So, in this case, selinux attribute isn't printed. I'm sending simple patch, which corrects this. Best regards. -- Zdenek Prikryl --------------030807070105090905020207 Content-Type: text/plain; name="attr-2.4.43-dump.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="attr-2.4.43-dump.patch" ZGlmZiAtdXAgYXR0ci0yLjQuNDMvZ2V0ZmF0dHIvZ2V0ZmF0dHIuYy5kdW1w IGF0dHItMi40LjQzL2dldGZhdHRyL2dldGZhdHRyLmMKLS0tIGF0dHItMi40 LjQzL2dldGZhdHRyL2dldGZhdHRyLmMuZHVtcAkyMDA4LTEwLTI5IDE2OjU1 OjQzLjAwMDAwMDAwMCArMDEwMAorKysgYXR0ci0yLjQuNDMvZ2V0ZmF0dHIv Z2V0ZmF0dHIuYwkyMDA4LTEwLTI5IDE2OjU1OjQ1LjAwMDAwMDAwMCArMDEw MApAQCAtNDA4LDYgKzQwOCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAKIAkJCWNhc2UgJ2QnOiAvKiBkdW1wIGF0dHJpYnV0ZSB2 YWx1ZXMgKi8KIAkJCQlvcHRfZHVtcCA9IDE7CisJCQkJb3B0X25hbWVfcGF0 dGVybiA9ICIiOwogCQkJCWJyZWFrOwogCiAJCQljYXNlICdlJzogIC8qIGVu Y29kaW5nICovCg== --------------030807070105090905020207-- From owner-xfs@oss.sgi.com Wed Oct 29 09:56:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=J_CHICKENPOX_43, J_CHICKENPOX_45,J_CHICKENPOX_52,J_CHICKENPOX_64,J_CHICKENPOX_66, J_CHICKENPOX_71 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TGtvnr000882 for ; Wed, 29 Oct 2008 09:56:00 -0700 X-ASG-Debug-ID: 1225299357-0920003e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C04B0B07A6A for ; Wed, 29 Oct 2008 09:55:57 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id WBDhoFpJSzyTu9jE for ; Wed, 29 Oct 2008 09:55:57 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGtqbP009622 for ; Wed, 29 Oct 2008 12:55:52 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9TGtpp3032077 for ; Wed, 29 Oct 2008 12:55:52 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGtoit031722 for ; Wed, 29 Oct 2008 12:55:51 -0400 Message-ID: <49089596.80006@sandeen.net> Date: Wed, 29 Oct 2008 11:55:50 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 0/3 v4] hook xfs to fiemap ioctl Subject: [PATCH 0/3 v4] hook xfs to fiemap ioctl Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225299357 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 v2: Update & resend, including some checkpatch fixes, a bugfix, and incorporating some of Christoph's and Dave's comments. v3: Address more review comments, and split into 3 patches this time. v4: fix things up so that a 0-length array from fiemap behaves as it should: simply return an extent count, but no extent data, for the range. In this version the formatter can return "full" to tell the getbmap loop to stop; see comment above xfs_getbmap. Also, here's a very hacky (don't laugh!) test app. I'll clean it up at some point :) (v4: test app slightly more cleaned up) -Eric --------------------- #include #include #include #include #include #include #include #include #include #include /*************************************************/ /* All this should come from fiemap.h eventually */ struct fiemap_extent { __u64 fe_logical; /* logical offset in bytes for the start of * the extent from the beginning of the file */ __u64 fe_physical; /* physical offset in bytes for the start * of the extent from the beginning of the disk */ __u64 fe_length; /* length in bytes for this extent */ __u64 fe_reserved64[2]; __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ __u32 fe_reserved[3]; }; struct fiemap { __u64 fm_start; /* logical offset (inclusive) at * which to start mapping (in) */ __u64 fm_length; /* logical length of mapping which * userspace wants (in) */ __u32 fm_flags; /* FIEMAP_FLAG_* flags for request (in/out) */ __u32 fm_mapped_extents;/* number of extents that were mapped (out) */ __u32 fm_extent_count; /* size of fm_extents array (in) */ __u32 fm_reserved; struct fiemap_extent fm_extents[0]; /* array of mapped extents (out) */ }; #define FIEMAP_MAX_OFFSET (~0ULL) #define FIEMAP_FLAG_SYNC 0x00000001 /* sync file data before map */ #define FIEMAP_FLAG_XATTR 0x00000002 /* map extended attribute tree */ #define FIEMAP_FLAGS_COMPAT (FIEMAP_FLAG_SYNC | FIEMAP_FLAG_XATTR) #define FIEMAP_EXTENT_LAST 0x00000001 /* Last extent in file. */ #define FIEMAP_EXTENT_UNKNOWN 0x00000002 /* Data location unknown. */ #define FIEMAP_EXTENT_DELALLOC 0x00000004 /* Location still pending. * Sets EXTENT_UNKNOWN. */ #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read * while fs is unmounted */ #define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. * Sets EXTENT_NO_BYPASS. */ #define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be * block aligned. */ #define FIEMAP_EXTENT_DATA_INLINE 0x00000200 /* Data mixed with metadata. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_DATA_TAIL 0x00000400 /* Multiple files in block. * Sets EXTENT_NOT_ALIGNED.*/ #define FIEMAP_EXTENT_UNWRITTEN 0x00000800 /* Space allocated, but * no data (i.e. zero). */ #define FIEMAP_EXTENT_MERGED 0x00001000 /* File does not natively * support extents. Result * merged for efficiency. */ #define FIGETBSZ _IO(0x00, 2) /* get the block size used for bmap */ #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) // #define FS_IOC_FIECOUNT _IOWR('f', 12, struct fiecount) /* End of what should be coming from fiemap.h */ /**********************************************/ void usage(void) { printf("Usage: fiemap [-vrSCL] [-s start] [-l length] [-c buf count] [-m max] filename\n"); printf(" -v : verbose mode\n"); printf(" -r : raw output: print raw ioctl structure values\n"); printf(" -S : set FIEMAP_FLAG_SYNC to sync before mapping\n"); printf(" -C : set FIEMAP_FLAG_NUM_EXTENTS to only get extent count, not mapping\n"); printf(" -L : set FIEMAP_FLAG_LUN_OFFSET to report extents in lun order\n"); printf(" -X : set FIEMAP_FLAG_XATTR to report xattr mapping\n"); printf(" -s start : start of mapping in bytes (default 0)\n"); printf(" -l length : length of mapping in bytes (default to end of file)\n"); printf(" -c count : count of extents in ioctl input structure (default 32)\n"); printf(" -m max : max nr of ioctls to call before exit (default 512)\n"); exit(EXIT_FAILURE); } #define EXABYTES(x) ((long long)(x) << 60) #define PETABYTES(x) ((long long)(x) << 50) #define TERABYTES(x) ((long long)(x) << 40) #define GIGABYTES(x) ((long long)(x) << 30) #define MEGABYTES(x) ((long long)(x) << 20) #define KILOBYTES(x) ((long long)(x) << 10) long long cvtnum(char *s) { long long i; char *sp; int c; i = strtoll(s, &sp, 0); if (i == 0 && sp == s) return -1LL; if (*sp == '\0') return i; if (sp[1] != '\0') return -1LL; c = tolower(*sp); switch (c) { case 'k': return KILOBYTES(i); case 'm': return MEGABYTES(i); case 'g': return GIGABYTES(i); case 't': return TERABYTES(i); case 'p': return PETABYTES(i); case 'e': return EXABYTES(i); } return -1LL; } void show_extents_table(struct fiemap *fiemap, int blocksize, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { __u64 logical = fiemap->fm_extents[i].fe_logical; __u64 phys = fiemap->fm_extents[i].fe_physical; __u64 length = fiemap->fm_extents[i].fe_length; int flags = fiemap->fm_extents[i].fe_flags; __u64 last_logical = 0; if (i) { last_logical = fiemap->fm_extents[i-1].fe_logical + fiemap->fm_extents[i-1].fe_length - 1; } printf("ext: %3u logical: [%8llu..%8llu] phys: %8llu..%8llu flags: 0x%03X tot: %llu\n", i + start_extent, logical / blocksize, (logical + length - 1) / blocksize, phys / blocksize, (phys + length - 1) / blocksize, flags, (length / blocksize)); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for exents filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } void show_extents_raw(struct fiemap *fiemap, int start_extent, int *is_last) { unsigned int i; for (i = 0; i < fiemap->fm_mapped_extents; i++) { printf("Extent %3u: logical: %10lld physical: %10lld length: %10lld flags 0x%03X\n", i + start_extent, fiemap->fm_extents[i].fe_logical, fiemap->fm_extents[i].fe_physical, fiemap->fm_extents[i].fe_length, fiemap->fm_extents[i].fe_flags); if (fiemap->fm_extents[i].fe_flags & FIEMAP_EXTENT_LAST) { *is_last = 1; break; /* XXX should we? or should look for extents wrongly filled in past last? */ } } if (fiemap->fm_mapped_extents < fiemap->fm_extent_count) *is_last = 1; } int main(int argc, char**argv) { int blocksize = 0; /* filesystem blocksize */ uint count = 32; /* extent count */ int countonly = 0; /* return only extent count? */ int fd; /* file descriptor */ int last = 0; /* last extent found */ int lunwise = 0; /* return extents lun-wise */ int xattr = 0; /* return xattr mapping */ int maxioctls = 512; /* max ioctls to try */ int opt; int rc; int raw = 0; /* raw output format */ int sync = 0; /* sync file before mapping */ int verbose = 0; /* verbose output */ char *fname; /* filename to map */ char *fiebuf; /* fiemap buffer / ioctl argument */ __u64 lstart = 0; /* logical input mapping start */ __u64 llength = ~0ULL;/* logical input mapping length */ uint start_ext = 0; /* starting extent nr. for this batch */ __u32 flags = 0; struct fiemap *fiemap; /* XXX er, can llength be ~0ULL if start > 0? */ while ((opt = getopt(argc, argv, "s:l:c:m:rSCLXv")) != -1) { switch(opt) { /* logical mapping offset */ case 's': lstart = cvtnum(optarg); break; /* logical mapping length */ case 'l': llength = cvtnum(optarg); break; /* count of extent buffers to send */ case 'c': count = atoi(optarg); if (count == 0) countonly++; break; /* max nr. of ioctls to try (safety net) */ case 'm': maxioctls = atoi(optarg); break; /* raw format output */ case 'r': raw++; break; /* sync file before mapping */ case 'S': sync++; break; /* count extents only, no details */ case 'C': countonly++; count = 0; break; /* return extents in lun order */ case 'L': lunwise++; break; /* return extents in lun order */ case 'X': xattr++; break; /* be verbose */ case 'v': verbose++; break; default: usage(); } } fname = argv[optind++]; if (!fname) usage(); /* Set the flags for the header */ if (sync) flags |= FIEMAP_FLAG_SYNC; if (xattr) flags |= FIEMAP_FLAG_XATTR; if (lunwise) ; // flags |= FIEMAP_FLAG_LUN_OFFSET; /* The whole buffer, extent maps and all */ fiebuf = malloc(sizeof (struct fiemap) + (count * sizeof(struct fiemap_extent))); if (!fiebuf) { perror("Could not allocate fiemap buffers"); exit(1); } /* set up the header */ fiemap = (struct fiemap *)fiebuf; fiemap->fm_start = lstart; fiemap->fm_length = llength; fiemap->fm_flags = flags; fiemap->fm_extent_count = count; fiemap->fm_mapped_extents = 0; /* output only */ fd = open(fname, O_RDONLY); if (fd < 0) { perror("Can't open file"); exit(1); } if (ioctl(fd, FIGETBSZ, &blocksize) < 0) { perror("Can't get block size"); close(fd); return; } do { if (verbose) printf("Input: start %llu length %llu flags 0x%X count %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count); rc = ioctl(fd, FS_IOC_FIEMAP, (unsigned long)fiemap); if (rc < 0) { perror("FIEMAP ioctl failed"); printf("flags 0x%x\n", fiemap->fm_flags); close(fd); exit(1); } if (verbose) printf("Output: start %llu length %llu flags 0x%X count %u mapped %u\n", fiemap->fm_start, fiemap->fm_length, fiemap->fm_flags, fiemap->fm_extent_count, fiemap->fm_mapped_extents); if (countonly) { printf("%llu extent%s\n", fiemap->fm_mapped_extents, fiemap->fm_mapped_extents != 1 ? "s" : ""); break; } else if (raw) show_extents_raw(fiemap, start_ext, &last); else show_extents_table(fiemap, blocksize, start_ext, &last); if (!last) { int last_map = fiemap->fm_mapped_extents - 1; __u64 foo; /* XXX Ummmm */ foo = fiemap->fm_extents[last_map].fe_logical + fiemap->fm_extents[last_map].fe_length; /* Set up the next call arguments */ /* move to top */ fiemap->fm_start = foo; fiemap->fm_length = lstart + llength - foo; fiemap->fm_extent_count = count; } /* keeps track of extent nrs. we've printed; rather, pass by value! */ start_ext += fiemap->fm_mapped_extents; /* XXX need to stop if we've reached what we asked for */ maxioctls--; } while (!last && maxioctls > 0); close(fd); return 0; } From owner-xfs@oss.sgi.com Wed Oct 29 09:58:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=J_CHICKENPOX_64, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TGwVoG001212 for ; Wed, 29 Oct 2008 09:58:31 -0700 X-ASG-Debug-ID: 1225299510-05d700ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 153A8559B36 for ; Wed, 29 Oct 2008 09:58:30 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id VFvNKVEbJLZuBpSv for ; Wed, 29 Oct 2008 09:58:30 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGwUEJ010038 for ; Wed, 29 Oct 2008 12:58:30 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9TGwTrk032613 for ; Wed, 29 Oct 2008 12:58:29 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGwSEm031981 for ; Wed, 29 Oct 2008 12:58:28 -0400 Message-ID: <49089634.5010405@sandeen.net> Date: Wed, 29 Oct 2008 11:58:28 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 1/3 v4] convert xfs_getbmap to take formatter functions Subject: [PATCH 1/3 v4] convert xfs_getbmap to take formatter functions References: <49089596.80006@sandeen.net> In-Reply-To: <49089596.80006@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225299512 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_MJ615 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8986 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_MJ615 Custom Rule MJ615 Preliminary work to hook up fiemap, this allows us to pass in an arbitrary formatter to copy extent data back to userspace. The formatter takes info for 1 extent, a pointer to the user "thing*" and a pointer to a "filled" variable to indicate whether a userspace buffer did get filled in (for fiemap, hole "extents" are skipped). I'm just using the getbmapx struct as a "common denominator" because as far as I can see, it holds all info that any formatters will care about. ("*thing" because fiemap doesn't pass the user pointer around, but rather has a pointer to a fiemap info structure, and helpers associated with it) Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5805,9 +5805,9 @@ error0: STATIC int xfs_getbmapx_fix_eof_hole( xfs_inode_t *ip, /* xfs incore inode pointer */ - struct getbmap *out, /* output structure */ + struct getbmapx *out, /* output structure */ int prealloced, /* this is a file with - * preallocated data space */ + * preallocated data space */ __int64_t end, /* last block requested */ xfs_fsblock_t startblock) { @@ -5833,14 +5833,18 @@ xfs_getbmapx_fix_eof_hole( } /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. + * Calls formatter to fill the user's buffer until all extents + * are mapped, until the passed-in bmv->bmv_count slots have + * been filled, or until the formatter short-circuits the loop, + * if it is tracking filled-in extents on its own. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int interface) /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg) /* formatter arg */ { __int64_t bmvend; /* last block requested */ int error; /* return value */ @@ -5853,19 +5857,20 @@ xfs_getbmap( int nexleft; /* # of user extents left */ int subnex; /* # of bmapi's can do */ int nmap; /* number of map entries */ - struct getbmap out; /* output structure */ + struct getbmapx out; /* output structure */ int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ int sh_unwritten; /* true, if unwritten */ /* extents listed separately */ + int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ - __int32_t oflags; /* getbmapx bmv_oflags field */ mp = ip->i_mount; + iflags = bmv->bmv_iflags; - whichfork = interface & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (interface & BMV_IF_PREALLOC) != 0; + whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; + sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5880,7 +5885,7 @@ xfs_getbmap( * could misinterpret holes in a DMAPI file as true holes, * when in fact they may represent offline user data. */ - if ((interface & BMV_IF_NO_DMAPI_READ) == 0 && + if ((iflags & BMV_IF_NO_DMAPI_READ) == 0 && DM_EVENT_ENABLED(ip, DM_EVENT_READ) && whichfork == XFS_DATA_FORK) { error = XFS_SEND_DATA(mp, DM_EVENT_READ, ip, 0, 0, 0, NULL); @@ -5987,52 +5992,35 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - nexleft--; - oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? + out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? BMV_OF_PREALLOC : 0; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); + out.bmv_unused1 = out.bmv_unused2 = 0; ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ goto unlock_and_return; } else { + int full = 0; /* user array is full */ + if (!xfs_getbmapx_fix_eof_hole(ip, &out, prealloced, bmvend, map[i].br_startblock)) { goto unlock_and_return; } - /* return either getbmap/getbmapx structure. */ - if (interface & BMV_IF_EXTENDED) { - struct getbmapx outx; - - GETBMAP_CONVERT(out,outx); - outx.bmv_oflags = oflags; - outx.bmv_unused1 = outx.bmv_unused2 = 0; - if (copy_to_user(ap, &outx, - sizeof(outx))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } else { - if (copy_to_user(ap, &out, - sizeof(out))) { - error = XFS_ERROR(EFAULT); - goto unlock_and_return; - } - } + /* format results & advance arg */ + error = formatter(&arg, &out, &full); + if (error || full) + goto unlock_and_return; + nexleft--; bmv->bmv_offset = out.bmv_offset + out.bmv_length; bmv->bmv_length = MAX((__int64_t)0, (__int64_t)(bmvend - bmv->bmv_offset)); bmv->bmv_entries++; - ap = (interface & BMV_IF_EXTENDED) ? - (void __user *) - ((struct getbmapx __user *)ap + 1) : - (void __user *) - ((struct getbmap __user *)ap + 1); } } } while (nmap && nexleft && bmv->bmv_length); Index: linux-2.6-xfs/fs/xfs/xfs_bmap.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.h +++ linux-2.6-xfs/fs/xfs/xfs_bmap.h @@ -356,15 +356,18 @@ xfs_bmap_finish( xfs_bmap_free_t *flist, /* i/o: list extents to free */ int *committed); /* xact committed or not */ +/* bmap to userspace formatter - copy to user & advance pointer */ +typedef int (*xfs_bmap_format_t)(void **, struct getbmapx *, int *); + /* - * Fcntl interface to xfs_bmapi. + * Get inode's extents as described in bmv, and format for output. */ int /* error code */ xfs_getbmap( xfs_inode_t *ip, - struct getbmap *bmv, /* user bmap structure */ - void __user *ap, /* pointer to user's array */ - int iflags); /* interface flags */ + struct getbmapx *bmv, /* user bmap structure */ + xfs_bmap_format_t formatter, /* format to user */ + void *arg); /* formatter arg */ /* * Check if the endoff is outside the last extent. If so the caller will grow Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ioctl.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ioctl.c @@ -1256,43 +1256,67 @@ xfs_ioc_setxflags( } STATIC int +xfs_getbmap_format(void **ap, struct getbmapx *bmv, int *full) +{ + struct getbmap __user *base = *ap; + + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(base, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + return 0; +} + +STATIC int xfs_ioc_getbmap( struct xfs_inode *ip, int ioflags, unsigned int cmd, void __user *arg) { - struct getbmap bm; - int iflags; + struct getbmapx bmx; int error; - if (copy_from_user(&bm, arg, sizeof(bm))) + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); - if (bm.bmv_count < 2) + if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); if (ioflags & IO_INVIS) - iflags |= BMV_IF_NO_DMAPI_READ; + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - error = xfs_getbmap(ip, &bm, (struct getbmap __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap *)arg+1); if (error) return -error; - if (copy_to_user(arg, &bm, sizeof(bm))) + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) return -XFS_ERROR(EFAULT); return 0; } STATIC int +xfs_getbmapx_format(void **ap, struct getbmapx *bmv, int *full) +{ + struct getbmapx __user *base = *ap; + + if (copy_to_user(base, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + return 0; +} + +STATIC int xfs_ioc_getbmapx( struct xfs_inode *ip, void __user *arg) { struct getbmapx bmx; - struct getbmap bm; - int iflags; int error; if (copy_from_user(&bmx, arg, sizeof(bmx))) @@ -1301,26 +1325,16 @@ xfs_ioc_getbmapx( if (bmx.bmv_count < 2) return -XFS_ERROR(EINVAL); - /* - * Map input getbmapx structure to a getbmap - * structure for xfs_getbmap. - */ - GETBMAP_CONVERT(bmx, bm); - - iflags = bmx.bmv_iflags; - - if (iflags & (~BMV_IF_VALID)) + if (bmx.bmv_iflags & (~BMV_IF_VALID)) return -XFS_ERROR(EINVAL); - iflags |= BMV_IF_EXTENDED; - - error = xfs_getbmap(ip, &bm, (struct getbmapx __user *)arg+1, iflags); + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx *)arg+1); if (error) return -error; - GETBMAP_CONVERT(bm, bmx); - - if (copy_to_user(arg, &bmx, sizeof(bmx))) + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) return -XFS_ERROR(EFAULT); return 0; Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -114,22 +114,10 @@ struct getbmapx { #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ #define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) -#ifdef __KERNEL__ -#define BMV_IF_EXTENDED 0x40000000 /* getpmapx if set */ -#endif /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ -/* Convert getbmap <-> getbmapx - move fields from p1 to p2. */ -#define GETBMAP_CONVERT(p1,p2) { \ - p2.bmv_offset = p1.bmv_offset; \ - p2.bmv_block = p1.bmv_block; \ - p2.bmv_length = p1.bmv_length; \ - p2.bmv_count = p1.bmv_count; \ - p2.bmv_entries = p1.bmv_entries; } - - /* * Structure for XFS_IOC_FSSETDM. * For use by backup and restore programs to set the XFS on-disk inode From owner-xfs@oss.sgi.com Wed Oct 29 09:58:47 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_64 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TGwjug001259 for ; Wed, 29 Oct 2008 09:58:46 -0700 X-ASG-Debug-ID: 1225299525-08d700840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EFA93B07B99 for ; Wed, 29 Oct 2008 09:58:45 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id DtAbMcE5Sd8UkHVl for ; Wed, 29 Oct 2008 09:58:45 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGwjr6010086 for ; Wed, 29 Oct 2008 12:58:45 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9TGwjvD032661 for ; Wed, 29 Oct 2008 12:58:45 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGwiP9032021 for ; Wed, 29 Oct 2008 12:58:44 -0400 Message-ID: <49089644.8070402@sandeen.net> Date: Wed, 29 Oct 2008 11:58:44 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 2/3 v4] Add new flags to getbmapx interface Subject: [PATCH 2/3 v4] Add new flags to getbmapx interface References: <49089596.80006@sandeen.net> In-Reply-To: <49089596.80006@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225299525 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Add new getbmap flags. This adds a new output flag, BMV_OF_LAST to indicate if we've hit the last extent in the inode. This potentially saves an extra call from userspace to see when the whole mapping is done. It also adds BMV_IF_DELALLOC and BMV_OF_DELALLOC to request, and indicate, delayed-allocation extents. In this case bmv_block is set to -2 (-1 was already taken for HOLESTARTBLOCK; unfortunately these are the reverse of the in-kernel constants.) These new flags facilitate addition of the new fiemap interface. Rather than adding sh_delalloc, remove sh_unwritten & just test the flags directly. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/xfs_bmap.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bmap.c +++ linux-2.6-xfs/fs/xfs/xfs_bmap.c @@ -5813,6 +5813,9 @@ xfs_getbmapx_fix_eof_hole( { __int64_t fixlen; xfs_mount_t *mp; /* file system mount point */ + xfs_ifork_t *ifp; /* inode fork pointer */ + xfs_extnum_t lastx; /* last extent pointer */ + xfs_fileoff_t fileblock; if (startblock == HOLESTARTBLOCK) { mp = ip->i_mount; @@ -5826,7 +5829,15 @@ xfs_getbmapx_fix_eof_hole( out->bmv_length = fixlen; } } else { - out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + if (startblock == DELAYSTARTBLOCK) + out->bmv_block = -2; + else + out->bmv_block = XFS_FSB_TO_DB(ip, startblock); + fileblock = XFS_BB_TO_FSB(ip->i_mount, out->bmv_offset); + ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); + if (xfs_iext_bno_to_ext(ifp, fileblock, &lastx) && + (lastx == (ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t))-1)) + out->bmv_oflags |= BMV_OF_LAST; } return 1; @@ -5861,8 +5872,6 @@ xfs_getbmap( int whichfork; /* data or attr fork */ int prealloced; /* this is a file with * preallocated data space */ - int sh_unwritten; /* true, if unwritten */ - /* extents listed separately */ int iflags; /* interface flags */ int bmapi_flags; /* flags for xfs_bmapi */ @@ -5870,7 +5879,6 @@ xfs_getbmap( iflags = bmv->bmv_iflags; whichfork = iflags & BMV_IF_ATTRFORK ? XFS_ATTR_FORK : XFS_DATA_FORK; - sh_unwritten = (iflags & BMV_IF_PREALLOC) != 0; /* If the BMV_IF_NO_DMAPI_READ interface bit specified, do not * generate a DMAPI read event. Otherwise, if the DM_EVENT_READ @@ -5941,8 +5949,9 @@ xfs_getbmap( xfs_ilock(ip, XFS_IOLOCK_SHARED); - if (whichfork == XFS_DATA_FORK && - (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { + if (((iflags & BMV_IF_DELALLOC) == 0) && + (whichfork == XFS_DATA_FORK) && + (ip->i_delayed_blks || ip->i_size > ip->i_d.di_size)) { /* xfs_fsize_t last_byte = xfs_file_last_byte(ip); */ error = xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); @@ -5952,7 +5961,8 @@ xfs_getbmap( } } - ASSERT(whichfork == XFS_ATTR_FORK || ip->i_delayed_blks == 0); + ASSERT(whichfork == XFS_ATTR_FORK || (iflags & BMV_IF_DELALLOC) || + ip->i_delayed_blks == 0); lock = xfs_ilock_map_shared(ip); @@ -5964,7 +5974,7 @@ xfs_getbmap( nex = XFS_IFORK_NEXTENTS(ip, whichfork) * 2 + 1; bmapi_flags = XFS_BMAPI_AFLAG(whichfork) | - ((sh_unwritten) ? 0 : XFS_BMAPI_IGSTATE); + ((iflags & BMV_IF_PREALLOC) ? 0 : XFS_BMAPI_IGSTATE); /* * Allocate enough space to handle "subnex" maps at a time. @@ -5974,9 +5984,12 @@ xfs_getbmap( bmv->bmv_entries = 0; - if (XFS_IFORK_NEXTENTS(ip, whichfork) == 0) { - error = 0; - goto unlock_and_return; + if ((XFS_IFORK_NEXTENTS(ip, whichfork) == 0)) { + if (((iflags & BMV_IF_DELALLOC) == 0) || + whichfork == XFS_ATTR_FORK) { + error = 0; + goto unlock_and_return; + } } nexleft = nex; @@ -5992,15 +6005,20 @@ xfs_getbmap( ASSERT(nmap <= subnex); for (i = 0; i < nmap && nexleft && bmv->bmv_length; i++) { - out.bmv_oflags = (map[i].br_state == XFS_EXT_UNWRITTEN) ? - BMV_OF_PREALLOC : 0; + out.bmv_oflags = 0; + if (map[i].br_state == XFS_EXT_UNWRITTEN) + out.bmv_oflags |= BMV_OF_PREALLOC; + else if (map[i].br_startblock == DELAYSTARTBLOCK) + out.bmv_oflags |= BMV_OF_DELALLOC; out.bmv_offset = XFS_FSB_TO_BB(mp, map[i].br_startoff); out.bmv_length = XFS_FSB_TO_BB(mp, map[i].br_blockcount); out.bmv_unused1 = out.bmv_unused2 = 0; - ASSERT(map[i].br_startblock != DELAYSTARTBLOCK); + ASSERT(((iflags & BMV_IF_DELALLOC) != 0) || + (map[i].br_startblock != DELAYSTARTBLOCK)); if (map[i].br_startblock == HOLESTARTBLOCK && whichfork == XFS_ATTR_FORK) { /* came to the end of attribute fork */ + out.bmv_oflags |= BMV_OF_LAST; goto unlock_and_return; } else { int full = 0; /* user array is full */ Index: linux-2.6-xfs/fs/xfs/xfs_fs.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_fs.h +++ linux-2.6-xfs/fs/xfs/xfs_fs.h @@ -113,10 +113,14 @@ struct getbmapx { #define BMV_IF_ATTRFORK 0x1 /* return attr fork rather than data */ #define BMV_IF_NO_DMAPI_READ 0x2 /* Do not generate DMAPI read event */ #define BMV_IF_PREALLOC 0x4 /* rtn status BMV_OF_PREALLOC if req */ -#define BMV_IF_VALID (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC) +#define BMV_IF_DELALLOC 0x8 /* rtn status BMV_OF_DELALLOC if req */ +#define BMV_IF_VALID \ + (BMV_IF_ATTRFORK|BMV_IF_NO_DMAPI_READ|BMV_IF_PREALLOC|BMV_IF_DELALLOC) /* bmv_oflags values - returned for for each non-header segment */ #define BMV_OF_PREALLOC 0x1 /* segment = unwritten pre-allocation */ +#define BMV_OF_DELALLOC 0x2 /* segment = delayed allocation */ +#define BMV_OF_LAST 0x4 /* segment is the last in the file */ /* * Structure for XFS_IOC_FSSETDM. From owner-xfs@oss.sgi.com Wed Oct 29 09:59:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TGxBUQ001531 for ; Wed, 29 Oct 2008 09:59:13 -0700 X-ASG-Debug-ID: 1225299548-303601d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1893714AB159 for ; Wed, 29 Oct 2008 09:59:09 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id YG9GPWVy9kgvZuFf for ; Wed, 29 Oct 2008 09:59:09 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGx8hx010152 for ; Wed, 29 Oct 2008 12:59:08 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9TGx841032721 for ; Wed, 29 Oct 2008 12:59:08 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9TGx76T032065 for ; Wed, 29 Oct 2008 12:59:07 -0400 Message-ID: <4908965B.5000803@sandeen.net> Date: Wed, 29 Oct 2008 11:59:07 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH 3/3 v4] hook up fiemap & associated formatter Subject: [PATCH 3/3 v4] hook up fiemap & associated formatter References: <49089596.80006@sandeen.net> In-Reply-To: <49089596.80006@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225299552 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8986 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hook up the fiemap ioctl. This adds the fiemap inode_operation, which for us converts the fiemap values & flags into a getbmapx structure which can be sent to xfs_getbmap. The formatter then copies the bmv array back into the user's fiemap buffer via the fiemap helpers. If we wanted to be more clever, we could also return mapping data for in-inode attributes, but I'm not terribly motivated to do that just yet. Signed-off-by: Eric Sandeen --- Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_iops.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_iops.c @@ -53,6 +53,7 @@ #include #include #include +#include /* * Bring the atime in the XFS inode uptodate. @@ -661,6 +662,88 @@ out_error: return error; } +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +/* + * Call fiemap helper to fill in user data. + * Returns positive errors to xfs_getbmap. + */ +STATIC int +xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *full) +{ + int error; + struct fiemap_extent_info *fieinfo = *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } + if (bmv->bmv_oflags & BMV_OF_LAST) + fiemap_flags |= FIEMAP_EXTENT_LAST; + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error > 0) { + error = 0; + *full = 1; /* user array now full */ + } + + return -error; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + error = fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS); + if (error) + return error; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ + if (length == FIEMAP_MAX_OFFSET) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + + /* our formatter will tell xfs_getbmap when to stop. */ + bm.bmv_count = MAXEXTNUM; + bm.bmv_iflags = BMV_IF_PREALLOC; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -error; + + return 0; +} + static const struct inode_operations xfs_inode_operations = { .permission = xfs_vn_permission, .truncate = xfs_vn_truncate, @@ -671,6 +754,7 @@ static const struct inode_operations xfs .removexattr = generic_removexattr, .listxattr = xfs_vn_listxattr, .fallocate = xfs_vn_fallocate, + .fiemap = xfs_vn_fiemap, }; static const struct inode_operations xfs_dir_inode_operations = { From owner-xfs@oss.sgi.com Wed Oct 29 12:08:39 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_63 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TJ8deq010100 for ; Wed, 29 Oct 2008 12:08:39 -0700 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6DC408F8073 for ; Wed, 29 Oct 2008 12:08:37 -0700 (PDT) Received: from lnx-billodo.americas.sgi.com (lnx-billodo.americas.sgi.com [128.162.232.245]) by estes.americas.sgi.com (Postfix) with ESMTP id 2B95B7000103; Wed, 29 Oct 2008 14:08:37 -0500 (CDT) Received: by lnx-billodo.americas.sgi.com (Postfix, from userid 56393) id 6DE6317E01F; Wed, 29 Oct 2008 14:12:59 -0500 (CDT) Date: Wed, 29 Oct 2008 14:12:59 -0500 From: "Bill O'Donnell" To: Christoph Hellwig Cc: xfs@sgi.com Subject: Re: [PATCH 4/9] add infrastructure for crc in metadata Message-ID: <20081029191259.GA21157@sgi.com> References: <20080925225629.GE9822@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20080925225629.GE9822@lst.de> User-Agent: Mutt/1.5.16 (2007-06-09) Hi Christoph- Unless I'm mistaken, this patch (4/9) is redundant. Its already covered by previous patchset from Sep 15 (add crcs for btree blocks) Cheers- Bill On Fri, Sep 26, 2008 at 12:56:29AM +0200, Christoph Hellwig wrote: | | - add a mount feature bit for CRC enabled filesystems | - add some helpers for generating and verifying the CRCs | - add a copy_uuid helper | - add a pre-io callback to xfs_buf for calculating the CRCs | | The checksumming helpers are losely based on similar ones in sctp, | all other bits come from Dave Chinner. | | | Signed-off-by: Christoph Hellwig | | Index: linux-2.6-xfs/fs/xfs/Kconfig | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/Kconfig 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/Kconfig 2008-09-25 20:04:58.000000000 +0200 | @@ -1,6 +1,6 @@ | config XFS_FS | tristate "XFS filesystem support" | - depends on BLOCK | + depends on BLOCK && LIBCRC32C | help | XFS is a high performance journaling filesystem which originated | on the SGI IRIX platform. It is completely multi-threaded, can | Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_linux.h 2008-09-25 20:04:58.000000000 +0200 | @@ -77,6 +77,7 @@ | #include | #include | #include | +#include | | #include | #include | Index: linux-2.6-xfs/fs/xfs/xfs_sb.h | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/xfs_sb.h 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/xfs_sb.h 2008-09-25 20:05:06.000000000 +0200 | @@ -79,10 +79,12 @@ struct xfs_mount; | #define XFS_SB_VERSION2_LAZYSBCOUNTBIT 0x00000002 /* Superblk counters */ | #define XFS_SB_VERSION2_RESERVED4BIT 0x00000004 | #define XFS_SB_VERSION2_ATTR2BIT 0x00000008 /* Inline attr rework */ | +#define XFS_SB_VERSION2_CRCBIT 0x00000020 /* metadata has CRCs */ | | #define XFS_SB_VERSION2_OKREALFBITS \ | (XFS_SB_VERSION2_LAZYSBCOUNTBIT | \ | - XFS_SB_VERSION2_ATTR2BIT) | + XFS_SB_VERSION2_ATTR2BIT | \ | + XFS_SB_VERSION2_CRCBIT) | #define XFS_SB_VERSION2_OKSASHFBITS \ | (0) | #define XFS_SB_VERSION2_OKREALBITS \ | @@ -494,6 +496,12 @@ static inline void xfs_sb_version_remove | sbp->sb_versionnum &= ~XFS_SB_VERSION_MOREBITSBIT; | } | | +static inline int xfs_sb_version_hascrc(xfs_sb_t *sbp) | +{ | + return (xfs_sb_version_hasmorebits(sbp) && | + (sbp->sb_features2 & XFS_SB_VERSION2_CRCBIT)); | +} | + | /* | * end of superblock version macros | */ | Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.c 2008-09-25 20:04:58.000000000 +0200 | @@ -1179,6 +1179,14 @@ _xfs_buf_ioapply( | (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; | } | | + /* | + * call out to buffer specific pre-write I/O functions. Used for | + * validation of buffers and CRC calculations prior to I/O issue. | + */ | + if (bp->b_io_callback && (bp->b_flags & XBF_WRITE)) | + bp->b_io_callback(bp); | + | + | /* Special code path for reading a sub page size buffer in -- | * we populate up the whole page, and hence the other metadata | * in the same page. This optimization is only valid when the | Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_buf.h 2008-09-25 20:04:58.000000000 +0200 | @@ -166,6 +166,8 @@ typedef struct xfs_buf { | unsigned int b_offset; /* page offset in first page */ | struct page **b_pages; /* array of page pointers */ | struct page *b_page_array[XB_PAGES]; /* inline pages */ | + void (*b_io_callback)(struct xfs_buf *); | + /* pre-write I/O callback */ | #ifdef XFS_BUF_LOCK_TRACKING | int b_last_holder; | #endif | @@ -228,6 +230,16 @@ static inline int xfs_buf_geterror(xfs_b | /* Buffer Utility Routines */ | extern xfs_caddr_t xfs_buf_offset(xfs_buf_t *, size_t); | | +/* | + * Set the function that should be called immediately prior | + * to a write I/O being issued on this buffer. | + */ | +static inline void | +xfs_buf_set_io_callback(xfs_buf_t *bp, void (*func)(xfs_buf_t *)) | +{ | + bp->b_io_callback = func; | +} | + | /* Pinning Buffer Storage in Memory */ | extern void xfs_buf_pin(xfs_buf_t *); | extern void xfs_buf_unpin(xfs_buf_t *); | Index: linux-2.6-xfs/fs/xfs/support/uuid.c | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/support/uuid.c 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/support/uuid.c 2008-09-25 20:04:58.000000000 +0200 | @@ -72,6 +72,12 @@ uuid_equal(uuid_t *uuid1, uuid_t *uuid2) | return memcmp(uuid1, uuid2, sizeof(uuid_t)) ? 0 : 1; | } | | +void | +uuid_copy(uuid_t *dst, uuid_t *src) | +{ | + memcpy(dst, src, sizeof(uuid_t)); | +} | + | /* | * Given a 128-bit uuid, return a 64-bit value by adding the top and bottom | * 64-bit words. NOTE: This function can not be changed EVER. Although | Index: linux-2.6-xfs/fs/xfs/support/uuid.h | =================================================================== | --- linux-2.6-xfs.orig/fs/xfs/support/uuid.h 2008-09-25 20:04:39.000000000 +0200 | +++ linux-2.6-xfs/fs/xfs/support/uuid.h 2008-09-25 20:04:58.000000000 +0200 | @@ -25,6 +25,7 @@ typedef struct { | extern void uuid_create_nil(uuid_t *uuid); | extern int uuid_is_nil(uuid_t *uuid); | extern int uuid_equal(uuid_t *uuid1, uuid_t *uuid2); | +extern void uuid_copy(uuid_t *dst, uuid_t *src); | extern void uuid_getnodeuniq(uuid_t *uuid, int fsid [2]); | extern __uint64_t uuid_hash64(uuid_t *uuid); | extern int uuid_table_insert(uuid_t *uuid); | Index: linux-2.6-xfs/fs/xfs/xfs_cksum.h | =================================================================== | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | +++ linux-2.6-xfs/fs/xfs/xfs_cksum.h 2008-09-25 20:09:52.000000000 +0200 | @@ -0,0 +1,62 @@ | +#ifndef _XFS_CKSUM_H | +#define _XFS_CKSUM_H 1 | + | +#define XFS_CRC_SEED (~(__uint32_t)0) | + | +/* | + * Calculate the intermediate checksum for a buffer that has the CRC field | + * inside it. The offset of the 32bit crc fields is passed as the | + * cksum_offset parameter. | + */ | +static inline __uint32_t | +xfs_start_cksum(char *buffer, size_t length, unsigned long cksum_offset) | +{ | + __uint32_t zero = 0; | + __uint32_t crc; | + | + /* Calculate CRC up to the checksum. */ | + crc = crc32c(XFS_CRC_SEED, buffer, cksum_offset); | + | + /* Skip checksum field */ | + crc = crc32c(crc, &zero, sizeof(__u32)); | + | + /* Calculate the rest of the CRC. */ | + return crc32c(crc, &buffer[cksum_offset + sizeof(__be32)], | + length - (cksum_offset + sizeof(__be32))); | +} | + | +/* | + * Convert the intermediate checksum to the final ondisk format. | + * | + * Note that crc32c is already endianess agnostic, so no additional | + * byte swap is needed. | + */ | +static inline __be32 | +xfs_end_cksum(__uint32_t crc) | +{ | + return (__force __be32)~crc; | +} | + | +/* | + * Helper to generate the checksum for a buffer. | + */ | +static inline void | +xfs_update_cksum(char *buffer, size_t length, unsigned long cksum_offset) | +{ | + __uint32_t crc = xfs_start_cksum(buffer, length, cksum_offset); | + | + *(__be32 *)(buffer + cksum_offset) = xfs_end_cksum(crc); | +} | + | +/* | + * Helper to verify the checksum for a buffer. | + */ | +static inline int | +xfs_verify_cksum(char *buffer, size_t length, unsigned long cksum_offset) | +{ | + __uint32_t crc = xfs_start_cksum(buffer, length, cksum_offset); | + | + return *(__be32 *)(buffer + cksum_offset) == xfs_end_cksum(crc); | +} | + | +#endif /* _XFS_CKSUM_H */ | | -- | | -- Bill O'Donnell SGI billodo@sgi.com From owner-xfs@oss.sgi.com Wed Oct 29 14:42:06 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TLg6jF025143 for ; Wed, 29 Oct 2008 14:42:06 -0700 X-ASG-Debug-ID: 1225316525-217400570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 69FB355B71C for ; Wed, 29 Oct 2008 14:42:05 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id XfsyjVazja2qH3SL for ; Wed, 29 Oct 2008 14:42:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJd0CEl5LIT3/2dsb2JhbADOHINR X-IronPort-AV: E=Sophos;i="4.33,509,1220193000"; d="scan'208";a="236485421" Received: from ppp121-44-132-247.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.132.247]) by ipmail04.adl2.internode.on.net with ESMTP; 30 Oct 2008 08:12:03 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvIni-0002bo-2w; Thu, 30 Oct 2008 08:42:02 +1100 Date: Thu, 30 Oct 2008 08:42:02 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029214202.GH17077@disturbed> Mail-Followup-To: Christoph Hellwig , Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> <20081029091326.GB32545@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029091326.GB32545@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1225316526 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.8999 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 05:13:26AM -0400, Christoph Hellwig wrote: > On Wed, Oct 29, 2008 at 02:26:01PM +1100, Dave Chinner wrote: > > Ok, I was right - these problems happen all the time. The above call > > should really call xfs_flush_pages() to do the flush and wait. I > > note that xfs_flush_pages() returns negative errors, and all the > > callers expect positive errors. I bet the same occurs for > > xfs_flushinval_pages() and xfs_tosspages() which are the wrappers > > that core XFS code is supposed to be using for flushing and > > invalidating file ranges.... > > > > I'll write up a patch that covers all of these. > > Can you also merge xfs_fsync into xfs_file_fsync while you're at it? > The split newer made any sense as xfs_fsync is as Linux-specific as it > gets and shouldn't be in the pseudo OS-independent layer. I'll do that as a separate patch - it's not really part of a "fix error value inversion" bug fix.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 29 14:43:59 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TLhxWK025440 for ; Wed, 29 Oct 2008 14:43:59 -0700 X-ASG-Debug-ID: 1225316638-190001050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AD394B0ACB7 for ; Wed, 29 Oct 2008 14:43:58 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id bR9FNZ8TAA55BLnz for ; Wed, 29 Oct 2008 14:43:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJd0CEl5LIT3/2dsb2JhbADOHINR X-IronPort-AV: E=Sophos;i="4.33,509,1220193000"; d="scan'208";a="236486817" Received: from ppp121-44-132-247.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.132.247]) by ipmail04.adl2.internode.on.net with ESMTP; 30 Oct 2008 08:13:48 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvIpP-0002e1-2z; Thu, 30 Oct 2008 08:43:47 +1100 Date: Thu, 30 Oct 2008 08:43:47 +1100 From: Dave Chinner To: Jamie Lokier Cc: Nick Piggin , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029214347.GI17077@disturbed> Mail-Followup-To: Jamie Lokier , Nick Piggin , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029122234.GE846@shareable.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1225316639 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 12:22:35PM +0000, Jamie Lokier wrote: > Nick Piggin wrote: > > On Wed, Oct 29, 2008 at 05:44:17AM -0400, Christoph Hellwig wrote: > > > On Wed, Oct 29, 2008 at 10:21:43AM +0100, Nick Piggin wrote: > > > > Please do. > > > > > > Well, there's one stumling block I haven't made progress on yet: > > > > > > I've changed the prototype of ->fsync to lose the dentry as we should > > > always have a valid file struct. Except that nfsd doesn't on > > > directories. So I either need to fake up a file there, or bail out > > > and add a ->dir_sync export operation that needs just a dentry. > > > > OK. I don't know much about hthat code, but I would think nfsd > > should look as close to the syscall layer as possible. I guess > > there must be something prohibitive (some protocol semantics?). > > > > Is there anything that particularly makes it a file operation > > as opposed to an inode operation? > > In principle, is fsync() required to flush all dirty data written > through any file descriptor ever, or just dirty data written through > the file descriptor used for fsync()? fsync() is required to flush the data that is dirty at the time of the call, as well as any associated metadata needed to reference that data. It doesn't matter who wrote the data in the first place.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 29 14:45:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TLj5Qx025806 for ; Wed, 29 Oct 2008 14:45:05 -0700 X-ASG-Debug-ID: 1225316705-1c8700e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C04E55B796 for ; Wed, 29 Oct 2008 14:45:05 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Ws7yB6UdabWHCZpN for ; Wed, 29 Oct 2008 14:45:05 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KvIqd-0002kY-Iv; Wed, 29 Oct 2008 21:45:03 +0000 Date: Wed, 29 Oct 2008 17:45:03 -0400 From: Christoph Hellwig To: Christoph Hellwig , Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029214503.GA8895@infradead.org> References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> <20081029091326.GB32545@infradead.org> <20081029214202.GH17077@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029214202.GH17077@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225316706 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Thu, Oct 30, 2008 at 08:42:02AM +1100, Dave Chinner wrote: > I'll do that as a separate patch - it's not really part of a "fix > error value inversion" bug fix.... Well it is kindof. Because we'd call Linux library functions directly from the method we skip to places that need sign conversion and could possibly go wrong. But if you want a separate patch that's fine with me too. From owner-xfs@oss.sgi.com Wed Oct 29 14:53:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9TLrj0O026510 for ; Wed, 29 Oct 2008 14:53:45 -0700 X-ASG-Debug-ID: 1225317224-1e2501110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB74CB0AE30 for ; Wed, 29 Oct 2008 14:53:45 -0700 (PDT) Received: from ipmail04.adl2.internode.on.net (ipmail04.adl2.internode.on.net [203.16.214.57]) by cuda.sgi.com with ESMTP id 0727v4XfD455pYhm for ; Wed, 29 Oct 2008 14:53:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEACB4CEl5LIT3/2dsb2JhbADOLINR X-IronPort-AV: E=Sophos;i="4.33,509,1220193000"; d="scan'208";a="236495333" Received: from ppp121-44-132-247.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.132.247]) by ipmail04.adl2.internode.on.net with ESMTP; 30 Oct 2008 08:23:43 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvIz0-0002rw-Km; Thu, 30 Oct 2008 08:53:42 +1100 Date: Thu, 30 Oct 2008 08:53:42 +1100 From: Dave Chinner To: Christoph Hellwig Cc: Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081029215342.GL17077@disturbed> Mail-Followup-To: Christoph Hellwig , Nick Piggin , akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, Chris Mason References: <20081028144715.683011000@suse.de> <20081028153953.GB3082@wotan.suse.de> <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029032601.GF4985@disturbed> <20081029091326.GB32545@infradead.org> <20081029214202.GH17077@disturbed> <20081029214503.GA8895@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081029214503.GA8895@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail04.adl2.internode.on.net[203.16.214.57] X-Barracuda-Start-Time: 1225317225 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 05:45:03PM -0400, Christoph Hellwig wrote: > On Thu, Oct 30, 2008 at 08:42:02AM +1100, Dave Chinner wrote: > > I'll do that as a separate patch - it's not really part of a "fix > > error value inversion" bug fix.... > > Well it is kindof. Because we'd call Linux library functions directly > from the method we skip to places that need sign conversion and could > possibly go wrong. But if you want a separate patch that's fine with > me too. Well, the patch I posted to fix the sign problems covered the xfs_flush_pages() and xfs_flushinval_pages() functions that we returning negative errors to core code, and none of the core code inverted that before returning it to functions that inverted it. That's a general problem that affected truncate, direct I/O, getbmap, etc, as well as fsync... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 29 19:16:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_52 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U2G4rK016920 for ; Wed, 29 Oct 2008 19:16:05 -0700 X-ASG-Debug-ID: 1225332963-0b4200600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A3FC55CA88 for ; Wed, 29 Oct 2008 19:16:03 -0700 (PDT) Received: from mx2.suse.de (mx2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 8HQ4Rfx8WRBjeI6a for ; Wed, 29 Oct 2008 19:16:03 -0700 (PDT) Received: from Relay1.suse.de (relay-ext.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id BD77946422; Thu, 30 Oct 2008 03:16:01 +0100 (CET) Date: Thu, 30 Oct 2008 03:16:01 +0100 From: Nick Piggin To: Chris Mason Cc: Ric Wheeler , Jamie Lokier , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081030021601.GF18041@wotan.suse.de> References: <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> <490865E3.8070102@gmail.com> <1225292196.6448.263.camel@think.oraclecorp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1225292196.6448.263.camel@think.oraclecorp.com> User-Agent: Mutt/1.5.9i X-Barracuda-Connect: mx2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1225332964 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9017 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Oct 29, 2008 at 10:56:36AM -0400, Chris Mason wrote: > On Wed, 2008-10-29 at 09:32 -0400, Ric Wheeler wrote: > > Jamie Lokier wrote: > > > >> Is there anything that particularly makes it a file operation > > >> as opposed to an inode operation? > > >> > > > > > > In principle, is fsync() required to flush all dirty data written > > > through any file descriptor ever, or just dirty data written through > > > the file descriptor used for fsync()? > > > > > > -- Jamie > > > -- > > > > > http://www.opengroup.org/onlinepubs/009695399/functions/fsync.html > > > > Is a pointer to what seems to be the official posix spec for this - it > > is definitely per file descriptor, not per file system, etc... > > > > Maybe I'm reading Jamie's question wrong, but I think he's saying: > > /* open exactly the same file twice */ > fd = open("file"); > fd2 = open("file"); > > write(fd, "stuff") > write(fd2, "more stuff") > fsync(fd); > > Does the fsync promise "more stuff" will be on disk? I think the answer > should be yes. I think so. And this is in the context of making ->fsync an inode operation and avoid the NFS NULL-file problem... I don't think there is any fd specific metadata that fsync has to deal with? Any other reasons it has to be a file operation? From owner-xfs@oss.sgi.com Wed Oct 29 19:30:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U2UuqO017836 for ; Wed, 29 Oct 2008 19:30:57 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 1FF478F8074; Wed, 29 Oct 2008 19:30:51 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA00119; Thu, 30 Oct 2008 13:30:49 +1100 Message-ID: <49091BFC.3000503@sgi.com> Date: Thu, 30 Oct 2008 13:29:16 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: Lachlan McIlroy , Christoph Hellwig , xfs-oss Subject: Re: assertion failure with latest xfs References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> <4907B1B3.4020008@sgi.com> <20081029032941.GG4985@disturbed> In-Reply-To: <20081029032941.GG4985@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > On Wed, Oct 29, 2008 at 11:43:31AM +1100, Lachlan McIlroy wrote: >> Dave Chinner wrote: >>> Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't >>> drop the reference we got if we found an unlinked inode after the >>> igrab() (the ENOENT case). I'll fix that as well. >>> >>> Patch below that I'm currently running through xfsqa. >> I gave this patch a go and it still asserted at the same place running >> the same test. > > Can you put more inode trace points in so that we can see where the > extra reference is coming from? xfs_sync_inodes_ag() found the inode before it was completely initialised. --> itrace @ 0xffff880078d67800/0xffff880073563e40 ref @fs/xfs/xfs_inode.c:863(xfs_inode_alloc+0x205) i_count = 1 cpu = 2 pid = 9938 ra = xfs_iread+0x29 exit from xfs_iget.alloc i_count = 1 cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 ref @fs/xfs/xfs_iget.c:218(xfs_iget+0x585) i_count = 1 cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 ref @fs/xfs/xfs_iget.c:305(xfs_iget+0x643) i_count = 1 cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 ref @fs/xfs/linux-2.6/xfs_sync.c:113(xfs_sync_inodes_ag+0x118) i_count = 1 cpu = 3 pid = 9953 ra = xfs_sync_inodes+0x68 ref @fs/xfs/linux-2.6/xfs_iops.c:780(xfs_setup_inode+0x2c) i_count = 2 cpu = 2 pid = 9938 ra = xfs_ialloc+0x5d8 From owner-xfs@oss.sgi.com Wed Oct 29 21:06:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_35 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [192.26.58.214]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U46XT6028034 for ; Wed, 29 Oct 2008 21:06:33 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay1.corp.sgi.com (Postfix) with SMTP id 105F58F8054; Wed, 29 Oct 2008 21:06:29 -0700 (PDT) Received: from [134.14.55.22] (dhcp22.melbourne.sgi.com [134.14.55.22]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA02715; Thu, 30 Oct 2008 15:06:27 +1100 Message-ID: <490932BB.9020804@sgi.com> Date: Thu, 30 Oct 2008 15:06:19 +1100 From: Mark Goodwin Reply-To: markgw@sgi.com Organization: SGI Engineering User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: Russell Cattelan CC: xfs-oss Subject: Re: oss.sgi.com and mailman, looking for volunteers. References: <490720DD.2050502@thebarn.com> In-Reply-To: <490720DD.2050502@thebarn.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Russell Cattelan wrote: > If everything works out then I will move the entire list over to using > mailman. Or over to vger, as we've been discussing. I'd like to delay any significant change until (a) after we have git'ified our patch flow and tree management processes (shortly after the .28 pull req goes out), and (b) the new oss.sgi.com has been set up and all content rsync'd across. This machine exists but Trev is currently occupied on other tasks. We're going to want more than just a new mailing list or handler. We also need a wiki for docs (news, arch, blogs, training, papers, etc), something like patchwork for tracking submissions, and more, etc. It doesn't make much sense to start setting this up on the current oss and then do it all again on the new oss. So can we please hobble along for another week or two? Thanks -- Mark From owner-xfs@oss.sgi.com Wed Oct 29 22:23:14 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U5NE7v032565 for ; Wed, 29 Oct 2008 22:23:14 -0700 X-ASG-Debug-ID: 1225344193-53ea01bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC42855D02F for ; Wed, 29 Oct 2008 22:23:13 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id kW2nncB77k2sXchM for ; Wed, 29 Oct 2008 22:23:13 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LIT3/2dsb2JhbAC7AAiHHmgIew X-IronPort-AV: E=Sophos;i="4.33,512,1220193000"; d="scan'208";a="221355830" Received: from ppp121-44-132-247.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.132.247]) by ipmail01.adl6.internode.on.net with ESMTP; 30 Oct 2008 15:53:11 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvPzx-00038l-UQ for xfs@oss.sgi.com; Thu, 30 Oct 2008 16:23:09 +1100 Date: Thu, 30 Oct 2008 16:23:09 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Map a disk LBA to filename? Subject: Re: Map a disk LBA to filename? Message-ID: <20081030052309.GM17077@disturbed> Mail-Followup-To: xfs@oss.sgi.com References: <4905A3FB.6080709@aei.mpg.de> <20081027114945.GE4985@disturbed> <4905B48A.8010108@aei.mpg.de> <4905BC13.3030402@drutsystem.com> <20081027233516.GG4985@disturbed> <4906BB32.8080403@aei.mpg.de> <20081028072105.GW4985@disturbed> <4906C164.6090704@aei.mpg.de> <4906D80F.9050500@aei.mpg.de> <20081028093827.GA12133@kyra> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081028093827.GA12133@kyra> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225344194 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4280 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9027 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Oct 28, 2008 at 10:38:27AM +0100, KELEMEN Peter wrote: > * Carsten Aulbert (carsten.aulbert@aei.mpg.de) [20081028 10:14]: > > > Is it possible that blocks != bsized_blocks? > > xfs_bmap(8) talks in basic blocks (512 bytes). > 660 div 8 = 82, so try: > > blockget -b 82 -n I think all of you need to know about the "convert" command ;) e.g. to do the above conversion correctly: xfs_db> convert daddr 660 fsb 0x52 (82) The xfs_db man page tells you all the different formats that can be converted between. The convert command automatically takes into account the geometry of the filesystem where appropriate (e.g. filesystem block size). Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 29 22:25:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_35 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U5P7LO000361 for ; Wed, 29 Oct 2008 22:25:07 -0700 X-ASG-Debug-ID: 1225344305-5d7902f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B8C6D1B69179 for ; Wed, 29 Oct 2008 22:25:06 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id whp2xXkFg1I8VarU for ; Wed, 29 Oct 2008 22:25:06 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAFvhCEl5LIT3/2dsb2JhbADMfYNR X-IronPort-AV: E=Sophos;i="4.33,512,1220193000"; d="scan'208";a="243784306" Received: from ppp121-44-132-247.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.132.247]) by ipmail05.adl2.internode.on.net with ESMTP; 30 Oct 2008 15:55:03 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvQ1m-0003BD-Av; Thu, 30 Oct 2008 16:25:02 +1100 Date: Thu, 30 Oct 2008 16:25:02 +1100 From: Dave Chinner To: Mark Goodwin Cc: Russell Cattelan , xfs-oss X-ASG-Orig-Subj: Re: oss.sgi.com and mailman, looking for volunteers. Subject: Re: oss.sgi.com and mailman, looking for volunteers. Message-ID: <20081030052502.GN17077@disturbed> Mail-Followup-To: Mark Goodwin , Russell Cattelan , xfs-oss References: <490720DD.2050502@thebarn.com> <490932BB.9020804@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490932BB.9020804@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225344307 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4257 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9027 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 30, 2008 at 03:06:19PM +1100, Mark Goodwin wrote: > > > Russell Cattelan wrote: >> If everything works out then I will move the entire list over to using >> mailman. > > Or over to vger, as we've been discussing. I'd like to delay any > significant change until (a) after we have git'ified our patch flow > and tree management processes (shortly after the .28 pull req goes out), > and (b) the new oss.sgi.com has been set up and all content rsync'd > across. This machine exists but Trev is currently occupied on other > tasks. > > We're going to want more than just a new mailing list or handler. > We also need a wiki for docs (news, arch, blogs, training, papers, > etc) That's already been set up on xfs.org. We don't need to duplicate that again, do we? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Wed Oct 29 22:38:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U5caCI001181 for ; Wed, 29 Oct 2008 22:38:37 -0700 X-ASG-Debug-ID: 1225345115-35da02050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5A2311B691D8 for ; Wed, 29 Oct 2008 22:38:36 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id SL6biFrGbb52jAYF for ; Wed, 29 Oct 2008 22:38:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEANvkCEl5LIvD/2dsb2JhbADMboNR X-IronPort-AV: E=Sophos;i="4.33,512,1220193000"; d="scan'208";a="243795841" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 30 Oct 2008 16:08:34 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvQEr-0003bG-En; Thu, 30 Oct 2008 16:38:33 +1100 Date: Thu, 30 Oct 2008 16:38:33 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: assertion failure with latest xfs Subject: Re: assertion failure with latest xfs Message-ID: <20081030053833.GO17077@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> <4907B1B3.4020008@sgi.com> <20081029032941.GG4985@disturbed> <49091BFC.3000503@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49091BFC.3000503@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225345117 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9027 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 30, 2008 at 01:29:16PM +1100, Lachlan McIlroy wrote: > Dave Chinner wrote: >> On Wed, Oct 29, 2008 at 11:43:31AM +1100, Lachlan McIlroy wrote: >>> Dave Chinner wrote: >>>> Hmmmm - there's also another bug in xfs_iget_cache_hit() - we don't >>>> drop the reference we got if we found an unlinked inode after the >>>> igrab() (the ENOENT case). I'll fix that as well. >>>> >>>> Patch below that I'm currently running through xfsqa. >>> I gave this patch a go and it still asserted at the same place running >>> the same test. >> >> Can you put more inode trace points in so that we can see where the >> extra reference is coming from? > > xfs_sync_inodes_ag() found the inode before it was completely > initialised. > > --> itrace @ 0xffff880078d67800/0xffff880073563e40 > ref @fs/xfs/xfs_inode.c:863(xfs_inode_alloc+0x205) i_count = 1 > cpu = 2 pid = 9938 ra = xfs_iread+0x29 > exit from xfs_iget.alloc i_count = 1 > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > ref @fs/xfs/xfs_iget.c:218(xfs_iget+0x585) i_count = 1 > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > ref @fs/xfs/xfs_iget.c:305(xfs_iget+0x643) i_count = 1 > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > ref @fs/xfs/linux-2.6/xfs_sync.c:113(xfs_sync_inodes_ag+0x118) i_count = 1 > cpu = 3 pid = 9953 ra = xfs_sync_inodes+0x68 > ref @fs/xfs/linux-2.6/xfs_iops.c:780(xfs_setup_inode+0x2c) i_count = 2 > cpu = 2 pid = 9938 ra = xfs_ialloc+0x5d8 Ah - ok, that makes sense now. That should be trivial to fix up; we just need to avoid XFS_INEW() inodes in xfs_sync_inodes_ag() and probably also in xfs_qm_dqrele_all(), and that will mean the assert needs to be removed as well. Patch soon. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 01:50:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9U8oQTP018683 for ; Thu, 30 Oct 2008 01:50:27 -0700 X-ASG-Debug-ID: 1225356624-5353013b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9EFCEB0EBFF for ; Thu, 30 Oct 2008 01:50:24 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id x7rSd34PGbLzf7OU for ; Thu, 30 Oct 2008 01:50:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJISCUl5LIvD/2dsb2JhbADMdoNR X-IronPort-AV: E=Sophos;i="4.33,513,1220193000"; d="scan'208";a="243925347" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 30 Oct 2008 19:20:21 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvTES-0004IR-BY; Thu, 30 Oct 2008 19:50:20 +1100 Date: Thu, 30 Oct 2008 19:50:20 +1100 From: Dave Chinner To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: do_sync() and XFSQA test 182 failures.... Subject: do_sync() and XFSQA test 182 failures.... Message-ID: <20081030085020.GP17077@disturbed> Mail-Followup-To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225356626 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9036 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Folks, I think I've finally found the bug(s) that is causing XFSQA test 182 to fail. Test 182 writes a bunch of files, then runs sync, then shuts the filesystem down. It then unmounts and remounts the fs and checks that all the files are the correct length and have the correct contents. i.e. that sync semantics have been correctly observed. The cause of the failure is that log recovery is replaying inode allocation and overwriting the last inode writes that contained unlogged changes (i.e. the inode size update that occurs at I/O completion). The problem is that we've never been able to work out why recovery is doing this. What has been nagging at the back of my mind for quite some time is the fact that we do actually write these inodes to disk and that should allow the tail of the log to move forward past the inode allocation transaction and hence it should not be replayed during recovery. A solution that has been proposed in the past (by Lachlan) is to log the inode size updates instead of writing the inode to disk. In that case, recovery also replays the inode modification transactions and so we don't lose anything. It is a solution that would fix the problem. However, always logging inodes instead of writing unlogged changes has other performance implications that we'd prefer to avoid (i.e. the number of extra transactions it will cause). This solution also seemed to me to be papering over the real problem which we hadn't yet found because it did not explain why we were replaying an allocation that we should not need to. Hence the problem has gone unfixed since Lachlan first discovered it despite trying several times to get to the bottom of the problem. Now I think I finally have. I started by instrumenting the sync code and the inode dirtying and writeback code to confirm the order of data, inode and sync operations, with a view to understanding why the tail of the log was not moving forwards when the inode clusters were written out during the sync. To start with, let's look at what do_sync() does: 24 static void do_sync(unsigned long wait) 25 { 26 wakeup_pdflush(0); 27 sync_inodes(0); /* All mappings, inodes and their blockdevs */ 28 DQUOT_SYNC(NULL); 29 sync_supers(); /* Write the superblocks */ 30 sync_filesystems(0); /* Start syncing the filesystems */ 31 sync_filesystems(wait); /* Waitingly sync the filesystems */ 32 sync_inodes(wait); /* Mappings, inodes and blockdevs, again. */ 33 if (!wait) 34 printk("Emergency Sync complete\n"); 35 if (unlikely(laptop_mode)) 36 laptop_sync_completion(); 37 } Let's translate this into what XFS does: wakeup_pdflush(0) [*] - run a concurrent background sync of the fs via pdflush. sync_inodes(0) - walks the superblock dirty inode list doing an async flush of inodes and their data. sync_supers() - writes the superblock, forces the log to disk sync_filesystems(0) - non block filesystem sync. XFS writes the superblock sync_filesystems(1) - XFS writes all dirty data to disk and waits for it. Dirties the superblock and the log. Does not write inodes. sync_inodes(1) - walk the superblock dirty inode list *twice*, first doing an async flush of dirty data and inodes, secondly doing a sync flush of remaining dirty data and inodes. [*] Starting pdflush to sync data in the background when we are about to start flushing ourselves is self-defeating. instead of having a single thread doing optimal writeout patterns, we now have two threads trying to sync the same filesystems and competing with each other to write out dirty inodes. This actually causes bugs in sync because pdflush is doing async flushes. Hence if pdflush races and wins during the sync flush part of the sync process, sync_inodes(1) will return before all the data/metadata is on disk because it can't be found to be waited on. Now the sync is _supposedly_ complete. But we still have a dirty log and superblock thanks to delayed allocation that may have occurred after the sync_supers() call. Hence we can immediately see that we cannot *ever* do a proper sync of an XFS filesystem in Linux without modifying do_sync() to do more callouts. Worse, XFS can also still have *dirty inodes* because sync_inodes(1) will remove inodes from the dirty list in the async pass, but they can get dirtied a short time later (if they had dirty data) when the data I/O completes. Hence if the second sync pass completes before the inode is dirtied again we'll miss flushing it. This will mean we don't write inode size updates during sync. This is the same race that pdflush running in the background can trigger. Clearly this is broken, but this particular problem is an XFS bug and is fixed by XFS marking the inode dirty before I/O dispatch if the end offset of the I/O is beyond the current EOF so there is no window where the inode is temporarily clean. This, however, does not fix the race condition between the sync thread and pdflush, just the async-then-sync problem within the flush thread. Back to do_sync(), the order of operations we need to reliably sync a journalling filesystem that uses delayed allocation and updates metadata on data I/O completion is effectively as follows: - flush all dirty data - wait for all metadata updates caused by data flush to complete - force unwritten async transactions to disk to unpin dirty metadata - flush all dirty metadata - write the superblock In generic speak, this effectively requires: sync_filesystems(0) [**] sync_filesystems(1) sync_supers() sync_inodes(1) [***] sync_supers() [**] async flush optimisation [***] async flush optimisation is implemented internally to sync_inodes() for sync flushes. This leads to the following callouts and the behaviour that XFS would need for the callouts: sync_filesystems(0) ->sync_fs() - async flush all dirty data sync_filesystems(1) ->sync_fs() - sync flush remaining dirty data sync_supers() ->write_super() - write super, force the log sync_inodes(1) [****] sync_inodes_sb(0) - async flush of dirty inodes sync_inodes_sb(1) - sync flush of remaining inodes sync_supers() ->write_super() - write sb, force the log. [****] sync_inodes() really needs to fall down to a ->sync_inodes() callout for the filesystem to be able to implement an optimal inode flushing strategy. However, even with this order in place, test 182 still fails. So I looked at the filesystem prior to log recovery (mount -o ro,norecovery) and saw that all the data is on disk, all the inode sizes are correct, the superblock is up to date and everything looks OK. That is, the sync did everything it was supposed to and the above order of writing out the filesystem is working correctly. As soon as I ran recovery, though, I saw a small number of inodes go back to having an inode size of zero - they regress. The reason for this is that the log tail location (l_tail_lsn) at the end of the sync is was not updated on disk at the end of the sync and hence recovery is replaying transactions. At this point I wondered if the log covering code was not working properly. I'd never really looked at it in any detail, and as soon as I read the description I knew that it was not working. The problem log covering is supposed to solve is as follows (from fs/xfs/xfs_log_priv.h): 161 * These states are used to insert dummy log entries to cover 162 * space allocation transactions which can undo non-transactional changes 163 * after a crash. Writes to a file with space 164 * already allocated do not result in any transactions. Allocations 165 * might include space beyond the EOF. So if we just push the EOF a 166 * little, the last transaction for the file could contain the wrong 167 * size. If there is no file system activity, after an allocation 168 * transaction, and the system crashes, the allocation transaction 169 * will get replayed and the file will be truncated. This could 170 * be hours/days/... after the allocation occurred. Immediately it is was obvious that we're seeing the above problem and that log covering is a method for ensuring that the state of the log on disk is the same as that in memory at the end of a sync. Hence, as the last part of the sync we need to try to cover the log with a dummy transaction to update the real location of the log tail in the log. Therefore we will no longer replay the inode allocation transactions because the tail in the log matches the in memory state after the inodes have been flushed. With the current do_sync() code, we have no callout once the inodes are written to issue a dummy transactions to cover the log correctly. The do_sync() process needs to end with a sync_supers() to get the correct callout to XFS to allow this to happen. i.e. whenever we try to write the superblock we also should be trying to initiate the log covering process, and we can't do this right now. Once the log is covered, the recovery-overwriting-inodes problem goes away because recovery is not needed. Everyone understand the problem now? ;) FWIW, XFS has had this log covering code since, well, forever. It came from Irix and it worked on Irix. I don't think that it has ever worked on Linux, though, because of the lack of a sync_supers() call at the end of do_sync(1). We've just never noticed it until we corrected the infamous NULL files problems in 2.6.22 which hid this particular cause of file size mismatches after a crash. With a bunch of hacks in place, test 182 now passes and sync(1) on XFS finally does what it is supposed to. I'm not going to post the hacky, full-of-garbage, debuggy patch I have that I used to discover this - I'll clean it up first to just have the bits needed to fix the problem, then post it. That'll be tomorrow.... However, I have a problem - I'm an expert in XFS, not the other tens of Linux filesystems so I can't begin to guess what the impact of changing do_sync() would be on those many filesystems. How many filesystems would such a change break? Indeed - how many are broken right now by having dirty inodes and superblocks slip through sync(1)? And then the big question - how the hell does one test such change? I can test XFS easily enough because it has shutdown ioctls that effectively simulate a power failure - that what test 182 uses. I don't think any other filesystem has such an ioctl, though, and I don't have the time or hardware to repeatedly crash test every filesystem out there to prove that a change to do_sync() doesn't negatively impact them. What are the alternatives? do_sync() operates above any particular filesystem, so it's hard to provide a filesystem specific ->do_sync method to avoid changing sync order for all filesystems. Do we change do_sync() to completely sync a superblock at a time instead of doing each operation across all superblocks before moving onto the next operation? Is there any particular reason (e.g. performance, locking) for the current method that would prevent changing to completely-sync-a-superblock iteration algorithm so we can provide a custom ->do_sync method? Are there any other ways that we can get a custom ->do_sync method for XFS? I'd prefer a custom method so we don't have to revalidate every linux filesystem, especially as XFS already has everything it needs to provide it's own sync method (used for freezing) and a test suite to validate it is working correctly..... Are there any other options for solving this? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 05:51:49 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_52 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9UCpnKV004539 for ; Thu, 30 Oct 2008 05:51:49 -0700 X-ASG-Debug-ID: 1225371110-095e015f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from g4t0015.houston.hp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 98C7355E6E1 for ; Thu, 30 Oct 2008 05:51:50 -0700 (PDT) Received: from g4t0015.houston.hp.com (g4t0015.houston.hp.com [15.201.24.18]) by cuda.sgi.com with ESMTP id 1nCSAUWC3H4ZR1BF for ; Thu, 30 Oct 2008 05:51:50 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from g1t0038.austin.hp.com (g1t0038.austin.hp.com [16.236.32.44]) by g4t0015.houston.hp.com (Postfix) with ESMTP id 5AC328602; Thu, 30 Oct 2008 12:51:48 +0000 (UTC) Received: from ldl.fc.hp.com (ldl.fc.hp.com [15.11.146.30]) by g1t0038.austin.hp.com (Postfix) with ESMTP id CDA8E30134; Thu, 30 Oct 2008 12:51:47 +0000 (UTC) Received: from localhost (ldl.fc.hp.com [127.0.0.1]) by ldl.fc.hp.com (Postfix) with ESMTP id 45E3E39C009; Thu, 30 Oct 2008 06:51:47 -0600 (MDT) X-Virus-Scanned: Debian amavisd-new at ldl.fc.hp.com Received: from ldl.fc.hp.com ([127.0.0.1]) by localhost (ldl.fc.hp.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id frpacvnZqA4k; Thu, 30 Oct 2008 06:51:46 -0600 (MDT) Received: from [192.168.0.99] (squirrel.fc.hp.com [15.11.146.57]) by ldl.fc.hp.com (Postfix) with ESMTP id 0ACAB39C007; Thu, 30 Oct 2008 06:51:44 -0600 (MDT) Message-ID: <4909ADE0.1060205@hp.com> Date: Thu, 30 Oct 2008 08:51:44 -0400 From: jim owens User-Agent: Thunderbird 2.0.0.17 (X11/20080925) MIME-Version: 1.0 To: Nick Piggin CC: Chris Mason , Ric Wheeler , Jamie Lokier , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) References: <20081028222746.GB4985@disturbed> <20081029001653.GF15599@wotan.suse.de> <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> <490865E3.8070102@gmail.com> <1225292196.6448.263.camel@think.oraclecorp.com> <20081030021601.GF18041@wotan.suse.de> In-Reply-To: <20081030021601.GF18041@wotan.suse.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Barracuda-Connect: g4t0015.houston.hp.com[15.201.24.18] X-Barracuda-Start-Time: 1225371110 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Nick Piggin wrote: > On Wed, Oct 29, 2008 at 10:56:36AM -0400, Chris Mason wrote: >> On Wed, 2008-10-29 at 09:32 -0400, Ric Wheeler wrote: >>> Jamie Lokier wrote: >>>>> Is there anything that particularly makes it a file operation >>>>> as opposed to an inode operation? >>>>> >>>> In principle, is fsync() required to flush all dirty data written >>>> through any file descriptor ever, or just dirty data written through >>>> the file descriptor used for fsync()? >>>> >>>> -- Jamie >>>> -- >>>> >>> http://www.opengroup.org/onlinepubs/009695399/functions/fsync.html >>> >>> Is a pointer to what seems to be the official posix spec for this - it >>> is definitely per file descriptor, not per file system, etc... >>> >> Maybe I'm reading Jamie's question wrong, but I think he's saying: >> >> /* open exactly the same file twice */ >> fd = open("file"); >> fd2 = open("file"); >> >> write(fd, "stuff") >> write(fd2, "more stuff") >> fsync(fd); >> >> Does the fsync promise "more stuff" will be on disk? I think the answer >> should be yes. > > I think so. And this is in the context of making ->fsync an inode > operation and avoid the NFS NULL-file problem... I don't think there > is any fd specific metadata that fsync has to deal with? Any other > reasons it has to be a file operation? NO, or at least *not the posix definition*. It is normal in unix-like operating systems to always flush everything dirty on the inode no matter what stream it arrived on. Flushing everything is permitted but not the requirement so applications must not expect this is *promised* or they will not be portable. It is only guaranteed that "stuff" in this example will be on disk. AFAIK the fsync semantic comes from the days of dinosaurs, mainframes, and minicomputers... when a lot of operating systems had user-space libraries that buffered the I/O. On fsync(fd), the "fd2" data would still be in user-space. jim From owner-xfs@oss.sgi.com Thu Oct 30 06:41:44 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9UDfgdw007818 for ; Thu, 30 Oct 2008 06:41:44 -0700 X-ASG-Debug-ID: 1225374102-3252036c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hackers.mr.itd.umich.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5EA091B6C89B for ; Thu, 30 Oct 2008 06:41:42 -0700 (PDT) Received: from hackers.mr.itd.umich.edu (smtp.mail.umich.edu [141.211.14.81]) by cuda.sgi.com with ESMTP id 7vOZtDhcTmwNsbb6 for ; Thu, 30 Oct 2008 06:41:42 -0700 (PDT) Received: FROM citi.umich.edu (dsl093-001-248.det1.dsl.speakeasy.net [66.93.1.248]) BY hackers.mr.itd.umich.edu ID 4909B97F.17A28.26555 ; 30 Oct 2008 09:41:19 -0400 Date: Thu, 30 Oct 2008 09:41:18 -0400 From: Jim Rees To: jim owens Cc: Nick Piggin , Chris Mason , Ric Wheeler , Jamie Lokier , Christoph Hellwig , linux-nfs@vger.kernel.org, akpm@linux-foundation.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org X-ASG-Orig-Subj: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Subject: Re: [patch 0/9] writeback data integrity and other fixes (take 3) Message-ID: <20081030134118.GA31598@citi.umich.edu> References: <20081029031645.GE4985@disturbed> <20081029091203.GA32545@infradead.org> <20081029092143.GA5953@wotan.suse.de> <20081029094417.GA21824@infradead.org> <20081029103029.GC5953@wotan.suse.de> <20081029122234.GE846@shareable.org> <490865E3.8070102@gmail.com> <1225292196.6448.263.camel@think.oraclecorp.com> <20081030021601.GF18041@wotan.suse.de> <4909ADE0.1060205@hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4909ADE0.1060205@hp.com> X-Barracuda-Connect: smtp.mail.umich.edu[141.211.14.81] X-Barracuda-Start-Time: 1225374103 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9053 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- jim owens wrote: AFAIK the fsync semantic comes from the days of dinosaurs, mainframes, and minicomputers... when a lot of operating systems had user-space libraries that buffered the I/O. On fsync(fd), the "fd2" data would still be in user-space. User space buffering happens in stdio, which is above the system call level. It's been that way since fsync() was first introduced, and is still that way today. From owner-xfs@oss.sgi.com Thu Oct 30 15:46:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9UMkOBn017217 for ; Thu, 30 Oct 2008 15:46:26 -0700 X-ASG-Debug-ID: 1225406785-450d00240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7EB401B6EDE6 for ; Thu, 30 Oct 2008 15:46:25 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id QpD8vI1AmvXjP9xg for ; Thu, 30 Oct 2008 15:46:25 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1KvgHZ-0001je-6U; Thu, 30 Oct 2008 22:46:25 +0000 Date: Thu, 30 Oct 2008 18:46:25 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081030224625.GA18690@infradead.org> References: <20081030085020.GP17077@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081030085020.GP17077@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225406785 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Thu, Oct 30, 2008 at 07:50:20PM +1100, Dave Chinner wrote: > [*] Starting pdflush to sync data in the background when we are > about to start flushing ourselves is self-defeating. instead of > having a single thread doing optimal writeout patterns, we now > have two threads trying to sync the same filesystems and > competing with each other to write out dirty inodes. This > actually causes bugs in sync because pdflush is doing async > flushes. Hence if pdflush races and wins during the sync flush > part of the sync process, sync_inodes(1) will return before all > the data/metadata is on disk because it can't be found to be > waited on. Note that this is an XFS special. Every other filesystem (at least the major ones) rely on the VFS to write out data. > Now the sync is _supposedly_ complete. But we still have a dirty > log and superblock thanks to delayed allocation that may have > occurred after the sync_supers() call. Hence we can immediately > see that we cannot *ever* do a proper sync of an XFS filesystem > in Linux without modifying do_sync() to do more callouts. > > Worse, XFS can also still have *dirty inodes* because sync_inodes(1) > will remove inodes from the dirty list in the async pass, but they > can get dirtied a short time later (if they had dirty data) when the > data I/O completes. Hence if the second sync pass completes before > the inode is dirtied again we'll miss flushing it. This will mean we > don't write inode size updates during sync. This is the same race > that pdflush running in the background can trigger. This is a common problem that would hit any filesystem trying to have some sort of ordered data or journaled data mode. > However, I have a problem - I'm an expert in XFS, not the other tens > of Linux filesystems so I can't begin to guess what the impact of > changing do_sync() would be on those many filesystems. How many > filesystems would such a change break? Indeed - how many are broken > right now by having dirty inodes and superblocks slip through > sync(1)? I would guess more are broken now then a change in order would break. Then again purely a change in order would still leave this code fragile as hell. > What are the alternatives? do_sync() operates above any particular > filesystem, so it's hard to provide a filesystem specific ->do_sync > method to avoid changing sync order for all filesystems. Do we > change do_sync() to completely sync a superblock at a time instead > of doing each operation across all superblocks before moving onto > the next operation? Is there any particular reason (e.g. performance, locking) for the current > method that would prevent changing to completely-sync-a-superblock > iteration algorithm so we can provide a custom ->do_sync method? Locking can't be the reason as we should never hold locks while returning from one of the VFS operations. I think it's performance or rather alledged performance as I think it doesn't really matter. If it matters however there is an easy method to make it perform just as well with a proper callout - just spawn a thread for every filesystem to perform it in parallel. > Are there any other ways that we can get a custom ->do_sync > method for XFS? I'd prefer a custom method so we don't have to > revalidate every linux filesystem, especially as XFS already has > everything it needs to provide it's own sync method (used for > freezing) and a test suite to validate it is working correctly..... I think having a method for this would be useful. And given that a proper sync should be exactly the same as a filesysytem freeze we should maybe use one method for both of those and use the chance to give filesystem better control over the freeze process? From owner-xfs@oss.sgi.com Thu Oct 30 17:12:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V0CuX7028454 for ; Thu, 30 Oct 2008 17:12:56 -0700 X-ASG-Debug-ID: 1225411974-450f03df0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F86A1B6F0E3 for ; Thu, 30 Oct 2008 17:12:54 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id LXdqcYoP1DiYiOvG for ; Thu, 30 Oct 2008 17:12:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAAPpCUl5LIvD/2dsb2JhbADLOYNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244496628" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 10:42:51 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvhdB-0005eE-Ui; Fri, 31 Oct 2008 11:12:49 +1100 Date: Fri, 31 Oct 2008 11:12:49 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031001249.GM4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081030224625.GA18690@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225411976 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9085 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Thu, Oct 30, 2008 at 06:46:25PM -0400, Christoph Hellwig wrote: > On Thu, Oct 30, 2008 at 07:50:20PM +1100, Dave Chinner wrote: > > [*] Starting pdflush to sync data in the background when we are > > about to start flushing ourselves is self-defeating. instead of > > having a single thread doing optimal writeout patterns, we now > > have two threads trying to sync the same filesystems and > > competing with each other to write out dirty inodes. This > > actually causes bugs in sync because pdflush is doing async > > flushes. Hence if pdflush races and wins during the sync flush > > part of the sync process, sync_inodes(1) will return before all > > the data/metadata is on disk because it can't be found to be > > waited on. > > Note that this is an XFS special. Every other filesystem (at least the > major ones) rely on the VFS to write out data. The race is based on which thread removes the remaining dirty inodes from the sb_s_dirty list - I don't think that is XFS specific. > > Now the sync is _supposedly_ complete. But we still have a dirty > > log and superblock thanks to delayed allocation that may have > > occurred after the sync_supers() call. Hence we can immediately > > see that we cannot *ever* do a proper sync of an XFS filesystem > > in Linux without modifying do_sync() to do more callouts. > > > > Worse, XFS can also still have *dirty inodes* because sync_inodes(1) > > will remove inodes from the dirty list in the async pass, but they > > can get dirtied a short time later (if they had dirty data) when the > > data I/O completes. Hence if the second sync pass completes before > > the inode is dirtied again we'll miss flushing it. This will mean we > > don't write inode size updates during sync. This is the same race > > that pdflush running in the background can trigger. > > This is a common problem that would hit any filesystem trying to have > some sort of ordered data or journaled data mode. > > > However, I have a problem - I'm an expert in XFS, not the other tens > > of Linux filesystems so I can't begin to guess what the impact of > > changing do_sync() would be on those many filesystems. How many > > filesystems would such a change break? Indeed - how many are broken > > right now by having dirty inodes and superblocks slip through > > sync(1)? > > I would guess more are broken now then a change in order would break. > Then again purely a change in order would still leave this code > fragile as hell. Right, which is why I want a custom ->do_sync method so I can *guarantee* that sync works on XFS without fear breaking other filesystems... > > What are the alternatives? do_sync() operates above any particular > > filesystem, so it's hard to provide a filesystem specific ->do_sync > > method to avoid changing sync order for all filesystems. Do we > > change do_sync() to completely sync a superblock at a time instead > > of doing each operation across all superblocks before moving onto > > the next operation? Is there any particular reason (e.g. performance, locking) for the current > > method that would prevent changing to completely-sync-a-superblock > > iteration algorithm so we can provide a custom ->do_sync method? > > Locking can't be the reason as we should never hold locks while > returning from one of the VFS operations. I think it's performance > or rather alledged performance as I think it doesn't really matter. Ok. > If it matters however there is an easy method to make it perform just > as well with a proper callout - just spawn a thread for every filesystem > to perform it in parallel. Sure, that will be faster as long as the filesystems are on separate devices. As it is, once we have custom ->do_sync, XFS will probably grow multiple threads per filesystem to sync AGs on independent spindles in parallel..... > > Are there any other ways that we can get a custom ->do_sync > > method for XFS? I'd prefer a custom method so we don't have to > > revalidate every linux filesystem, especially as XFS already has > > everything it needs to provide it's own sync method (used for > > freezing) and a test suite to validate it is working correctly..... > > I think having a method for this would be useful. And given that > a proper sync should be exactly the same as a filesysytem freeze > we should maybe use one method for both of those and use the chance > to give filesystem better control over the freeze process? Right - that's exactly where we should be going with this, I think. I'd suggest two callouts, perhaps: ->sync_data and ->sync_metadata. The freeze code can then still operate in two stages, and we can also use then for separating data and inode writeback in pdflush.... FWIW, I mentioned doing this sort of thing here: http://xfs.org/index.php/Improving_inode_Caching#Avoiding_the_Generic_pdflush_Code I think I'll look at redoing do_sync() to provide a custom sync method before trying to fix XFS.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 17:48:20 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_35 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V0mIY0031204 for ; Thu, 30 Oct 2008 17:48:20 -0700 X-ASG-Debug-ID: 1225414097-0d2602a30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5105D14B4C1C for ; Thu, 30 Oct 2008 17:48:17 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id JQOev68cRe7KBHRe for ; Thu, 30 Oct 2008 17:48:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABrwCUl5LIvD/2dsb2JhbADLa4NR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244528910" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:18:16 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KviBS-0002ct-Lz; Fri, 31 Oct 2008 11:48:14 +1100 Date: Fri, 31 Oct 2008 11:48:14 +1100 From: Dave Chinner To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031004814.GN4985@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031001249.GM4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225414099 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9087 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Fri, Oct 31, 2008 at 11:12:49AM +1100, Dave Chinner wrote: > On Thu, Oct 30, 2008 at 06:46:25PM -0400, Christoph Hellwig wrote: > > On Thu, Oct 30, 2008 at 07:50:20PM +1100, Dave Chinner wrote: > > > Are there any other ways that we can get a custom ->do_sync > > > method for XFS? I'd prefer a custom method so we don't have to > > > revalidate every linux filesystem, especially as XFS already has > > > everything it needs to provide it's own sync method (used for > > > freezing) and a test suite to validate it is working correctly..... > > > > I think having a method for this would be useful. And given that > > a proper sync should be exactly the same as a filesysytem freeze > > we should maybe use one method for both of those and use the chance > > to give filesystem better control over the freeze process? > > Right - that's exactly where we should be going with this, I think. > I'd suggest two callouts, perhaps: ->sync_data and ->sync_metadata. > The freeze code can then still operate in two stages, and we can > also use then for separating data and inode writeback in pdflush.... > > FWIW, I mentioned doing this sort of thing here: > > http://xfs.org/index.php/Improving_inode_Caching#Avoiding_the_Generic_pdflush_Code > > I think I'll look at redoing do_sync() to provide a custom sync > method before trying to fix XFS.... As it is, here's the somewhat cleaned up patch that demonstrates the changes needed to make xfsqa test 182 pass.... Cheers, Dave. -- Dave Chinner david@fromorbit.com XFS, RFC: demonstration fix of test 182 This patch shows the various changes needed to ensure sync(1) leave the filesystem in a consistent state. It shows the different format of do_sync(), the changes to mark the inode dirty before data I/O and the changes to xfs_fs_write_super() and the functions it calls to ensure the log gets covered at the end of the sync. This is in no way a real fix for the problem, merely a demonstration of the problem. The real fix is to make the XFS sync code use the same flush algorithm as freeze, but that first requires VFS level changes to provide a method for doing so. --- fs/sync.c | 7 +++---- fs/xfs/linux-2.6/xfs_aops.c | 38 ++++++++++++++++++++++++++++---------- fs/xfs/linux-2.6/xfs_super.c | 29 +++++++++++------------------ fs/xfs/linux-2.6/xfs_sync.c | 41 ++++++++++++++++++++++++++--------------- fs/xfs/linux-2.6/xfs_sync.h | 2 +- 5 files changed, 69 insertions(+), 48 deletions(-) diff --git a/fs/sync.c b/fs/sync.c index 137b550..69f40b7 100644 --- a/fs/sync.c +++ b/fs/sync.c @@ -23,13 +23,12 @@ */ static void do_sync(unsigned long wait) { - wakeup_pdflush(0); - sync_inodes(0); /* All mappings, inodes and their blockdevs */ - DQUOT_SYNC(NULL); - sync_supers(); /* Write the superblocks */ sync_filesystems(0); /* Start syncing the filesystems */ sync_filesystems(wait); /* Waitingly sync the filesystems */ + DQUOT_SYNC(NULL); + sync_supers(); /* Write the superblocks */ sync_inodes(wait); /* Mappings, inodes and blockdevs, again. */ + sync_supers(); /* Write the superblocks, again */ if (!wait) printk("Emergency Sync complete\n"); if (unlikely(laptop_mode)) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index f8fa620..cb79a21 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -143,19 +143,37 @@ xfs_destroy_ioend( } /* + * If the end of the current ioend is beyond the current EOF, + * return the new EOF value, otherwise zero. + */ +STATIC xfs_fsize_t +xfs_ioend_new_eof( + xfs_ioend_t *ioend) +{ + xfs_inode_t *ip = XFS_I(ioend->io_inode); + xfs_fsize_t isize; + xfs_fsize_t bsize; + + bsize = ioend->io_offset + ioend->io_size; + isize = MAX(ip->i_size, ip->i_new_size); + isize = MIN(isize, bsize); + return isize > ip->i_d.di_size ? isize : 0; +} + +/* * Update on-disk file size now that data has been written to disk. * The current in-memory file size is i_size. If a write is beyond * eof i_new_size will be the intended file size until i_size is * updated. If this write does not extend all the way to the valid * file size then restrict this update to the end of the write. */ + STATIC void xfs_setfilesize( xfs_ioend_t *ioend) { xfs_inode_t *ip = XFS_I(ioend->io_inode); xfs_fsize_t isize; - xfs_fsize_t bsize; ASSERT((ip->i_d.di_mode & S_IFMT) == S_IFREG); ASSERT(ioend->io_type != IOMAP_READ); @@ -163,19 +181,13 @@ xfs_setfilesize( if (unlikely(ioend->io_error)) return; - bsize = ioend->io_offset + ioend->io_size; - xfs_ilock(ip, XFS_ILOCK_EXCL); - - isize = MAX(ip->i_size, ip->i_new_size); - isize = MIN(isize, bsize); - - if (ip->i_d.di_size < isize) { + isize = xfs_ioend_new_eof(ioend); + if (isize) { ip->i_d.di_size = isize; ip->i_update_size = 1; xfs_mark_inode_dirty_sync(ip); } - xfs_iunlock(ip, XFS_ILOCK_EXCL); } @@ -366,10 +378,16 @@ xfs_submit_ioend_bio( struct bio *bio) { atomic_inc(&ioend->io_remaining); - bio->bi_private = ioend; bio->bi_end_io = xfs_end_bio; + /* + * if the I/O is beyond EOF we mark the inode dirty immediately + * but don't update the inode size until I/O completion. + */ + if (xfs_ioend_new_eof(ioend)) + xfs_mark_inode_dirty_sync(XFS_I(ioend->io_inode)); + submit_bio(WRITE, bio); ASSERT(!bio_flagged(bio, BIO_EOPNOTSUPP)); bio_put(bio); diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index c5cfc1e..bbac9e3 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1118,8 +1118,7 @@ xfs_fs_write_super( struct super_block *sb) { if (!(sb->s_flags & MS_RDONLY)) - xfs_sync_fsdata(XFS_M(sb), 0); - sb->s_dirt = 0; + xfs_sync_fsdata(XFS_M(sb), SYNC_WAIT); } STATIC int @@ -1131,22 +1130,16 @@ xfs_fs_sync_super( int error; /* - * Treat a sync operation like a freeze. This is to work - * around a race in sync_inodes() which works in two phases - * - an asynchronous flush, which can write out an inode - * without waiting for file size updates to complete, and a - * synchronous flush, which wont do anything because the - * async flush removed the inode's dirty flag. Also - * sync_inodes() will not see any files that just have - * outstanding transactions to be flushed because we don't - * dirty the Linux inode until after the transaction I/O - * completes. + * Treat a blocking sync operation like a data freeze. + * The are effectively the same thing - both need to + * get all the data on disk and wait for it to complete. + * + * Also, no point marking the superblock clean - we'll + * dirty metadata flushing data out.... */ - if (wait || unlikely(sb->s_frozen == SB_FREEZE_WRITE)) - error = xfs_quiesce_data(mp); - else - error = xfs_sync_fsdata(mp, 0); - sb->s_dirt = 0; + if (unlikely(sb->s_frozen == SB_FREEZE_WRITE)) + wait = 1; + error = xfs_quiesce_data(mp, wait); if (unlikely(laptop_mode)) { int prev_sync_seq = mp->m_sync_seq; @@ -1283,7 +1276,7 @@ xfs_fs_remount( /* rw -> ro */ if (!(mp->m_flags & XFS_MOUNT_RDONLY) && (*flags & MS_RDONLY)) { - xfs_quiesce_data(mp); + xfs_quiesce_data(mp, 1); xfs_quiesce_attr(mp); mp->m_flags |= XFS_MOUNT_RDONLY; } diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index d12d31b..975534b 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -64,8 +64,6 @@ xfs_sync_inodes_ag( int last_error = 0; int fflag = XFS_B_ASYNC; - if (flags & SYNC_DELWRI) - fflag = XFS_B_DELWRI; if (flags & SYNC_WAIT) fflag = 0; /* synchronous overrides all */ @@ -127,6 +125,8 @@ xfs_sync_inodes_ag( /* * If we have to flush data or wait for I/O completion * we need to hold the iolock. + * + * XXX: this doesn't catch I/O in progress */ if ((flags & SYNC_DELWRI) && VN_DIRTY(inode)) { xfs_ilock(ip, XFS_IOLOCK_SHARED); @@ -202,11 +202,15 @@ xfs_sync_inodes( STATIC int xfs_commit_dummy_trans( struct xfs_mount *mp, - uint log_flags) + uint flags) { struct xfs_inode *ip = mp->m_rootip; struct xfs_trans *tp; int error; + int log_flags = XFS_LOG_FORCE; + + if (flags & SYNC_WAIT) + log_flags |= XFS_LOG_SYNC; /* * Put a dummy transaction in the log to tell recovery @@ -224,13 +228,12 @@ xfs_commit_dummy_trans( xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); xfs_trans_ihold(tp, ip); xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - /* XXX(hch): ignoring the error here.. */ error = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); + /* the log force ensures this transaction is pushed to disk */ xfs_log_force(mp, 0, log_flags); - return 0; + return error; } int @@ -270,6 +273,7 @@ xfs_sync_fsdata( */ if (XFS_BUF_ISPINNED(bp)) xfs_log_force(mp, 0, XFS_LOG_FORCE); + xfs_flush_buftarg(mp->m_ddev_targp, 1); } @@ -278,7 +282,13 @@ xfs_sync_fsdata( else XFS_BUF_ASYNC(bp); - return xfs_bwrite(mp, bp); + error = xfs_bwrite(mp, bp); + if (!error && xfs_log_need_covered(mp)) { + error = xfs_commit_dummy_trans(mp, (flags & SYNC_WAIT)); + if (flags & SYNC_WAIT) + mp->m_super->s_dirt = 0; + } + return error; out_brelse: xfs_buf_relse(bp); @@ -305,18 +315,21 @@ xfs_sync_fsdata( */ int xfs_quiesce_data( - struct xfs_mount *mp) + struct xfs_mount *mp, + int wait) { int error; /* push non-blocking */ - xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_BDFLUSH); + xfs_sync_inodes(mp, SYNC_DELWRI); XFS_QM_DQSYNC(mp, SYNC_BDFLUSH); - xfs_filestream_flush(mp); - /* push and block */ - xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_WAIT|SYNC_IOWAIT); - XFS_QM_DQSYNC(mp, SYNC_WAIT); + /* push and block till complete */ + if (wait) { + xfs_sync_inodes(mp, SYNC_DELWRI|SYNC_WAIT|SYNC_IOWAIT); + XFS_QM_DQSYNC(mp, SYNC_WAIT); + xfs_filestream_flush(mp); + } /* write superblock and hoover up shutdown errors */ error = xfs_sync_fsdata(mp, 0); @@ -480,8 +493,6 @@ xfs_sync_worker( /* dgc: errors ignored here */ error = XFS_QM_DQSYNC(mp, SYNC_BDFLUSH); error = xfs_sync_fsdata(mp, SYNC_BDFLUSH); - if (xfs_log_need_covered(mp)) - error = xfs_commit_dummy_trans(mp, XFS_LOG_FORCE); } mp->m_sync_seq++; wake_up(&mp->m_wait_single_sync_task); diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 5f6de1e..5586f7a 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -39,7 +39,7 @@ void xfs_syncd_stop(struct xfs_mount *mp); int xfs_sync_inodes(struct xfs_mount *mp, int flags); int xfs_sync_fsdata(struct xfs_mount *mp, int flags); -int xfs_quiesce_data(struct xfs_mount *mp); +int xfs_quiesce_data(struct xfs_mount *mp, int wait); void xfs_quiesce_attr(struct xfs_mount *mp); void xfs_flush_inode(struct xfs_inode *ip); From owner-xfs@oss.sgi.com Thu Oct 30 18:09:22 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V19Lj2000406 for ; Thu, 30 Oct 2008 18:09:22 -0700 X-ASG-Debug-ID: 1225415361-0d0d03870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8129B1B6F2AE for ; Thu, 30 Oct 2008 18:09:21 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id 6LPs0Q2a1xzWPuvL for ; Thu, 30 Oct 2008 18:09:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244549382" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:39:18 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KviVo-00068w-Om; Fri, 31 Oct 2008 12:09:16 +1100 Date: Fri, 31 Oct 2008 12:09:16 +1100 From: Dave Chinner To: Lachlan McIlroy , Christoph Hellwig , xfs-oss X-ASG-Orig-Subj: Re: assertion failure with latest xfs Subject: Re: assertion failure with latest xfs Message-ID: <20081031010916.GS17077@disturbed> Mail-Followup-To: Lachlan McIlroy , Christoph Hellwig , xfs-oss References: <49003EFF.4090404@sgi.com> <20081023173149.GA30316@infradead.org> <20081023222126.GA18495@disturbed> <4907B1B3.4020008@sgi.com> <20081029032941.GG4985@disturbed> <49091BFC.3000503@sgi.com> <20081030053833.GO17077@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081030053833.GO17077@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415362 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Oct 30, 2008 at 04:38:33PM +1100, Dave Chinner wrote: > On Thu, Oct 30, 2008 at 01:29:16PM +1100, Lachlan McIlroy wrote: > > xfs_sync_inodes_ag() found the inode before it was completely > > initialised. > > > > --> itrace @ 0xffff880078d67800/0xffff880073563e40 > > ref @fs/xfs/xfs_inode.c:863(xfs_inode_alloc+0x205) i_count = 1 > > cpu = 2 pid = 9938 ra = xfs_iread+0x29 > > exit from xfs_iget.alloc i_count = 1 > > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > > ref @fs/xfs/xfs_iget.c:218(xfs_iget+0x585) i_count = 1 > > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > > ref @fs/xfs/xfs_iget.c:305(xfs_iget+0x643) i_count = 1 > > cpu = 2 pid = 9938 ra = xfs_trans_iget+0x205 > > ref @fs/xfs/linux-2.6/xfs_sync.c:113(xfs_sync_inodes_ag+0x118) i_count = 1 > > cpu = 3 pid = 9953 ra = xfs_sync_inodes+0x68 > > ref @fs/xfs/linux-2.6/xfs_iops.c:780(xfs_setup_inode+0x2c) i_count = 2 > > cpu = 2 pid = 9938 ra = xfs_ialloc+0x5d8 > > Ah - ok, that makes sense now. That should be trivial to fix up; > we just need to avoid XFS_INEW() inodes in xfs_sync_inodes_ag() > and probably also in xfs_qm_dqrele_all(), and that will mean > the assert needs to be removed as well. > > Patch soon. I noticed that the radix tree walk didn't get fixed in xfs_qm_syscalls.c for the last round of bug fixes. The fix for this really needs to have that as well. I'll post a series in a minute.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 18:15:31 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FVd9001213 for ; Thu, 30 Oct 2008 18:15:31 -0700 X-ASG-Debug-ID: 1225415731-177800400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 48D15562F60 for ; Thu, 30 Oct 2008 18:15:31 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id s3BnKUqfpz1xvF3X for ; Thu, 30 Oct 2008 18:15:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557153" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:29 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007q7-2a for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/5] Miscellaneous bug fixes Subject: [PATCH 0/5] Miscellaneous bug fixes Date: Fri, 31 Oct 2008 12:15:24 +1100 Message-Id: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415732 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3381 1.0000 -0.1961 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.20 X-Barracuda-Spam-Status: No, SCORE=-0.20 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The following patches fix recently reported bugs and regressions. All except the log ticket patch should be considered for immediate inclusion. From owner-xfs@oss.sgi.com Thu Oct 30 18:15:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FWxK001224 for ; Thu, 30 Oct 2008 18:15:32 -0700 X-ASG-Debug-ID: 1225415731-177800400001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6C649562F62 for ; Thu, 30 Oct 2008 18:15:32 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id HQs1p4GyjfvVGSlB for ; Thu, 30 Oct 2008 18:15:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557159" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:29 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007qa-Ej for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/5] XFS: Avoid using inodes that haven't been completely initialised Subject: [PATCH 5/5] XFS: Avoid using inodes that haven't been completely initialised Date: Fri, 31 Oct 2008 12:15:29 +1100 Message-Id: <1225415729-26514-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1225415729-26514-1-git-send-email-david@fromorbit.com> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415733 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The radix tree walks in xfs_sync_inodes_ag and xfs_qm_dqrele_all_inodes() can find inodes that are still undergoing initialisation. Avoid them by checking for the the XFS_INEW() flag once we have a reference on the inode. This flag is cleared once the inode is properly initialised. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_iops.c | 1 - fs/xfs/linux-2.6/xfs_sync.c | 5 +++-- fs/xfs/quota/xfs_qm_syscalls.c | 6 ++++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index b7deff9..f131409 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -772,7 +772,6 @@ xfs_setup_inode( inode->i_ino = ip->i_ino; inode->i_state = I_NEW|I_LOCK; inode_add_to_lists(ip->i_mount->m_super, inode); - ASSERT(atomic_read(&inode->i_count) == 1); inode->i_mode = ip->i_d.di_mode; inode->i_nlink = ip->i_d.di_nlink; diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index fb5cca3..d12d31b 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -117,8 +117,9 @@ xfs_sync_inodes_ag( } read_unlock(&pag->pag_ici_lock); - /* bad inodes are dealt with elsewhere */ - if (is_bad_inode(inode)) { + /* avoid new or bad inodes */ + if (is_bad_inode(inode) || + xfs_iflags_test(ip, XFS_INEW)) { IRELE(ip); continue; } diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 2c57a6e..68139b3 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1080,6 +1080,12 @@ xfs_qm_dqrele_inodes_ag( } read_unlock(&pag->pag_ici_lock); + /* avoid new inodes though we shouldn't find any here */ + if (xfs_iflags_test(ip, XFS_INEW)) { + IRELE(ip); + continue; + } + xfs_ilock(ip, XFS_ILOCK_EXCL); if ((flags & XFS_UQUOTA_ACCT) && ip->i_udquot) { xfs_qm_dqrele(ip->i_udquot); -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:15:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FXUh001239 for ; Thu, 30 Oct 2008 18:15:33 -0700 X-ASG-Debug-ID: 1225415732-18c300230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2515B562F64 for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id BzGzBfMUTljfdsNB for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557162" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:29 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007qF-5x for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/5] XFS: fix error inversion problems with data flushing Subject: [PATCH 1/5] XFS: fix error inversion problems with data flushing Date: Fri, 31 Oct 2008 12:15:25 +1100 Message-Id: <1225415729-26514-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1225415729-26514-1-git-send-email-david@fromorbit.com> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415734 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- XFS gets the sign of the error wrong in several places when gathering the error from generic linux functions. These functions return negative error values, while the core XFS code returns positive error values. Hence when XFS inverts the error to be returned to the VFS, it can incorrectly invert a negative error and this error will be ignored by the syscall return. Fix all the problems related to calling filemap_* functions. Problem initially identified by Nick Piggin in xfs_fsync(). Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_fs_subr.c | 23 ++++++++++++++++++++--- fs/xfs/linux-2.6/xfs_lrw.c | 2 +- fs/xfs/linux-2.6/xfs_super.c | 13 +++++++++---- fs/xfs/xfs_vnodeops.c | 2 +- fs/xfs/xfs_vnodeops.h | 1 + 5 files changed, 32 insertions(+), 9 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c index 36caa6d..5aeb777 100644 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ b/fs/xfs/linux-2.6/xfs_fs_subr.c @@ -24,6 +24,10 @@ int fs_noerr(void) { return 0; } int fs_nosys(void) { return ENOSYS; } void fs_noval(void) { return; } +/* + * note: all filemap functions return negative error codes. These + * need to be inverted before returning to the xfs core functions. + */ void xfs_tosspages( xfs_inode_t *ip, @@ -53,7 +57,7 @@ xfs_flushinval_pages( if (!ret) truncate_inode_pages(mapping, first); } - return ret; + return -ret; } int @@ -72,10 +76,23 @@ xfs_flush_pages( xfs_iflags_clear(ip, XFS_ITRUNCATED); ret = filemap_fdatawrite(mapping); if (flags & XFS_B_ASYNC) - return ret; + return -ret; ret2 = filemap_fdatawait(mapping); if (!ret) ret = ret2; } - return ret; + return -ret; +} + +int +xfs_wait_on_pages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last) +{ + struct address_space *mapping = VFS_I(ip)->i_mapping; + + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) + return -filemap_fdatawait(mapping); + return 0; } diff --git a/fs/xfs/linux-2.6/xfs_lrw.c b/fs/xfs/linux-2.6/xfs_lrw.c index 1957e53..4959c87 100644 --- a/fs/xfs/linux-2.6/xfs_lrw.c +++ b/fs/xfs/linux-2.6/xfs_lrw.c @@ -243,7 +243,7 @@ xfs_read( if (unlikely(ioflags & IO_ISDIRECT)) { if (inode->i_mapping->nrpages) - ret = xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), + ret = -xfs_flushinval_pages(ip, (*offset & PAGE_CACHE_MASK), -1, FI_REMAPF_LOCKED); mutex_unlock(&inode->i_mutex); if (ret) { diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 9dc977d..c5cfc1e 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1012,21 +1012,26 @@ xfs_fs_write_inode( struct inode *inode, int sync) { + struct xfs_inode *ip = XFS_I(inode); int error = 0; int flags = 0; - xfs_itrace_entry(XFS_I(inode)); + xfs_itrace_entry(ip); if (sync) { - filemap_fdatawait(inode->i_mapping); + error = xfs_wait_on_pages(ip, 0, -1); + if (error) + goto out_error; flags |= FLUSH_SYNC; } - error = xfs_inode_flush(XFS_I(inode), flags); + error = xfs_inode_flush(ip, flags); + +out_error: /* * if we failed to write out the inode then mark * it dirty again so we'll try again later. */ if (error) - xfs_mark_inode_dirty_sync(XFS_I(inode)); + xfs_mark_inode_dirty_sync(ip); return -error; } diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 2e2fbd9..5809c42 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -713,7 +713,7 @@ xfs_fsync( return XFS_ERROR(EIO); /* capture size updates in I/O completion before writing the inode. */ - error = filemap_fdatawait(VFS_I(ip)->i_mapping); + error = xfs_wait_on_pages(ip, 0, -1); if (error) return XFS_ERROR(error); diff --git a/fs/xfs/xfs_vnodeops.h b/fs/xfs/xfs_vnodeops.h index e932a96..f9cd376 100644 --- a/fs/xfs/xfs_vnodeops.h +++ b/fs/xfs/xfs_vnodeops.h @@ -78,5 +78,6 @@ int xfs_flushinval_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last, int fiopt); int xfs_flush_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last, uint64_t flags, int fiopt); +int xfs_wait_on_pages(struct xfs_inode *ip, xfs_off_t first, xfs_off_t last); #endif /* _XFS_VNODEOPS_H */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:15:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_62 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FWUg001222 for ; Thu, 30 Oct 2008 18:15:32 -0700 X-ASG-Debug-ID: 1225415731-6aba00660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 057151B6F44C for ; Thu, 30 Oct 2008 18:15:32 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id Ea2bEJ5cycyxYRzC for ; Thu, 30 Oct 2008 18:15:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557156" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:29 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007qV-CX for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/5] XFS: fix spurious uninitialised variable warning in xfs_growfs_rt Subject: [PATCH 4/5] XFS: fix spurious uninitialised variable warning in xfs_growfs_rt Date: Fri, 31 Oct 2008 12:15:28 +1100 Message-Id: <1225415729-26514-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1225415729-26514-1-git-send-email-david@fromorbit.com> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415733 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- gcc is warning about an uninitialised variable in xfs_growfs_rt(). This is a false positive. Fix it by changing the scope of the transaction pointer to wholly within the internal loop inside the function. While there, preemptively change xfs_growfs_rt_alloc() in the same way as it has exactly the same structure as xfs_growfs_rt() but gcc is not warning about it. Yet. Signed-off-by: Dave Chinner --- fs/xfs/xfs_rtalloc.c | 39 ++++++++++++++++++--------------------- 1 files changed, 18 insertions(+), 21 deletions(-) diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index e2f68de..f18b9b2 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -85,7 +85,6 @@ xfs_growfs_rt_alloc( { xfs_fileoff_t bno; /* block number in file */ xfs_buf_t *bp; /* temporary buffer for zeroing */ - int cancelflags; /* flags for xfs_trans_cancel */ int committed; /* transaction committed flag */ xfs_daddr_t d; /* disk block address */ int error; /* error return value */ @@ -96,15 +95,16 @@ xfs_growfs_rt_alloc( xfs_bmbt_irec_t map; /* block map output */ int nmap; /* number of block maps */ int resblks; /* space reservation */ - xfs_trans_t *tp; /* transaction pointer */ /* * Allocate space to the file, as necessary. */ while (oblocks < nblocks) { + int cancelflags = 0; + xfs_trans_t *tp; + tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFSRT_ALLOC); resblks = XFS_GROWFSRT_SPACE_RES(mp, nblocks - oblocks); - cancelflags = 0; /* * Reserve space & log for one extent added to the file. */ @@ -171,7 +171,9 @@ xfs_growfs_rt_alloc( mp->m_bsize, 0); if (bp == NULL) { error = XFS_ERROR(EIO); - goto error_cancel; +error_cancel: + xfs_trans_cancel(tp, cancelflags); + goto error; } memset(XFS_BUF_PTR(bp), 0, mp->m_sb.sb_blocksize); xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1); @@ -188,8 +190,6 @@ xfs_growfs_rt_alloc( oblocks = map.br_startoff + map.br_blockcount; } return 0; -error_cancel: - xfs_trans_cancel(tp, cancelflags); error: return error; } @@ -1856,7 +1856,6 @@ xfs_growfs_rt( { xfs_rtblock_t bmbno; /* bitmap block number */ xfs_buf_t *bp; /* temporary buffer */ - int cancelflags; /* flags for xfs_trans_cancel */ int error; /* error return value */ xfs_inode_t *ip; /* bitmap inode, used as lock */ xfs_mount_t *nmp; /* new (fake) mount structure */ @@ -1872,10 +1871,8 @@ xfs_growfs_rt( xfs_extlen_t rsumblocks; /* current number of rt summary blks */ xfs_sb_t *sbp; /* old superblock */ xfs_fsblock_t sumbno; /* summary block number */ - xfs_trans_t *tp; /* transaction pointer */ sbp = &mp->m_sb; - cancelflags = 0; /* * Initial error checking. */ @@ -1942,6 +1939,9 @@ xfs_growfs_rt( ((sbp->sb_rextents & ((1 << mp->m_blkbit_log) - 1)) != 0); bmbno < nrbmblocks; bmbno++) { + xfs_trans_t *tp; + int cancelflags = 0; + *nmp = *mp; nsbp = &nmp->m_sb; /* @@ -1967,16 +1967,15 @@ xfs_growfs_rt( * Start a transaction, get the log reservation. */ tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFSRT_FREE); - cancelflags = 0; if ((error = xfs_trans_reserve(tp, 0, XFS_GROWRTFREE_LOG_RES(nmp), 0, 0, 0))) - break; + goto error_cancel; /* * Lock out other callers by grabbing the bitmap inode lock. */ if ((error = xfs_trans_iget(mp, tp, mp->m_sb.sb_rbmino, 0, XFS_ILOCK_EXCL, &ip))) - break; + goto error_cancel; ASSERT(ip == mp->m_rbmip); /* * Update the bitmap inode's size. @@ -1990,7 +1989,7 @@ xfs_growfs_rt( */ if ((error = xfs_trans_iget(mp, tp, mp->m_sb.sb_rsumino, 0, XFS_ILOCK_EXCL, &ip))) - break; + goto error_cancel; ASSERT(ip == mp->m_rsumip); /* * Update the summary inode's size. @@ -2005,7 +2004,7 @@ xfs_growfs_rt( mp->m_rsumlevels != nmp->m_rsumlevels) { error = xfs_rtcopy_summary(mp, nmp, tp); if (error) - break; + goto error_cancel; } /* * Update superblock fields. @@ -2031,8 +2030,11 @@ xfs_growfs_rt( bp = NULL; error = xfs_rtfree_range(nmp, tp, sbp->sb_rextents, nsbp->sb_rextents - sbp->sb_rextents, &bp, &sumbno); - if (error) + if (error) { +error_cancel: + xfs_trans_cancel(tp, cancelflags); break; + } /* * Mark more blocks free in the superblock. */ @@ -2045,15 +2047,10 @@ xfs_growfs_rt( mp->m_rsumsize = nrsumsize; error = xfs_trans_commit(tp, 0); - if (error) { - tp = NULL; + if (error) break; - } } - if (error && tp) - xfs_trans_cancel(tp, cancelflags); - /* * Free the fake mp structure. */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:15:33 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FX48001241 for ; Thu, 30 Oct 2008 18:15:33 -0700 X-ASG-Debug-ID: 1225415731-6aba00660001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 505C11B6F451 for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id ojrTMztz3KKg7L3S for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557171" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007qP-AM for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/5] XFS: fix uninitialised variable bug in dquot release. Subject: [PATCH 3/5] XFS: fix uninitialised variable bug in dquot release. Date: Fri, 31 Oct 2008 12:15:27 +1100 Message-Id: <1225415729-26514-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1225415729-26514-1-git-send-email-david@fromorbit.com> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415734 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- gcc on ARM warns about an using an uninitialised variable in xfs_qm_dqrele_all_inodes(). This is a real bug, but gcc on x86_64 is not reporting this warning so it went unnoticed. Fix the bug by bring the inode radix tree walk code up to date with xfs_sync_inodes_ag(). Signed-off-by: Dave Chinner --- fs/xfs/quota/xfs_qm_syscalls.c | 42 ++++++++++++++++++++++----------------- 1 files changed, 24 insertions(+), 18 deletions(-) diff --git a/fs/xfs/quota/xfs_qm_syscalls.c b/fs/xfs/quota/xfs_qm_syscalls.c index 9ff28e6..2c57a6e 100644 --- a/fs/xfs/quota/xfs_qm_syscalls.c +++ b/fs/xfs/quota/xfs_qm_syscalls.c @@ -1036,9 +1036,6 @@ xfs_qm_dqrele_inodes_ag( int nr_found; do { - boolean_t inode_refed; - struct inode *inode; - /* * use a gang lookup to find the next inode in the tree * as the tree is sparse and a gang lookup walks to find @@ -1053,27 +1050,37 @@ xfs_qm_dqrele_inodes_ag( break; } - /* update the index for the next lookup */ + /* + * Update the index for the next lookup. Catch overflows + * into the next AG range which can occur if we have inodes + * in the last block of the AG and we are currently + * pointing to the last inode. + */ first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) { + read_unlock(&pag->pag_ici_lock); + break; + } - /* skip quota inodes and those in reclaim */ - inode = VFS_I(ip); - if (!inode || ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { + /* skip quota inodes */ + if (ip == XFS_QI_UQIP(mp) || ip == XFS_QI_GQIP(mp)) { ASSERT(ip->i_udquot == NULL); ASSERT(ip->i_gdquot == NULL); read_unlock(&pag->pag_ici_lock); continue; } - if (xfs_ilock_nowait(ip, XFS_ILOCK_EXCL) == 0) { - inode = igrab(inode); - read_unlock(&pag->pag_ici_lock); - if (!inode) - continue; - inode_refed = B_TRUE; - xfs_ilock(ip, XFS_ILOCK_EXCL); - } else { + + /* + * If we can't get a reference on the inode, it must be + * in reclaim. Leave it for the reclaim code to flush. + */ + if (!igrab(VFS_I(ip))) { read_unlock(&pag->pag_ici_lock); + continue; } + read_unlock(&pag->pag_ici_lock); + + xfs_ilock(ip, XFS_ILOCK_EXCL); if ((flags & XFS_UQUOTA_ACCT) && ip->i_udquot) { xfs_qm_dqrele(ip->i_udquot); ip->i_udquot = NULL; @@ -1083,9 +1090,8 @@ xfs_qm_dqrele_inodes_ag( xfs_qm_dqrele(ip->i_gdquot); ip->i_gdquot = NULL; } - xfs_iunlock(ip, XFS_ILOCK_EXCL); - if (inode_refed) - IRELE(ip); + xfs_iput(ip, XFS_ILOCK_EXCL); + } while (nr_found); } -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:15:34 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=SUBJ_TICKET autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1FYQH001255 for ; Thu, 30 Oct 2008 18:15:34 -0700 X-ASG-Debug-ID: 1225415731-177800400002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 10711562F66 for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id HwmLHi9pWankgWJr for ; Thu, 30 Oct 2008 18:15:33 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABP3CUl5LIvD/2dsb2JhbADLcoNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244557170" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:45:30 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvibp-0007qJ-8G for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:15:29 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/5] XFS: Fix double free of log tickets Subject: [PATCH 2/5] XFS: Fix double free of log tickets Date: Fri, 31 Oct 2008 12:15:26 +1100 Message-Id: <1225415729-26514-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 In-Reply-To: <1225415729-26514-1-git-send-email-david@fromorbit.com> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225415735 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9089 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words When an I/O error occurs during an intermediate commit on a rolling transaction, xfs_trans_commit() will free the transaction structure and the related ticket. However, the duplicate transaction that gets used as the transaction continues still contains a pointer to the ticket. Hence when the duplicate transaction is cancelled and freed, we free the ticket a second time. Add reference counting to the ticket so that we hold an extra reference to the ticket over the transaction commit. We drop the extra reference once we have checked that the transaction commit did not return an error, thus avoiding a double free on commit error. Credit to Nick Piggin for tripping over the problem. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap.c | 10 ++++++++-- fs/xfs/xfs_inode.c | 10 ++++++++-- fs/xfs/xfs_log.c | 39 +++++++++++++++++++++++++-------------- fs/xfs/xfs_log.h | 4 ++++ fs/xfs/xfs_log_priv.h | 1 + fs/xfs/xfs_trans.c | 9 ++++++++- fs/xfs/xfs_utils.c | 6 ++++++ fs/xfs/xfs_vnodeops.c | 6 ++++++ 8 files changed, 66 insertions(+), 19 deletions(-) diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index db28905..c391221 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4292,9 +4292,15 @@ xfs_bmap_finish( * We have a new transaction, so we should return committed=1, * even though we're returning an error. */ - if (error) { + if (error) return error; - } + + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(ntp->t_ticket); + if ((error = xfs_trans_reserve(ntp, 0, logres, 0, XFS_TRANS_PERM_LOG_RES, logcount))) return error; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index cd52282..b977100 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1782,8 +1782,14 @@ xfs_itruncate_finish( xfs_trans_ijoin(ntp, ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); xfs_trans_ihold(ntp, ip); - if (!error) - error = xfs_trans_reserve(ntp, 0, + if (error) + return error; + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(ntp->t_ticket); + error = xfs_trans_reserve(ntp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, XFS_TRANS_PERM_LOG_RES, XFS_ITRUNCATE_LOG_COUNT); diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index cc1e789..9aecefd 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -100,12 +100,11 @@ STATIC void xlog_ungrant_log_space(xlog_t *log, /* local ticket functions */ -STATIC xlog_ticket_t *xlog_ticket_get(xlog_t *log, +STATIC xlog_ticket_t *xlog_ticket_alloc(xlog_t *log, int unit_bytes, int count, char clientid, uint flags); -STATIC void xlog_ticket_put(xlog_t *log, xlog_ticket_t *ticket); #if defined(DEBUG) STATIC void xlog_verify_dest_ptr(xlog_t *log, __psint_t ptr); @@ -360,7 +359,7 @@ xfs_log_done(xfs_mount_t *mp, */ xlog_trace_loggrant(log, ticket, "xfs_log_done: (non-permanent)"); xlog_ungrant_log_space(log, ticket); - xlog_ticket_put(log, ticket); + xfs_log_ticket_put(ticket); } else { xlog_trace_loggrant(log, ticket, "xfs_log_done: (permanent)"); xlog_regrant_reserve_log_space(log, ticket); @@ -514,7 +513,7 @@ xfs_log_reserve(xfs_mount_t *mp, retval = xlog_regrant_write_log_space(log, internal_ticket); } else { /* may sleep if need to allocate more tickets */ - internal_ticket = xlog_ticket_get(log, unit_bytes, cnt, + internal_ticket = xlog_ticket_alloc(log, unit_bytes, cnt, client, flags); if (!internal_ticket) return XFS_ERROR(ENOMEM); @@ -749,7 +748,7 @@ xfs_log_unmount_write(xfs_mount_t *mp) if (tic) { xlog_trace_loggrant(log, tic, "unmount rec"); xlog_ungrant_log_space(log, tic); - xlog_ticket_put(log, tic); + xfs_log_ticket_put(tic); } } else { /* @@ -3223,22 +3222,33 @@ xlog_state_want_sync(xlog_t *log, xlog_in_core_t *iclog) */ /* - * Free a used ticket. + * Free a used ticket when it's refcount falls to zero. */ -STATIC void -xlog_ticket_put(xlog_t *log, - xlog_ticket_t *ticket) +void +xfs_log_ticket_put( + xlog_ticket_t *ticket) { - sv_destroy(&ticket->t_wait); - kmem_zone_free(xfs_log_ticket_zone, ticket); -} /* xlog_ticket_put */ + ASSERT(atomic_read(&ticket->t_ref) > 0); + if (atomic_dec_and_test(&ticket->t_ref)) { + sv_destroy(&ticket->t_wait); + kmem_zone_free(xfs_log_ticket_zone, ticket); + } +} +xlog_ticket_t * +xfs_log_ticket_get( + xlog_ticket_t *ticket) +{ + ASSERT(atomic_read(&ticket->t_ref) > 0); + atomic_inc(&ticket->t_ref); + return ticket; +} /* * Allocate and initialise a new log ticket. */ STATIC xlog_ticket_t * -xlog_ticket_get(xlog_t *log, +xlog_ticket_alloc(xlog_t *log, int unit_bytes, int cnt, char client, @@ -3309,6 +3319,7 @@ xlog_ticket_get(xlog_t *log, unit_bytes += 2*BBSIZE; } + atomic_set(&tic->t_ref, 1); tic->t_unit_res = unit_bytes; tic->t_curr_res = unit_bytes; tic->t_cnt = cnt; @@ -3324,7 +3335,7 @@ xlog_ticket_get(xlog_t *log, xlog_tic_reset_res(tic); return tic; -} /* xlog_ticket_get */ +} /****************************************************************************** diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h index d47b91f..8a3e84e 100644 --- a/fs/xfs/xfs_log.h +++ b/fs/xfs/xfs_log.h @@ -134,6 +134,7 @@ typedef struct xfs_log_callback { #ifdef __KERNEL__ /* Log manager interfaces */ struct xfs_mount; +struct xlog_ticket; xfs_lsn_t xfs_log_done(struct xfs_mount *mp, xfs_log_ticket_t ticket, void **iclog, @@ -177,6 +178,9 @@ int xfs_log_need_covered(struct xfs_mount *mp); void xlog_iodone(struct xfs_buf *); +struct xlog_ticket * xfs_log_ticket_get(struct xlog_ticket *ticket); +void xfs_log_ticket_put(struct xlog_ticket *ticket); + #endif diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index de7ef6c..b39a198 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -245,6 +245,7 @@ typedef struct xlog_ticket { struct xlog_ticket *t_next; /* :4|8 */ struct xlog_ticket *t_prev; /* :4|8 */ xlog_tid_t t_tid; /* transaction identifier : 4 */ + atomic_t t_ref; /* ticket reference count : 4 */ int t_curr_res; /* current reservation in bytes : 4 */ int t_unit_res; /* unit reservation in bytes : 4 */ char t_ocnt; /* original count : 1 */ diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index ad137ef..8570b82 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -290,7 +290,7 @@ xfs_trans_dup( ASSERT(tp->t_ticket != NULL); ntp->t_flags = XFS_TRANS_PERM_LOG_RES | (tp->t_flags & XFS_TRANS_RESERVE); - ntp->t_ticket = tp->t_ticket; + ntp->t_ticket = xfs_log_ticket_get(tp->t_ticket); ntp->t_blk_res = tp->t_blk_res - tp->t_blk_res_used; tp->t_blk_res = tp->t_blk_res_used; ntp->t_rtx_res = tp->t_rtx_res - tp->t_rtx_res_used; @@ -1260,6 +1260,13 @@ xfs_trans_roll( trans = *tpp; /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(trans->t_ticket); + + + /* * Reserve space in the log for th next transaction. * This also pushes items in the "AIL", the list of logged items, * out to disk if they are taking up space at the tail of the log diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 35d4d41..7711449 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c @@ -172,6 +172,12 @@ xfs_dir_ialloc( *ipp = NULL; return code; } + + /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(tp->t_ticket); code = xfs_trans_reserve(tp, 0, log_res, 0, XFS_TRANS_PERM_LOG_RES, log_count); /* diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 5809c42..f7eea70 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -1029,6 +1029,12 @@ xfs_inactive_symlink_rmt( goto error0; } /* + * transaction commit worked ok so we can drop the extra ticket + * reference that we gained in xfs_trans_dup() + */ + xfs_log_ticket_put(tp->t_ticket); + + /* * Remove the memory for extent descriptions (just bookkeeping). */ if (ip->i_df.if_bytes) -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:26:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1Q9t6003149 for ; Thu, 30 Oct 2008 18:26:09 -0700 X-ASG-Debug-ID: 1225416368-7a3500cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 54D451487295 for ; Thu, 30 Oct 2008 18:26:09 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id kQAPNDmCP8yrwB1m for ; Thu, 30 Oct 2008 18:26:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJv6CUl5LIvD/2dsb2JhbADMB4NR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244567648" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:56:07 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvim6-0000og-6L for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:26:06 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] XFS: handle memory allocation failures during log initialisation Subject: [PATCH] XFS: handle memory allocation failures during log initialisation Date: Fri, 31 Oct 2008 12:26:06 +1100 Message-Id: <1225416366-3116-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.5.6.5 X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225416370 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9091 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- When there is no memory left in the system, xfs_buf_get_noaddr() can fail. If this happens at mount time during xlog_alloc_log() we fail to catch the error and oops. Catch the error from xfs_buf_get_noaddr(), and allow other memory allocations to fail and catch those errors too. Report the error to the console and fail the mount with ENOMEM. Tested by manually injecting errors into xfs_buf_get_noaddr() and xlog_alloc_log(). Version 2: o remove unnecessary casts of the returned pointer from kmem_zalloc() Signed-off-by: Dave Chinner --- fs/xfs/xfs_log.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5184017..92c20a8 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -563,6 +563,11 @@ xfs_log_mount( } mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); + if (!mp->m_log) { + cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!"); + error = ENOMEM; + goto out; + } /* * Initialize the AIL now we have a log. @@ -601,6 +606,7 @@ xfs_log_mount( return 0; error: xfs_log_unmount_dealloc(mp); +out: return error; } /* xfs_log_mount */ @@ -1217,7 +1223,9 @@ xlog_alloc_log(xfs_mount_t *mp, int i; int iclogsize; - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); + log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); + if (!log) + return NULL; log->l_mp = mp; log->l_targ = log_target; @@ -1249,6 +1257,8 @@ xlog_alloc_log(xfs_mount_t *mp, xlog_get_iclog_buffer_size(mp, log); bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_log; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); @@ -1275,13 +1285,17 @@ xlog_alloc_log(xfs_mount_t *mp, iclogsize = log->l_iclog_size; ASSERT(log->l_iclog_size >= 4096); for (i=0; i < log->l_iclog_bufs; i++) { - *iclogp = (xlog_in_core_t *) - kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); + *iclogp = kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL); + if (!*iclogp) + goto out_free_iclog; + iclog = *iclogp; iclog->ic_prev = prev_iclog; prev_iclog = iclog; bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp); + if (!bp) + goto out_free_iclog; if (!XFS_BUF_CPSEMA(bp)) ASSERT(0); XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); @@ -1323,6 +1337,25 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */ return log; + +out_free_iclog: + for (iclog = log->l_iclog; iclog; iclog = prev_iclog) { + prev_iclog = iclog->ic_next; + if (iclog->ic_bp) { + sv_destroy(&iclog->ic_force_wait); + sv_destroy(&iclog->ic_write_wait); + xfs_buf_free(iclog->ic_bp); + xlog_trace_iclog_dealloc(iclog); + } + kmem_free(iclog); + } + spinlock_destroy(&log->l_icloglock); + spinlock_destroy(&log->l_grant_lock); + xlog_trace_loggrant_dealloc(log); + xfs_buf_free(log->l_xbuf); +out_free_log: + kmem_free(log); + return NULL; } /* xlog_alloc_log */ -- 1.5.6.5 From owner-xfs@oss.sgi.com Thu Oct 30 18:28:12 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V1SBR4003428 for ; Thu, 30 Oct 2008 18:28:11 -0700 X-ASG-Debug-ID: 1225416489-704301010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B4161B6D453 for ; Thu, 30 Oct 2008 18:28:10 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id AlxH2pBz2FFAUmlh for ; Thu, 30 Oct 2008 18:28:10 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAJv6CUl5LIvD/2dsb2JhbADMB4NR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244569268" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 11:57:59 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvinu-0000r6-Th for xfs@oss.sgi.com; Fri, 31 Oct 2008 12:27:58 +1100 Date: Fri, 31 Oct 2008 12:27:58 +1100 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] XFS: remove i_gen from incore inode Subject: Re: [PATCH] XFS: remove i_gen from incore inode Message-ID: <20081031012758.GT17077@disturbed> Mail-Followup-To: xfs@oss.sgi.com References: <1223417549-9920-1-git-send-email-david@fromorbit.com> <20081022062044.GJ18495@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081022062044.GJ18495@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225416492 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9091 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Ping? On Wed, Oct 22, 2008 at 05:20:44PM +1100, Dave Chinner wrote: > Ping? > > On Wed, Oct 08, 2008 at 09:12:29AM +1100, Dave Chinner wrote: > > i_gen is incremented in directory operations when the > > directory is changed. It is never read or otherwise used > > so it should be removed to help reduce the size of the > > struct xfs_inode. > > > > The patch also removes a duplicate logging of the directory > > inode core. We only need to do this once per transaction > > so kill the one associated with the i_gen increment. > > > > Signed-off-by: Dave Chinner > > --- > > fs/xfs/xfs_inode.h | 1 - > > fs/xfs/xfs_rename.c | 12 ++---------- > > fs/xfs/xfs_vnodeops.c | 29 ++--------------------------- > > 3 files changed, 4 insertions(+), 38 deletions(-) > > > > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > > index a8f1e68..5784f8e 100644 > > --- a/fs/xfs/xfs_inode.h > > +++ b/fs/xfs/xfs_inode.h > > @@ -272,7 +272,6 @@ typedef struct xfs_inode { > > unsigned short i_flags; /* see defined flags below */ > > unsigned char i_update_core; /* timestamps/size is dirty */ > > unsigned char i_update_size; /* di_size field is dirty */ > > - unsigned int i_gen; /* generation count */ > > unsigned int i_delayed_blks; /* count of delay alloc blks */ > > > > xfs_icdinode_t i_d; /* most of ondisk inode */ > > diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c > > index d700dac..02f0e8f 100644 > > --- a/fs/xfs/xfs_rename.c > > +++ b/fs/xfs/xfs_rename.c > > @@ -367,19 +367,11 @@ xfs_rename( > > &first_block, &free_list, spaceres); > > if (error) > > goto abort_return; > > - xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > > > - /* > > - * Update the generation counts on all the directory inodes > > - * that we're modifying. > > - */ > > - src_dp->i_gen++; > > + xfs_ichgtime(src_dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > xfs_trans_log_inode(tp, src_dp, XFS_ILOG_CORE); > > - > > - if (new_parent) { > > - target_dp->i_gen++; > > + if (new_parent) > > xfs_trans_log_inode(tp, target_dp, XFS_ILOG_CORE); > > - } > > > > /* > > * If this is a synchronous mount, make sure that the > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > > index 8b6812f..7a72b0a 100644 > > --- a/fs/xfs/xfs_vnodeops.c > > +++ b/fs/xfs/xfs_vnodeops.c > > @@ -1625,8 +1625,6 @@ xfs_create( > > xfs_trans_set_sync(tp); > > } > > > > - dp->i_gen++; > > - > > /* > > * Attach the dquot(s) to the inodes and modify them incore. > > * These ids of the inode couldn't have changed since the new > > @@ -1993,13 +1991,6 @@ xfs_remove( > > } > > xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > > > - /* > > - * Bump the in memory generation count on the parent > > - * directory so that other can know that it has changed. > > - */ > > - dp->i_gen++; > > - xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > > - > > if (is_dir) { > > /* > > * Drop the link from ip's "..". > > @@ -2017,8 +2008,8 @@ xfs_remove( > > } else { > > /* > > * When removing a non-directory we need to log the parent > > - * inode here for the i_gen update. For a directory this is > > - * done implicitly by the xfs_droplink call for the ".." entry. > > + * inode here. For a directory this is done implicitly > > + * by the xfs_droplink call for the ".." entry. > > */ > > xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > > } > > @@ -2178,7 +2169,6 @@ xfs_link( > > if (error) > > goto abort_return; > > xfs_ichgtime(tdp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > - tdp->i_gen++; > > xfs_trans_log_inode(tp, tdp, XFS_ILOG_CORE); > > > > error = xfs_bumplink(tp, sip); > > @@ -2355,18 +2345,10 @@ xfs_mkdir( > > } > > xfs_ichgtime(dp, XFS_ICHGTIME_MOD | XFS_ICHGTIME_CHG); > > > > - /* > > - * Bump the in memory version number of the parent directory > > - * so that other processes accessing it will recognize that > > - * the directory has changed. > > - */ > > - dp->i_gen++; > > - > > error = xfs_dir_init(tp, cdp, dp); > > if (error) > > goto error2; > > > > - cdp->i_gen = 1; > > error = xfs_bumplink(tp, dp); > > if (error) > > goto error2; > > @@ -2653,13 +2635,6 @@ xfs_symlink( > > xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); > > > > /* > > - * Bump the in memory version number of the parent directory > > - * so that other processes accessing it will recognize that > > - * the directory has changed. > > - */ > > - dp->i_gen++; > > - > > - /* > > * If this is a synchronous mount, make sure that the > > * symlink transaction goes to disk before returning to > > * the user. > > -- > > 1.5.6.5 > > > > > > > > -- > Dave Chinner > david@fromorbit.com > > > -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 21:02:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V42Krn017285 for ; Thu, 30 Oct 2008 21:02:21 -0700 X-ASG-Debug-ID: 1225425739-089800ee0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4A9D14B55B9 for ; Thu, 30 Oct 2008 21:02:19 -0700 (PDT) Received: from ipmail05.adl2.internode.on.net (ipmail05.adl2.internode.on.net [203.16.214.145]) by cuda.sgi.com with ESMTP id CuABVhTTky9NkCPK for ; Thu, 30 Oct 2008 21:02:19 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhYEAMIdCkl5LIvDgWdsb2JhbACUDgEBFiK3EYNR X-IronPort-AV: E=Sophos;i="4.33,519,1220193000"; d="scan'208";a="244734650" Received: from ppp121-44-139-195.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.139.195]) by ipmail05.adl2.internode.on.net with ESMTP; 31 Oct 2008 14:32:07 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1KvlD3-00054W-9k; Fri, 31 Oct 2008 15:02:05 +1100 Date: Fri, 31 Oct 2008 15:02:05 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/7] kill xfs_dinode_core_t Subject: Re: [PATCH 5/7] kill xfs_dinode_core_t Message-ID: <20081031040205.GV17077@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081027133912.GF1109@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081027133912.GF1109@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail05.adl2.internode.on.net[203.16.214.145] X-Barracuda-Start-Time: 1225425741 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0338 1.0000 -1.8025 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.30 X-Barracuda-Spam-Status: No, SCORE=-1.30 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9100 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Mon, Oct 27, 2008 at 09:39:12AM -0400, Christoph Hellwig wrote: > Now that we have a separate xfs_icdinode_t for the in-core inode which > gets logged there is no need anymore for the xfs_dinode vs xfs_dinode_core > split - the fact that part of the structure gets logged through the inode > log item and a small part not can better be described in a comment. > > All sizeof operations on the dinode_core either really wanted the > icdinode and are switched to that one, or had already added the size > of the agi unlinked list pointer. Later both will be replaced with > helpers once we get the larger CRC-enabled dinode. > > Removing the data and attribute fork unions also has the advantage that > xfs_dinode.h doesn't need to pull in every header under the sun. > > While we're at it also add some more comments describing the dinode > structure. > > (First sent on October 7th) There's a problem with this patch somewhere. I haven't had it in my test stack for the last couple of days, and when I re-added it a couple of hours back after updating the base kernel and master branch I'm now getting shortform directory corruption from xfsqa test 001. Platform is x86_64 UML: [42949510.230000] Assertion failed: i8count == sfp->hdr.i8count, file: fs/xfs/xfs_dir2_sf.c, line: 634 Program received signal SIGILL, Illegal instruction. assfail (expr=, file=, line=) at fs/xfs/support/debug.c:81 81 BUG(); (gdb) bt #0 assfail (expr=, file=, line=) at fs/xfs/support/debug.c:81 #1 0x0000000060139956 in xfs_dir2_sf_check (args=) at fs/xfs/xfs_dir2_sf.c:634 #2 0x000000006013acb5 in xfs_dir2_sf_lookup (args=0x80913620) at fs/xfs/xfs_dir2_sf.c:822 #3 0x00000000601317f1 in xfs_dir_lookup (tp=0x0, dp=0x80da5958, name=0x80913b40, inum=0x80913b00, ci_name=0x0) at fs/xfs/xfs_dir2.c:303 #4 0x000000006015efeb in xfs_lookup (dp=0x80da5958, name=0x80913b40, ipp=0x80913b58, ci_name=0x0) at fs/xfs/xfs_vnodeops.c:1361 #5 0x0000000060168b25 in xfs_vn_lookup (dir=, dentry=0x80dac550, nd=) at fs/xfs/xfs_inode.h:301 #6 0x000000006007a451 in __lookup_hash (name=0x80913c10, base=0x80dac740, nd=0x80913c00) at fs/namei.c:1200 #7 0x000000006007a4aa in lookup_hash (nd=0x80913c00) at fs/namei.c:1222 #8 0x000000006007a4fe in lookup_create (nd=0x80913c00, is_dir=1) at fs/namei.c:1902 #9 0x000000006007c721 in sys_mkdirat (dfd=, pathname=, mode=493) at fs/namei.c:2061 #10 0x000000006007c7fb in sys_mkdir (pathname=, mode=) at fs/namei.c:2085 #11 0x000000006001515d in handle_syscall (r=0x7fb0b500) at arch/um/kernel/skas/syscall.c:35 #12 0x0000000060024303 in userspace (regs=0x7fb0b500) at arch/um/os-Linux/skas/process.c:201 #13 0x00000000600127cd in fork_handler () at arch/um/kernel/process.c:179 #14 0x0000000000000000 in ?? () (gdb) p i8count $6 = 1 (gdb) p /x sfp->hdr.i8count $7 = 0x80 I *didn't* see this problem a few days ago, so updating the tree has brought in something that this patch doesn't like. I don't have time to track this down now, so I'll leave it to you for the moment, Christoph. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Thu Oct 30 21:03:37 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V43boN017421 for ; Thu, 30 Oct 2008 21:03:37 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 555AC908AA; Thu, 30 Oct 2008 21:03:33 -0700 (PDT) Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA13739; Fri, 31 Oct 2008 15:03:31 +1100 Message-ID: <490A833A.2090601@sgi.com> Date: Fri, 31 Oct 2008 15:02:02 +1100 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.17 (X11/20080914) MIME-Version: 1.0 To: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: do_sync() and XFSQA test 182 failures.... References: <20081030085020.GP17077@disturbed> In-Reply-To: <20081030085020.GP17077@disturbed> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Dave Chinner wrote: > Folks, > > I think I've finally found the bug(s) that is causing XFSQA test 182 > to fail. Test 182 writes a bunch of files, then runs sync, then > shuts the filesystem down. It then unmounts and remounts the fs and > checks that all the files are the correct length and have the > correct contents. i.e. that sync semantics have been correctly > observed. > > The cause of the failure is that log recovery is replaying inode > allocation and overwriting the last inode writes that contained > unlogged changes (i.e. the inode size update that occurs at I/O > completion). > > The problem is that we've never been able to work out why recovery > is doing this. What has been nagging at the back of my mind for > quite some time is the fact that we do actually write these inodes > to disk and that should allow the tail of the log to move forward > past the inode allocation transaction and hence it should not be > replayed during recovery. > > A solution that has been proposed in the past (by Lachlan) is to log > the inode size updates instead of writing the inode to disk. In > that case, recovery also replays the inode modification transactions > and so we don't lose anything. It is a solution that would fix the > problem. However, always logging inodes instead of writing unlogged > changes has other performance implications that we'd prefer to avoid > (i.e. the number of extra transactions it will cause). Logging the inode every time a file size update occured increased log traffic by about 11% for the load that test 182 generates. Logging the inode during inode writeout if, and only if, there are unlogged changes (ie i_update_core is set) has a negligible impact on log traffic or performance. I thought I understood this problem yet your description is a lot more detailed than I expected. I agree with you that sync is updating everything on disk and if it wasn't for log replay messing things up then everything would be good. So although the inode on disk is up to date the history of changes to that inode in the log is missing the last changes involving file size updates. So when the log is replayed the inode loses the file size update. And it's all because of the inode cluster buffer initialisation log entry that resets the cluster (and all the inodes in it) so even the di_flushiter hack can't save us. The obvious solution to me was to complete the history of the inode in the log so if replay wants to start from scratch it will make all the necessary changes to bring the inode to a state that matches what is on disk. Logging unlogged changes during sync will achieve this. Avoiding log replay altogether is even better but that solution is only going to work if we've run sync just before our system crashes. If we haven't run sync before our system crashes then we'll still hit this problem with regressing inodes but if we haven't run sync there are no guarantees, right? > > This solution also seemed to me to be papering over the real problem > which we hadn't yet found because it did not explain why we were > replaying an allocation that we should not need to. Hence the > problem has gone unfixed since Lachlan first discovered it despite > trying several times to get to the bottom of the problem. > Now I think I finally have. > > I started by instrumenting the sync code and the inode dirtying and > writeback code to confirm the order of data, inode and sync > operations, with a view to understanding why the tail of the log was > not moving forwards when the inode clusters were written out during > the sync. To start with, let's look at what do_sync() does: > > 24 static void do_sync(unsigned long wait) > 25 { > 26 wakeup_pdflush(0); > 27 sync_inodes(0); /* All mappings, inodes and their blockdevs */ > 28 DQUOT_SYNC(NULL); > 29 sync_supers(); /* Write the superblocks */ > 30 sync_filesystems(0); /* Start syncing the filesystems */ > 31 sync_filesystems(wait); /* Waitingly sync the filesystems */ > 32 sync_inodes(wait); /* Mappings, inodes and blockdevs, again. */ > 33 if (!wait) > 34 printk("Emergency Sync complete\n"); > 35 if (unlikely(laptop_mode)) > 36 laptop_sync_completion(); > 37 } > > Let's translate this into what XFS does: > > wakeup_pdflush(0) [*] - run a concurrent background > sync of the fs via pdflush. > > sync_inodes(0) - walks the superblock dirty inode > list doing an async flush of > inodes and their data. > > sync_supers() - writes the superblock, forces the > log to disk > > sync_filesystems(0) - non block filesystem sync. XFS > writes the superblock > > sync_filesystems(1) - XFS writes all dirty data to disk > and waits for it. Dirties the > superblock and the log. Does not > write inodes. > > sync_inodes(1) - walk the superblock dirty inode > list *twice*, first doing an async > flush of dirty data and inodes, secondly > doing a sync flush of remaining > dirty data and inodes. > > [*] Starting pdflush to sync data in the background when we are > about to start flushing ourselves is self-defeating. instead of > having a single thread doing optimal writeout patterns, we now > have two threads trying to sync the same filesystems and > competing with each other to write out dirty inodes. This > actually causes bugs in sync because pdflush is doing async > flushes. Hence if pdflush races and wins during the sync flush > part of the sync process, sync_inodes(1) will return before all > the data/metadata is on disk because it can't be found to be > waited on. > > Now the sync is _supposedly_ complete. But we still have a dirty > log and superblock thanks to delayed allocation that may have > occurred after the sync_supers() call. Hence we can immediately > see that we cannot *ever* do a proper sync of an XFS filesystem > in Linux without modifying do_sync() to do more callouts. > > Worse, XFS can also still have *dirty inodes* because sync_inodes(1) > will remove inodes from the dirty list in the async pass, but they > can get dirtied a short time later (if they had dirty data) when the > data I/O completes. Hence if the second sync pass completes before > the inode is dirtied again we'll miss flushing it. This will mean we > don't write inode size updates during sync. This is the same race > that pdflush running in the background can trigger. > > Clearly this is broken, but this particular problem is an XFS bug > and is fixed by XFS marking the inode dirty before I/O dispatch if > the end offset of the I/O is beyond the current EOF so there is no > window where the inode is temporarily clean. This, however, does > not fix the race condition between the sync thread and pdflush, > just the async-then-sync problem within the flush thread. > > Back to do_sync(), the order of operations we need to reliably sync > a journalling filesystem that uses delayed allocation and updates > metadata on data I/O completion is effectively as follows: > > - flush all dirty data > - wait for all metadata updates caused by data flush to > complete > - force unwritten async transactions to disk to unpin dirty metadata > - flush all dirty metadata > - write the superblock > > In generic speak, this effectively requires: > > sync_filesystems(0) [**] > sync_filesystems(1) > sync_supers() > sync_inodes(1) [***] > sync_supers() > > [**] async flush optimisation > [***] async flush optimisation is implemented internally to > sync_inodes() for sync flushes. > > This leads to the following callouts and the behaviour that XFS > would need for the callouts: > > sync_filesystems(0) > ->sync_fs() - async flush all dirty data > sync_filesystems(1) > ->sync_fs() - sync flush remaining dirty data > sync_supers() > ->write_super() - write super, force the log > sync_inodes(1) [****] > sync_inodes_sb(0) - async flush of dirty inodes > sync_inodes_sb(1) - sync flush of remaining inodes > sync_supers() > ->write_super() - write sb, force the log. > > [****] sync_inodes() really needs to fall down to a ->sync_inodes() > callout for the filesystem to be able to implement an optimal > inode flushing strategy. > > However, even with this order in place, test 182 still fails. > > So I looked at the filesystem prior to log recovery (mount -o > ro,norecovery) and saw that all the data is on disk, all the inode > sizes are correct, the superblock is up to date and everything looks > OK. That is, the sync did everything it was supposed to and the > above order of writing out the filesystem is working correctly. > > As soon as I ran recovery, though, I saw a small number of inodes > go back to having an inode size of zero - they regress. The reason > for this is that the log tail location (l_tail_lsn) at the end of > the sync is was not updated on disk at the end of the sync and > hence recovery is replaying transactions. > > At this point I wondered if the log covering code was not working > properly. I'd never really looked at it in any detail, and as soon > as I read the description I knew that it was not working. The > problem log covering is supposed to solve is as follows (from > fs/xfs/xfs_log_priv.h): > > 161 * These states are used to insert dummy log entries to cover > 162 * space allocation transactions which can undo non-transactional changes > 163 * after a crash. Writes to a file with space > 164 * already allocated do not result in any transactions. Allocations > 165 * might include space beyond the EOF. So if we just push the EOF a > 166 * little, the last transaction for the file could contain the wrong > 167 * size. If there is no file system activity, after an allocation > 168 * transaction, and the system crashes, the allocation transaction > 169 * will get replayed and the file will be truncated. This could > 170 * be hours/days/... after the allocation occurred. > > Immediately it is was obvious that we're seeing the above problem > and that log covering is a method for ensuring that the state of the > log on disk is the same as that in memory at the end of a sync. > > Hence, as the last part of the sync we need to try to cover the log > with a dummy transaction to update the real location of the log tail > in the log. Therefore we will no longer replay the inode allocation > transactions because the tail in the log matches the in memory state > after the inodes have been flushed. > > With the current do_sync() code, we have no callout once the inodes > are written to issue a dummy transactions to cover the log > correctly. The do_sync() process needs to end with a sync_supers() > to get the correct callout to XFS to allow this to happen. i.e. > whenever we try to write the superblock we also should be trying to > initiate the log covering process, and we can't do this right now. > Once the log is covered, the recovery-overwriting-inodes problem > goes away because recovery is not needed. > > Everyone understand the problem now? ;) > > > > FWIW, XFS has had this log covering code since, well, forever. It > came from Irix and it worked on Irix. I don't think that it has ever > worked on Linux, though, because of the lack of a sync_supers() call > at the end of do_sync(1). We've just never noticed it until we > corrected the infamous NULL files problems in 2.6.22 which hid this > particular cause of file size mismatches after a crash. > > With a bunch of hacks in place, test 182 now passes and sync(1) on > XFS finally does what it is supposed to. I'm not going to post the > hacky, full-of-garbage, debuggy patch I have that I used to discover > this - I'll clean it up first to just have the bits needed to fix > the problem, then post it. That'll be tomorrow.... > > However, I have a problem - I'm an expert in XFS, not the other tens > of Linux filesystems so I can't begin to guess what the impact of > changing do_sync() would be on those many filesystems. How many > filesystems would such a change break? Indeed - how many are broken > right now by having dirty inodes and superblocks slip through > sync(1)? > > And then the big question - how the hell does one test such change? > > I can test XFS easily enough because it has shutdown ioctls that > effectively simulate a power failure - that what test 182 uses. I > don't think any other filesystem has such an ioctl, though, and I > don't have the time or hardware to repeatedly crash test every > filesystem out there to prove that a change to do_sync() doesn't > negatively impact them. > > What are the alternatives? do_sync() operates above any particular > filesystem, so it's hard to provide a filesystem specific ->do_sync > method to avoid changing sync order for all filesystems. Do we > change do_sync() to completely sync a superblock at a time instead > of doing each operation across all superblocks before moving onto > the next operation? Is there any particular reason (e.g. performance, locking) for the current > method that would prevent changing to completely-sync-a-superblock > iteration algorithm so we can provide a custom ->do_sync method? > > Are there any other ways that we can get a custom ->do_sync > method for XFS? I'd prefer a custom method so we don't have to > revalidate every linux filesystem, especially as XFS already has > everything it needs to provide it's own sync method (used for > freezing) and a test suite to validate it is working correctly..... > > Are there any other options for solving this? > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Thu Oct 30 21:33:56 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V4Xt0X019408 for ; Thu, 30 Oct 2008 21:33:56 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by relay2.corp.sgi.com (Postfix) with SMTP id 531DD3040A2; Thu, 30 Oct 2008 21:33:52 -0700 (PDT) Received: from boing.melbourne.sgi.com (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA14493; Fri, 31 Oct 2008 15:33:49 +1100 Message-ID: <490A8AAD.50207@sgi.com> Date: Fri, 31 Oct 2008 15:33:49 +1100 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.17 (Macintosh/20080914) MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com Subject: Re: [PATCH] XFS: handle memory allocation failures during log initialisation References: <1225416366-3116-1-git-send-email-david@fromorbit.com> In-Reply-To: <1225416366-3116-1-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi Dave, Dave Chinner wrote: > When there is no memory left in the system, xfs_buf_get_noaddr() > can fail. If this happens at mount time during xlog_alloc_log() > we fail to catch the error and oops. > > Catch the error from xfs_buf_get_noaddr(), and allow other memory > allocations to fail and catch those errors too. Report the error > to the console and fail the mount with ENOMEM. > > Tested by manually injecting errors into xfs_buf_get_noaddr() and > xlog_alloc_log(). > > Version 2: > o remove unnecessary casts of the returned pointer from kmem_zalloc() > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_log.c | 39 ++++++++++++++++++++++++++++++++++++--- > 1 files changed, 36 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 5184017..92c20a8 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -563,6 +563,11 @@ xfs_log_mount( > } > > mp->m_log = xlog_alloc_log(mp, log_target, blk_offset, num_bblks); > + if (!mp->m_log) { > + cmn_err(CE_WARN, "XFS: Log allocation failed: No memory!"); > + error = ENOMEM; > + goto out; > + } > > /* > * Initialize the AIL now we have a log. > @@ -601,6 +606,7 @@ xfs_log_mount( > return 0; > error: > xfs_log_unmount_dealloc(mp); > +out: > return error; > } /* xfs_log_mount */ > > @@ -1217,7 +1223,9 @@ xlog_alloc_log(xfs_mount_t *mp, > int i; > int iclogsize; > > - log = (xlog_t *)kmem_zalloc(sizeof(xlog_t), KM_SLEEP); > + log = kmem_zalloc(sizeof(xlog_t), KM_MAYFAIL); > + if (!log) > + return NULL; > > log->l_mp = mp; > log->l_targ = log_target; > @@ -1249,6 +1257,8 @@ xlog_alloc_log(xfs_mount_t *mp, > xlog_get_iclog_buffer_size(mp, log); > > bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); > + if (!bp) > + goto out_free_log; > XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); > XFS_BUF_SET_BDSTRAT_FUNC(bp, xlog_bdstrat_cb); > XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); > @@ -1275,13 +1285,17 @@ xlog_alloc_log(xfs_mount_t *mp, > iclogsize = log->l_iclog_size; > ASSERT(log->l_iclog_size >= 4096); > for (i=0; i < log->l_iclog_bufs; i++) { > - *iclogp = (xlog_in_core_t *) > - kmem_zalloc(sizeof(xlog_in_core_t), KM_SLEEP); > + *iclogp = kmem_zalloc(sizeof(xlog_in_core_t), KM_MAYFAIL); > + if (!*iclogp) > + goto out_free_iclog; > + > iclog = *iclogp; > iclog->ic_prev = prev_iclog; > prev_iclog = iclog; > > bp = xfs_buf_get_noaddr(log->l_iclog_size, mp->m_logdev_targp); > + if (!bp) > + goto out_free_iclog; > if (!XFS_BUF_CPSEMA(bp)) > ASSERT(0); > XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); > @@ -1323,6 +1337,25 @@ xlog_alloc_log(xfs_mount_t *mp, > log->l_iclog->ic_prev = prev_iclog; /* re-write 1st prev ptr */ > > return log; > + > +out_free_iclog: > + for (iclog = log->l_iclog; iclog; iclog = prev_iclog) { > + prev_iclog = iclog->ic_next; > + if (iclog->ic_bp) { > + sv_destroy(&iclog->ic_force_wait); > + sv_destroy(&iclog->ic_write_wait); > + xfs_buf_free(iclog->ic_bp); > + xlog_trace_iclog_dealloc(iclog); > + } > + kmem_free(iclog); > + } > + spinlock_destroy(&log->l_icloglock); > + spinlock_destroy(&log->l_grant_lock); > + xlog_trace_loggrant_dealloc(log); > + xfs_buf_free(log->l_xbuf); > +out_free_log: > + kmem_free(log); > + return NULL; > } /* xlog_alloc_log */ > > I would have done s/prev_iclog/next_iclog/ as I'm not sure why you look at it as previous. However, I think it would be nicer to modify xlog_dealloc_log() to handle less than l_iclog_bufs. i.e put the code you have here into xlog_dealloc_log() and do the deallocation in one place. --Tim From owner-xfs@oss.sgi.com Thu Oct 30 21:57:40 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from relay.sgi.com (netops-testserver-3.corp.sgi.com [192.26.57.72]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V4veoj020640 for ; Thu, 30 Oct 2008 21:57:40 -0700 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by netops-testserver-3.corp.sgi.com (Postfix) with SMTP id 53EA7908A2; Thu, 30 Oct 2008 21:57:40 -0700 (PDT) Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA14848; Fri, 31 Oct 2008 15:57:38 +1100 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id ECE0E58AE1E9; Fri, 31 Oct 2008 15:57:37 +1100 (EST) Date: Fri, 31 Oct 2008 15:57:37 +1100 To: torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org Subject: [GIT PULL] XFS update for 2.6.28 User-Agent: nail 11.25 7/29/05 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20081031045737.ECE0E58AE1E9@chook.melbourne.sgi.com> From: lachlan@sgi.com (Lachlan McIlroy) The following changes since commit 721d5dfe7e516954c501d5e9d0dfab379cf4241a: Linus Torvalds (1): Merge branch 'for-linus' of git://neil.brown.name/md are available in the git repository at: git://oss.sgi.com:8090/xfs/linux-2.6 master Barry Naujok (4): [XFS] Remove final remnants of dirv1 macros and other stuff [XFS] Sync up kernel and user-space headers [XFS] Check agf_btreeblks is valid when reading in the AGF [XFS] Show buffer address with debug hexdump on corruption Christoph Hellwig (42): [XFS] kill struct xfs_btree_hdr [XFS] split up xfs_btree_init_cursor [XFS] add generic btree types [XFS] make btree root in inode support generic [XFS] add a long pointers flag to xfs_btree_cur [XFS] refactor xfs_btree_readahead [XFS] refactor btree validation helpers [XFS] make btree tracing generic [XFS] add get_maxrecs btree operation [XFS] add helpers for addressing entities inside a btree block [XFS] implement generic xfs_btree_increment [XFS] implement generic xfs_btree_decrement [XFS] implement generic xfs_btree_lookup [XFS] implement generic xfs_btree_updkey [XFS] implement generic xfs_btree_update [XFS] implement generic xfs_btree_rshift [XFS] implement generic xfs_btree_lshift [XFS] implement generic xfs_btree_split [XFS] implement semi-generic xfs_btree_new_root [XFS] move xfs_bmbt_newroot to common code [XFS] implement generic xfs_btree_insert/insrec [XFS] move xfs_bmbt_killroot to common code [XFS] implement generic xfs_btree_delete/delrec [XFS] implement generic xfs_btree_get_rec [XFS] kill xfs_bmbt_log_block and xfs_bmbt_log_recs [XFS] add keys_inorder and recs_inorder btree methods [XFS] mark various functions in xfs_btree.c static [XFS] make btree tracing generic [XFS] Cleanup maxrecs calculation. [XFS] cleanup btree record / key / ptr addressing macros. [XFS] Always use struct xfs_btree_block instead of short / longform [XFS] Move XFS_BMAP_SANITY_CHECK out of line. [XFS] split out two helpers from xfs_syncsub [XFS] fix instant oops with tracing enabled [XFS] kill struct xfs_mount_args [XFS] fix the noquota mount option [XFS] fix biosize option [XFS] Trivial xfs_remove comment fixup [XFS] stop using xfs_itobp in xfs_bulkstat Inode: export symbol destroy_inode [XFS] free partially initialized inodes using destroy_inode [XFS] kill sys_cred David Chinner (44): [XFS] Make use of the init-once slab optimisation. [XFS] add new btree statistics [XFS] move sync code to its own file [XFS] move xfssyncd code to xfs_sync.c [XFS] Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() [XFS] don't block in xfs_qm_dqflush() during async writeback. [XFS] Use the inode tree for finding dirty inodes [XFS] Traverse inode trees when releasing dquots [XFS] remove the mount inode list [XFS] Use struct inodes instead of vnodes to kill vn_grab [XFS] use xfs_sync_inodes rather than xfs_syncsub [XFS] kill xfs_syncsub [XFS] xfssyncd: don't call xfs_sync [XFS] make SYNC_ATTR no longer use xfs_sync [XFS] make SYNC_DELWRI no longer use xfs_sync [XFS] Kill SYNC_CLOSE [XFS] Kill xfs_sync() [XFS] Move remaining quiesce code. [XFS] factor xfs_iget_core() into hit and miss cases [XFS] Never call mark_inode_dirty_sync() directly Inode: Allow external initialisers Inode: Allow external list initialisation [XFS] Combine the XFS and Linux inodes [XFS] Prevent use-after-free caused by synchronous inode reclaim [XFS] move inode reclaim functions to xfs_sync.c [XFS] rename inode reclaim functions [XFS] mark inodes for reclaim via a tag in the inode radix tree [XFS] use the inode radix tree for reclaiming inodes [XFS] kill deleted inodes list [XFS] Prevent looping in xfs_sync_inodes_ag [XFS] Account for allocated blocks when expanding directories [XFS] Allocate the struct xfs_ail [XFS] Use a cursor for AIL traversal. [XFS] move the AIl traversal over to a consistent interface [XFS] Allow 64 bit machines to avoid the AIL lock during flushes [XFS] Move the AIL lock into the struct xfs_ail [XFS] Given the log a pointer to the AIL [XFS] Add ail pointer into log items [XFS] Finish removing the mount pointer from the AIL API [XFS] XFS: Check for valid transaction headers in recovery [XFS] Can't lock inodes in radix tree preload region [XFS] avoid all reclaimable inodes in xfs_sync_inodes_ag [XFS] correctly select first log item to push [XFS] Fix race when looking up reclaimable inodes David Howells (1): CRED: Wrap task credential accesses in the XFS filesystem Lachlan McIlroy (7): [XFS] Remove kmem_zone_t argument from xfs_inode_init_once() [XFS] Use xfs_idestroy() to cleanup an inode. [XFS] Fix use-after-free with log and quotas [XFS] Unlock inode before calling xfs_idestroy() [XFS] Wait for all I/O on truncate to zero file size [XFS] Make xfs_btree_check_ptr() debug-only code. [XFS] Fix build warning - xfs_fs_alloc_inode() needs a return statement Peter Leckie (2): [XFS] Clean up dquot pincount code. [XFS] Fix build brakage from patch "Clean up dquot pincount code" Tim Shimmin (2): [XFS] remove restricted chown parameter from xfs linux [XFS] remove restricted chown parameter from xfs linux Documentation/filesystems/xfs.txt | 4 - fs/inode.c | 208 ++- fs/xfs/Makefile | 4 +- fs/xfs/linux-2.6/xfs_aops.c | 2 +- fs/xfs/linux-2.6/xfs_cred.h | 10 +- fs/xfs/linux-2.6/xfs_globals.c | 8 - fs/xfs/linux-2.6/xfs_globals.h | 1 - fs/xfs/linux-2.6/xfs_ioctl.c | 9 +- fs/xfs/linux-2.6/xfs_iops.c | 25 +- fs/xfs/linux-2.6/xfs_linux.h | 2 +- fs/xfs/linux-2.6/xfs_stats.c | 4 + fs/xfs/linux-2.6/xfs_stats.h | 65 + fs/xfs/linux-2.6/xfs_super.c | 840 +++------ fs/xfs/linux-2.6/xfs_super.h | 3 - fs/xfs/linux-2.6/xfs_sync.c | 763 ++++++++ fs/xfs/linux-2.6/xfs_sync.h | 55 + fs/xfs/linux-2.6/xfs_sysctl.c | 11 - fs/xfs/linux-2.6/xfs_sysctl.h | 3 +- fs/xfs/linux-2.6/xfs_vfs.h | 31 - fs/xfs/linux-2.6/xfs_vnode.c | 15 +- fs/xfs/linux-2.6/xfs_vnode.h | 5 - fs/xfs/quota/xfs_dquot.c | 39 +- fs/xfs/quota/xfs_dquot.h | 4 +- fs/xfs/quota/xfs_dquot_item.c | 45 +- fs/xfs/quota/xfs_qm.c | 13 +- fs/xfs/quota/xfs_qm.h | 1 - fs/xfs/quota/xfs_qm_bhv.c | 1 - fs/xfs/quota/xfs_qm_syscalls.c | 137 +- fs/xfs/support/debug.c | 2 +- fs/xfs/xfs.h | 2 +- fs/xfs/xfs_acl.c | 8 +- fs/xfs/xfs_ag.h | 10 +- fs/xfs/xfs_alloc.c | 195 ++- fs/xfs/xfs_alloc.h | 27 +- fs/xfs/xfs_alloc_btree.c | 2387 ++++--------------------- fs/xfs/xfs_alloc_btree.h | 107 +- fs/xfs/xfs_arch.h | 39 +- fs/xfs/xfs_bit.h | 3 +- fs/xfs/xfs_bmap.c | 296 ++-- fs/xfs/xfs_bmap.h | 61 +- fs/xfs/xfs_bmap_btree.c | 2614 +++++---------------------- fs/xfs/xfs_bmap_btree.h | 171 +-- fs/xfs/xfs_btree.c | 3596 ++++++++++++++++++++++++++++++++----- fs/xfs/xfs_btree.h | 392 +++-- fs/xfs/xfs_btree_trace.c | 249 +++ fs/xfs/xfs_btree_trace.h | 116 ++ fs/xfs/xfs_buf_item.c | 25 +- fs/xfs/xfs_clnt.h | 105 -- fs/xfs/xfs_da_btree.c | 5 + fs/xfs/xfs_da_btree.h | 24 +- fs/xfs/xfs_dinode.h | 5 +- fs/xfs/xfs_dir2.c | 6 + fs/xfs/xfs_dmops.c | 5 +- fs/xfs/xfs_extfree_item.c | 45 +- fs/xfs/xfs_fsops.c | 24 +- fs/xfs/xfs_ialloc.c | 132 ++- fs/xfs/xfs_ialloc.h | 21 +- fs/xfs/xfs_ialloc_btree.c | 2193 +++-------------------- fs/xfs/xfs_ialloc_btree.h | 111 +- fs/xfs/xfs_iget.c | 501 ++---- fs/xfs/xfs_imap.h | 2 - fs/xfs/xfs_inode.c | 292 ++-- fs/xfs/xfs_inode.h | 288 ++-- fs/xfs/xfs_inode_item.c | 30 +- fs/xfs/xfs_inode_item.h | 41 +- fs/xfs/xfs_itable.c | 33 +- fs/xfs/xfs_log.c | 10 +- fs/xfs/xfs_log_priv.h | 1 + fs/xfs/xfs_log_recover.c | 105 +- fs/xfs/xfs_mount.c | 47 +- fs/xfs/xfs_mount.h | 54 +- fs/xfs/xfs_qmops.c | 5 +- fs/xfs/xfs_trans.c | 13 +- fs/xfs/xfs_trans.h | 322 ++-- fs/xfs/xfs_trans_ail.c | 362 +++-- fs/xfs/xfs_trans_buf.c | 7 +- fs/xfs/xfs_trans_item.c | 10 + fs/xfs/xfs_trans_priv.h | 98 +- fs/xfs/xfs_vfsops.c | 617 +------- fs/xfs/xfs_vfsops.h | 2 - fs/xfs/xfs_vnodeops.c | 141 +-- fs/xfs/xfs_vnodeops.h | 6 +- include/linux/fs.h | 2 + kernel/sysctl_check.c | 1 - 84 files changed, 8096 insertions(+), 10178 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_sync.c create mode 100644 fs/xfs/linux-2.6/xfs_sync.h create mode 100644 fs/xfs/xfs_btree_trace.c create mode 100644 fs/xfs/xfs_btree_trace.h delete mode 100644 fs/xfs/xfs_clnt.h From owner-xfs@oss.sgi.com Thu Oct 30 22:02:05 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V523oU021058 for ; Thu, 30 Oct 2008 22:02:05 -0700 X-ASG-Debug-ID: 1225429323-639300200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bifrost.lang.hm (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66606B1E279; Thu, 30 Oct 2008 22:02:03 -0700 (PDT) Received: from bifrost.lang.hm (mail.lang.hm [64.81.33.126]) by cuda.sgi.com with ESMTP id f35SKMBHNAlumiuT; Thu, 30 Oct 2008 22:02:03 -0700 (PDT) Received: from asgard.lang.hm (asgard.lang.hm [10.0.0.100]) by bifrost.lang.hm (8.13.4/8.13.4/Debian-3) with ESMTP id m9V51TGc025686; Thu, 30 Oct 2008 21:01:29 -0800 Date: Thu, 30 Oct 2008 22:02:09 -0700 (PDT) From: david@lang.hm X-X-Sender: dlang@asgard.lang.hm To: Lachlan McIlroy cc: torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org X-ASG-Orig-Subj: Re: [GIT PULL] XFS update for 2.6.28 Subject: Re: [GIT PULL] XFS update for 2.6.28 In-Reply-To: <20081031045737.ECE0E58AE1E9@chook.melbourne.sgi.com> Message-ID: References: <20081031045737.ECE0E58AE1E9@chook.melbourne.sgi.com> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: mail.lang.hm[64.81.33.126] X-Barracuda-Start-Time: 1225429324 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.02 X-Barracuda-Spam-Status: No, SCORE=-0.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, NO_REAL_NAME, WEIRD_PORT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9102 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 1.50 WEIRD_PORT URI: Uses non-standard port number for HTTP 0.50 BSF_RULE7568M Custom Rule 7568M On Fri, 31 Oct 2008, Lachlan McIlroy wrote: > The following changes since commit 721d5dfe7e516954c501d5e9d0dfab379cf4241a: > Linus Torvalds (1): > Merge branch 'for-linus' of git://neil.brown.name/md I am a fairly heavy user of XFS and am as eager as anyone to see cleanups and improvements, but 102 commits to go into -rc3???? David Lang > are available in the git repository at: > > git://oss.sgi.com:8090/xfs/linux-2.6 master > > Barry Naujok (4): > [XFS] Remove final remnants of dirv1 macros and other stuff > [XFS] Sync up kernel and user-space headers > [XFS] Check agf_btreeblks is valid when reading in the AGF > [XFS] Show buffer address with debug hexdump on corruption > > Christoph Hellwig (42): > [XFS] kill struct xfs_btree_hdr > [XFS] split up xfs_btree_init_cursor > [XFS] add generic btree types > [XFS] make btree root in inode support generic > [XFS] add a long pointers flag to xfs_btree_cur > [XFS] refactor xfs_btree_readahead > [XFS] refactor btree validation helpers > [XFS] make btree tracing generic > [XFS] add get_maxrecs btree operation > [XFS] add helpers for addressing entities inside a btree block > [XFS] implement generic xfs_btree_increment > [XFS] implement generic xfs_btree_decrement > [XFS] implement generic xfs_btree_lookup > [XFS] implement generic xfs_btree_updkey > [XFS] implement generic xfs_btree_update > [XFS] implement generic xfs_btree_rshift > [XFS] implement generic xfs_btree_lshift > [XFS] implement generic xfs_btree_split > [XFS] implement semi-generic xfs_btree_new_root > [XFS] move xfs_bmbt_newroot to common code > [XFS] implement generic xfs_btree_insert/insrec > [XFS] move xfs_bmbt_killroot to common code > [XFS] implement generic xfs_btree_delete/delrec > [XFS] implement generic xfs_btree_get_rec > [XFS] kill xfs_bmbt_log_block and xfs_bmbt_log_recs > [XFS] add keys_inorder and recs_inorder btree methods > [XFS] mark various functions in xfs_btree.c static > [XFS] make btree tracing generic > [XFS] Cleanup maxrecs calculation. > [XFS] cleanup btree record / key / ptr addressing macros. > [XFS] Always use struct xfs_btree_block instead of short / longform > [XFS] Move XFS_BMAP_SANITY_CHECK out of line. > [XFS] split out two helpers from xfs_syncsub > [XFS] fix instant oops with tracing enabled > [XFS] kill struct xfs_mount_args > [XFS] fix the noquota mount option > [XFS] fix biosize option > [XFS] Trivial xfs_remove comment fixup > [XFS] stop using xfs_itobp in xfs_bulkstat > Inode: export symbol destroy_inode > [XFS] free partially initialized inodes using destroy_inode > [XFS] kill sys_cred > > David Chinner (44): > [XFS] Make use of the init-once slab optimisation. > [XFS] add new btree statistics > [XFS] move sync code to its own file > [XFS] move xfssyncd code to xfs_sync.c > [XFS] Remove xfs_iflush_all and clean up xfs_finish_reclaim_all() > [XFS] don't block in xfs_qm_dqflush() during async writeback. > [XFS] Use the inode tree for finding dirty inodes > [XFS] Traverse inode trees when releasing dquots > [XFS] remove the mount inode list > [XFS] Use struct inodes instead of vnodes to kill vn_grab > [XFS] use xfs_sync_inodes rather than xfs_syncsub > [XFS] kill xfs_syncsub > [XFS] xfssyncd: don't call xfs_sync > [XFS] make SYNC_ATTR no longer use xfs_sync > [XFS] make SYNC_DELWRI no longer use xfs_sync > [XFS] Kill SYNC_CLOSE > [XFS] Kill xfs_sync() > [XFS] Move remaining quiesce code. > [XFS] factor xfs_iget_core() into hit and miss cases > [XFS] Never call mark_inode_dirty_sync() directly > Inode: Allow external initialisers > Inode: Allow external list initialisation > [XFS] Combine the XFS and Linux inodes > [XFS] Prevent use-after-free caused by synchronous inode reclaim > [XFS] move inode reclaim functions to xfs_sync.c > [XFS] rename inode reclaim functions > [XFS] mark inodes for reclaim via a tag in the inode radix tree > [XFS] use the inode radix tree for reclaiming inodes > [XFS] kill deleted inodes list > [XFS] Prevent looping in xfs_sync_inodes_ag > [XFS] Account for allocated blocks when expanding directories > [XFS] Allocate the struct xfs_ail > [XFS] Use a cursor for AIL traversal. > [XFS] move the AIl traversal over to a consistent interface > [XFS] Allow 64 bit machines to avoid the AIL lock during flushes > [XFS] Move the AIL lock into the struct xfs_ail > [XFS] Given the log a pointer to the AIL > [XFS] Add ail pointer into log items > [XFS] Finish removing the mount pointer from the AIL API > [XFS] XFS: Check for valid transaction headers in recovery > [XFS] Can't lock inodes in radix tree preload region > [XFS] avoid all reclaimable inodes in xfs_sync_inodes_ag > [XFS] correctly select first log item to push > [XFS] Fix race when looking up reclaimable inodes > > David Howells (1): > CRED: Wrap task credential accesses in the XFS filesystem > > Lachlan McIlroy (7): > [XFS] Remove kmem_zone_t argument from xfs_inode_init_once() > [XFS] Use xfs_idestroy() to cleanup an inode. > [XFS] Fix use-after-free with log and quotas > [XFS] Unlock inode before calling xfs_idestroy() > [XFS] Wait for all I/O on truncate to zero file size > [XFS] Make xfs_btree_check_ptr() debug-only code. > [XFS] Fix build warning - xfs_fs_alloc_inode() needs a return statement > > Peter Leckie (2): > [XFS] Clean up dquot pincount code. > [XFS] Fix build brakage from patch "Clean up dquot pincount code" > > Tim Shimmin (2): > [XFS] remove restricted chown parameter from xfs linux > [XFS] remove restricted chown parameter from xfs linux > > Documentation/filesystems/xfs.txt | 4 - > fs/inode.c | 208 ++- > fs/xfs/Makefile | 4 +- > fs/xfs/linux-2.6/xfs_aops.c | 2 +- > fs/xfs/linux-2.6/xfs_cred.h | 10 +- > fs/xfs/linux-2.6/xfs_globals.c | 8 - > fs/xfs/linux-2.6/xfs_globals.h | 1 - > fs/xfs/linux-2.6/xfs_ioctl.c | 9 +- > fs/xfs/linux-2.6/xfs_iops.c | 25 +- > fs/xfs/linux-2.6/xfs_linux.h | 2 +- > fs/xfs/linux-2.6/xfs_stats.c | 4 + > fs/xfs/linux-2.6/xfs_stats.h | 65 + > fs/xfs/linux-2.6/xfs_super.c | 840 +++------ > fs/xfs/linux-2.6/xfs_super.h | 3 - > fs/xfs/linux-2.6/xfs_sync.c | 763 ++++++++ > fs/xfs/linux-2.6/xfs_sync.h | 55 + > fs/xfs/linux-2.6/xfs_sysctl.c | 11 - > fs/xfs/linux-2.6/xfs_sysctl.h | 3 +- > fs/xfs/linux-2.6/xfs_vfs.h | 31 - > fs/xfs/linux-2.6/xfs_vnode.c | 15 +- > fs/xfs/linux-2.6/xfs_vnode.h | 5 - > fs/xfs/quota/xfs_dquot.c | 39 +- > fs/xfs/quota/xfs_dquot.h | 4 +- > fs/xfs/quota/xfs_dquot_item.c | 45 +- > fs/xfs/quota/xfs_qm.c | 13 +- > fs/xfs/quota/xfs_qm.h | 1 - > fs/xfs/quota/xfs_qm_bhv.c | 1 - > fs/xfs/quota/xfs_qm_syscalls.c | 137 +- > fs/xfs/support/debug.c | 2 +- > fs/xfs/xfs.h | 2 +- > fs/xfs/xfs_acl.c | 8 +- > fs/xfs/xfs_ag.h | 10 +- > fs/xfs/xfs_alloc.c | 195 ++- > fs/xfs/xfs_alloc.h | 27 +- > fs/xfs/xfs_alloc_btree.c | 2387 ++++--------------------- > fs/xfs/xfs_alloc_btree.h | 107 +- > fs/xfs/xfs_arch.h | 39 +- > fs/xfs/xfs_bit.h | 3 +- > fs/xfs/xfs_bmap.c | 296 ++-- > fs/xfs/xfs_bmap.h | 61 +- > fs/xfs/xfs_bmap_btree.c | 2614 +++++---------------------- > fs/xfs/xfs_bmap_btree.h | 171 +-- > fs/xfs/xfs_btree.c | 3596 ++++++++++++++++++++++++++++++++----- > fs/xfs/xfs_btree.h | 392 +++-- > fs/xfs/xfs_btree_trace.c | 249 +++ > fs/xfs/xfs_btree_trace.h | 116 ++ > fs/xfs/xfs_buf_item.c | 25 +- > fs/xfs/xfs_clnt.h | 105 -- > fs/xfs/xfs_da_btree.c | 5 + > fs/xfs/xfs_da_btree.h | 24 +- > fs/xfs/xfs_dinode.h | 5 +- > fs/xfs/xfs_dir2.c | 6 + > fs/xfs/xfs_dmops.c | 5 +- > fs/xfs/xfs_extfree_item.c | 45 +- > fs/xfs/xfs_fsops.c | 24 +- > fs/xfs/xfs_ialloc.c | 132 ++- > fs/xfs/xfs_ialloc.h | 21 +- > fs/xfs/xfs_ialloc_btree.c | 2193 +++-------------------- > fs/xfs/xfs_ialloc_btree.h | 111 +- > fs/xfs/xfs_iget.c | 501 ++---- > fs/xfs/xfs_imap.h | 2 - > fs/xfs/xfs_inode.c | 292 ++-- > fs/xfs/xfs_inode.h | 288 ++-- > fs/xfs/xfs_inode_item.c | 30 +- > fs/xfs/xfs_inode_item.h | 41 +- > fs/xfs/xfs_itable.c | 33 +- > fs/xfs/xfs_log.c | 10 +- > fs/xfs/xfs_log_priv.h | 1 + > fs/xfs/xfs_log_recover.c | 105 +- > fs/xfs/xfs_mount.c | 47 +- > fs/xfs/xfs_mount.h | 54 +- > fs/xfs/xfs_qmops.c | 5 +- > fs/xfs/xfs_trans.c | 13 +- > fs/xfs/xfs_trans.h | 322 ++-- > fs/xfs/xfs_trans_ail.c | 362 +++-- > fs/xfs/xfs_trans_buf.c | 7 +- > fs/xfs/xfs_trans_item.c | 10 + > fs/xfs/xfs_trans_priv.h | 98 +- > fs/xfs/xfs_vfsops.c | 617 +------- > fs/xfs/xfs_vfsops.h | 2 - > fs/xfs/xfs_vnodeops.c | 141 +-- > fs/xfs/xfs_vnodeops.h | 6 +- > include/linux/fs.h | 2 + > kernel/sysctl_check.c | 1 - > 84 files changed, 8096 insertions(+), 10178 deletions(-) > create mode 100644 fs/xfs/linux-2.6/xfs_sync.c > create mode 100644 fs/xfs/linux-2.6/xfs_sync.h > create mode 100644 fs/xfs/xfs_btree_trace.c > create mode 100644 fs/xfs/xfs_btree_trace.h > delete mode 100644 fs/xfs/xfs_clnt.h > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > From owner-xfs@oss.sgi.com Thu Oct 30 22:53:18 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V5rIgi024250 for ; Thu, 30 Oct 2008 22:53:18 -0700 X-ASG-Debug-ID: 1225432397-471003c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nf-out-0910.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 33C5DB1E3C5 for ; Thu, 30 Oct 2008 22:53:17 -0700 (PDT) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.191]) by cuda.sgi.com with ESMTP id DzxMfmKmOlcyK357 for ; Thu, 30 Oct 2008 22:53:17 -0700 (PDT) Received: by nf-out-0910.google.com with SMTP id h3so579607nfh.42 for ; Thu, 30 Oct 2008 22:53:16 -0700 (PDT) Received: by 10.210.92.11 with SMTP id p11mr3839008ebb.134.1225432396617; Thu, 30 Oct 2008 22:53:16 -0700 (PDT) Received: by 10.210.22.3 with HTTP; Thu, 30 Oct 2008 22:53:16 -0700 (PDT) Message-ID: Date: Thu, 30 Oct 2008 22:53:16 -0700 From: "Steven Noonan" To: david@lang.hm X-ASG-Orig-Subj: Re: [GIT PULL] XFS update for 2.6.28 Subject: Re: [GIT PULL] XFS update for 2.6.28 Cc: "Lachlan McIlroy" , torvalds@linux-foundation.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <20081031045737.ECE0E58AE1E9@chook.melbourne.sgi.com> X-Barracuda-Connect: nf-out-0910.google.com[64.233.182.191] X-Barracuda-Start-Time: 1225432399 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9105 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M On Thu, Oct 30, 2008 at 10:02 PM, wrote: > On Fri, 31 Oct 2008, Lachlan McIlroy wrote: > >> The following changes since commit >> 721d5dfe7e516954c501d5e9d0dfab379cf4241a: >> Linus Torvalds (1): >> Merge branch 'for-linus' of git://neil.brown.name/md > > I am a fairly heavy user of XFS and am as eager as anyone to see cleanups > and improvements, but 102 commits to go into -rc3???? > > David Lang > I'm pretty sure these won't be accepted until 2.6.29's merge window opens. The merge window for 2.6.28 has closed, and due to the sheer number of commits, at least -one- is bound to cause a regression. - Steven From owner-xfs@oss.sgi.com Fri Oct 31 00:58:13 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_26 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9V7wCdV008124 for ; Fri, 31 Oct 2008 00:58:13 -0700 X-ASG-Debug-ID: 1225439892-3d37031b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from main.carme.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E73B10F5961 for ; Fri, 31 Oct 2008 00:58:12 -0700 (PDT) Received: from main.carme.maven.pl (main.carme.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id pK89p60Fq2izsVgP for ; Fri, 31 Oct 2008 00:58:12 -0700 (PDT) Received: from [83.238.65.58] (port=2870 helo=maven.pl ident=matrix157) by main.carme.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1KvotW-00141R-97 for xfs@oss.sgi.com; Fri, 31 Oct 2008 08:58:10 +0100 Received: from arekm by maven.pl with local (Exim 4.69) (envelope-from ) id 1KvotT-0000BG-Mf for xfs@oss.sgi.com; Fri, 31 Oct 2008 08:58:08 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: 2.6.25.18 in memory corruption? Subject: 2.6.25.18 in memory corruption? Date: Fri, 31 Oct 2008 08:58:07 +0100 User-Agent: PLD Linux KMail/1.9.10 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Message-Id: <200810310858.07632.arekm@maven.pl> X-Barracuda-Connect: main.carme.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1225439893 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3442 1.0000 -0.1735 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.17 X-Barracuda-Spam-Status: No, SCORE=-0.17 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9113 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m9V7wDdV008125 Hi, I'm trying to find out a reason (and a solution) for in memory corruption with xfs involved. Sometimes files are corrupted in such way as pasted below. This is in memory corruption since the file is correct after reboot. File size is unchanged as original, mtime not modified (compared to what I have in backup) according to ls -l. There is no oops, just contents of some files (it happens like 1 file per week, well I notice one file per week) are partially trashed. This is 230GB partition on lvm2, mounted with rw,nosuid,nodev,noatime,nodiratime,usrquota,grpquota options. Hardware is intel rack server (don't remember which one exactly) 1U with 2 x quad xeon, adaptec 3405, 4 SAS disks in raid5. Any ideas what that could be? /** * A class for reading Microsoft Excel Spreadsheets. * * Originally d4040\134040\134040\134040//"#,##0.00",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x5\134040=>\134040"%1.0f",\134040\134040\134040\134040\134040/*"$#,##0; ($#,##0)",*/^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x6\134040=>\134040'$%1.0f',\134040\134040\134040\134040/*"$#,##0; ($#,##0)",*/^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x7\134040=>\134040'$%1.2f',\134040\134040\134040\134040//"$#,##0.00; ($#,##0.00)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x8\134040=>\134040'$%1.2f',\134040\134040\134040\134040//"$#,##0.00; ($#,##0.00)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x9\134040=>\134040'%1.0f%%', \134040\134040\134040//\134040"0%"^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400xa\134040=>\134040'%1.2f%%', \134040\134040\134040//\134040"0.00%"^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400xb\134040=>\134040'%1.2f',\134040\134040\134040\134040\134040//\1340400.00E00", ^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x25\134040=>\134040'%1.0f',\134040\134040\134040\134040//\134040"#,##0; (#,##0)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x26\134040=>\134040'%1.0f',\134040\134040\134040\134040//"#,##0; (#,##0)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x27\134040=>\134040'%1.2f',\134040\134040\134040\134040//"#,##0.00; (#,##0.00)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x28\134040=>\134040'%1.2f',\134040\134040\134040\134040//"#,##0.00; (#,##0.00)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x29\134040=>\134040'%1.0f',\134040\134040\134040\134040//"#,##0; (#,##0)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x2a\134040=>\134040'$%1.0f',\134040\134040\134040//"$#,##0; ($#,##0)",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x2b\134040=>\134040'%1.2f',\134040\134040\134040\040\040\040//"#,##0.00; (#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x2c\040=>\040'$%1.2f',\040\040\040//"$#,##0.00;($#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x30\040=>\040'%1.0f'); \040\040\040\040array^M\012\040\040\040\040\040*\040@access\040public^M\012\040\040\040\040\040*/^M\012\040\040\040\040var\040$numberFormats\040=\040array(^M\012\040\040\040\040\040\040\040\0400x1\040=>\040"%1.0f", \040\040\040\040\040//\040"0"^M\012\040\040\040\040\040\040\040\0400x2\040=>\040"%1.2f",\040\040\040\040\040//\040"0.00",^M\012\040\040\040\040\040\040\040\0400x3\040=>\040"%1.0f", \040\040\040\040\040//"#,##0",^M\012\040\040\040\040\040\040\040\0400x4\040=>\040"%1.2f",\040\040\040\040\040//"#,##0.00",^M\012\040\040\040\040\040\040\040\0400x5\040=>\040"%1.0f", \040\040\040\040\040/*"$#,##0;($#,##0)",*/^M\012\040\040\040\040\040\040\040\0400x6\040=>\040'$%1.0f',\040\040\040\040/*"$#,##0;($#,##0)",*/^M\012\040\040\040\040\040\040\040\0400x7\040=>\040'$%1.2f', \040\040\040\040//"$#,##0.00;($#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x8\040=>\040'$%1.2f',\040\040\040\040//"$#,##0.00;($#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x9\040=>\040'%1.0f%%', \040\040\040//\040"0%"^M\012\040\040\040\040\040\040\040\0400xa\040=>\040'%1.2f%%',\040\040\040//\040"0.00%"^M\012\040\040\040\040\040\040\040\0400xb\040=>\040'%1.2f', \040\040\040\040\040//\0400.00E00",^M\012\040\040\040\040\040\040\040\0400x25\040=>\040'%1.0f',\040\040\040\040//\040"#,##0;(#,##0)",^M\012\040\040\040\040\040\040\040\0400x26\040=>\040'%1.0f', \040\040\040\040//"#,##0;(#,##0)",^M\012\040\040\040\040\040\040\040\0400x27\040=>\040'%1.2f',\040\040\040\040//"#,##0.00;(#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x28\040=>\040'%1.2f', \040\040\040\040//"#,##0.00;(#,##0.00)",^M\012\040\040\040\040\040\040\040\0400x29\040=>\040'%1.0f',\040\040\040\040//"#,##0;(#,##0)",^M\012\040\040\040\040\040\040\040\0400x2a\040=>\040'$%1.0f', \040\040\040//"$#,##0;($#,##0)",^M\012\040\040\040\040\040\040\040\0400x2b\040=>\040'%1.2f',\040\040\040 //"#,##0.00;(#,##0.00)", 0x2c => '$%1.2f', //"$#,##0.00;($#,##0.00)", 0x30 => '%1.0f'); //"##0.0E0"; // }}} // {{{ Spreadsheet_Excel_Reader() /** * Constructor -- Arkadiusz Miƛkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From owner-xfs@oss.sgi.com Fri Oct 31 05:13:09 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_23 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VCD8Kk030697 for ; Fri, 31 Oct 2008 05:13:08 -0700 X-ASG-Debug-ID: 1225455189-5dc901a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC3421B6FB4A for ; Fri, 31 Oct 2008 05:13:09 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id SGQ5e0XFX8k6RE2V for ; Fri, 31 Oct 2008 05:13:09 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 20E09EF4E0; Fri, 31 Oct 2008 08:13:09 -0400 (EDT) Date: Fri, 31 Oct 2008 08:13:09 -0400 (EDT) From: Justin Piszcz To: Postfix users cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? In-Reply-To: <20081031121002.D94A11F3E98@spike.porcupine.org> Message-ID: References: <20081031121002.D94A11F3E98@spike.porcupine.org> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1225455189 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9126 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, 31 Oct 2008, Wietse Venema wrote: > Does XFS still overwrite existing files with zeros, when those > files were open for write at the time of unclean shutdown? This I believe this was fixed in an early 2.6.2x release, cc'ing xfs mailing list to confirm. > would violate a basic requirement of Postfix (don't lose data after > fsync). Postfix updates existing files all the time: it updates > queue files as it marks recipients as done, and it updates mailbox > files as it appends mail. From owner-xfs@oss.sgi.com Fri Oct 31 06:06:42 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VD6gqh001218 for ; Fri, 31 Oct 2008 06:06:42 -0700 X-ASG-Debug-ID: 1225458401-575a006c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 08633564C84 for ; Fri, 31 Oct 2008 06:06:41 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id X21vfOX306DvTkfZ for ; Fri, 31 Oct 2008 06:06:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LIXk/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,522,1220193000"; d="scan'208";a="222326651" Received: from ppp121-44-133-228.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.133.228]) by ipmail01.adl6.internode.on.net with ESMTP; 31 Oct 2008 23:36:39 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kvti2-0008Jo-As; Sat, 01 Nov 2008 00:06:38 +1100 Date: Sat, 1 Nov 2008 00:06:38 +1100 From: Dave Chinner To: Lachlan McIlroy Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031130638.GA19509@disturbed> Mail-Followup-To: Lachlan McIlroy , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <20081030085020.GP17077@disturbed> <490A833A.2090601@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <490A833A.2090601@sgi.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225458403 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9129 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 31, 2008 at 03:02:02PM +1100, Lachlan McIlroy wrote: > Dave Chinner wrote: >> Folks, >> >> I think I've finally found the bug(s) that is causing XFSQA test 182 >> to fail. Test 182 writes a bunch of files, then runs sync, then >> shuts the filesystem down. It then unmounts and remounts the fs and >> checks that all the files are the correct length and have the >> correct contents. i.e. that sync semantics have been correctly >> observed. >> >> The cause of the failure is that log recovery is replaying inode >> allocation and overwriting the last inode writes that contained >> unlogged changes (i.e. the inode size update that occurs at I/O >> completion). >> >> The problem is that we've never been able to work out why recovery >> is doing this. What has been nagging at the back of my mind for >> quite some time is the fact that we do actually write these inodes >> to disk and that should allow the tail of the log to move forward >> past the inode allocation transaction and hence it should not be >> replayed during recovery. >> >> A solution that has been proposed in the past (by Lachlan) is to log >> the inode size updates instead of writing the inode to disk. In >> that case, recovery also replays the inode modification transactions >> and so we don't lose anything. It is a solution that would fix the >> problem. However, always logging inodes instead of writing unlogged >> changes has other performance implications that we'd prefer to avoid >> (i.e. the number of extra transactions it will cause). > Logging the inode every time a file size update occured increased log > traffic by about 11% for the load that test 182 generates. It increases the number of transactions by 33%, (i.e one to create the file, one for the allocation, and an additional one for updating the file size). That means a significant increase in the CPU overhead involved in writing inodes via pdflush, and we've still got to write those inodes to disk at some point. Besides, what do we do when we write inodes back from the AIL and we find unlogged changes then? We can't issue transactions from the AIL, as that would deadlock if the log is full. And we can't not push the inodes out, as that will prevent the tail of the log moving forward and that will deadlock the filesystemi as well... On top of that, XFS already logs far, far too much information. We need to be decreasing logging overhead, not increasing it by a significant fraction.... > Logging the inode during inode writeout if, and only if, there are > unlogged changes (ie i_update_core is set) has a negligible impact on > log traffic or performance. Every time you write beyond EOF that happens. That's a very frequent occurrence, so I'd say that it's not negliable. > I thought I understood this problem yet your description is a lot more > detailed than I expected. I agree with you that sync is updating > everything on disk It's not, and that is the problem - it's failing to write the in-memory position of the tail of the log at the end of the sync. So while all the data and metadata is up to date on disk, the log is not. We haven't written everything we should be to disk as part of the sync. > and if it wasn't for log replay messing things up > then everything would be good. So although the inode on disk is up to > date the history of changes to that inode in the log is missing the > last changes involving file size updates. So when the log is replayed > the inode loses the file size update. And it's all because of the > inode cluster buffer initialisation log entry that resets the cluster > (and all the inodes in it) so even the di_flushiter hack can't save us. That's a red herring. My last attempt at solving this problem a couple of months ago was based on this premise - it (successfully) avoided replaying the inode allocation transaction, but the inode still got overwritten. It got overwritten by the allocation transaction being replayed in exactly the manner described by the log covering code.... > The obvious solution to me was to complete the history of the inode in > the log so if replay wants to start from scratch it will make all the > necessary changes to bring the inode to a state that matches what is > on disk. Logging unlogged changes during sync will achieve this. > > Avoiding log replay altogether is even better but that solution is > only going to work if we've run sync just before our system crashes. > If we haven't run sync before our system crashes then we'll still hit > this problem with regressing inodes but if we haven't run sync there > are no guarantees, right? If the system crashes while busy, there's no guarantee that cached write-behind data has been written out, let alone the inode or the allocation transaction. Recent transactions will still be in memory, and log buffers may have been written out of order so on a crash we can lose up to the last 2MB of transactions from recovery. Logging inodes instead of writing them back does not change this at all - we just lose the inode changes from the log instead of from the on disk location. XFS has never attempted or claimed to provide data reliability guarantees when a crash occurs - it was designed to ensure that the filesystem metadata is consistent after recovery, not that there was zero data loss..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 31 06:32:35 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.7 required=5.0 tests=J_CHICKENPOX_23, MISSING_HEADERS autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VDWYqN003371 for ; Fri, 31 Oct 2008 06:32:35 -0700 X-ASG-Debug-ID: 1225459954-4d8b02190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A458E564D97 for ; Fri, 31 Oct 2008 06:32:35 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by cuda.sgi.com with ESMTP id 6hiie3KYweMSYoNS for ; Fri, 31 Oct 2008 06:32:35 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 86753EF4E0; Fri, 31 Oct 2008 09:32:34 -0400 (EDT) Date: Fri, 31 Oct 2008 09:32:34 -0400 (EDT) From: Justin Piszcz cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? In-Reply-To: Message-ID: References: <20081031121002.D94A11F3E98@spike.porcupine.org> User-Agent: Alpine 1.10 (DEB 962 2008-03-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[75.144.35.66] X-Barracuda-Start-Time: 1225459955 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.44 X-Barracuda-Spam-Status: No, SCORE=-0.44 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MISSING_HEADERS X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9131 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.58 MISSING_HEADERS Missing To: header On Fri, 31 Oct 2008, Justin Piszcz wrote: > > > On Fri, 31 Oct 2008, Wietse Venema wrote: > >> Does XFS still overwrite existing files with zeros, when those >> files were open for write at the time of unclean shutdown? This > I believe this was fixed in an early 2.6.2x release, cc'ing xfs mailing list > to confirm. > >> would violate a basic requirement of Postfix (don't lose data after >> fsync). Postfix updates existing files all the time: it updates >> queue files as it marks recipients as done, and it updates mailbox >> files as it appends mail. > > No need to respond to this, sent a reply to the postfix list: http://oss.sgi.com/projects/xfs/faq.html#nulls Q: Why do I see binary NULLS in some files after recovery when I unplugged the power? Update: This issue has been addressed with a CVS fix on the 29th March 2007 and merged into mainline on 8th May 2007 for 2.6.22-rc1. XFS journals metadata updates, not data updates. After a crash you are supposed to get a consistent filesystem which looks like the state sometime shortly before the crash, NOT what the in memory image looked like the instant before the crash. Since XFS does not write data out immediately unless you tell it to with fsync, an O_SYNC or O_DIRECT open (the same is true of other filesystems), you are looking at an inode which was flushed out, but whose data was not. Typically you'll find that the inode is not taking any space since all it has is a size but no extents allocated (try examining the file with the xfs_bmap(8) command). From owner-xfs@oss.sgi.com Fri Oct 31 07:56:17 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=J_CHICKENPOX_43, J_CHICKENPOX_73 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VEuGsw009566 for ; Fri, 31 Oct 2008 07:56:17 -0700 X-ASG-Debug-ID: 1225464975-439601010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1D1756543A for ; Fri, 31 Oct 2008 07:56:15 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id gaj7NbfRRJ5esC22 for ; Fri, 31 Oct 2008 07:56:15 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9VEuEDx000661; Fri, 31 Oct 2008 10:56:14 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9VEuCR8013672; Fri, 31 Oct 2008 10:56:13 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9VEuBHL012736; Fri, 31 Oct 2008 10:56:12 -0400 Message-ID: <490B1C8B.7010607@sandeen.net> Date: Fri, 31 Oct 2008 09:56:11 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Justin Piszcz CC: Postfix users , xfs@oss.sgi.com, wietse@porcupine.org X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? References: <20081031121002.D94A11F3E98@spike.porcupine.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225464976 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9137 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- (Please bear with me; quoting a previous postfix-users email, but I'm not on that list. Feel free to put this back on the postfix-users list if it'd otherwise bounce) > Nikita Kipriyanov: >> DULMANDAKH Sukhbaatar ?????: >> > For me XFS seemed very fast. But usually I use ext3, which is >> > proven to be stable enough for most situations. >> > >> > >> > >> I feel also that xfs if much faster than ext3 and reiserfs, especially >> when it deals with metadata. In some bulk operation (bulk changing >> attributes of ~100000 files) it was approx. 15 times faster than ext3 >> (20 sec xfs, 5 min ext3). >> >> xfs's journal covers only metadata, so you probally lose some lastest >> not-synched data on power loss, but you will stay with consistent fs. > > Does XFS still overwrite existing files with zeros, when those > files were open for write at the time of unclean shutdown? XFS has never done this. (explicitly overwrite with zeros, that is). There was a time in the past when after a truncate + size update + crash, the log would replay these metadata operations (truncate+size update) but the data blocks had never hit the disk (this is assuming there was no fsync complete), so there were no data blocks (extents) associated with the file - you wound up with a sparse file as a result. Reading this led to zeros, of course. This is NOT the same as "overwriting existing files with zeros" which xfs has *never* done. This particular behavior has been fixed in 2 ways, though. One, if a file has been truncated down, it will be synced on close: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7d4fb40ad7efe4586d1341d4731377fb4530836f [XFS] Start writeout earlier (on last close) in the case where we have a truncate down followed by delayed allocation (buffered writes) - worst case scenario for the notorious NULL files problem. This reduces the window where we are exposed to that problem significantly. Two, a separate in-memory vs. on-disk size is now tracked: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ba87ea699ebd9dd577bf055ebc4a98200e337542 [XFS] Fix to prevent the notorious 'NULL files' problem after a crash. The problem that has been addressed is that of synchronising updates of the file size with writes that extend a file. Without the fix the update of a file's size, as a result of a write beyond eof, is independent of when the cached data is flushed to disk. Often the file size update would be written to the filesystem log before the data is flushed to disk. When a system crashes between these two events and the filesystem log is replayed on mount the file's size will be set but since the contents never made it to disk the file is full of holes. If some of the cached data was flushed to disk then it may just be a section of the file at the end that has holes. There are existing fixes to help alleviate this problem, particularly in the case where a file has been truncated, that force cached data to be flushed to disk when the file is closed. If the system crashes while the file(s) are still open then this flushing will never occur. The fix that we have implemented is to introduce a second file size, called the in-memory file size, that represents the current file size as viewed by the user. The existing file size, called the on-disk file size, is the one that get's written to the filesystem log and we only update it when it is safe to do so. When we write to a file beyond eof we only update the in- memory file size in the write operation. Later when the I/O operation, that flushes the cached data to disk completes, an I/O completion routine will update the on-disk file size. The on-disk file size will be updated to the maximum offset of the I/O or to the value of the in-memory file size if the I/O includes eof. ======== > This > would violate a basic requirement of Postfix (don't lose data after > fsync). Postfix updates existing files all the time: it updates > queue files as it marks recipients as done, and it updates mailbox > files as it appends mail. As long as postfix is looking after data properly with fsyncs etc, xfs should be perfectly safe w.r.t. data integrity on a crash. If you see any other behavior, it's a *bug* which should be reported, and I'm sure it would be fixed. As far as I know, though, there is no issue here. > Wietse > > To: Private List > From: "Theodore Ts'o" > Date: Sun, 19 Dec 2004 23:10:09 -0500 > Subject: Re: [evals] ext3 vs reiser with quotas > > [...] This email has been quoted too many times, and it's just not accurate. > This issue is completely different from the XFS issue of zero'ing > all open files on an unclean shutdown, of course. As stated above, this does not happen, at least not in the active zeroing sense. > [..] The reason > why it is done is to avoid a potential security problem, where a > file could be left with someone else's data. No. The file simply did not have extents on it, because the crash happened before the data was flushed. > Ext3 solves this > problem by delaying the journal commit until the data blocks are > written, as opposed to trashing all open files. Again, it's a > solution which can impact performance, but at least in my opinion, > for a filesystem, performace is Job #2. Making sure you don't lose > data is Job #1. And it's equally the job of the application; if an application uses the proper calls to sync data on xfs, xfs will not lose that data on a crash. Thanks, -Eric (a happy postfix+xfs user for years) :) From owner-xfs@oss.sgi.com Fri Oct 31 08:00:57 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=J_CHICKENPOX_26 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VF0v2D010093 for ; Fri, 31 Oct 2008 08:00:57 -0700 X-ASG-Debug-ID: 1225465258-6239013a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D62DDB24FFD for ; Fri, 31 Oct 2008 08:00:58 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id GFFECrI4uABkPF2c for ; Fri, 31 Oct 2008 08:00:58 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9VF0pMA001638; Fri, 31 Oct 2008 11:00:51 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9VF0obg015283; Fri, 31 Oct 2008 11:00:51 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9VF0nra013555; Fri, 31 Oct 2008 11:00:50 -0400 Message-ID: <490B1DA1.4030107@sandeen.net> Date: Fri, 31 Oct 2008 10:00:49 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Arkadiusz Miskiewicz CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.25.18 in memory corruption? Subject: Re: 2.6.25.18 in memory corruption? References: <200810310858.07632.arekm@maven.pl> In-Reply-To: <200810310858.07632.arekm@maven.pl> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225465258 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0120 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9136 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Arkadiusz Miskiewicz wrote: > Hi, > > I'm trying to find out a reason (and a solution) for in memory corruption with xfs involved. > > Sometimes files are corrupted in such way as pasted below. This is in memory > corruption since the file is correct after reboot. File size is unchanged as original, > mtime not modified (compared to what I have in backup) according to ls -l. > > There is no oops, just contents of some files (it happens like 1 file per week, well I notice > one file per week) are partially trashed. > > This is 230GB partition on lvm2, mounted with rw,nosuid,nodev,noatime,nodiratime,usrquota,grpquota > options. Hardware is intel rack server (don't remember which one exactly) 1U with 2 x quad xeon, > adaptec 3405, 4 SAS disks in raid5. > > Any ideas what that could be? > > /** > * A class for reading Microsoft Excel Spreadsheets. > * > * Originally d4040\134040\134040\134040//"#,##0.00",^M\134012\134040\134040\134040\134040\134040\134040\134040\1340400x5\134040=>\134040"%1.0f",\134040\134040\134040\134040\134040/*"$#,##0; Ow, my eyes ;) try: # hexdump -C $FILENAME to see if it's obvious where the corruption boundaries are, or any patterns that might be more readable than "\134012\134040\134040\134040\134040\" :) -Eric From owner-xfs@oss.sgi.com Fri Oct 31 08:38:00 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VFbx5u017570 for ; Fri, 31 Oct 2008 08:38:00 -0700 X-ASG-Debug-ID: 1225467479-624f02d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from spike.porcupine.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0DD3AB2575C for ; Fri, 31 Oct 2008 08:38:00 -0700 (PDT) Received: from spike.porcupine.org (spike.porcupine.org [168.100.189.2]) by cuda.sgi.com with ESMTP id zUFGfBVMjtEc6jyq for ; Fri, 31 Oct 2008 08:38:00 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: by spike.porcupine.org (Postfix, from userid 1001) id EF0521F3E9E; Fri, 31 Oct 2008 11:37:58 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=porcupine.org; s=dktest; t=1225467479; bh=4ZtqE0CRT+jW9tVQ4Wh883y4NRkqry+iMpZFE4NF nhg=; h=Subject:In-Reply-To:To:Date:CC:X-Time-Zone:X-Mailer: MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id: From; b=MmeNI9/oSZwRdWMtTsx+J4Gk8HH/9tx599NhpnlspyXtX2K6IsjYROWVpy Ji0Nvl1ZqPuYE3/mxp322QFzOvZadRWtuDdGEXJBGB4BqDPLrbWulArkyyjbV33i0GZ 7lMGtemfNZIpJMJY+UXDaGY7agOI/PYMLOrz6dCvxBu+vY= X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? In-Reply-To: <490B1C8B.7010607@sandeen.net> "from Eric Sandeen at Oct 31, 2008 09:56:11 am" To: Eric Sandeen Date: Fri, 31 Oct 2008 11:37:58 -0400 (EDT) CC: Justin Piszcz , Postfix users , xfs@oss.sgi.com, wietse@porcupine.org X-Time-Zone: USA EST, 6 hours behind central European time X-Mailer: ELM [version 2.4ME+ PL82 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Message-Id: <20081031153758.EF0521F3E9E@spike.porcupine.org> From: wietse@porcupine.org (Wietse Venema) X-Barracuda-Connect: spike.porcupine.org[168.100.189.2] X-Barracuda-Start-Time: 1225467481 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Eric Sandeen: > > This > > would violate a basic requirement of Postfix (don't lose data after > > fsync). Postfix updates existing files all the time: it updates > > queue files as it marks recipients as done, and it updates mailbox > > files as it appends mail. > > As long as postfix is looking after data properly with fsyncs etc, xfs > should be perfectly safe w.r.t. data integrity on a crash. If you see > any other behavior, it's a *bug* which should be reported, and I'm sure > it would be fixed. As far as I know, though, there is no issue here. The specific question is, will unclean shutdown cause loss of data that was already fsynced, when the file was updated after the fsync. For example, if the on-disk file metadata is updated after the file data is appended, then there is no need to have a zero-fill problem after crash during append. What if the crash happens after Postfix requests a 1-byte write in the middle of a file, i.e. without changing the size? A reasonable implementation would not corrupt the file, but would either update the file data or not change it. I can deal with that. Wietse From owner-xfs@oss.sgi.com Fri Oct 31 08:48:11 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VFm9e1018317 for ; Fri, 31 Oct 2008 08:48:11 -0700 X-ASG-Debug-ID: 1225468087-262000430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from main.carme.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9381AB26528 for ; Fri, 31 Oct 2008 08:48:07 -0700 (PDT) Received: from main.carme.maven.pl (main.carme.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id hCahv4oeGMPEtZ1O for ; Fri, 31 Oct 2008 08:48:07 -0700 (PDT) Received: from chello089076027073.chello.pl ([89.76.27.73]:1729 helo=maven.pl) by main.carme.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1KvwEG-000FRe-SB for xfs@oss.sgi.com; Fri, 31 Oct 2008 16:48:05 +0100 Received: from arekm by maven.pl with local (Exim 4.69) (envelope-from ) id 1KvwDl-0002mT-N4 for xfs@oss.sgi.com; Fri, 31 Oct 2008 16:47:34 +0100 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.25.18 in memory corruption? Subject: Re: 2.6.25.18 in memory corruption? Date: Fri, 31 Oct 2008 16:47:33 +0100 User-Agent: PLD Linux KMail/1.9.10 References: <200810310858.07632.arekm@maven.pl> <490B1DA1.4030107@sandeen.net> In-Reply-To: <490B1DA1.4030107@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Message-Id: <200810311647.33629.arekm@maven.pl> X-Barracuda-Connect: main.carme.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1225468088 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0857 1.0000 -1.4791 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.48 X-Barracuda-Spam-Status: No, SCORE=-1.48 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9140 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by oss.sgi.com id m9VFmBe1018320 On Friday 31 of October 2008, Eric Sandeen wrote: > Arkadiusz Miskiewicz wrote: > > Any ideas what that could be? > > > > /** > > * A class for reading Microsoft Excel Spreadsheets. > > * > > * Originally > > d4040\134040\134040\134040//"#,##0.00",^M\134012\134040\134040\134040\134 > >040\134040\134040\134040\1340400x5\134040=>\134040"%1.0f",\134040\134040\1 > >34040\134040\134040/*"$#,##0; > > Ow, my eyes ;) > > try: > > # hexdump -C $FILENAME > > to see if it's obvious where the corruption boundaries are, or any > patterns that might be more readable than > "\134012\134040\134040\134040\134040\" :) These backslashes are regular backslashes... 00000fa0 76 65 6c 20 64 6f 63 62 6c 6f 63 6b 2e 0d 0a 2a |vel docblock...*| 00000fb0 2f 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 41 20 63 6c |/..../**..* A cl| 00000fc0 61 73 73 20 66 6f 72 20 72 65 61 64 69 6e 67 20 |ass for reading | 00000fd0 4d 69 63 72 6f 73 6f 66 74 20 45 78 63 65 6c 20 |Microsoft Excel | 00000fe0 53 70 72 65 61 64 73 68 65 65 74 73 2e 0d 0a 2a |Spreadsheets...*| 00000ff0 0d 0a 2a 20 4f 72 69 67 69 6e 61 6c 6c 79 20 64 |..* Originally d| 00001000 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| 00001010 34 30 5c 31 33 34 30 34 30 2f 2f 22 23 2c 23 23 |40\134040//"#,##| 00001020 30 2e 30 30 22 2c 0d 5c 31 33 34 30 31 32 5c 31 |0.00",.\134012\1| 00001030 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001040 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001050 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 00001060 31 33 34 30 34 30 30 78 35 5c 31 33 34 30 34 30 |1340400x5\134040| 00001070 3d 3e 5c 31 33 34 30 34 30 22 25 31 2e 30 66 22 |=>\134040"%1.0f"| 00001080 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |,\134040\134040\| 00001090 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 |134040\134040\13| 000010a0 34 30 34 30 2f 2a 22 24 23 2c 23 23 30 3b 28 24 |4040/*"$#,##0;($| 000010b0 23 2c 23 23 30 29 22 2c 2a 2f 0d 5c 31 33 34 30 |#,##0)",*/.\1340| 000010c0 31 32 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |12\134040\134040| 000010d0 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 000010e0 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 000010f0 30 34 30 5c 31 33 34 30 34 30 30 78 36 5c 31 33 |040\1340400x6\13| 00001100 34 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 24 25 |4040=>\134040'$%| 00001110 31 2e 30 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 |1.0f',\134040\13| 00001120 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| 00001130 34 30 2f 2a 22 24 23 2c 23 23 30 3b 28 24 23 2c |40/*"$#,##0;($#,| 00001140 23 23 30 29 22 2c 2a 2f 0d 5c 31 33 34 30 31 32 |##0)",*/.\134012| 00001150 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001160 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001170 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001180 30 5c 31 33 34 30 34 30 30 78 37 5c 31 33 34 30 |0\1340400x7\1340| 00001190 34 30 3d 3e 5c 31 33 34 30 34 30 27 24 25 31 2e |40=>\134040'$%1.| 000011a0 32 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 |2f',\134040\1340| 000011b0 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 000011c0 2f 2f 22 24 23 2c 23 23 30 2e 30 30 3b 28 24 23 |//"$#,##0.00;($#| 000011d0 2c 23 23 30 2e 30 30 29 22 2c 0d 5c 31 33 34 30 |,##0.00)",.\1340| 000011e0 31 32 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |12\134040\134040| 000011f0 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001200 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001210 30 34 30 5c 31 33 34 30 34 30 30 78 38 5c 31 33 |040\1340400x8\13| 00001220 34 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 24 25 |4040=>\134040'$%| 00001230 31 2e 32 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 |1.2f',\134040\13| 00001240 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| 00001250 34 30 2f 2f 22 24 23 2c 23 23 30 2e 30 30 3b 28 |40//"$#,##0.00;(| 00001260 24 23 2c 23 23 30 2e 30 30 29 22 2c 0d 5c 31 33 |$#,##0.00)",.\13| 00001270 34 30 31 32 5c 31 33 34 30 34 30 5c 31 33 34 30 |4012\134040\1340| 00001280 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 00001290 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 000012a0 33 34 30 34 30 5c 31 33 34 30 34 30 30 78 39 5c |34040\1340400x9\| 000012b0 31 33 34 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 |134040=>\134040'| 000012c0 25 31 2e 30 66 25 25 27 2c 5c 31 33 34 30 34 30 |%1.0f%%',\134040| 000012d0 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 2f 2f |\134040\134040//| 000012e0 5c 31 33 34 30 34 30 22 30 25 22 0d 5c 31 33 34 |\134040"0%".\134| 000012f0 30 31 32 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |012\134040\13404| 00001300 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 00001310 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 |134040\134040\13| 00001320 34 30 34 30 5c 31 33 34 30 34 30 30 78 61 5c 31 |4040\1340400xa\1| 00001330 33 34 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 25 |34040=>\134040'%| 00001340 31 2e 32 66 25 25 27 2c 5c 31 33 34 30 34 30 5c |1.2f%%',\134040\| 00001350 31 33 34 30 34 30 5c 31 33 34 30 34 30 2f 2f 5c |134040\134040//\| 00001360 31 33 34 30 34 30 22 30 2e 30 30 25 22 0d 5c 31 |134040"0.00%".\1| 00001370 33 34 30 31 32 5c 31 33 34 30 34 30 5c 31 33 34 |34012\134040\134| 00001380 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001390 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 000013a0 31 33 34 30 34 30 5c 31 33 34 30 34 30 30 78 62 |134040\1340400xb| 000013b0 5c 31 33 34 30 34 30 3d 3e 5c 31 33 34 30 34 30 |\134040=>\134040| 000013c0 27 25 31 2e 32 66 27 2c 5c 31 33 34 30 34 30 5c |'%1.2f',\134040\| 000013d0 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 |134040\134040\13| 000013e0 34 30 34 30 5c 31 33 34 30 34 30 2f 2f 5c 31 33 |4040\134040//\13| 000013f0 34 30 34 30 30 2e 30 30 45 30 30 22 2c 0d 5c 31 |40400.00E00",.\1| 00001400 33 34 30 31 32 5c 31 33 34 30 34 30 5c 31 33 34 |34012\134040\134| 00001410 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001420 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 00001430 31 33 34 30 34 30 5c 31 33 34 30 34 30 30 78 32 |134040\1340400x2| 00001440 35 5c 31 33 34 30 34 30 3d 3e 5c 31 33 34 30 34 |5\134040=>\13404| 00001450 30 27 25 31 2e 30 66 27 2c 5c 31 33 34 30 34 30 |0'%1.0f',\134040| 00001460 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001470 33 34 30 34 30 2f 2f 5c 31 33 34 30 34 30 22 23 |34040//\134040"#| 00001480 2c 23 23 30 3b 28 23 2c 23 23 30 29 22 2c 0d 5c |,##0;(#,##0)",.\| 00001490 31 33 34 30 31 32 5c 31 33 34 30 34 30 5c 31 33 |134012\134040\13| 000014a0 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| 000014b0 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 000014c0 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 30 78 |\134040\1340400x| 000014d0 32 36 5c 31 33 34 30 34 30 3d 3e 5c 31 33 34 30 |26\134040=>\1340| 000014e0 34 30 27 25 31 2e 30 66 27 2c 5c 31 33 34 30 34 |40'%1.0f',\13404| 000014f0 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 00001500 31 33 34 30 34 30 2f 2f 22 23 2c 23 23 30 3b 28 |134040//"#,##0;(| 00001510 23 2c 23 23 30 29 22 2c 0d 5c 31 33 34 30 31 32 |#,##0)",.\134012| 00001520 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001530 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001540 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001550 30 5c 31 33 34 30 34 30 30 78 32 37 5c 31 33 34 |0\1340400x27\134| 00001560 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 25 31 2e |040=>\134040'%1.| 00001570 32 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 |2f',\134040\1340| 00001580 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 00001590 2f 2f 22 23 2c 23 23 30 2e 30 30 3b 28 23 2c 23 |//"#,##0.00;(#,#| 000015a0 23 30 2e 30 30 29 22 2c 0d 5c 31 33 34 30 31 32 |#0.00)",.\134012| 000015b0 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 000015c0 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 000015d0 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 000015e0 30 5c 31 33 34 30 34 30 30 78 32 38 5c 31 33 34 |0\1340400x28\134| 000015f0 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 25 31 2e |040=>\134040'%1.| 00001600 32 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 |2f',\134040\1340| 00001610 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 00001620 2f 2f 22 23 2c 23 23 30 2e 30 30 3b 28 23 2c 23 |//"#,##0.00;(#,#| 00001630 23 30 2e 30 30 29 22 2c 0d 5c 31 33 34 30 31 32 |#0.00)",.\134012| 00001640 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001650 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001660 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001670 30 5c 31 33 34 30 34 30 30 78 32 39 5c 31 33 34 |0\1340400x29\134| 00001680 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 25 31 2e |040=>\134040'%1.| 00001690 30 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 |0f',\134040\1340| 000016a0 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 |40\134040\134040| 000016b0 2f 2f 22 23 2c 23 23 30 3b 28 23 2c 23 23 30 29 |//"#,##0;(#,##0)| 000016c0 22 2c 0d 5c 31 33 34 30 31 32 5c 31 33 34 30 34 |",.\134012\13404| 000016d0 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c |0\134040\134040\| 000016e0 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 |134040\134040\13| 000016f0 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| 00001700 34 30 30 78 32 61 5c 31 33 34 30 34 30 3d 3e 5c |400x2a\134040=>\| 00001710 31 33 34 30 34 30 27 24 25 31 2e 30 66 27 2c 5c |134040'$%1.0f',\| 00001720 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 |134040\134040\13| 00001730 34 30 34 30 2f 2f 22 24 23 2c 23 23 30 3b 28 24 |4040//"$#,##0;($| 00001740 23 2c 23 23 30 29 22 2c 0d 5c 31 33 34 30 31 32 |#,##0)",.\134012| 00001750 5c 31 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 |\134040\134040\1| 00001760 33 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 |34040\134040\134| 00001770 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 34 |040\134040\13404| 00001780 30 5c 31 33 34 30 34 30 30 78 32 62 5c 31 33 34 |0\1340400x2b\134| 00001790 30 34 30 3d 3e 5c 31 33 34 30 34 30 27 25 31 2e |040=>\134040'%1.| 000017a0 32 66 27 2c 5c 31 33 34 30 34 30 5c 31 33 34 30 |2f',\134040\1340| 000017b0 34 30 5c 31 33 34 30 34 30 5c 30 34 30 5c 30 34 |40\134040\040\04| 000017c0 30 5c 30 34 30 2f 2f 22 23 2c 23 23 30 2e 30 30 |0\040//"#,##0.00| 000017d0 3b 28 23 2c 23 23 30 2e 30 30 29 22 2c 0d 5c 30 |;(#,##0.00)",.\0| 000017e0 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |12\040\040\040\0| 000017f0 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 00001800 34 30 30 78 32 63 5c 30 34 30 3d 3e 5c 30 34 30 |400x2c\040=>\040| 00001810 27 24 25 31 2e 32 66 27 2c 5c 30 34 30 5c 30 34 |'$%1.2f',\040\04| 00001820 30 5c 30 34 30 2f 2f 22 24 23 2c 23 23 30 2e 30 |0\040//"$#,##0.0| 00001830 30 3b 28 24 23 2c 23 23 30 2e 30 30 29 22 2c 0d |0;($#,##0.00)",.| 00001840 5c 30 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\012\040\040\040| 00001850 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\040\040\040\040| 00001860 5c 30 34 30 30 78 33 30 5c 30 34 30 3d 3e 5c 30 |\0400x30\040=>\0| 00001870 34 30 27 25 31 2e 30 66 27 29 3b 5c 30 34 30 5c |40'%1.0f');\040\| 00001880 30 34 30 5c 30 34 30 5c 30 34 30 61 72 72 61 79 |040\040\040array| 00001890 0d 5c 30 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 |.\012\040\040\04| 000018a0 30 5c 30 34 30 5c 30 34 30 2a 5c 30 34 30 40 61 |0\040\040*\040@a| 000018b0 63 63 65 73 73 5c 30 34 30 70 75 62 6c 69 63 0d |ccess\040public.| 000018c0 5c 30 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\012\040\040\040| 000018d0 5c 30 34 30 5c 30 34 30 2a 2f 0d 5c 30 31 32 5c |\040\040*/.\012\| 000018e0 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 76 |040\040\040\040v| 000018f0 61 72 5c 30 34 30 24 6e 75 6d 62 65 72 46 6f 72 |ar\040$numberFor| 00001900 6d 61 74 73 5c 30 34 30 3d 5c 30 34 30 61 72 72 |mats\040=\040arr| 00001910 61 79 28 0d 5c 30 31 32 5c 30 34 30 5c 30 34 30 |ay(.\012\040\040| 00001920 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\040\040\040\040| 00001930 5c 30 34 30 5c 30 34 30 30 78 31 5c 30 34 30 3d |\040\0400x1\040=| 00001940 3e 5c 30 34 30 22 25 31 2e 30 66 22 2c 5c 30 34 |>\040"%1.0f",\04| 00001950 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001960 30 2f 2f 5c 30 34 30 22 30 22 0d 5c 30 31 32 5c |0//\040"0".\012\| 00001970 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c |040\040\040\040\| 00001980 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 |040\040\040\0400| 00001990 78 32 5c 30 34 30 3d 3e 5c 30 34 30 22 25 31 2e |x2\040=>\040"%1.| 000019a0 32 66 22 2c 5c 30 34 30 5c 30 34 30 5c 30 34 30 |2f",\040\040\040| 000019b0 5c 30 34 30 5c 30 34 30 2f 2f 5c 30 34 30 22 30 |\040\040//\040"0| 000019c0 2e 30 30 22 2c 0d 5c 30 31 32 5c 30 34 30 5c 30 |.00",.\012\040\0| 000019d0 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 000019e0 34 30 5c 30 34 30 5c 30 34 30 30 78 33 5c 30 34 |40\040\0400x3\04| 000019f0 30 3d 3e 5c 30 34 30 22 25 31 2e 30 66 22 2c 5c |0=>\040"%1.0f",\| 00001a00 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c |040\040\040\040\| 00001a10 30 34 30 2f 2f 22 23 2c 23 23 30 22 2c 0d 5c 30 |040//"#,##0",.\0| 00001a20 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |12\040\040\040\0| 00001a30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 00001a40 34 30 30 78 34 5c 30 34 30 3d 3e 5c 30 34 30 22 |400x4\040=>\040"| 00001a50 25 31 2e 32 66 22 2c 5c 30 34 30 5c 30 34 30 5c |%1.2f",\040\040\| 00001a60 30 34 30 5c 30 34 30 5c 30 34 30 2f 2f 22 23 2c |040\040\040//"#,| 00001a70 23 23 30 2e 30 30 22 2c 0d 5c 30 31 32 5c 30 34 |##0.00",.\012\04| 00001a80 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001a90 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 78 35 |0\040\040\0400x5| 00001aa0 5c 30 34 30 3d 3e 5c 30 34 30 22 25 31 2e 30 66 |\040=>\040"%1.0f| 00001ab0 22 2c 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |",\040\040\040\0| 00001ac0 34 30 5c 30 34 30 2f 2a 22 24 23 2c 23 23 30 3b |40\040/*"$#,##0;| 00001ad0 28 24 23 2c 23 23 30 29 22 2c 2a 2f 0d 5c 30 31 |($#,##0)",*/.\01| 00001ae0 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |2\040\040\040\04| 00001af0 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001b00 30 30 78 36 5c 30 34 30 3d 3e 5c 30 34 30 27 24 |00x6\040=>\040'$| 00001b10 25 31 2e 30 66 27 2c 5c 30 34 30 5c 30 34 30 5c |%1.0f',\040\040\| 00001b20 30 34 30 5c 30 34 30 2f 2a 22 24 23 2c 23 23 30 |040\040/*"$#,##0| 00001b30 3b 28 24 23 2c 23 23 30 29 22 2c 2a 2f 0d 5c 30 |;($#,##0)",*/.\0| 00001b40 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |12\040\040\040\0| 00001b50 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 00001b60 34 30 30 78 37 5c 30 34 30 3d 3e 5c 30 34 30 27 |400x7\040=>\040'| 00001b70 24 25 31 2e 32 66 27 2c 5c 30 34 30 5c 30 34 30 |$%1.2f',\040\040| 00001b80 5c 30 34 30 5c 30 34 30 2f 2f 22 24 23 2c 23 23 |\040\040//"$#,##| 00001b90 30 2e 30 30 3b 28 24 23 2c 23 23 30 2e 30 30 29 |0.00;($#,##0.00)| 00001ba0 22 2c 0d 5c 30 31 32 5c 30 34 30 5c 30 34 30 5c |",.\012\040\040\| 00001bb0 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c |040\040\040\040\| 00001bc0 30 34 30 5c 30 34 30 30 78 38 5c 30 34 30 3d 3e |040\0400x8\040=>| 00001bd0 5c 30 34 30 27 24 25 31 2e 32 66 27 2c 5c 30 34 |\040'$%1.2f',\04| 00001be0 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 2f 2f 22 |0\040\040\040//"| 00001bf0 24 23 2c 23 23 30 2e 30 30 3b 28 24 23 2c 23 23 |$#,##0.00;($#,##| 00001c00 30 2e 30 30 29 22 2c 0d 5c 30 31 32 5c 30 34 30 |0.00)",.\012\040| 00001c10 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\040\040\040\040| 00001c20 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 78 39 5c |\040\040\0400x9\| 00001c30 30 34 30 3d 3e 5c 30 34 30 27 25 31 2e 30 66 25 |040=>\040'%1.0f%| 00001c40 25 27 2c 5c 30 34 30 5c 30 34 30 5c 30 34 30 2f |%',\040\040\040/| 00001c50 2f 5c 30 34 30 22 30 25 22 0d 5c 30 31 32 5c 30 |/\040"0%".\012\0| 00001c60 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 00001c70 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 78 |40\040\040\0400x| 00001c80 61 5c 30 34 30 3d 3e 5c 30 34 30 27 25 31 2e 32 |a\040=>\040'%1.2| 00001c90 66 25 25 27 2c 5c 30 34 30 5c 30 34 30 5c 30 34 |f%%',\040\040\04| 00001ca0 30 2f 2f 5c 30 34 30 22 30 2e 30 30 25 22 0d 5c |0//\040"0.00%".\| 00001cb0 30 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c |012\040\040\040\| 00001cc0 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c |040\040\040\040\| 00001cd0 30 34 30 30 78 62 5c 30 34 30 3d 3e 5c 30 34 30 |0400xb\040=>\040| 00001ce0 27 25 31 2e 32 66 27 2c 5c 30 34 30 5c 30 34 30 |'%1.2f',\040\040| 00001cf0 5c 30 34 30 5c 30 34 30 5c 30 34 30 2f 2f 5c 30 |\040\040\040//\0| 00001d00 34 30 30 2e 30 30 45 30 30 22 2c 0d 5c 30 31 32 |400.00E00",.\012| 00001d10 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\040\040\040\040| * 00001d30 30 78 32 35 5c 30 34 30 3d 3e 5c 30 34 30 27 25 |0x25\040=>\040'%| 00001d40 31 2e 30 66 27 2c 5c 30 34 30 5c 30 34 30 5c 30 |1.0f',\040\040\0| 00001d50 34 30 5c 30 34 30 2f 2f 5c 30 34 30 22 23 2c 23 |40\040//\040"#,#| 00001d60 23 30 3b 28 23 2c 23 23 30 29 22 2c 0d 5c 30 31 |#0;(#,##0)",.\01| 00001d70 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |2\040\040\040\04| 00001d80 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001d90 30 30 78 32 36 5c 30 34 30 3d 3e 5c 30 34 30 27 |00x26\040=>\040'| 00001da0 25 31 2e 30 66 27 2c 5c 30 34 30 5c 30 34 30 5c |%1.0f',\040\040\| 00001db0 30 34 30 5c 30 34 30 2f 2f 22 23 2c 23 23 30 3b |040\040//"#,##0;| 00001dc0 28 23 2c 23 23 30 29 22 2c 0d 5c 30 31 32 5c 30 |(#,##0)",.\012\0| 00001dd0 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 |40\040\040\040\0| 00001de0 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 78 |40\040\040\0400x| 00001df0 32 37 5c 30 34 30 3d 3e 5c 30 34 30 27 25 31 2e |27\040=>\040'%1.| 00001e00 32 66 27 2c 5c 30 34 30 5c 30 34 30 5c 30 34 30 |2f',\040\040\040| 00001e10 5c 30 34 30 2f 2f 22 23 2c 23 23 30 2e 30 30 3b |\040//"#,##0.00;| 00001e20 28 23 2c 23 23 30 2e 30 30 29 22 2c 0d 5c 30 31 |(#,##0.00)",.\01| 00001e30 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |2\040\040\040\04| 00001e40 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001e50 30 30 78 32 38 5c 30 34 30 3d 3e 5c 30 34 30 27 |00x28\040=>\040'| 00001e60 25 31 2e 32 66 27 2c 5c 30 34 30 5c 30 34 30 5c |%1.2f',\040\040\| 00001e70 30 34 30 5c 30 34 30 2f 2f 22 23 2c 23 23 30 2e |040\040//"#,##0.| 00001e80 30 30 3b 28 23 2c 23 23 30 2e 30 30 29 22 2c 0d |00;(#,##0.00)",.| 00001e90 5c 30 31 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\012\040\040\040| 00001ea0 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 |\040\040\040\040| 00001eb0 5c 30 34 30 30 78 32 39 5c 30 34 30 3d 3e 5c 30 |\0400x29\040=>\0| 00001ec0 34 30 27 25 31 2e 30 66 27 2c 5c 30 34 30 5c 30 |40'%1.0f',\040\0| 00001ed0 34 30 5c 30 34 30 5c 30 34 30 2f 2f 22 23 2c 23 |40\040\040//"#,#| 00001ee0 23 30 3b 28 23 2c 23 23 30 29 22 2c 0d 5c 30 31 |#0;(#,##0)",.\01| 00001ef0 32 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |2\040\040\040\04| 00001f00 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001f10 30 30 78 32 61 5c 30 34 30 3d 3e 5c 30 34 30 27 |00x2a\040=>\040'| 00001f20 24 25 31 2e 30 66 27 2c 5c 30 34 30 5c 30 34 30 |$%1.0f',\040\040| 00001f30 5c 30 34 30 2f 2f 22 24 23 2c 23 23 30 3b 28 24 |\040//"$#,##0;($| 00001f40 23 2c 23 23 30 29 22 2c 0d 5c 30 31 32 5c 30 34 |#,##0)",.\012\04| 00001f50 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 5c 30 34 |0\040\040\040\04| 00001f60 30 5c 30 34 30 5c 30 34 30 5c 30 34 30 30 78 32 |0\040\040\0400x2| 00001f70 62 5c 30 34 30 3d 3e 5c 30 34 30 27 25 31 2e 32 |b\040=>\040'%1.2| 00001f80 66 27 2c 5c 30 34 30 5c 30 34 30 5c 30 34 30 20 |f',\040\040\040 | 00001f90 20 20 2f 2f 22 23 2c 23 23 30 2e 30 30 3b 28 23 | //"#,##0.00;(#| 00001fa0 2c 23 23 30 2e 30 30 29 22 2c 0d 0a 20 20 20 20 |,##0.00)",.. | 00001fb0 20 20 20 20 30 78 32 63 20 3d 3e 20 27 24 25 31 | 0x2c => '$%1| 00001fc0 2e 32 66 27 2c 20 20 20 2f 2f 22 24 23 2c 23 23 |.2f', //"$#,##| 00001fd0 30 2e 30 30 3b 28 24 23 2c 23 23 30 2e 30 30 29 |0.00;($#,##0.00)| 00001fe0 22 2c 0d 0a 20 20 20 20 20 20 20 20 30 78 33 30 |",.. 0x30| 00001ff0 20 3d 3e 20 27 25 31 2e 30 66 27 29 3b 20 20 20 | => '%1.0f'); | 00002000 2f 2f 22 23 23 30 2e 30 45 30 22 3b 0d 0a 0d 0a |//"##0.0E0";....| 00002010 20 20 20 20 2f 2f 20 7d 7d 7d 0d 0a 20 20 20 20 | // }}}.. | 00002020 2f 2f 20 7b 7b 7b 20 53 70 72 65 61 64 73 68 65 |// {{{ Spreadshe| 00002030 65 74 5f 45 78 63 65 6c 5f 52 65 61 64 65 72 28 |et_Excel_Reader(| 00002040 29 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 |).... /**.. | 00002050 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 6f 72 | * Constructor| 00002060 0d 0a 20 20 20 20 20 2a 0d 0a 20 20 20 20 20 2a |.. *.. *| 00002070 20 53 6f 6d 65 20 62 61 73 69 63 20 69 6e 69 74 | Some basic init| > > -Eric -- Arkadiusz Miƛkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From owner-xfs@oss.sgi.com Fri Oct 31 09:00:10 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VG0Aqn019266 for ; Fri, 31 Oct 2008 09:00:10 -0700 X-ASG-Debug-ID: 1225468810-032300620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8B1A314BE2E4 for ; Fri, 31 Oct 2008 09:00:10 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id vlAUrTAhxHmptohJ for ; Fri, 31 Oct 2008 09:00:10 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id m9VG05O6015083; Fri, 31 Oct 2008 12:00:05 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id m9VG04iS003837; Fri, 31 Oct 2008 12:00:04 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id m9VG03LP024240; Fri, 31 Oct 2008 12:00:04 -0400 Message-ID: <490B2B83.7050009@sandeen.net> Date: Fri, 31 Oct 2008 11:00:03 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.16 (X11/20080723) MIME-Version: 1.0 To: Arkadiusz Miskiewicz CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.25.18 in memory corruption? Subject: Re: 2.6.25.18 in memory corruption? References: <200810310858.07632.arekm@maven.pl> <490B1DA1.4030107@sandeen.net> <200810311647.33629.arekm@maven.pl> In-Reply-To: <200810311647.33629.arekm@maven.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1225468811 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0270 1.0000 -1.8463 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.85 X-Barracuda-Spam-Status: No, SCORE=-1.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9141 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Arkadiusz Miskiewicz wrote: > On Friday 31 of October 2008, Eric Sandeen wrote: >> Arkadiusz Miskiewicz wrote: > >>> Any ideas what that could be? >>> >>> /** >>> * A class for reading Microsoft Excel Spreadsheets. >>> * >>> * Originally >>> d4040\134040\134040\134040//"#,##0.00",^M\134012\134040\134040\134040\134 >>> 040\134040\134040\134040\1340400x5\134040=>\134040"%1.0f",\134040\134040\1 >>> 34040\134040\134040/*"$#,##0; >> Ow, my eyes ;) >> >> try: >> >> # hexdump -C $FILENAME >> >> to see if it's obvious where the corruption boundaries are, or any >> patterns that might be more readable than >> "\134012\134040\134040\134040\134040\" :) > > These backslashes are regular backslashes... And how does that compare to the good backup? I assume that the corruption starts... > 00000fa0 76 65 6c 20 64 6f 63 62 6c 6f 63 6b 2e 0d 0a 2a |vel docblock...*| > 00000fb0 2f 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 41 20 63 6c |/..../**..* A cl| > 00000fc0 61 73 73 20 66 6f 72 20 72 65 61 64 69 6e 67 20 |ass for reading | > 00000fd0 4d 69 63 72 6f 73 6f 66 74 20 45 78 63 65 6c 20 |Microsoft Excel | > 00000fe0 53 70 72 65 61 64 73 68 65 65 74 73 2e 0d 0a 2a |Spreadsheets...*| > 00000ff0 0d 0a 2a 20 4f 72 69 67 69 6e 61 6c 6c 79 20 64 |..* Originally d| here? well, that's right on a 4k block boundary... > 00001000 34 30 34 30 5c 31 33 34 30 34 30 5c 31 33 34 30 |4040\134040\1340| > 00001010 34 30 5c 31 33 34 30 34 30 2f 2f 22 23 2c 23 23 |40\134040//"#,##| > 00001020 30 2e 30 30 22 2c 0d 5c 31 33 34 30 31 32 5c 31 |0.00",.\134012\1| But it's hard to tell for sure since I don't know what the good data looks like. (was this reader.php?) If you have a good copy, try hexdump -C on both and diff them to see more clearly where the corruption is. strange. Is this pretty repeatable? -Eric From owner-xfs@oss.sgi.com Fri Oct 31 13:18:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKIUKW017843 for ; Fri, 31 Oct 2008 13:18:32 -0700 X-ASG-Debug-ID: 1225484311-0efb00be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7917E12B198D for ; Fri, 31 Oct 2008 13:18:31 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ck4IBo9oPAxELtCS for ; Fri, 31 Oct 2008 13:18:31 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0Ry-0004Uf-I9; Fri, 31 Oct 2008 20:18:30 +0000 Date: Fri, 31 Oct 2008 16:18:30 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/5] XFS: fix error inversion problems with data flushing Subject: Re: [PATCH 1/5] XFS: fix error inversion problems with data flushing Message-ID: <20081031201830.GA20309@infradead.org> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> <1225415729-26514-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1225415729-26514-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225484311 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 12:15:25PM +1100, Dave Chinner wrote: > XFS gets the sign of the error wrong in several places when > gathering the error from generic linux functions. These functions > return negative error values, while the core XFS code returns > positive error values. Hence when XFS inverts the error to be > returned to the VFS, it can incorrectly invert a negative > error and this error will be ignored by the syscall return. > > Fix all the problems related to calling filemap_* functions. > > Problem initially identified by Nick Piggin in xfs_fsync(). But this patch is a little more than just the error code inversions.. From owner-xfs@oss.sgi.com Fri Oct 31 13:19:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKJSxw017971 for ; Fri, 31 Oct 2008 13:19:28 -0700 X-ASG-Debug-ID: 1225484369-684900b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1075C567FB6 for ; Fri, 31 Oct 2008 13:19:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 6IlOtVLTPpQSa2NR for ; Fri, 31 Oct 2008 13:19:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0Sv-0006jY-Fx; Fri, 31 Oct 2008 20:19:29 +0000 Date: Fri, 31 Oct 2008 16:19:29 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/5] XFS: fix uninitialised variable bug in dquot release. Subject: Re: [PATCH 3/5] XFS: fix uninitialised variable bug in dquot release. Message-ID: <20081031201929.GB20309@infradead.org> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> <1225415729-26514-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1225415729-26514-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225484370 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 12:15:27PM +1100, Dave Chinner wrote: > gcc on ARM warns about an using an uninitialised variable > in xfs_qm_dqrele_all_inodes(). This is a real bug, but gcc > on x86_64 is not reporting this warning so it went unnoticed. > > Fix the bug by bring the inode radix tree walk code up to > date with xfs_sync_inodes_ag(). Looks good. From owner-xfs@oss.sgi.com Fri Oct 31 13:20:27 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKKR2n018306 for ; Fri, 31 Oct 2008 13:20:27 -0700 X-ASG-Debug-ID: 1225484427-71c400b50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F49614C2995 for ; Fri, 31 Oct 2008 13:20:27 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id tl8Jebnx2RTsqWxq for ; Fri, 31 Oct 2008 13:20:27 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0Tr-0000dC-Bp; Fri, 31 Oct 2008 20:20:27 +0000 Date: Fri, 31 Oct 2008 16:20:27 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/5] XFS: fix spurious uninitialised variable warning in xfs_growfs_rt Subject: Re: [PATCH 4/5] XFS: fix spurious uninitialised variable warning in xfs_growfs_rt Message-ID: <20081031202027.GC20309@infradead.org> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> <1225415729-26514-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1225415729-26514-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225484428 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 12:15:28PM +1100, Dave Chinner wrote: > gcc is warning about an uninitialised variable in xfs_growfs_rt(). > This is a false positive. Fix it by changing the scope of the > transaction pointer to wholly within the internal loop inside > the function. > > While there, preemptively change xfs_growfs_rt_alloc() in the > same way as it has exactly the same structure as xfs_growfs_rt() > but gcc is not warning about it. Yet. Looks good. From owner-xfs@oss.sgi.com Fri Oct 31 13:21:28 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKLSiu018639 for ; Fri, 31 Oct 2008 13:21:28 -0700 X-ASG-Debug-ID: 1225484489-4d3a01ff0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 29D59567FEF for ; Fri, 31 Oct 2008 13:21:29 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Q9dGrbBcD4ZfICP4 for ; Fri, 31 Oct 2008 13:21:29 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0Ur-0002sM-IH; Fri, 31 Oct 2008 20:21:29 +0000 Date: Fri, 31 Oct 2008 16:21:29 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/5] XFS: Avoid using inodes that haven't been completely initialised Subject: Re: [PATCH 5/5] XFS: Avoid using inodes that haven't been completely initialised Message-ID: <20081031202129.GD20309@infradead.org> References: <1225415729-26514-1-git-send-email-david@fromorbit.com> <1225415729-26514-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1225415729-26514-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225484490 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 12:15:29PM +1100, Dave Chinner wrote: > The radix tree walks in xfs_sync_inodes_ag and xfs_qm_dqrele_all_inodes() > can find inodes that are still undergoing initialisation. Avoid > them by checking for the the XFS_INEW() flag once we have a reference > on the inode. This flag is cleared once the inode is properly initialised. Yeah, that's what I meant with my initial comment that we can grab the inodes anytime they are on the radix tree. Looks good. From owner-xfs@oss.sgi.com Fri Oct 31 13:31:23 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKVMPq019369 for ; Fri, 31 Oct 2008 13:31:23 -0700 X-ASG-Debug-ID: 1225485083-0f0a00f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D0C2C12B1BB3 for ; Fri, 31 Oct 2008 13:31:23 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id lOuL5e8SEIctO2ii for ; Fri, 31 Oct 2008 13:31:23 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0eR-0007KW-7U; Fri, 31 Oct 2008 20:31:23 +0000 Date: Fri, 31 Oct 2008 16:31:23 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031203123.GA11514@infradead.org> References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031001249.GM4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225485083 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 11:12:49AM +1100, Dave Chinner wrote: > Right - that's exactly where we should be going with this, I think. > I'd suggest two callouts, perhaps: ->sync_data and ->sync_metadata. > The freeze code can then still operate in two stages, and we can > also use then for separating data and inode writeback in pdflush.... > > FWIW, I mentioned doing this sort of thing here: > > http://xfs.org/index.php/Improving_inode_Caching#Avoiding_the_Generic_pdflush_Code > > I think I'll look at redoing do_sync() to provide a custom sync > method before trying to fix XFS.... And you weren't the first to thing of this. Reiser4 for example has bad a patch forever to turn sync_sb_inodes into a filesystem method, and I think something similar is what we want. When talking about syncing we basically want a few things: - sync out data, either async (from pdflush) or sync (from sync, freeze, remount ro or unmount) - sync out metadata (from pdflush), either async or sync (from sync, freeze, remount ro or unmount) and then we want pdflush / sync / etc call into it. If we are doing this correctly this would also avoid having our own xfssyncd. And as we found out it's not just sync that gets it wrong, it's also fsync (which isn't part of the above picture as it's per-inode) that gets this utterly wrong, as well as all kinds of syncs, not just the unmount one. Combine this with the other data integrity issues Nick found in write_cache_pages I come to the conclusion that this whole area needs some profound audit and re-architecture urgently. From owner-xfs@oss.sgi.com Fri Oct 31 13:37:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VKbFro019934 for ; Fri, 31 Oct 2008 13:37:16 -0700 X-ASG-Debug-ID: 1225485436-325903940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0BA30568142 for ; Fri, 31 Oct 2008 13:37:16 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ncnqMOCaTGBLEfsE for ; Fri, 31 Oct 2008 13:37:16 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw0k8-0001qK-Fq for xfs@oss.sgi.com; Fri, 31 Oct 2008 20:37:16 +0000 Date: Fri, 31 Oct 2008 16:37:16 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031203716.GB11514@infradead.org> References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> <20081031004814.GN4985@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031004814.GN4985@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225485437 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Fri, Oct 31, 2008 at 11:48:14AM +1100, Dave Chinner wrote: > @@ -1118,8 +1118,7 @@ xfs_fs_write_super( > struct super_block *sb) > { > if (!(sb->s_flags & MS_RDONLY)) > + xfs_sync_fsdata(XFS_M(sb), SYNC_WAIT); Not commenting on the rest yet, but I'm sure you noticed that before your patch we ever called xfs_sync_fsdata with SYNC_WAIT at all. I think with the current codebase there is nothing to guarantee we ever write the superblock out to disk as xfs_wait_buftarg specificly excludes the superblock (XBF_FS_MANAGED) From owner-xfs@oss.sgi.com Fri Oct 31 14:28:07 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VLS6H6023047 for ; Fri, 31 Oct 2008 14:28:07 -0700 X-ASG-Debug-ID: 1225488486-719d01eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from t7.hostbaby.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B31BD1B70776 for ; Fri, 31 Oct 2008 14:28:07 -0700 (PDT) Received: from t7.hostbaby.com (t7.hostbaby.com [67.139.134.227]) by cuda.sgi.com with SMTP id Rtw6ULwzWrqWJGYo for ; Fri, 31 Oct 2008 14:28:07 -0700 (PDT) Received: (qmail 86331 invoked by uid 1009); 31 Oct 2008 18:44:58 -0000 To: xfs@oss.sgi.com From: "D:V::E:::" X-ASG-Orig-Subj: D:V::E::: PRESENTS: DISTURBIA @ LOVE Nightclub (FREE+VIP+$1000 costume contest) Subject: D:V::E::: PRESENTS: DISTURBIA @ LOVE Nightclub (FREE+VIP+$1000 costume contest) X-Sender: deja@dejadirect.com Date: Fri, 31 Oct 2008 11:44:58 -0700 Message-ID: <51902.204.1225478698.listbaby@www.dejadirect.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-Barracuda-Connect: t7.hostbaby.com[67.139.134.227] X-Barracuda-Start-Time: 1225488487 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5085 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.35 X-Barracuda-Spam-Status: No, SCORE=1.35 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9159 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words When is it: Tonight at 9:00 PM Where is it: LOVE Nightclub (3rd Floor Private VIP LOUNGE) 1350 Okie Street NE Washington DC 20002 How much is it: FREE VIP ENTRY ALLNIGHT with D:V::E::: pass & costume Join D:V::E::: in conjunction with Marc & Taz, TreWell, & BJ as we bring you Disturbia at LOVE this Friday. Big Tigger & 95.5 WPGC will broadcast LIVE from the building as you enjoy PRIVATE VIP BAR TREATMENT in our plush 3rd floor VIP pool table lounge. Also be sure to check out the 4th floor costume party, with a $1000 table service prize for the best costume. This will be DC's biggest Halloween event ever. To be added to the D:V::E::: guest list e-mail all FIRST & LAST name additions as well as a e-mail address for each guest to: S.Jones@DejaDirect.com by 4:00 PM today or print a pass from the following link: http://www.dejadirect.com/images/hugedvedisturbia.jpg **21 & UP** --------------------------------------------------------------- Change your info? Stop the emails? Easy! Just click this link: http://dejadirect.com/hostbaby/i?i=21760&p=cZ0jpnPYCcZktjSjB3Ou From owner-xfs@oss.sgi.com Fri Oct 31 14:54:36 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VLsZIK024282 for ; Fri, 31 Oct 2008 14:54:35 -0700 X-ASG-Debug-ID: 1225490074-71d602560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6409B14C40B4 for ; Fri, 31 Oct 2008 14:54:34 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id GJXTDuTcBwy7e5go for ; Fri, 31 Oct 2008 14:54:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LIXk/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,524,1220193000"; d="scan'208";a="222553264" Received: from ppp121-44-133-228.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.133.228]) by ipmail01.adl6.internode.on.net with ESMTP; 01 Nov 2008 08:24:32 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kw1ws-00031Q-OE; Sat, 01 Nov 2008 08:54:30 +1100 Date: Sat, 1 Nov 2008 08:54:30 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031215430.GB19509@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> <20081031203123.GA11514@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031203123.GA11514@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225490076 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Fri, Oct 31, 2008 at 04:31:23PM -0400, Christoph Hellwig wrote: > On Fri, Oct 31, 2008 at 11:12:49AM +1100, Dave Chinner wrote: > > Right - that's exactly where we should be going with this, I think. > > I'd suggest two callouts, perhaps: ->sync_data and ->sync_metadata. > > The freeze code can then still operate in two stages, and we can > > also use then for separating data and inode writeback in pdflush.... > > > > FWIW, I mentioned doing this sort of thing here: > > > > http://xfs.org/index.php/Improving_inode_Caching#Avoiding_the_Generic_pdflush_Code > > > > I think I'll look at redoing do_sync() to provide a custom sync > > method before trying to fix XFS.... > > And you weren't the first to thing of this. Reiser4 for example > has bad a patch forever to turn sync_sb_inodes into a filesystem method, > and I think something similar is what we want. When talking about > syncing we basically want a few things: > > - sync out data, either async (from pdflush) or sync > (from sync, freeze, remount ro or unmount) > - sync out metadata (from pdflush), either async or sync > (from sync, freeze, remount ro or unmount) Effectively, yes. Currently we iterate inodes for data and "metadata" sync, and the only other concept is writing superblocks. I think most filesystems have more types of metadata than this, so it makes sense for sync to work on abstracts sync as data and metadata rather than data, inodes and superblocks... > and then we want pdflush / sync / etc call into it. If we are doing > this correctly this would also avoid having our own xfssyncd. Yes, though we'd need to change a couple of the functions that xfssynd does to pdflush operations... > And as we found out it's not just sync that gets it wrong, it's also > fsync (which isn't part of the above picture as it's per-inode) that > gets this utterly wrong, as well as all kinds of syncs, not just the > unmount one. Async writeback (write_inode()) has the same problem as fsync - writing the inode before waiting for data I/O to complete - which means we've got to jump through hoops in the filesystem to avoid blocking on inodes that can't be immediately flushed, and often we end up writing the inode multiple times and having to issue log forces whenw e shouldn't need to. Effectively we have to tell the VFS to "try again later" the entire time data is being flushed before we can write the inode and it's exceedingly inefficient..... > Combine this with the other data integrity issues Nick > found in write_cache_pages I come to the conclusion that this whole area > needs some profound audit and re-architecture urgently. It's looking more and more that way, isn't it? Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 31 15:03:52 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VM3qoa024957 for ; Fri, 31 Oct 2008 15:03:52 -0700 X-ASG-Debug-ID: 1225490631-553803640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2900A56904D for ; Fri, 31 Oct 2008 15:03:52 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id 5oBk7ay0fmKnftoU for ; Fri, 31 Oct 2008 15:03:52 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LIXk/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,524,1220193000"; d="scan'208";a="222556630" Received: from ppp121-44-133-228.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.133.228]) by ipmail01.adl6.internode.on.net with ESMTP; 01 Nov 2008 08:33:50 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kw25t-0003EZ-9s; Sat, 01 Nov 2008 09:03:49 +1100 Date: Sat, 1 Nov 2008 09:03:49 +1100 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031220349.GC19509@disturbed> Mail-Followup-To: Christoph Hellwig , xfs@oss.sgi.com References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> <20081031004814.GN4985@disturbed> <20081031203716.GB11514@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031203716.GB11514@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225490633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 31, 2008 at 04:37:16PM -0400, Christoph Hellwig wrote: > On Fri, Oct 31, 2008 at 11:48:14AM +1100, Dave Chinner wrote: > > @@ -1118,8 +1118,7 @@ xfs_fs_write_super( > > struct super_block *sb) > > { > > if (!(sb->s_flags & MS_RDONLY)) > > + xfs_sync_fsdata(XFS_M(sb), SYNC_WAIT); > > Not commenting on the rest yet, but I'm sure you noticed that before > your patch we ever called xfs_sync_fsdata with SYNC_WAIT at all. I > think with the current codebase there is nothing to guarantee we ever > write the superblock out to disk as xfs_wait_buftarg specificly > excludes the superblock (XBF_FS_MANAGED) Almost. unmount calls xfs_unmountfs_writesb() which does a synchronous write of the superblock. But in the current code sync(1) certainly never, ever triggers a superblock write we wait for... Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 31 15:18:21 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VMIK2C026111 for ; Fri, 31 Oct 2008 15:18:21 -0700 X-ASG-Debug-ID: 1225491500-71b502e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail01.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 023A414C4038 for ; Fri, 31 Oct 2008 15:18:21 -0700 (PDT) Received: from ipmail01.adl6.internode.on.net (ipmail01.adl6.internode.on.net [203.16.214.146]) by cuda.sgi.com with ESMTP id UWvRryyTG1cCTTf2 for ; Fri, 31 Oct 2008 15:18:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEAM8S9kh5LIXk/2dsb2JhbADCJoFr X-IronPort-AV: E=Sophos;i="4.33,524,1220193000"; d="scan'208";a="222562255" Received: from ppp121-44-133-228.lns10.syd7.internode.on.net (HELO disturbed) ([121.44.133.228]) by ipmail01.adl6.internode.on.net with ESMTP; 01 Nov 2008 08:48:19 +1030 Received: from dave by disturbed with local (Exim 4.69) (envelope-from ) id 1Kw2Jt-0003Xs-Pr; Sat, 01 Nov 2008 09:18:17 +1100 Date: Sat, 1 Nov 2008 09:18:17 +1100 From: Dave Chinner To: Wietse Venema Cc: Eric Sandeen , Justin Piszcz , Postfix users , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? Message-ID: <20081031221817.GD19509@disturbed> Mail-Followup-To: Wietse Venema , Eric Sandeen , Justin Piszcz , Postfix users , xfs@oss.sgi.com References: <490B1C8B.7010607@sandeen.net> <20081031153758.EF0521F3E9E@spike.porcupine.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031153758.EF0521F3E9E@spike.porcupine.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-Barracuda-Connect: ipmail01.adl6.internode.on.net[203.16.214.146] X-Barracuda-Start-Time: 1225491502 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1804 1.0000 -0.9328 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.93 X-Barracuda-Spam-Status: No, SCORE=-0.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.1.9161 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Oct 31, 2008 at 11:37:58AM -0400, Wietse Venema wrote: > Eric Sandeen: > > > This > > > would violate a basic requirement of Postfix (don't lose data after > > > fsync). Postfix updates existing files all the time: it updates > > > queue files as it marks recipients as done, and it updates mailbox > > > files as it appends mail. > > > > As long as postfix is looking after data properly with fsyncs etc, xfs > > should be perfectly safe w.r.t. data integrity on a crash. If you see > > any other behavior, it's a *bug* which should be reported, and I'm sure > > it would be fixed. As far as I know, though, there is no issue here. > > The specific question is, will unclean shutdown cause loss of data > that was already fsynced, No. > when the file was updated after the fsync. and no. XFS guarantees that you won't lose anything you fsync()d. You might lose what you wrote after the fsync()), though, because you haven't fsync()d it. Obvious, yes? > For example, if the on-disk file metadata is updated after the file > data is appended, then there is no need to have a zero-fill problem > after crash during append. In case you didn't read Eric's response - that's exactly how we fixed XFS to prevent this problem. And please stop propagating this erroneous "zero-fill" meme - Eric addressed how wrong that FUD is as well. > What if the crash happens after Postfix requests a 1-byte write in > the middle of a file, i.e. without changing the size? A > reasonable implementation would not corrupt the file, but would > either update the file data or not change it. I can deal with > that. That is exactly how XFS has always behaved for non-extending data overwrite. i.e. Exactly the same pretty much every filesystem that has ever existed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From owner-xfs@oss.sgi.com Fri Oct 31 15:19:45 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VMJj1H026418 for ; Fri, 31 Oct 2008 15:19:45 -0700 X-ASG-Debug-ID: 1225491586-0f0a02d00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A693D13146A2 for ; Fri, 31 Oct 2008 15:19:46 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Fu13QlsffIbGf1FH for ; Fri, 31 Oct 2008 15:19:46 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw2LK-00041P-20; Fri, 31 Oct 2008 22:19:46 +0000 Date: Fri, 31 Oct 2008 18:19:46 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031221946.GA29761@infradead.org> References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> <20081031004814.GN4985@disturbed> <20081031203716.GB11514@infradead.org> <20081031220349.GC19509@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031220349.GC19509@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225491586 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Sat, Nov 01, 2008 at 09:03:49AM +1100, Dave Chinner wrote: > > > if (!(sb->s_flags & MS_RDONLY)) > > > + xfs_sync_fsdata(XFS_M(sb), SYNC_WAIT); > > > > Not commenting on the rest yet, but I'm sure you noticed that before > > your patch we ever called xfs_sync_fsdata with SYNC_WAIT at all. I > > think with the current codebase there is nothing to guarantee we ever > > write the superblock out to disk as xfs_wait_buftarg specificly > > excludes the superblock (XBF_FS_MANAGED) > > Almost. unmount calls xfs_unmountfs_writesb() which does a > synchronous write of the superblock. But in the current code sync(1) > certainly never, ever triggers a superblock write we wait for... True, missed it due to the opencoding. With my patch to kill the shared readonly bits we should be able to make it use xfs_sync_fsdata for consistency. From owner-xfs@oss.sgi.com Fri Oct 31 15:22:32 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VMMWCk026792 for ; Fri, 31 Oct 2008 15:22:32 -0700 X-ASG-Debug-ID: 1225491753-71c202e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D0B7F14C408D for ; Fri, 31 Oct 2008 15:22:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id F5aqCPX4bOv43i5X for ; Fri, 31 Oct 2008 15:22:33 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.68 #1 (Red Hat Linux)) id 1Kw2O0-000277-To; Fri, 31 Oct 2008 22:22:32 +0000 Date: Fri, 31 Oct 2008 18:22:32 -0400 From: Christoph Hellwig To: Christoph Hellwig , xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: do_sync() and XFSQA test 182 failures.... Subject: Re: do_sync() and XFSQA test 182 failures.... Message-ID: <20081031222232.GB29761@infradead.org> References: <20081030085020.GP17077@disturbed> <20081030224625.GA18690@infradead.org> <20081031001249.GM4985@disturbed> <20081031203123.GA11514@infradead.org> <20081031215430.GB19509@disturbed> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20081031215430.GB19509@disturbed> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1225491753 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com On Sat, Nov 01, 2008 at 08:54:30AM +1100, Dave Chinner wrote: > Effectively, yes. > > Currently we iterate inodes for data and "metadata" sync, and the > only other concept is writing superblocks. I think most filesystems > have more types of metadata than this, so it makes sense for sync to > work on abstracts sync as data and metadata rather than data, inodes > and superblocks... Yes, absolutely. And for those that have inodes as primary / only metadata besides superblock we can still provide a generic_sync_inodes helper that just takes a callback to apply to every inode. Which we probably want anyway as XFS is the only intree-filesystem that currently has a more efficient way to iterate inodes. > > And as we found out it's not just sync that gets it wrong, it's also > > fsync (which isn't part of the above picture as it's per-inode) that > > gets this utterly wrong, as well as all kinds of syncs, not just the > > unmount one. > > Async writeback (write_inode()) has the same problem as fsync - > writing the inode before waiting for data I/O to complete - which > means we've got to jump through hoops in the filesystem to avoid > blocking on inodes that can't be immediately flushed, and often we > end up writing the inode multiple times and having to issue log > forces whenw e shouldn't need to. Effectively we have to tell the > VFS to "try again later" the entire time data is being flushed > before we can write the inode and it's exceedingly inefficient..... Yes, that was the couple of sync functions I meant above as the whole inode writeback path is extremly convoluted - mostly due to the dirty data vs metadata mixup mess. From owner-xfs@oss.sgi.com Fri Oct 31 15:56:16 2008 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28]) by oss.sgi.com (8.12.11.20060308/8.12.11/SuSE Linux 0.7) with ESMTP id m9VMuFJP028508 for ; Fri, 31 Oct 2008 15:56:16 -0700 X-ASG-Debug-ID: 1225493776-0efd03940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from spike.porcupine.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3AC9FB2D812 for ; Fri, 31 Oct 2008 15:56:16 -0700 (PDT) Received: from spike.porcupine.org (spike.porcupine.org [168.100.189.2]) by cuda.sgi.com with ESMTP id pG6MWAgT135Tv8Kv for ; Fri, 31 Oct 2008 15:56:16 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: by spike.porcupine.org (Postfix, from userid 1001) id 5E66B1F3EA0; Fri, 31 Oct 2008 18:56:15 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=porcupine.org; s=dktest; t=1225493775; bh=6C0EQML8KXt8HPbelvy83KZtemNyEbfx7mbtLWQk FxY=; h=Subject:In-Reply-To:To:Date:CC:X-Time-Zone:X-Mailer: MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id: From; b=imOV/Eo/MDPN+fMOrtJXuNxcZz0YghJ5U1f78sd8AKpfo9rDtfO1EOYoGK MY70L00zdvxUUGFNTVQPm+onJHmmDcV0BrFenLs3chKlwcAlslZRZFt2YYU0/OGpS6/ O9PR6r3e9y9sqO2qw438cdCgVvDsMdylCNytsYDdvwOGFA= X-ASG-Orig-Subj: Re: Which FileSystem do you use on your postfix server? Subject: Re: Which FileSystem do you use on your postfix server? In-Reply-To: <20081031221817.GD19509@disturbed> "from Dave Chinner at Nov 1, 2008 09:18:17 am" To: Dave Chinner Date: Fri, 31 Oct 2008 18:56:15 -0400 (EDT) CC: Wietse Venema , Eric Sandeen , Justin Piszcz , Postfix users , xfs@oss.sgi.com X-Time-Zone: USA EST, 6 hours behind central European time X-Mailer: ELM [version 2.4ME+ PL82 (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII Message-Id: <20081031225615.5E66B1F3EA0@spike.porcupine.org> From: wietse@porcupine.org (Wietse Venema) X-Barracuda-Connect: spike.porcupine.org[168.100.189.2] X-Barracuda-Start-Time: 1225493777 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com Dave Chinner: > On Fri, Oct 31, 2008 at 11:37:58AM -0400, Wietse Venema wrote: > > Eric Sandeen: > > > > This > > > > would violate a basic requirement of Postfix (don't lose data after > > > > fsync). Postfix updates existing files all the time: it updates > > > > queue files as it marks recipients as done, and it updates mailbox > > > > files as it appends mail. > > > > > > As long as postfix is looking after data properly with fsyncs etc, xfs > > > should be perfectly safe w.r.t. data integrity on a crash. If you see > > > any other behavior, it's a *bug* which should be reported, and I'm sure > > > it would be fixed. As far as I know, though, there is no issue here. > > > > The specific question is, will unclean shutdown cause loss of data > > that was already fsynced, > > No. > > > when the file was updated after the fsync. > > and no. > > XFS guarantees that you won't lose anything you fsync()d. You might > lose what you wrote after the fsync()), though, because you haven't > fsync()d it. Obvious, yes? This is how I hoped any reasonable implementation would work. The stories about null files made me wonder if there was something unusual about XFS that I should be aware of. > > For example, if the on-disk file metadata is updated after the file > > data is appended, then there is no need to have a zero-fill problem > > after crash during append. > > In case you didn't read Eric's response - that's exactly how we > fixed XFS to prevent this problem. And please stop propagating > this erroneous "zero-fill" meme - Eric addressed how wrong that > FUD is as well. Just confirming a specific case that I care about. Here's something I would like to know regarding the order of directory updates: - Does fsync(file) guarantee the file's directory entry is safe? Some file systems complete directory updates before the open/link/rename system call returns, so fsync() doesn't have to worry about it. - Does rename() guarantee that at least one directory entry will exist even when the system crashes in the middle of the operation? Postfix assumes both answers are "yes"; old ext2fs violated both assumptions. > > What if the crash happens after Postfix requests a 1-byte write in > > the middle of a file, i.e. without changing the size? A > > reasonable implementation would not corrupt the file, but would > > either update the file data or not change it. I can deal with > > that. > > That is exactly how XFS has always behaved for non-extending data > overwrite. i.e. Exactly the same pretty much every filesystem that > has ever existed. Good. Thanks for confirming that XFS is not unusual. Wietse