]> Pileus Git - ~andy/linux/blobdiff - fs/ext4/xattr.h
Merge branch 'v3.8-samsung-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / fs / ext4 / xattr.h
index 539e6a08c95f46ab83bdb13808ad5bca5558bba2..69eda787a96ab5ff7e26a9c76b298371bdbfb372 100644 (file)
@@ -71,6 +71,7 @@ struct ext4_xattr_entry {
 #define BFIRST(bh) ENTRY(BHDR(bh)+1)
 #define IS_LAST_ENTRY(entry) (*(__u32 *)(entry) == 0)
 
+#define EXT4_ZERO_XATTR_VALUE ((void *)-1)
 
 struct ext4_xattr_info {
        int name_index;
@@ -92,8 +93,6 @@ struct ext4_xattr_ibody_find {
        struct ext4_iloc iloc;
 };
 
-# ifdef CONFIG_EXT4_FS_XATTR
-
 extern const struct xattr_handler ext4_xattr_user_handler;
 extern const struct xattr_handler ext4_xattr_trusted_handler;
 extern const struct xattr_handler ext4_xattr_acl_access_handler;
@@ -122,9 +121,9 @@ extern int ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
 extern int ext4_xattr_ibody_get(struct inode *inode, int name_index,
                                const char *name,
                                void *buffer, size_t buffer_size);
-extern int ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
-                               struct ext4_xattr_info *i,
-                               struct ext4_xattr_ibody_find *is);
+extern int ext4_xattr_ibody_inline_set(handle_t *handle, struct inode *inode,
+                                      struct ext4_xattr_info *i,
+                                      struct ext4_xattr_ibody_find *is);
 
 extern int ext4_has_inline_data(struct inode *inode);
 extern int ext4_get_inline_size(struct inode *inode);
@@ -171,191 +170,28 @@ extern int ext4_try_create_inline_dir(handle_t *handle,
 extern int ext4_read_inline_dir(struct file *filp,
                                void *dirent, filldir_t filldir,
                                int *has_inline_data);
-# else  /* CONFIG_EXT4_FS_XATTR */
-
-static inline int
-ext4_xattr_get(struct inode *inode, int name_index, const char *name,
-              void *buffer, size_t size, int flags)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-ext4_xattr_set(struct inode *inode, int name_index, const char *name,
-              const void *value, size_t size, int flags)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-ext4_xattr_set_handle(handle_t *handle, struct inode *inode, int name_index,
-              const char *name, const void *value, size_t size, int flags)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline void
-ext4_xattr_delete_inode(handle_t *handle, struct inode *inode)
-{
-}
-
-static inline void
-ext4_xattr_put_super(struct super_block *sb)
-{
-}
-
-static __init inline int
-ext4_init_xattr(void)
-{
-       return 0;
-}
-
-static inline void
-ext4_exit_xattr(void)
-{
-}
-
-static inline int
-ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize,
-                           struct ext4_inode *raw_inode, handle_t *handle)
-{
-       return -EOPNOTSUPP;
-}
-
-#define ext4_xattr_handlers    NULL
-
-static inline int
-ext4_xattr_ibody_find(struct inode *inode, struct ext4_xattr_info *i,
-                     struct ext4_xattr_ibody_find *is)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-ext4_xattr_ibody_set(handle_t *handle, struct inode *inode,
-                    struct ext4_xattr_info *i,
-                    struct ext4_xattr_ibody_find *is)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int
-ext4_xattr_ibody_get(struct inode *inode, int name_index,
-                    const char *name,
-                    void *buffer, size_t buffer_size)
-{
-       return -EOPNOTSUPP;
-}
-
-static inline int ext4_find_inline_data_nolock(struct inode *inode)
-{
-       return 0;
-}
-
-static inline int ext4_has_inline_data(struct inode *inode)
-{
-       return 0;
-}
-
-static inline int ext4_get_inline_size(struct inode *inode)
-{
-       return 0;
-}
-
-static inline int ext4_get_max_inline_size(struct inode *inode)
-{
-       return 0;
-}
-
-static inline void ext4_write_inline_data(struct inode *inode,
-                                         struct ext4_iloc *iloc,
-                                         void *buffer, loff_t pos,
-                                         unsigned int len)
-{
-       return;
-}
-
-static inline int ext4_init_inline_data(handle_t *handle,
-                                       struct inode *inode,
-                                       unsigned int len)
-{
-       return 0;
-}
-
-static inline int ext4_destroy_inline_data(handle_t *handle,
-                                          struct inode *inode)
-{
-       return 0;
-}
-
-static inline int ext4_readpage_inline(struct inode *inode, struct page *page)
-{
-       return 0;
-}
-
-static inline int ext4_try_to_write_inline_data(struct address_space *mapping,
-                                               struct inode *inode,
-                                               loff_t pos, unsigned len,
-                                               unsigned flags,
-                                               struct page **pagep)
-{
-       return 0;
-}
-
-static inline int ext4_write_inline_data_end(struct inode *inode,
-                                            loff_t pos, unsigned len,
-                                            unsigned copied,
-                                            struct page *page)
-{
-       return 0;
-}
-
-static inline struct buffer_head *
-ext4_journalled_write_inline_data(struct inode *inode,
-                                 unsigned len,
-                                 struct page *page)
-{
-       return NULL;
-}
-
-static inline int
-ext4_da_write_inline_data_begin(struct address_space *mapping,
-                               struct inode *inode,
-                               loff_t pos, unsigned len,
-                               unsigned flags,
-                               struct page **pagep,
-                               void **fsdata)
-{
-       return 0;
-}
-
-static inline int ext4_da_write_inline_data_end(struct inode *inode, loff_t pos,
-                                               unsigned len, unsigned copied,
-                                               struct page *page)
-{
-       return 0;
-}
-
-static inline int ext4_try_add_inline_entry(handle_t *handle,
-                                           struct dentry *dentry,
-                                           struct inode *inode)
-{
-       return 0;
-}
+extern struct buffer_head *ext4_find_inline_entry(struct inode *dir,
+                                       const struct qstr *d_name,
+                                       struct ext4_dir_entry_2 **res_dir,
+                                       int *has_inline_data);
+extern int ext4_delete_inline_entry(handle_t *handle,
+                                   struct inode *dir,
+                                   struct ext4_dir_entry_2 *de_del,
+                                   struct buffer_head *bh,
+                                   int *has_inline_data);
+extern int empty_inline_dir(struct inode *dir, int *has_inline_data);
+extern struct buffer_head *ext4_get_first_inline_block(struct inode *inode,
+                                       struct ext4_dir_entry_2 **parent_de,
+                                       int *retval);
+extern int ext4_inline_data_fiemap(struct inode *inode,
+                                  struct fiemap_extent_info *fieinfo,
+                                  int *has_inline);
+extern int ext4_try_to_evict_inline_data(handle_t *handle,
+                                        struct inode *inode,
+                                        int needed);
+extern void ext4_inline_data_truncate(struct inode *inode, int *has_inline);
 
-static inline int ext4_try_create_inline_dir(handle_t *handle,
-                                            struct inode *parent,
-                                            struct inode *inode)
-{
-       return 0;
-}
-static inline int ext4_read_inline_dir(struct file *filp,
-                                      void *dirent, filldir_t filldir,
-                                      int *has_inline_data)
-{
-       return 0;
-}
-# endif  /* CONFIG_EXT4_FS_XATTR */
+extern int ext4_convert_inline_data(struct inode *inode);
 
 #ifdef CONFIG_EXT4_FS_SECURITY
 extern int ext4_init_security(handle_t *handle, struct inode *inode,