Lines Matching defs:dentry

67 static int xattr_create(struct inode *dir, struct dentry *dentry, int mode)
70 return dir->i_op->create(&nop_mnt_idmap, dir, dentry, mode, true);
74 static int xattr_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
77 return dir->i_op->mkdir(&nop_mnt_idmap, dir, dentry, mode);
86 static int xattr_unlink(struct inode *dir, struct dentry *dentry)
92 inode_lock_nested(d_inode(dentry), I_MUTEX_CHILD);
93 error = dir->i_op->unlink(dir, dentry);
94 inode_unlock(d_inode(dentry));
97 d_delete(dentry);
101 static int xattr_rmdir(struct inode *dir, struct dentry *dentry)
107 inode_lock_nested(d_inode(dentry), I_MUTEX_CHILD);
108 error = dir->i_op->rmdir(dir, dentry);
110 d_inode(dentry)->i_flags |= S_DEAD;
111 inode_unlock(d_inode(dentry));
113 d_delete(dentry);
120 static struct dentry *open_xa_root(struct super_block *sb, int flags)
122 struct dentry *privroot = REISERFS_SB(sb)->priv_root;
123 struct dentry *xaroot;
148 static struct dentry *open_xa_dir(const struct inode *inode, int flags)
150 struct dentry *xaroot, *xadir;
187 struct dentry *xadir;
190 struct dentry *dentries[8];
199 struct dentry *dentry;
210 dentry = lookup_one_len(name, dbuf->xadir, namelen);
211 if (IS_ERR(dentry)) {
212 dbuf->err = PTR_ERR(dentry);
214 } else if (d_really_is_negative(dentry)) {
216 reiserfs_error(dentry->d_sb, "xattr-20003",
219 dentry, dbuf->xadir);
220 dput(dentry);
225 dbuf->dentries[dbuf->count++] = dentry;
240 int (*action)(struct dentry *, void *),
243 struct dentry *dir;
276 struct dentry *dentry = buf.dentries[i];
278 if (!d_is_dir(dentry))
279 err = action(dentry, data);
281 dput(dentry);
333 static int delete_one_xattr(struct dentry *dentry, void *data)
335 struct inode *dir = d_inode(dentry->d_parent);
338 if (d_is_dir(dentry))
339 return xattr_rmdir(dir, dentry);
341 return xattr_unlink(dir, dentry);
344 static int chown_one_xattr(struct dentry *dentry, void *data)
356 err = reiserfs_setattr(&nop_mnt_idmap, dentry, attrs);
386 * Returns a dentry corresponding to a specific extended attribute file
388 * valid or negative dentry, or an error is returned.
390 static struct dentry *xattr_lookup(struct inode *inode, const char *name,
393 struct dentry *xadir, *xafile;
482 struct dentry *dentry, *xadir;
489 dentry = lookup_one_len(name, xadir, strlen(name));
490 if (IS_ERR(dentry)) {
491 err = PTR_ERR(dentry);
495 if (d_really_is_positive(dentry)) {
496 err = xattr_unlink(d_inode(xadir), dentry);
500 dput(dentry);
519 struct dentry *dentry;
535 dentry = xattr_lookup(inode, name, flags);
536 if (IS_ERR(dentry))
537 return PTR_ERR(dentry);
552 page = reiserfs_get_page(d_inode(dentry), file_pos);
592 if (!err && new_size < i_size_read(d_inode(dentry))) {
599 inode_lock_nested(d_inode(dentry), I_MUTEX_XATTR);
600 inode_dio_wait(d_inode(dentry));
602 err = reiserfs_setattr(&nop_mnt_idmap, dentry, &newattrs);
603 inode_unlock(d_inode(dentry));
608 dput(dentry);
655 struct dentry *dentry;
679 dentry = xattr_lookup(inode, name, XATTR_REPLACE);
680 if (IS_ERR(dentry)) {
681 err = PTR_ERR(dentry);
687 isize = i_size_read(d_inode(dentry));
710 page = reiserfs_get_page(d_inode(dentry), file_pos);
755 dput(dentry);
776 struct dentry *dentry)
779 IS_POSIXACL(d_backing_inode(dentry));
784 const char *name, struct dentry *dentry)
795 if (!xattr_handler_can_list(xah, dentry))
802 return reiserfs_posix_acl_list(name, dentry);
810 struct dentry *dentry;
823 if (!reiserfs_xattr_list(b->dentry->d_sb->s_xattr, name,
824 b->dentry))
847 ssize_t reiserfs_listxattr(struct dentry * dentry, char *buffer, size_t size)
849 struct dentry *dir;
853 .dentry = dentry,
858 if (d_really_is_negative(dentry))
861 if (get_inode_sd_version(d_inode(dentry)) == STAT_DATA_V1)
864 dir = open_xa_dir(d_inode(dentry), XATTR_REPLACE);
884 static int create_privroot(struct dentry *dentry)
887 struct inode *inode = d_inode(dentry->d_parent);
891 err = xattr_mkdir(inode, dentry, 0700);
892 if (err || d_really_is_negative(dentry)) {
893 reiserfs_warning(dentry->d_sb, "jdm-20006",
900 reiserfs_init_priv_inode(d_inode(dentry));
901 reiserfs_info(dentry->d_sb, "Created %s - reserved for xattr "
910 static int create_privroot(struct dentry *dentry) { return 0; }
961 static int xattr_hide_revalidate(struct dentry *dentry, unsigned int flags)
972 struct dentry *dentry;
977 dentry = lookup_one_len(PRIVROOT_NAME, s->s_root,
979 if (!IS_ERR(dentry)) {
980 REISERFS_SB(s)->priv_root = dentry;
981 d_set_d_op(dentry, &xattr_lookup_poison_ops);
982 if (d_really_is_positive(dentry))
983 reiserfs_init_priv_inode(d_inode(dentry));
985 err = PTR_ERR(dentry);
999 struct dentry *privroot = REISERFS_SB(s)->priv_root;
1014 struct dentry *dentry;
1016 dentry = lookup_one_len(XAROOT_NAME, privroot,
1018 if (!IS_ERR(dentry))
1019 REISERFS_SB(s)->xattr_root = dentry;
1021 err = PTR_ERR(dentry);