Lines Matching refs:inode
100 static int create_xattr(struct ubifs_info *c, struct inode *host, in create_xattr()
104 struct inode *inode; in create_xattr() local
132 inode = ubifs_new_inode(c, host, S_IFREG | S_IRWXUGO); in create_xattr()
133 if (IS_ERR(inode)) { in create_xattr()
134 err = PTR_ERR(inode); in create_xattr()
139 inode->i_mapping->a_ops = &empty_aops; in create_xattr()
140 inode->i_op = &empty_iops; in create_xattr()
141 inode->i_fop = &empty_fops; in create_xattr()
143 inode->i_flags |= S_SYNC | S_NOATIME | S_NOCMTIME | S_NOQUOTA; in create_xattr()
144 ui = ubifs_inode(inode); in create_xattr()
152 inode->i_size = ui->ui_size = size; in create_xattr()
162 err = ubifs_jnl_update(c, host, nm, inode, 0, 1); in create_xattr()
168 insert_inode_hash(inode); in create_xattr()
169 iput(inode); in create_xattr()
178 make_bad_inode(inode); in create_xattr()
179 iput(inode); in create_xattr()
197 static int change_xattr(struct ubifs_info *c, struct inode *host, in change_xattr()
198 struct inode *inode, const void *value, int size) in change_xattr() argument
202 struct ubifs_inode *ui = ubifs_inode(inode); in change_xattr()
206 ubifs_assert(ui->data_len == inode->i_size); in change_xattr()
217 inode->i_size = ui->ui_size = size; in change_xattr()
231 err = ubifs_jnl_change_xattr(c, inode, host); in change_xattr()
243 make_bad_inode(inode); in change_xattr()
285 static struct inode *iget_xattr(struct ubifs_info *c, ino_t inum) in iget_xattr()
287 struct inode *inode; in iget_xattr() local
289 inode = ubifs_iget(c->vfs_sb, inum); in iget_xattr()
290 if (IS_ERR(inode)) { in iget_xattr()
292 (int)PTR_ERR(inode)); in iget_xattr()
293 return inode; in iget_xattr()
295 if (ubifs_inode(inode)->xattr) in iget_xattr()
296 return inode; in iget_xattr()
298 iput(inode); in iget_xattr()
302 static int setxattr(struct inode *host, const char *name, const void *value, in setxattr()
305 struct inode *inode; in setxattr() local
349 inode = iget_xattr(c, le64_to_cpu(xent->inum)); in setxattr()
350 if (IS_ERR(inode)) { in setxattr()
351 err = PTR_ERR(inode); in setxattr()
355 err = change_xattr(c, host, inode, value, size); in setxattr()
356 iput(inode); in setxattr()
375 struct inode *inode, *host = d_inode(dentry); in ubifs_getxattr() local
402 inode = iget_xattr(c, le64_to_cpu(xent->inum)); in ubifs_getxattr()
403 if (IS_ERR(inode)) { in ubifs_getxattr()
404 err = PTR_ERR(inode); in ubifs_getxattr()
408 ui = ubifs_inode(inode); in ubifs_getxattr()
409 ubifs_assert(inode->i_size == ui->data_len); in ubifs_getxattr()
426 iput(inode); in ubifs_getxattr()
435 struct inode *host = d_inode(dentry); in ubifs_listxattr()
496 static int remove_xattr(struct ubifs_info *c, struct inode *host, in remove_xattr()
497 struct inode *inode, const struct qstr *nm) in remove_xattr() argument
501 struct ubifs_inode *ui = ubifs_inode(inode); in remove_xattr()
505 ubifs_assert(ui->data_len == inode->i_size); in remove_xattr()
518 err = ubifs_jnl_delete_xattr(c, host, inode, nm); in remove_xattr()
532 make_bad_inode(inode); in remove_xattr()
538 struct inode *inode, *host = d_inode(dentry); in ubifs_removexattr() local
565 inode = iget_xattr(c, le64_to_cpu(xent->inum)); in ubifs_removexattr()
566 if (IS_ERR(inode)) { in ubifs_removexattr()
567 err = PTR_ERR(inode); in ubifs_removexattr()
571 ubifs_assert(inode->i_nlink == 1); in ubifs_removexattr()
572 clear_nlink(inode); in ubifs_removexattr()
573 err = remove_xattr(c, host, inode, &nm); in ubifs_removexattr()
575 set_nlink(inode, 1); in ubifs_removexattr()
578 iput(inode); in ubifs_removexattr()
625 static int init_xattrs(struct inode *inode, const struct xattr *xattr_array, in init_xattrs() argument
641 err = setxattr(inode, name, xattr->value, xattr->value_len, 0); in init_xattrs()
650 int ubifs_init_security(struct inode *dentry, struct inode *inode, in ubifs_init_security() argument
655 err = security_inode_init_security(inode, dentry, qstr, in ubifs_init_security()
660 inode->i_ino, err); in ubifs_init_security()