Whamcloud - gitweb
b=19686
[fs/lustre-release.git] / ldiskfs / kernel_patches / patches / ext4-wantedi-2.6-sles11.patch
index 914ed9c..76c0c9a 100644 (file)
@@ -1,8 +1,8 @@
 Index: linux-2.6.27.21-0.1/fs/ext4/ialloc.c
 ===================================================================
 Index: linux-2.6.27.21-0.1/fs/ext4/ialloc.c
 ===================================================================
---- linux-2.6.27.21-0.1.orig/fs/ext4/ialloc.c
-+++ linux-2.6.27.21-0.1/fs/ext4/ialloc.c
-@@ -675,7 +675,8 @@ err_ret:
+--- linux-2.6.27.21-0.1.orig/fs/ext4/ialloc.c  2009-06-02 18:39:22.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/ialloc.c       2009-06-04 17:01:26.000000000 +0530
+@@ -675,7 +675,8 @@
   * For other inodes, search forward from the parent directory's block
   * group to find a free inode.
   */
   * For other inodes, search forward from the parent directory's block
   * group to find a free inode.
   */
@@ -12,7 +12,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/ialloc.c
  {
        struct super_block *sb;
        struct buffer_head *inode_bitmap_bh = NULL;
  {
        struct super_block *sb;
        struct buffer_head *inode_bitmap_bh = NULL;
-@@ -706,6 +707,43 @@ struct inode *ext4_new_inode(handle_t *h
+@@ -706,6 +707,48 @@
        sbi = EXT4_SB(sb);
        es = sbi->s_es;
  
        sbi = EXT4_SB(sb);
        es = sbi->s_es;
  
@@ -49,6 +49,11 @@ Index: linux-2.6.27.21-0.1/fs/ext4/ialloc.c
 +              /* We've shortcircuited the allocation system successfully,
 +               * now finish filling in the inode.
 +               */
 +              /* We've shortcircuited the allocation system successfully,
 +               * now finish filling in the inode.
 +               */
++              BUFFER_TRACE(group_desc_bh, "get_write_access");
++              err = ext4_journal_get_write_access(handle, group_desc_bh);
++              if (err)
++                      goto fail;
++
 +              goto got;
 +      }
 +
 +              goto got;
 +      }
 +
@@ -58,9 +63,9 @@ Index: linux-2.6.27.21-0.1/fs/ext4/ialloc.c
                goto got_group;
 Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
 ===================================================================
                goto got_group;
 Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
 ===================================================================
---- linux-2.6.27.21-0.1.orig/fs/ext4/namei.c
-+++ linux-2.6.27.21-0.1/fs/ext4/namei.c
-@@ -104,6 +104,7 @@ struct dx_entry
+--- linux-2.6.27.21-0.1.orig/fs/ext4/namei.c   2009-06-02 18:39:22.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/namei.c        2009-06-04 17:00:38.000000000 +0530
+@@ -104,6 +104,7 @@
        __le32 block;
  };
  
        __le32 block;
  };
  
@@ -68,7 +73,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
  /*
   * dx_root_info is laid out so that if it should somehow get overlaid by a
   * dirent the two low bits of the hash version will be zero.  Therefore, the
  /*
   * dx_root_info is laid out so that if it should somehow get overlaid by a
   * dirent the two low bits of the hash version will be zero.  Therefore, the
-@@ -149,6 +150,14 @@ struct dx_map_entry
+@@ -149,6 +150,14 @@
        u16 size;
  };
  
        u16 size;
  };
  
@@ -83,7 +88,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
  static inline ext4_lblk_t dx_get_block(struct dx_entry *entry);
  static void dx_set_block(struct dx_entry *entry, ext4_lblk_t value);
  static inline unsigned dx_get_hash(struct dx_entry *entry);
  static inline ext4_lblk_t dx_get_block(struct dx_entry *entry);
  static void dx_set_block(struct dx_entry *entry, ext4_lblk_t value);
  static inline unsigned dx_get_hash(struct dx_entry *entry);
-@@ -1716,6 +1725,20 @@ static int ext4_add_nondir(handle_t *han
+@@ -1716,6 +1725,20 @@
        return err;
  }
  
        return err;
  }
  
@@ -104,7 +109,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
  /*
   * By the time this is called, we already have created
   * the directory cache entry for the new file, but it
  /*
   * By the time this is called, we already have created
   * the directory cache entry for the new file, but it
-@@ -1741,7 +1764,7 @@ retry:
+@@ -1741,7 +1764,7 @@
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
@@ -113,7 +118,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
        err = PTR_ERR(inode);
        if (!IS_ERR(inode)) {
                inode->i_op = &ext4_file_inode_operations;
        err = PTR_ERR(inode);
        if (!IS_ERR(inode)) {
                inode->i_op = &ext4_file_inode_operations;
-@@ -1775,7 +1798,7 @@ retry:
+@@ -1775,7 +1798,7 @@
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
@@ -122,7 +127,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
        err = PTR_ERR(inode);
        if (!IS_ERR(inode)) {
                init_special_inode(inode, inode->i_mode, rdev);
        err = PTR_ERR(inode);
        if (!IS_ERR(inode)) {
                init_special_inode(inode, inode->i_mode, rdev);
-@@ -1811,7 +1834,7 @@ retry:
+@@ -1811,7 +1834,7 @@
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
@@ -131,7 +136,7 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
        err = PTR_ERR(inode);
        if (IS_ERR(inode))
                goto out_stop;
        err = PTR_ERR(inode);
        if (IS_ERR(inode))
                goto out_stop;
-@@ -2211,7 +2234,7 @@ retry:
+@@ -2211,7 +2234,7 @@
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
        if (IS_DIRSYNC(dir))
                handle->h_sync = 1;
  
@@ -142,9 +147,9 @@ Index: linux-2.6.27.21-0.1/fs/ext4/namei.c
                goto out_stop;
 Index: linux-2.6.27.21-0.1/fs/ext4/ext4.h
 ===================================================================
                goto out_stop;
 Index: linux-2.6.27.21-0.1/fs/ext4/ext4.h
 ===================================================================
---- linux-2.6.27.21-0.1.orig/fs/ext4/ext4.h
-+++ linux-2.6.27.21-0.1/fs/ext4/ext4.h
-@@ -1032,7 +1032,8 @@ extern int ext4fs_dirhash(const char *na
+--- linux-2.6.27.21-0.1.orig/fs/ext4/ext4.h    2009-06-02 18:39:22.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/ext4.h 2009-06-04 17:00:38.000000000 +0530
+@@ -1032,7 +1032,8 @@
                          dx_hash_info *hinfo);
  
  /* ialloc.c */
                          dx_hash_info *hinfo);
  
  /* ialloc.c */
@@ -156,9 +161,9 @@ Index: linux-2.6.27.21-0.1/fs/ext4/ext4.h
  extern unsigned long ext4_count_free_inodes(struct super_block *);
 Index: linux-2.6.27.21-0.1/fs/ext4/migrate.c
 ===================================================================
  extern unsigned long ext4_count_free_inodes(struct super_block *);
 Index: linux-2.6.27.21-0.1/fs/ext4/migrate.c
 ===================================================================
---- linux-2.6.27.21-0.1.orig/fs/ext4/migrate.c
-+++ linux-2.6.27.21-0.1/fs/ext4/migrate.c
-@@ -484,7 +484,7 @@ int ext4_ext_migrate(struct inode *inode
+--- linux-2.6.27.21-0.1.orig/fs/ext4/migrate.c 2009-06-02 18:39:22.000000000 +0530
++++ linux-2.6.27.21-0.1/fs/ext4/migrate.c      2009-06-04 17:00:38.000000000 +0530
+@@ -484,7 +484,7 @@
        }
        tmp_inode = ext4_new_inode(handle,
                                inode->i_sb->s_root->d_inode,
        }
        tmp_inode = ext4_new_inode(handle,
                                inode->i_sb->s_root->d_inode,