Whamcloud - gitweb
LU-2479 ldiskfs: do not check dir max size for regular files 37/8137/2
authorVladimir Saveliev <vladimir_saveliev@xyratex.com>
Tue, 29 Oct 2013 16:01:23 +0000 (20:01 +0400)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 6 Nov 2013 06:58:09 +0000 (06:58 +0000)
ldiskfs_append() is used not only to extend directory but also to
maintain iam container. In later case ldiskfs_append() should not
check for max directory size. The iam container is distunguished as
regular file.

Signed-off-by: Vladimir Saveliev <vladimir_saveliev@xyratex.com>
Change-Id: I205b0b1149d7bd477b3965ce68a546dfd9dc6a6f
Reviewed-on: http://review.whamcloud.com/8137
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alexey Lyashkov <alexey_lyashkov@xyratex.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
ldiskfs/kernel_patches/patches/rhel6.3/ext4-max-dir-size.patch

index 6741924..1820d69 100644 (file)
@@ -1,12 +1,13 @@
-Index: linux-2.6.32-el6-beta/fs/ext4/namei.c
+Index: linux-stage/fs/ext4/namei.c
 ===================================================================
 ===================================================================
---- linux-2.6.32-el6-beta/fs/ext4/namei.c
-+++ linux-2.6.32-el6-beta/fs/ext4/namei.c
-@@ -59,6 +59,14 @@ static struct buffer_head *ext4_append(h
+--- linux-stage.orig/fs/ext4/namei.c
++++ linux-stage/fs/ext4/namei.c
+@@ -60,6 +60,15 @@ struct buffer_head *ext4_append(handle_t
        * have to be serialized -bzzz */
        down(&ei->i_append_sem);
  
        * have to be serialized -bzzz */
        down(&ei->i_append_sem);
  
-+      if (unlikely(EXT4_SB(inode->i_sb)->s_max_dir_size &&
++      if (unlikely(S_ISDIR(inode->i_mode) &&
++                   EXT4_SB(inode->i_sb)->s_max_dir_size &&
 +                   (inode->i_size >=
 +                   EXT4_SB(inode->i_sb)->s_max_dir_size))) {
 +              *err = -ENOSPC;
 +                   (inode->i_size >=
 +                   EXT4_SB(inode->i_sb)->s_max_dir_size))) {
 +              *err = -ENOSPC;