From 7209332504a9973a0abbcfb20a03538ec5d9d476 Mon Sep 17 00:00:00 2001 From: nic Date: Thu, 4 Mar 2004 23:15:20 +0000 Subject: [PATCH] b=2681 r=jacob,adilger update kernel series for hp_pnnl, add invalidate-show patch and update ext3-delete_thread patch for this series --- .../patches/ext3-delete_thread-2.4.20-hp.patch | 43 +++---- .../patches/invalidate_show-2.4.20-hp.patch | 123 +++++++++++++++++++++ lustre/kernel_patches/series/hp-pnnl-2.4.20 | 5 +- 3 files changed, 142 insertions(+), 29 deletions(-) create mode 100644 lustre/kernel_patches/patches/invalidate_show-2.4.20-hp.patch diff --git a/lustre/kernel_patches/patches/ext3-delete_thread-2.4.20-hp.patch b/lustre/kernel_patches/patches/ext3-delete_thread-2.4.20-hp.patch index f91b8ff..d722b68 100644 --- a/lustre/kernel_patches/patches/ext3-delete_thread-2.4.20-hp.patch +++ b/lustre/kernel_patches/patches/ext3-delete_thread-2.4.20-hp.patch @@ -5,10 +5,10 @@ include/linux/ext3_fs_sb.h | 10 + 5 files changed, 365 insertions(+) -Index: linux-2.4.20-hp4-pnnl13/fs/ext3/super.c +Index: linux/fs/ext3/super.c =================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/fs/ext3/super.c 2004-01-12 19:22:32.000000000 +0300 -+++ linux-2.4.20-hp4-pnnl13/fs/ext3/super.c 2004-01-13 17:04:38.000000000 +0300 +--- linux.orig/fs/ext3/super.c Mon Feb 2 20:57:35 2004 ++++ linux/fs/ext3/super.c Mon Feb 2 20:58:05 2004 @@ -400,6 +400,221 @@ } } @@ -298,10 +298,10 @@ Index: linux-2.4.20-hp4-pnnl13/fs/ext3/super.c if (sbi->s_mount_opt & EXT3_MOUNT_ABORT) ext3_abort(sb, __FUNCTION__, "Abort forced by user"); -Index: linux-2.4.20-hp4-pnnl13/fs/ext3/inode.c +Index: linux/fs/ext3/inode.c =================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/fs/ext3/inode.c 2004-01-12 19:22:32.000000000 +0300 -+++ linux-2.4.20-hp4-pnnl13/fs/ext3/inode.c 2004-01-13 17:01:40.000000000 +0300 +--- linux.orig/fs/ext3/inode.c Mon Feb 2 20:57:35 2004 ++++ linux/fs/ext3/inode.c Mon Feb 2 20:58:05 2004 @@ -2500,6 +2500,118 @@ return err; } @@ -421,10 +421,10 @@ Index: linux-2.4.20-hp4-pnnl13/fs/ext3/inode.c /* * On success, We end up with an outstanding reference count against * iloc->bh. This _must_ be cleaned up later. -Index: linux-2.4.20-hp4-pnnl13/fs/ext3/file.c +Index: linux/fs/ext3/file.c =================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/fs/ext3/file.c 2004-01-12 19:22:32.000000000 +0300 -+++ linux-2.4.20-hp4-pnnl13/fs/ext3/file.c 2004-01-13 17:01:40.000000000 +0300 +--- linux.orig/fs/ext3/file.c Mon Feb 2 20:57:34 2004 ++++ linux/fs/ext3/file.c Mon Feb 2 20:58:05 2004 @@ -125,7 +125,11 @@ }; @@ -437,23 +437,10 @@ Index: linux-2.4.20-hp4-pnnl13/fs/ext3/file.c setattr: ext3_setattr, /* BKL held */ setxattr: ext3_setxattr, /* BKL held */ getxattr: ext3_getxattr, /* BKL held */ -Index: linux-2.4.20-hp4-pnnl13/fs/buffer.c +Index: linux/include/linux/ext3_fs.h =================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/fs/buffer.c 2003-09-13 15:19:26.000000000 +0400 -+++ linux-2.4.20-hp4-pnnl13/fs/buffer.c 2004-01-13 17:01:40.000000000 +0300 -@@ -376,6 +376,8 @@ - if (sb->s_op && sb->s_op->sync_fs) - sb->s_op->sync_fs(sb); - unlock_super(sb); -+ if (sb->s_op && sb->s_op->sync_fs) -+ sb->s_op->sync_fs(sb); - unlock_kernel(); - - return sync_buffers(dev, 1); -Index: linux-2.4.20-hp4-pnnl13/include/linux/ext3_fs.h -=================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/include/linux/ext3_fs.h 2004-01-12 19:22:32.000000000 +0300 -+++ linux-2.4.20-hp4-pnnl13/include/linux/ext3_fs.h 2004-01-13 17:01:40.000000000 +0300 +--- linux.orig/include/linux/ext3_fs.h Mon Feb 2 20:57:35 2004 ++++ linux/include/linux/ext3_fs.h Mon Feb 2 20:58:05 2004 @@ -193,6 +193,7 @@ */ #define EXT3_STATE_JDATA 0x00000001 /* journaled data exists */ @@ -480,10 +467,10 @@ Index: linux-2.4.20-hp4-pnnl13/include/linux/ext3_fs.h /* ioctl.c */ extern int ext3_ioctl (struct inode *, struct file *, unsigned int, -Index: linux-2.4.20-hp4-pnnl13/include/linux/ext3_fs_sb.h +Index: linux/include/linux/ext3_fs_sb.h =================================================================== ---- linux-2.4.20-hp4-pnnl13.orig/include/linux/ext3_fs_sb.h 2004-01-12 19:22:32.000000000 +0300 -+++ linux-2.4.20-hp4-pnnl13/include/linux/ext3_fs_sb.h 2004-01-13 17:01:40.000000000 +0300 +--- linux.orig/include/linux/ext3_fs_sb.h Mon Feb 2 20:57:35 2004 ++++ linux/include/linux/ext3_fs_sb.h Mon Feb 2 20:58:05 2004 @@ -29,6 +29,8 @@ #define EXT3_MAX_GROUP_LOADED 8 diff --git a/lustre/kernel_patches/patches/invalidate_show-2.4.20-hp.patch b/lustre/kernel_patches/patches/invalidate_show-2.4.20-hp.patch new file mode 100644 index 0000000..fad6233 --- /dev/null +++ b/lustre/kernel_patches/patches/invalidate_show-2.4.20-hp.patch @@ -0,0 +1,123 @@ + + + + fs/inode.c | 21 ++++++++++++++------- + fs/smbfs/inode.c | 2 +- + fs/super.c | 4 ++-- + include/linux/fs.h | 2 +- + 4 files changed, 18 insertions(+), 11 deletions(-) + +Index: linux/fs/inode.c +=================================================================== +--- linux.orig/fs/inode.c Mon Feb 2 21:24:21 2004 ++++ linux/fs/inode.c Mon Feb 2 21:27:53 2004 +@@ -632,7 +632,8 @@ + /* + * Invalidate all inodes for a device. + */ +-static int invalidate_list(struct list_head *head, struct super_block * sb, struct list_head * dispose) ++static int invalidate_list(struct list_head *head, struct super_block * sb, ++ struct list_head * dispose, int show) + { + struct list_head *next; + int busy = 0, count = 0; +@@ -657,6 +658,11 @@ + count++; + continue; + } ++ if (show) ++ printk(KERN_ERR ++ "inode busy: dev %s:%lu (%p) mode %o count %u\n", ++ kdevname(sb->s_dev), inode->i_ino, inode, ++ inode->i_mode, atomic_read(&inode->i_count)); + busy = 1; + } + /* only unused inodes may be cached with i_count zero */ +@@ -675,23 +681,24 @@ + /** + * invalidate_inodes - discard the inodes on a device + * @sb: superblock ++ * @show: whether we should display any busy inodes found + * + * Discard all of the inodes for a given superblock. If the discard + * fails because there are busy inodes then a non zero value is returned. + * If the discard is successful all the inodes have been discarded. + */ + +-int invalidate_inodes(struct super_block * sb) ++int invalidate_inodes(struct super_block * sb, int show) + { + int busy; + LIST_HEAD(throw_away); + + spin_lock(&inode_lock); +- busy = invalidate_list(&inode_in_use, sb, &throw_away); +- busy |= invalidate_list(&inode_unused, sb, &throw_away); +- busy |= invalidate_list(&inode_unused_pagecache, sb, &throw_away); +- busy |= invalidate_list(&sb->s_dirty, sb, &throw_away); +- busy |= invalidate_list(&sb->s_locked_inodes, sb, &throw_away); ++ busy = invalidate_list(&inode_in_use, sb, &throw_away, show); ++ busy |= invalidate_list(&inode_unused, sb, &throw_away, show); ++ busy |= invalidate_list(&inode_unused_pagecache, sb, &throw_away, show); ++ busy |= invalidate_list(&sb->s_dirty, sb, &throw_away, show); ++ busy |= invalidate_list(&sb->s_locked_inodes, sb, &throw_away, show); + spin_unlock(&inode_lock); + + dispose_list(&throw_away); +@@ -717,7 +724,7 @@ + * hold). + */ + shrink_dcache_sb(sb); +- res = invalidate_inodes(sb); ++ res = invalidate_inodes(sb, 0); + drop_super(sb); + } + invalidate_buffers(dev); +Index: linux/fs/super.c +=================================================================== +--- linux.orig/fs/super.c Mon Feb 2 21:24:21 2004 ++++ linux/fs/super.c Mon Feb 2 21:26:08 2004 +@@ -844,7 +844,7 @@ + lock_super(sb); + lock_kernel(); + sb->s_flags &= ~MS_ACTIVE; +- invalidate_inodes(sb); /* bad name - it should be evict_inodes() */ ++ invalidate_inodes(sb, 0); /* bad name - it should be evict_inodes() */ + if (sop) { + if (sop->write_super && sb->s_dirt) + sop->write_super(sb); +@@ -853,7 +853,7 @@ + } + + /* Forget any remaining inodes */ +- if (invalidate_inodes(sb)) { ++ if (invalidate_inodes(sb, 1)) { + printk(KERN_ERR "VFS: Busy inodes after unmount. " + "Self-destruct in 5 seconds. Have a nice day...\n"); + } +Index: linux/include/linux/fs.h +=================================================================== +--- linux.orig/include/linux/fs.h Mon Feb 2 21:24:23 2004 ++++ linux/include/linux/fs.h Mon Feb 2 21:26:08 2004 +@@ -1257,7 +1257,7 @@ + extern void set_buffer_flushtime(struct buffer_head *); + extern void balance_dirty(void); + extern int check_disk_change(kdev_t); +-extern int invalidate_inodes(struct super_block *); ++extern int invalidate_inodes(struct super_block *, int); + extern int invalidate_device(kdev_t, int); + extern void invalidate_inode_pages(struct inode *); + extern void invalidate_inode_pages2(struct address_space *); +Index: linux/fs/smbfs/inode.c +=================================================================== +--- linux.orig/fs/smbfs/inode.c Thu Nov 28 18:53:15 2002 ++++ linux/fs/smbfs/inode.c Mon Feb 2 21:26:08 2004 +@@ -167,7 +167,7 @@ + { + VERBOSE("\n"); + shrink_dcache_sb(SB_of(server)); +- invalidate_inodes(SB_of(server)); ++ invalidate_inodes(SB_of(server), 0); + } + + /* diff --git a/lustre/kernel_patches/series/hp-pnnl-2.4.20 b/lustre/kernel_patches/series/hp-pnnl-2.4.20 index e3c5a62..6cfe667 100644 --- a/lustre/kernel_patches/series/hp-pnnl-2.4.20 +++ b/lustre/kernel_patches/series/hp-pnnl-2.4.20 @@ -3,7 +3,7 @@ dev_read_only_hp_2.4.20.patch exports_2.4.20-rh-hp.patch lustre_version.patch vfs_intent-2.4.20-hp.patch -invalidate_show.patch +invalidate_show-2.4.20-hp.patch export-truncate.patch iod-stock-24-exports_hp.patch ext-2.4-patch-1.patch @@ -25,6 +25,8 @@ ext3-map_inode_page.patch ext3-error-export.patch iopen-2.4.20.patch tcp-zero-copy.patch +jbd-dont-account-blocks-twice.patch +jbd-commit-tricks.patch add_page_private.patch socket-exports-vanilla.patch removepage-2.4.20.patch @@ -32,6 +34,7 @@ jbd-ctx_switch.patch jbd-flushtime.patch jbd-get_write_access.patch nfs_export_kernel-2.4.20-hp.patch +ext3-raw-lookup.patch ext3-ea-in-inode-2.4.20.patch listman-2.4.20.patch ext3-trusted_ea-2.4.20.patch -- 1.8.3.1