Whamcloud - gitweb
b=23371 Define fsfilt_{up,down}_truncate_sem() does nothing when WALK_SPACE_HAS_DATA_...
authoryangsheng <sheng.yang@sun.com>
Fri, 27 Aug 2010 20:44:57 +0000 (22:44 +0200)
committerJohann Lombardi <johann.lombardi@oracle.com>
Fri, 27 Aug 2010 20:44:57 +0000 (22:44 +0200)
i=adilger
i=andrew

lustre/lvfs/fsfilt_ext3.c

index 1385835..3d23492 100644 (file)
@@ -853,16 +853,23 @@ static int fsfilt_ext3_sync(struct super_block *sb)
 #endif
 
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17))
-#define fsfilt_up_truncate_sem(inode)  up(&EXT3_I(inode)->truncate_sem);
-#define fsfilt_down_truncate_sem(inode)  down(&EXT3_I(inode)->truncate_sem);
+# define fsfilt_up_truncate_sem(inode)  up(&LDISKFS_I(inode)->truncate_sem);
+# define fsfilt_down_truncate_sem(inode)  down(&LDISKFS_I(inode)->truncate_sem);
 #else
-#ifdef HAVE_EXT4_LDISKFS
-#define fsfilt_up_truncate_sem(inode) up_write((&EXT4_I(inode)->i_data_sem));
-#define fsfilt_down_truncate_sem(inode) down_write((&EXT4_I(inode)->i_data_sem));
-#else
-#define fsfilt_up_truncate_sem(inode)  mutex_unlock(&EXT3_I(inode)->truncate_mutex);
-#define fsfilt_down_truncate_sem(inode)  mutex_lock(&EXT3_I(inode)->truncate_mutex);
-#endif
+# ifdef HAVE_EXT4_LDISKFS
+#  ifdef WALK_SPACE_HAS_DATA_SEM
+        /* Only used in fsfilt_map_nblocks() for now. 
+         * Please consider redefine it if using elsewhere. */
+#   define fsfilt_up_truncate_sem(inode) do{ }while(0)
+#   define fsfilt_down_truncate_sem(inode) do{ }while(0)
+#  else
+#   define fsfilt_up_truncate_sem(inode) up_write((&LDISKFS_I(inode)->i_data_sem));
+#   define fsfilt_down_truncate_sem(inode) down_write((&LDISKFS_I(inode)->i_data_sem));
+#  endif
+# else
+#  define fsfilt_up_truncate_sem(inode)  mutex_unlock(&LDISKFS_I(inode)->truncate_mutex);
+#  define fsfilt_down_truncate_sem(inode)  mutex_lock(&LDISKFS_I(inode)->truncate_mutex);
+# endif
 #endif
 
 #ifndef EXT_ASSERT
@@ -1159,14 +1166,10 @@ int fsfilt_map_nblocks(struct inode *inode, unsigned long block,
         bp.init_num = bp.num = num;
         bp.create = create;
 
-#if !defined(WALK_SPACE_HAS_DATA_SEM) || !defined(HAVE_EXT4_LDISKFS)
         fsfilt_down_truncate_sem(inode);
-#endif
         err = fsfilt_ext3_ext_walk_space(base, block, num, ext3_ext_new_extent_cb, &bp);
         ext3_ext_invalidate_cache(base);
-#if !defined(WALK_SPACE_HAS_DATA_SEM) || !defined(HAVE_EXT4_LDISKFS)
         fsfilt_up_truncate_sem(inode);
-#endif
 
         return err;
 }