Whamcloud - gitweb
- landing of b_fid after merge with b_hd_cleanup_merge.
[fs/lustre-release.git] / lustre / kernel_patches / patches / ext3-extents-in-ea-exports-symbol-2.4.24.patch
1 Index: linux-2.4.24/fs/ext3/extents-in-ea.c
2 ===================================================================
3 --- linux-2.4.24.orig/fs/ext3/extents-in-ea.c   2004-08-10 16:18:18.000000000 +0400
4 +++ linux-2.4.24/fs/ext3/extents-in-ea.c        2004-08-10 16:19:13.000000000 +0400
5 @@ -115,7 +115,7 @@
6         kfree(root);
7         return err;
8  }
9 -
10 +EXPORT_SYMBOL(ext3_init_tree_in_ea);
11  static int
12  ext3_ext_in_ea_new_extent(struct ext3_extents_tree *tree,
13                         struct ext3_ext_path *path,
14 @@ -173,7 +173,7 @@
15         }
16         return err;
17  }
18 -
19 +EXPORT_SYMBOL(ext3_ext_in_ea_alloc_space);
20  int ext3_ext_in_ea_remove_space(struct inode *inode, int name_index,
21                                 const char *eaname, unsigned long from,
22                                 unsigned long num)
23 @@ -188,7 +188,7 @@
24         }
25         return err;
26  }
27 -
28 +EXPORT_SYMBOL(ext3_ext_in_ea_remove_space);
29  int ext3_ext_in_ea_presence(struct inode *inode, int name_index,
30                                 const char *eaname, unsigned long block)
31  {
32 @@ -331,3 +331,49 @@
33         return err;
34  }
35  
36 +EXPORT_SYMBOL(ext3_ext_in_ea_ioctl);
37 +int ext3_ext_in_ea_get_extents(struct inode *inode, int name_index,
38 +                              const char *eaname, char **buf, int *size)
39 +{
40 +       /*allocate the buffer and put the extents there*/
41 +       struct ext3_extents_tree tree;
42 +       struct ext3_extent_buf ex_buf;
43 +       int    err;
44 +       err = ext3_init_tree_in_ea_desc(&tree, inode, name_index, eaname);
45 +       if (err)
46 +               goto out;
47 +       ex_buf.cur = *buf;
48 +       ex_buf.err = 0;
49 +       tree.private = &ex_buf;
50 +       ex_buf.start = 0;
51 +       
52 +       err = ext3_ext_walk_space(&tree, ex_buf.start, EXT_MAX_BLOCK,
53 +                                               ext3_ext_store_extent_cb);
54 +       if (err == 0)
55 +               err = ex_buf.err;
56 +       ext3_release_tree_in_ea_desc(&tree);
57 +out:
58 +       return err;
59 +}
60 +EXPORT_SYMBOL(ext3_ext_in_ea_get_extents);
61 +int ext3_ext_in_ea_get_extents_num(struct inode *inode, int name_index,
62 +                                  const char *eaname, int *size)
63 +{
64 +       struct ext3_extents_tree tree;
65 +       struct ext3_extent_tree_stats stats_buf;
66 +       int    err = 0, ext_num;
67 +       /*get extents number*/
68 +       err = ext3_init_tree_in_ea_desc(&tree, inode, name_index, eaname);
69 +       if (err)
70 +               return err;
71 +       tree.private = &stats_buf;
72 +       err = ext3_ext_walk_space(&tree, 0, EXT_MAX_BLOCK,
73 +                                 ext3_ext_collect_stats_cb);
74 +       ext_num = stats_buf.extents_num;
75 +       ext3_release_tree_in_ea_desc(&tree);
76 +
77 +       *size = ext_num * sizeof(struct ext3_extent);   
78 +
79 +       return err;     
80 +}
81 +EXPORT_SYMBOL(ext3_ext_in_ea_get_extents_num);
82 Index: linux-2.4.24/fs/ext3/Makefile
83 ===================================================================
84 --- linux-2.4.24.orig/fs/ext3/Makefile  2004-08-10 16:10:10.000000000 +0400
85 +++ linux-2.4.24/fs/ext3/Makefile       2004-08-10 16:18:47.000000000 +0400
86 @@ -13,13 +13,16 @@
87  
88  obj-y    := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o iopen.o \
89                 ioctl.o namei.o super.o symlink.o hash.o ext3-exports.o \
90 -               xattr_trusted.o extents.o
91 +               xattr_trusted.o extents.o extents-in-ea.o
92  export-objs += extents.o
93  
94  obj-m    := $(O_TARGET)
95  
96  export-objs += xattr.o
97 -obj-$(CONFIG_EXT3_FS_XATTR) += xattr.o extents-in-ea.o
98 +ifeq ($(CONFIG_EXT3_FS_XATTR),y)
99 +export-objs += extents-in-ea.o 
100 +endif
101 +obj-$(CONFIG_EXT3_FS_XATTR) += xattr.o 
102  obj-$(CONFIG_EXT3_FS_XATTR_USER) += xattr_user.o
103  
104  include $(TOPDIR)/Rules.make
105 Index: linux-2.4.24/fs/ext3/ioctl.c
106 ===================================================================
107 --- linux-2.4.24.orig/fs/ext3/ioctl.c   2004-08-10 16:14:40.000000000 +0400
108 +++ linux-2.4.24/fs/ext3/ioctl.c        2004-08-10 16:18:47.000000000 +0400
109 @@ -11,6 +11,7 @@
110  #include <linux/jbd.h>
111  #include <linux/ext3_fs.h>
112  #include <linux/ext3_jbd.h>
113 +#include <linux/ext3_extents.h>
114  #include <linux/sched.h>
115  #include <asm/uaccess.h>
116