Lines Matching refs:kn

37 static struct kernfs_iattrs *kernfs_iattrs(struct kernfs_node *kn)  in kernfs_iattrs()  argument
45 if (kn->iattr) in kernfs_iattrs()
48 kn->iattr = kzalloc(sizeof(struct kernfs_iattrs), GFP_KERNEL); in kernfs_iattrs()
49 if (!kn->iattr) in kernfs_iattrs()
51 iattrs = &kn->iattr->ia_iattr; in kernfs_iattrs()
54 iattrs->ia_mode = kn->mode; in kernfs_iattrs()
59 simple_xattrs_init(&kn->iattr->xattrs); in kernfs_iattrs()
61 ret = kn->iattr; in kernfs_iattrs()
66 static int __kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) in __kernfs_setattr() argument
72 attrs = kernfs_iattrs(kn); in __kernfs_setattr()
90 iattrs->ia_mode = kn->mode = mode; in __kernfs_setattr()
102 int kernfs_setattr(struct kernfs_node *kn, const struct iattr *iattr) in kernfs_setattr() argument
107 ret = __kernfs_setattr(kn, iattr); in kernfs_setattr()
115 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_setattr() local
118 if (!kn) in kernfs_iop_setattr()
126 error = __kernfs_setattr(kn, iattr); in kernfs_iop_setattr()
138 static int kernfs_node_setsecdata(struct kernfs_node *kn, void **secdata, in kernfs_node_setsecdata() argument
145 attrs = kernfs_iattrs(kn); in kernfs_node_setsecdata()
163 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_setxattr() local
169 attrs = kernfs_iattrs(kn); in kernfs_iop_setxattr()
185 error = kernfs_node_setsecdata(kn, &secdata, &secdata_len); in kernfs_iop_setxattr()
201 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_removexattr() local
204 attrs = kernfs_iattrs(kn); in kernfs_iop_removexattr()
214 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_getxattr() local
217 attrs = kernfs_iattrs(kn); in kernfs_iop_getxattr()
226 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_listxattr() local
229 attrs = kernfs_iattrs(kn); in kernfs_iop_listxattr()
251 static void kernfs_refresh_inode(struct kernfs_node *kn, struct inode *inode) in kernfs_refresh_inode() argument
253 struct kernfs_iattrs *attrs = kn->iattr; in kernfs_refresh_inode()
255 inode->i_mode = kn->mode; in kernfs_refresh_inode()
266 if (kernfs_type(kn) == KERNFS_DIR) in kernfs_refresh_inode()
267 set_nlink(inode, kn->dir.subdirs + 2); in kernfs_refresh_inode()
273 struct kernfs_node *kn = dentry->d_fsdata; in kernfs_iop_getattr() local
277 kernfs_refresh_inode(kn, inode); in kernfs_iop_getattr()
284 static void kernfs_init_inode(struct kernfs_node *kn, struct inode *inode) in kernfs_init_inode() argument
286 kernfs_get(kn); in kernfs_init_inode()
287 inode->i_private = kn; in kernfs_init_inode()
291 set_default_inode_attr(inode, kn->mode); in kernfs_init_inode()
292 kernfs_refresh_inode(kn, inode); in kernfs_init_inode()
295 switch (kernfs_type(kn)) { in kernfs_init_inode()
299 if (kn->flags & KERNFS_EMPTY_DIR) in kernfs_init_inode()
303 inode->i_size = kn->attr.size; in kernfs_init_inode()
331 struct inode *kernfs_get_inode(struct super_block *sb, struct kernfs_node *kn) in kernfs_get_inode() argument
335 inode = iget_locked(sb, kn->ino); in kernfs_get_inode()
337 kernfs_init_inode(kn, inode); in kernfs_get_inode()
351 struct kernfs_node *kn = inode->i_private; in kernfs_evict_inode() local
355 kernfs_put(kn); in kernfs_evict_inode()
360 struct kernfs_node *kn; in kernfs_iop_permission() local
365 kn = inode->i_private; in kernfs_iop_permission()
368 kernfs_refresh_inode(kn, inode); in kernfs_iop_permission()