Loading Documentation/filesystems/configfs/configfs_example.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -320,6 +320,7 @@ static struct config_item_type simple_children_type = { .ct_item_ops = &simple_children_item_ops, .ct_item_ops = &simple_children_item_ops, .ct_group_ops = &simple_children_group_ops, .ct_group_ops = &simple_children_group_ops, .ct_attrs = simple_children_attrs, .ct_attrs = simple_children_attrs, .ct_owner = THIS_MODULE, }; }; static struct configfs_subsystem simple_children_subsys = { static struct configfs_subsystem simple_children_subsys = { Loading Loading @@ -403,6 +404,7 @@ static struct config_item_type group_children_type = { .ct_item_ops = &group_children_item_ops, .ct_item_ops = &group_children_item_ops, .ct_group_ops = &group_children_group_ops, .ct_group_ops = &group_children_group_ops, .ct_attrs = group_children_attrs, .ct_attrs = group_children_attrs, .ct_owner = THIS_MODULE, }; }; static struct configfs_subsystem group_children_subsys = { static struct configfs_subsystem group_children_subsys = { Loading Documentation/filesystems/ocfs2.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ Features which OCFS2 does not support yet: be cluster coherent. be cluster coherent. - quotas - quotas - cluster aware flock - cluster aware flock - cluster aware lockf - Directory change notification (F_NOTIFY) - Directory change notification (F_NOTIFY) - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) - POSIX ACLs - POSIX ACLs Loading MAINTAINERS +2 −1 Original line number Original line Diff line number Diff line Loading @@ -557,7 +557,8 @@ S: Supported CONFIGFS CONFIGFS P: Joel Becker P: Joel Becker M: Joel Becker <joel.becker@oracle.com> M: joel.becker@oracle.com L: linux-kernel@vger.kernel.org S: Supported S: Supported CIRRUS LOGIC GENERIC FBDEV DRIVER CIRRUS LOGIC GENERIC FBDEV DRIVER Loading fs/Kconfig +0 −2 Original line number Original line Diff line number Diff line Loading @@ -883,8 +883,6 @@ config CONFIGFS_FS Both sysfs and configfs can and should exist together on the Both sysfs and configfs can and should exist together on the same system. One is not a replacement for the other. same system. One is not a replacement for the other. If unsure, say N. endmenu endmenu menu "Miscellaneous filesystems" menu "Miscellaneous filesystems" Loading fs/configfs/configfs_internal.h +8 −3 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,7 @@ struct configfs_dirent { int s_type; int s_type; umode_t s_mode; umode_t s_mode; struct dentry * s_dentry; struct dentry * s_dentry; struct iattr * s_iattr; }; }; #define CONFIGFS_ROOT 0x0001 #define CONFIGFS_ROOT 0x0001 Loading @@ -48,10 +49,11 @@ struct configfs_dirent { #define CONFIGFS_NOT_PINNED (CONFIGFS_ITEM_ATTR) #define CONFIGFS_NOT_PINNED (CONFIGFS_ITEM_ATTR) extern struct vfsmount * configfs_mount; extern struct vfsmount * configfs_mount; extern kmem_cache_t *configfs_dir_cachep; extern int configfs_is_root(struct config_item *item); extern int configfs_is_root(struct config_item *item); extern struct inode * configfs_new_inode(mode_t mode); extern struct inode * configfs_new_inode(mode_t mode, struct configfs_dirent *); extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); Loading @@ -63,6 +65,7 @@ extern void configfs_hash_and_remove(struct dentry * dir, const char * name); extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern int configfs_setattr(struct dentry *dentry, struct iattr *iattr); extern int configfs_pin_fs(void); extern int configfs_pin_fs(void); extern void configfs_release_fs(void); extern void configfs_release_fs(void); Loading Loading @@ -120,8 +123,10 @@ static inline struct config_item *configfs_get_config_item(struct dentry *dentry static inline void release_configfs_dirent(struct configfs_dirent * sd) static inline void release_configfs_dirent(struct configfs_dirent * sd) { { if (!(sd->s_type & CONFIGFS_ROOT)) if (!(sd->s_type & CONFIGFS_ROOT)) { kfree(sd); kfree(sd->s_iattr); kmem_cache_free(configfs_dir_cachep, sd); } } } static inline struct configfs_dirent * configfs_get(struct configfs_dirent * sd) static inline struct configfs_dirent * configfs_get(struct configfs_dirent * sd) Loading Loading
Documentation/filesystems/configfs/configfs_example.c +2 −0 Original line number Original line Diff line number Diff line Loading @@ -320,6 +320,7 @@ static struct config_item_type simple_children_type = { .ct_item_ops = &simple_children_item_ops, .ct_item_ops = &simple_children_item_ops, .ct_group_ops = &simple_children_group_ops, .ct_group_ops = &simple_children_group_ops, .ct_attrs = simple_children_attrs, .ct_attrs = simple_children_attrs, .ct_owner = THIS_MODULE, }; }; static struct configfs_subsystem simple_children_subsys = { static struct configfs_subsystem simple_children_subsys = { Loading Loading @@ -403,6 +404,7 @@ static struct config_item_type group_children_type = { .ct_item_ops = &group_children_item_ops, .ct_item_ops = &group_children_item_ops, .ct_group_ops = &group_children_group_ops, .ct_group_ops = &group_children_group_ops, .ct_attrs = group_children_attrs, .ct_attrs = group_children_attrs, .ct_owner = THIS_MODULE, }; }; static struct configfs_subsystem group_children_subsys = { static struct configfs_subsystem group_children_subsys = { Loading
Documentation/filesystems/ocfs2.txt +1 −0 Original line number Original line Diff line number Diff line Loading @@ -35,6 +35,7 @@ Features which OCFS2 does not support yet: be cluster coherent. be cluster coherent. - quotas - quotas - cluster aware flock - cluster aware flock - cluster aware lockf - Directory change notification (F_NOTIFY) - Directory change notification (F_NOTIFY) - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) - POSIX ACLs - POSIX ACLs Loading
MAINTAINERS +2 −1 Original line number Original line Diff line number Diff line Loading @@ -557,7 +557,8 @@ S: Supported CONFIGFS CONFIGFS P: Joel Becker P: Joel Becker M: Joel Becker <joel.becker@oracle.com> M: joel.becker@oracle.com L: linux-kernel@vger.kernel.org S: Supported S: Supported CIRRUS LOGIC GENERIC FBDEV DRIVER CIRRUS LOGIC GENERIC FBDEV DRIVER Loading
fs/Kconfig +0 −2 Original line number Original line Diff line number Diff line Loading @@ -883,8 +883,6 @@ config CONFIGFS_FS Both sysfs and configfs can and should exist together on the Both sysfs and configfs can and should exist together on the same system. One is not a replacement for the other. same system. One is not a replacement for the other. If unsure, say N. endmenu endmenu menu "Miscellaneous filesystems" menu "Miscellaneous filesystems" Loading
fs/configfs/configfs_internal.h +8 −3 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,7 @@ struct configfs_dirent { int s_type; int s_type; umode_t s_mode; umode_t s_mode; struct dentry * s_dentry; struct dentry * s_dentry; struct iattr * s_iattr; }; }; #define CONFIGFS_ROOT 0x0001 #define CONFIGFS_ROOT 0x0001 Loading @@ -48,10 +49,11 @@ struct configfs_dirent { #define CONFIGFS_NOT_PINNED (CONFIGFS_ITEM_ATTR) #define CONFIGFS_NOT_PINNED (CONFIGFS_ITEM_ATTR) extern struct vfsmount * configfs_mount; extern struct vfsmount * configfs_mount; extern kmem_cache_t *configfs_dir_cachep; extern int configfs_is_root(struct config_item *item); extern int configfs_is_root(struct config_item *item); extern struct inode * configfs_new_inode(mode_t mode); extern struct inode * configfs_new_inode(mode_t mode, struct configfs_dirent *); extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); extern int configfs_create(struct dentry *, int mode, int (*init)(struct inode *)); extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); Loading @@ -63,6 +65,7 @@ extern void configfs_hash_and_remove(struct dentry * dir, const char * name); extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern int configfs_setattr(struct dentry *dentry, struct iattr *iattr); extern int configfs_pin_fs(void); extern int configfs_pin_fs(void); extern void configfs_release_fs(void); extern void configfs_release_fs(void); Loading Loading @@ -120,8 +123,10 @@ static inline struct config_item *configfs_get_config_item(struct dentry *dentry static inline void release_configfs_dirent(struct configfs_dirent * sd) static inline void release_configfs_dirent(struct configfs_dirent * sd) { { if (!(sd->s_type & CONFIGFS_ROOT)) if (!(sd->s_type & CONFIGFS_ROOT)) { kfree(sd); kfree(sd->s_iattr); kmem_cache_free(configfs_dir_cachep, sd); } } } static inline struct configfs_dirent * configfs_get(struct configfs_dirent * sd) static inline struct configfs_dirent * configfs_get(struct configfs_dirent * sd) Loading