From 729b04d22748770b16f4439e15347be9c80a0399 Mon Sep 17 00:00:00 2001 From: adilger Date: Thu, 10 May 2007 18:38:51 +0000 Subject: [PATCH] Branch HEAD Apply the rest of the __iget() changes for patchless clients to compile out the now-unnecessary parts of the code. b=12391 i=scjody i=green --- lustre/ChangeLog | 25 +++++++++++++++++-------- lustre/llite/llite_internal.h | 2 ++ lustre/llite/llite_lib.c | 8 ++++++++ 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 7bb2653..58f4891 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -10,7 +10,7 @@ tbd Cluster File Systems, Inc. (see https://mail.clusterfs.com/wikis/lustre/PatchlessClient) 2.6.16 - 2.6.19 vanilla (kernel.org) 2.6.9-42.0.8.EL (RHEL 4) - * Recommended e2fsprogs version: 1.39.cfs6 + * Recommended e2fsprogs version: 1.39.cfs7 * Note that reiserfs quotas are disabled on SLES 10 in this kernel. * bug fixes @@ -95,12 +95,21 @@ Details : the default for reading the health_check proc file has changed * bug fixes Severity : normal -Frequency : on some architectures +Frequency : on some architectures Bugzilla : 12404 Description: 1.6 client sometimes fails to mount from a 1.4 MDT Details : Uninitialized flags sometimes cause configuration commands to be skipped. - + +Severity : normal +Frequency : patchless clients only +Bugzilla : 12391 +Description: missing __iget() symbol export +Details : The __iget() symbol export is missing. To avoid the need for + this on patchless clients the deathrow inode reaper is turned + off, and we depend on the VM to clean up old inodes. This + dependency was during via the fix for bug 12181. + -------------------------------------------------------------------------------- 2007-04-19 Cluster File Systems, Inc. @@ -379,7 +388,7 @@ Bugzilla : 11149 Description: QOS code breaks on skipped indicies Details : Add checks for missing OST indicies in the QOS code, so OSTs created with --index need not be sequential. - + Severity : enhancement Bugzilla : 11264 Description: Add uninit_groups feature to ldiskfs2 to speed up e2fsck @@ -472,7 +481,7 @@ Frequency : always Bugzilla : 3244 Description: Addition of EXT3_FEATURE_RO_COMPAT_DIR_NLINKS flag for > 32000 subdirectories -Details : Add EXT3_FEATURE_RO_COMPAT_DIR_NLINK flag to +Details : Add EXT3_FEATURE_RO_COMPAT_DIR_NLINK flag to EXT3_FEATURE_RO_COMPAT_SUPP. This flag will be set whenever subdirectory count crosses 32000. This will aid e2fsck to correctly handle more than 32000 subdirectories. @@ -689,8 +698,8 @@ Frequency : MDS failover only, very rarely Bugzilla : 11277 Description: clients may get ASSERTION(granted_lock != NULL) Details : When request was taking a long time, and a client was resending - a getattr by name lock request. The were multiple lock requests - with the same client lock handle and + a getattr by name lock request. The were multiple lock requests + with the same client lock handle and mds_getattr_name->fixup_handle_for_resent_request found one of the lock handles but later failed with ASSERTION(granted_lock != NULL). @@ -723,7 +732,7 @@ Frequency : NFS re-export or patchless client Bugzilla : 10796 Description: Various nfs/patchless fixes. Details : fixes reuse disconected alias for lookup process - this fixes - warning "find_exported_dentry: npd != pd", + warning "find_exported_dentry: npd != pd", fix permission error with open files at nfs. fix apply umask when do revalidate. diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index c72815c..0d3e52b 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -255,8 +255,10 @@ struct ll_sb_info { unsigned int ll_namelen; struct file_operations *ll_fop; +#ifdef HAVE_EXPORT___IGET struct list_head ll_deathrow; /* inodes to be destroyed (b1443) */ spinlock_t ll_deathrow_lock; +#endif /* =0 - hold lock over whole read/write * >0 - max. chunk to be read/written w/o lock re-acquiring */ unsigned long ll_max_rw_chunk; diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index 9e935d0..872fafd 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -83,8 +83,10 @@ static struct ll_sb_info *ll_init_sbi(void) list_add_tail(&sbi->ll_list, &ll_super_blocks); spin_unlock(&ll_sb_lock); +#ifdef HAVE_EXPORT___IGET INIT_LIST_HEAD(&sbi->ll_deathrow); spin_lock_init(&sbi->ll_deathrow_lock); +#endif for (i = 0; i < LL_PROCESS_HIST_MAX; i++) { spin_lock_init(&sbi->ll_rw_extents_info.pp_extents[i].pp_r_hist.oh_lock); spin_lock_init(&sbi->ll_rw_extents_info.pp_extents[i].pp_w_hist.oh_lock); @@ -453,6 +455,7 @@ void lustre_throw_orphan_dentries(struct super_block *sb) #define lustre_throw_orphan_dentries(sb) #endif +#ifdef HAVE_EXPORT___IGET static void prune_dir_dentries(struct inode *inode) { struct dentry *dentry, *prev = NULL; @@ -545,6 +548,9 @@ static void prune_deathrow(struct ll_sb_info *sbi, int try) } while (empty == 0); } +#else /* !HAVE_EXPORT___IGET */ +#define prune_deathrow(sbi, try) do {} while (0) +#endif /* HAVE_EXPORT___IGET */ void client_common_put_super(struct super_block *sb) { @@ -1143,9 +1149,11 @@ void ll_clear_inode(struct inode *inode) lli->lli_inode_magic = LLI_INODE_DEAD; +#ifdef HAVE_EXPORT___IGET spin_lock(&sbi->ll_deathrow_lock); list_del_init(&lli->lli_dead_list); spin_unlock(&sbi->ll_deathrow_lock); +#endif EXIT; } -- 1.8.3.1