Message ID | 1549609355-11053-4-git-send-email-anand.jain@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Misc props.c cleanups | expand |
On 8.02.19 г. 9:02 ч., Anand Jain wrote: > In preparation to drop forward declaration of the functions, > prop_compression_validate(), prop_compression_apply() and > prop_compression_extract(). Move prop_handlers[], btrfs_props_init() > prop_compression_validate(), prop_compression_apply() and > prop_compression_extract() appropriately with in the file. No functional > changes. > > Signed-off-by: Anand Jain <anand.jain@oracle.com> I'm fine with this, however I think this and the next patch could really be squashed into one, but let's see what David prefers. Reviewed-by: Nikolay Borisov <nborisov@suse.com> > --- > fs/btrfs/props.c | 157 ++++++++++++++++++++++++++++--------------------------- > 1 file changed, 79 insertions(+), 78 deletions(-) > > diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c > index 4525a2a4d1cd..6f52e3d21012 100644 > --- a/fs/btrfs/props.c > +++ b/fs/btrfs/props.c > @@ -29,30 +29,6 @@ static int prop_compression_apply(struct inode *inode, > size_t len); > static const char *prop_compression_extract(struct inode *inode); > > -static struct prop_handler prop_handlers[] = { > - { > - .xattr_name = XATTR_BTRFS_PREFIX "compression", > - .validate = prop_compression_validate, > - .apply = prop_compression_apply, > - .extract = prop_compression_extract, > - .inheritable = 1 > - }, > -}; > - > -void __init btrfs_props_init(void) > -{ > - int i; > - > - hash_init(prop_handlers_ht); > - > - for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { > - struct prop_handler *p = &prop_handlers[i]; > - u64 h = btrfs_name_hash(p->xattr_name, strlen(p->xattr_name)); > - > - hash_add(prop_handlers_ht, &p->node, h); > - } > -} > - > static const struct hlist_head *find_prop_handlers_by_hash(const u64 hash) > { > struct hlist_head *h; > @@ -271,6 +247,78 @@ int btrfs_load_inode_props(struct inode *inode, struct btrfs_path *path) > return ret; > } > > +static int prop_compression_validate(const char *value, size_t len) > +{ > + if (!value) > + return 0; > + > + if (!strncmp("lzo", value, len)) > + return 0; > + else if (!strncmp("zlib", value, len)) > + return 0; > + else if (!strncmp("zstd", value, len)) > + return 0; > + > + return -EINVAL; > +} > + > +static int prop_compression_apply(struct inode *inode, const char *value, > + size_t len) > +{ > + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); > + int type; > + > + if (len == 0) { > + BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; > + BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS; > + BTRFS_I(inode)->prop_compress = BTRFS_COMPRESS_NONE; > + > + return 0; > + } > + > + if (!strncmp("lzo", value, 3)) { > + type = BTRFS_COMPRESS_LZO; > + btrfs_set_fs_incompat(fs_info, COMPRESS_LZO); > + } else if (!strncmp("zlib", value, 4)) { > + type = BTRFS_COMPRESS_ZLIB; > + } else if (!strncmp("zstd", value, len)) { > + type = BTRFS_COMPRESS_ZSTD; > + btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD); > + } else { > + return -EINVAL; > + } > + > + BTRFS_I(inode)->flags &= ~BTRFS_INODE_NOCOMPRESS; > + BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; > + BTRFS_I(inode)->prop_compress = type; > + > + return 0; > +} > + > +static const char *prop_compression_extract(struct inode *inode) > +{ > + switch (BTRFS_I(inode)->prop_compress) { > + case BTRFS_COMPRESS_ZLIB: > + case BTRFS_COMPRESS_LZO: > + case BTRFS_COMPRESS_ZSTD: > + return btrfs_compress_type2str(BTRFS_I(inode)->prop_compress); > + default: > + break; > + } > + > + return NULL; > +} > + > +static struct prop_handler prop_handlers[] = { > + { > + .xattr_name = XATTR_BTRFS_PREFIX "compression", > + .validate = prop_compression_validate, > + .apply = prop_compression_apply, > + .extract = prop_compression_extract, > + .inheritable = 1 > + }, > +}; > + > static int inherit_props(struct btrfs_trans_handle *trans, > struct inode *inode, > struct inode *parent) > @@ -352,64 +400,17 @@ int btrfs_subvol_inherit_props(struct btrfs_trans_handle *trans, > return ret; > } > > -static int prop_compression_validate(const char *value, size_t len) > -{ > - if (!strncmp("lzo", value, len)) > - return 0; > - else if (!strncmp("zlib", value, len)) > - return 0; > - else if (!strncmp("zstd", value, len)) > - return 0; > - > - return -EINVAL; > -} > - > -static int prop_compression_apply(struct inode *inode, > - const char *value, > - size_t len) > +void __init btrfs_props_init(void) > { > - struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); > - int type; > - > - if (len == 0) { > - BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; > - BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS; > - BTRFS_I(inode)->prop_compress = BTRFS_COMPRESS_NONE; > - > - return 0; > - } > - > - if (!strncmp("lzo", value, 3)) { > - type = BTRFS_COMPRESS_LZO; > - btrfs_set_fs_incompat(fs_info, COMPRESS_LZO); > - } else if (!strncmp("zlib", value, 4)) { > - type = BTRFS_COMPRESS_ZLIB; > - } else if (!strncmp("zstd", value, len)) { > - type = BTRFS_COMPRESS_ZSTD; > - btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD); > - } else { > - return -EINVAL; > - } > + int i; > > - BTRFS_I(inode)->flags &= ~BTRFS_INODE_NOCOMPRESS; > - BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; > - BTRFS_I(inode)->prop_compress = type; > + hash_init(prop_handlers_ht); > > - return 0; > -} > + for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { > + struct prop_handler *p = &prop_handlers[i]; > + u64 h = btrfs_name_hash(p->xattr_name, strlen(p->xattr_name)); > > -static const char *prop_compression_extract(struct inode *inode) > -{ > - switch (BTRFS_I(inode)->prop_compress) { > - case BTRFS_COMPRESS_ZLIB: > - case BTRFS_COMPRESS_LZO: > - case BTRFS_COMPRESS_ZSTD: > - return btrfs_compress_type2str(BTRFS_I(inode)->prop_compress); > - default: > - break; > + hash_add(prop_handlers_ht, &p->node, h); > } > - > - return NULL; > } > > - >
On Fri, Feb 08, 2019 at 09:10:41AM +0200, Nikolay Borisov wrote: > > > On 8.02.19 г. 9:02 ч., Anand Jain wrote: > > In preparation to drop forward declaration of the functions, > > prop_compression_validate(), prop_compression_apply() and > > prop_compression_extract(). Move prop_handlers[], btrfs_props_init() > > prop_compression_validate(), prop_compression_apply() and > > prop_compression_extract() appropriately with in the file. No functional > > changes. > > > > Signed-off-by: Anand Jain <anand.jain@oracle.com> > > I'm fine with this, however I think this and the next patch could really > be squashed into one, but let's see what David prefers. I agree, moving the functions in order remove the prototypes in one patch is fine.
diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c index 4525a2a4d1cd..6f52e3d21012 100644 --- a/fs/btrfs/props.c +++ b/fs/btrfs/props.c @@ -29,30 +29,6 @@ static int prop_compression_apply(struct inode *inode, size_t len); static const char *prop_compression_extract(struct inode *inode); -static struct prop_handler prop_handlers[] = { - { - .xattr_name = XATTR_BTRFS_PREFIX "compression", - .validate = prop_compression_validate, - .apply = prop_compression_apply, - .extract = prop_compression_extract, - .inheritable = 1 - }, -}; - -void __init btrfs_props_init(void) -{ - int i; - - hash_init(prop_handlers_ht); - - for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { - struct prop_handler *p = &prop_handlers[i]; - u64 h = btrfs_name_hash(p->xattr_name, strlen(p->xattr_name)); - - hash_add(prop_handlers_ht, &p->node, h); - } -} - static const struct hlist_head *find_prop_handlers_by_hash(const u64 hash) { struct hlist_head *h; @@ -271,6 +247,78 @@ int btrfs_load_inode_props(struct inode *inode, struct btrfs_path *path) return ret; } +static int prop_compression_validate(const char *value, size_t len) +{ + if (!value) + return 0; + + if (!strncmp("lzo", value, len)) + return 0; + else if (!strncmp("zlib", value, len)) + return 0; + else if (!strncmp("zstd", value, len)) + return 0; + + return -EINVAL; +} + +static int prop_compression_apply(struct inode *inode, const char *value, + size_t len) +{ + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); + int type; + + if (len == 0) { + BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; + BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS; + BTRFS_I(inode)->prop_compress = BTRFS_COMPRESS_NONE; + + return 0; + } + + if (!strncmp("lzo", value, 3)) { + type = BTRFS_COMPRESS_LZO; + btrfs_set_fs_incompat(fs_info, COMPRESS_LZO); + } else if (!strncmp("zlib", value, 4)) { + type = BTRFS_COMPRESS_ZLIB; + } else if (!strncmp("zstd", value, len)) { + type = BTRFS_COMPRESS_ZSTD; + btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD); + } else { + return -EINVAL; + } + + BTRFS_I(inode)->flags &= ~BTRFS_INODE_NOCOMPRESS; + BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; + BTRFS_I(inode)->prop_compress = type; + + return 0; +} + +static const char *prop_compression_extract(struct inode *inode) +{ + switch (BTRFS_I(inode)->prop_compress) { + case BTRFS_COMPRESS_ZLIB: + case BTRFS_COMPRESS_LZO: + case BTRFS_COMPRESS_ZSTD: + return btrfs_compress_type2str(BTRFS_I(inode)->prop_compress); + default: + break; + } + + return NULL; +} + +static struct prop_handler prop_handlers[] = { + { + .xattr_name = XATTR_BTRFS_PREFIX "compression", + .validate = prop_compression_validate, + .apply = prop_compression_apply, + .extract = prop_compression_extract, + .inheritable = 1 + }, +}; + static int inherit_props(struct btrfs_trans_handle *trans, struct inode *inode, struct inode *parent) @@ -352,64 +400,17 @@ int btrfs_subvol_inherit_props(struct btrfs_trans_handle *trans, return ret; } -static int prop_compression_validate(const char *value, size_t len) -{ - if (!strncmp("lzo", value, len)) - return 0; - else if (!strncmp("zlib", value, len)) - return 0; - else if (!strncmp("zstd", value, len)) - return 0; - - return -EINVAL; -} - -static int prop_compression_apply(struct inode *inode, - const char *value, - size_t len) +void __init btrfs_props_init(void) { - struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); - int type; - - if (len == 0) { - BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; - BTRFS_I(inode)->flags &= ~BTRFS_INODE_COMPRESS; - BTRFS_I(inode)->prop_compress = BTRFS_COMPRESS_NONE; - - return 0; - } - - if (!strncmp("lzo", value, 3)) { - type = BTRFS_COMPRESS_LZO; - btrfs_set_fs_incompat(fs_info, COMPRESS_LZO); - } else if (!strncmp("zlib", value, 4)) { - type = BTRFS_COMPRESS_ZLIB; - } else if (!strncmp("zstd", value, len)) { - type = BTRFS_COMPRESS_ZSTD; - btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD); - } else { - return -EINVAL; - } + int i; - BTRFS_I(inode)->flags &= ~BTRFS_INODE_NOCOMPRESS; - BTRFS_I(inode)->flags |= BTRFS_INODE_COMPRESS; - BTRFS_I(inode)->prop_compress = type; + hash_init(prop_handlers_ht); - return 0; -} + for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) { + struct prop_handler *p = &prop_handlers[i]; + u64 h = btrfs_name_hash(p->xattr_name, strlen(p->xattr_name)); -static const char *prop_compression_extract(struct inode *inode) -{ - switch (BTRFS_I(inode)->prop_compress) { - case BTRFS_COMPRESS_ZLIB: - case BTRFS_COMPRESS_LZO: - case BTRFS_COMPRESS_ZSTD: - return btrfs_compress_type2str(BTRFS_I(inode)->prop_compress); - default: - break; + hash_add(prop_handlers_ht, &p->node, h); } - - return NULL; } -
In preparation to drop forward declaration of the functions, prop_compression_validate(), prop_compression_apply() and prop_compression_extract(). Move prop_handlers[], btrfs_props_init() prop_compression_validate(), prop_compression_apply() and prop_compression_extract() appropriately with in the file. No functional changes. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- fs/btrfs/props.c | 157 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 79 insertions(+), 78 deletions(-)