fsnotify: create helpers to get sb and connp from object
In preparation to passing an object pointer to add/remove/find mark helpers, create helpers to get sb and connp by object type. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz> Message-Id: <20240317184154.1200192-3-amir73il@gmail.com>
This commit is contained in:
parent
d2f277e26f
commit
f115815d75
@ -27,6 +27,21 @@ static inline struct super_block *fsnotify_conn_sb(
|
|||||||
return container_of(conn->obj, struct super_block, s_fsnotify_marks);
|
return container_of(conn->obj, struct super_block, s_fsnotify_marks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline struct super_block *fsnotify_object_sb(void *obj,
|
||||||
|
enum fsnotify_obj_type obj_type)
|
||||||
|
{
|
||||||
|
switch (obj_type) {
|
||||||
|
case FSNOTIFY_OBJ_TYPE_INODE:
|
||||||
|
return ((struct inode *)obj)->i_sb;
|
||||||
|
case FSNOTIFY_OBJ_TYPE_VFSMOUNT:
|
||||||
|
return ((struct vfsmount *)obj)->mnt_sb;
|
||||||
|
case FSNOTIFY_OBJ_TYPE_SB:
|
||||||
|
return (struct super_block *)obj;
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct super_block *fsnotify_connector_sb(
|
static inline struct super_block *fsnotify_connector_sb(
|
||||||
struct fsnotify_mark_connector *conn)
|
struct fsnotify_mark_connector *conn)
|
||||||
{
|
{
|
||||||
|
@ -97,6 +97,21 @@ void fsnotify_get_mark(struct fsnotify_mark *mark)
|
|||||||
refcount_inc(&mark->refcnt);
|
refcount_inc(&mark->refcnt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static fsnotify_connp_t *fsnotify_object_connp(void *obj,
|
||||||
|
enum fsnotify_obj_type obj_type)
|
||||||
|
{
|
||||||
|
switch (obj_type) {
|
||||||
|
case FSNOTIFY_OBJ_TYPE_INODE:
|
||||||
|
return &((struct inode *)obj)->i_fsnotify_marks;
|
||||||
|
case FSNOTIFY_OBJ_TYPE_VFSMOUNT:
|
||||||
|
return &real_mount(obj)->mnt_fsnotify_marks;
|
||||||
|
case FSNOTIFY_OBJ_TYPE_SB:
|
||||||
|
return &((struct super_block *)obj)->s_fsnotify_marks;
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static __u32 *fsnotify_conn_mask_p(struct fsnotify_mark_connector *conn)
|
static __u32 *fsnotify_conn_mask_p(struct fsnotify_mark_connector *conn)
|
||||||
{
|
{
|
||||||
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE)
|
if (conn->type == FSNOTIFY_OBJ_TYPE_INODE)
|
||||||
|
Loading…
Reference in New Issue
Block a user