Lines Matching refs:subdir
89 struct dentry *subdir; in cachefiles_get_directory() local
100 subdir = start_creating(&nop_mnt_idmap, dir, &QSTR(dirname)); in cachefiles_get_directory()
102 subdir = ERR_PTR(ret); in cachefiles_get_directory()
103 trace_cachefiles_lookup(NULL, dir, subdir); in cachefiles_get_directory()
104 if (IS_ERR(subdir)) { in cachefiles_get_directory()
106 PTR_ERR(subdir), in cachefiles_get_directory()
108 if (PTR_ERR(subdir) == -ENOMEM) in cachefiles_get_directory()
114 subdir, d_backing_inode(subdir) ? "positive" : "negative"); in cachefiles_get_directory()
117 if (d_is_negative(subdir)) { in cachefiles_get_directory()
127 ret = security_path_mkdir(&path, subdir, 0700); in cachefiles_get_directory()
132 subdir = vfs_mkdir(&nop_mnt_idmap, d_inode(dir), subdir, 0700, NULL); in cachefiles_get_directory()
133 if (IS_ERR(subdir)) in cachefiles_get_directory()
134 ret = PTR_ERR(subdir); in cachefiles_get_directory()
136 end_creating(subdir); in cachefiles_get_directory()
137 subdir = ERR_PTR(ret); in cachefiles_get_directory()
139 if (IS_ERR(subdir)) { in cachefiles_get_directory()
144 trace_cachefiles_mkdir(dir, subdir); in cachefiles_get_directory()
146 if (unlikely(d_unhashed(subdir) || d_is_negative(subdir))) { in cachefiles_get_directory()
147 end_creating(subdir); in cachefiles_get_directory()
150 ASSERT(d_backing_inode(subdir)); in cachefiles_get_directory()
153 subdir, d_backing_inode(subdir)->i_ino); in cachefiles_get_directory()
159 inode_lock(d_inode(subdir)); in cachefiles_get_directory()
160 end_creating_keep(subdir); in cachefiles_get_directory()
162 if (!__cachefiles_mark_inode_in_use(NULL, d_inode(subdir))) { in cachefiles_get_directory()
164 subdir, d_inode(subdir)->i_ino); in cachefiles_get_directory()
168 inode_unlock(d_inode(subdir)); in cachefiles_get_directory()
171 ASSERT(d_backing_inode(subdir)); in cachefiles_get_directory()
173 if (!d_can_lookup(subdir)) { in cachefiles_get_directory()
180 if (!(d_backing_inode(subdir)->i_opflags & IOP_XATTR) || in cachefiles_get_directory()
181 !d_backing_inode(subdir)->i_op->lookup || in cachefiles_get_directory()
182 !d_backing_inode(subdir)->i_op->mkdir || in cachefiles_get_directory()
183 !d_backing_inode(subdir)->i_op->rename || in cachefiles_get_directory()
184 !d_backing_inode(subdir)->i_op->rmdir || in cachefiles_get_directory()
185 !d_backing_inode(subdir)->i_op->unlink) in cachefiles_get_directory()
188 _leave(" = [%llu]", d_backing_inode(subdir)->i_ino); in cachefiles_get_directory()
189 return subdir; in cachefiles_get_directory()
192 cachefiles_put_directory(subdir); in cachefiles_get_directory()
197 inode_unlock(d_inode(subdir)); in cachefiles_get_directory()
198 dput(subdir); in cachefiles_get_directory()
202 end_creating(subdir); in cachefiles_get_directory()
207 ret = PTR_ERR(subdir); in cachefiles_get_directory()