Lines Matching refs:dentry
108 struct dentry { struct
113 struct dentry *d_parent; /* parent directory */ argument
151 int (*d_revalidate)(struct dentry *, unsigned int);
152 int (*d_weak_revalidate)(struct dentry *, unsigned int);
153 int (*d_hash)(const struct dentry *, struct qstr *);
154 int (*d_compare)(const struct dentry *, const struct dentry *,
156 int (*d_delete)(const struct dentry *);
157 void (*d_release)(struct dentry *);
158 void (*d_prune)(struct dentry *);
159 void (*d_iput)(struct dentry *, struct inode *);
160 char *(*d_dname)(struct dentry *, char *, int);
162 int (*d_manage)(struct dentry *, bool);
163 struct inode *(*d_select_inode)(struct dentry *, unsigned);
236 extern void d_instantiate(struct dentry *, struct inode *);
237 extern struct dentry * d_instantiate_unique(struct dentry *, struct inode *);
238 extern int d_instantiate_no_diralias(struct dentry *, struct inode *);
239 extern void __d_drop(struct dentry *dentry);
240 extern void d_drop(struct dentry *dentry);
241 extern void d_delete(struct dentry *);
242 extern void d_set_d_op(struct dentry *dentry, const struct dentry_operations *op);
245 extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
246 extern struct dentry * d_alloc_pseudo(struct super_block *, const struct qstr *);
247 extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
248 extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
249 extern struct dentry *d_find_any_alias(struct inode *inode);
250 extern struct dentry * d_obtain_alias(struct inode *);
251 extern struct dentry * d_obtain_root(struct inode *);
253 extern void shrink_dcache_parent(struct dentry *);
255 extern void d_invalidate(struct dentry *);
258 extern struct dentry * d_make_root(struct inode *);
261 extern void d_genocide(struct dentry *);
263 extern void d_tmpfile(struct dentry *, struct inode *);
265 extern struct dentry *d_find_alias(struct inode *);
269 extern int have_submounts(struct dentry *);
274 extern void d_rehash(struct dentry *);
285 static inline void d_add(struct dentry *entry, struct inode *inode) in d_add()
299 static inline struct dentry *d_add_unique(struct dentry *entry, struct inode *inode) in d_add_unique()
301 struct dentry *res; in d_add_unique()
308 extern void dentry_update_name_case(struct dentry *, struct qstr *);
311 extern void d_move(struct dentry *, struct dentry *);
312 extern void d_exchange(struct dentry *, struct dentry *);
313 extern struct dentry *d_ancestor(struct dentry *, struct dentry *);
316 extern struct dentry *d_lookup(const struct dentry *, const struct qstr *);
317 extern struct dentry *d_hash_and_lookup(struct dentry *, struct qstr *);
318 extern struct dentry *__d_lookup(const struct dentry *, const struct qstr *);
319 extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
322 static inline unsigned d_count(const struct dentry *dentry) in d_count() argument
324 return dentry->d_lockref.count; in d_count()
330 extern char *dynamic_dname(struct dentry *, char *, int, const char *, ...);
331 extern char *simple_dname(struct dentry *, char *, int);
336 extern char *dentry_path_raw(struct dentry *, char *, int);
337 extern char *dentry_path(struct dentry *, char *, int);
349 static inline struct dentry *dget_dlock(struct dentry *dentry) in dget_dlock() argument
351 if (dentry) in dget_dlock()
352 dentry->d_lockref.count++; in dget_dlock()
353 return dentry; in dget_dlock()
356 static inline struct dentry *dget(struct dentry *dentry) in dget() argument
358 if (dentry) in dget()
359 lockref_get(&dentry->d_lockref); in dget()
360 return dentry; in dget()
363 extern struct dentry *dget_parent(struct dentry *dentry);
372 static inline int d_unhashed(const struct dentry *dentry) in d_unhashed() argument
374 return hlist_bl_unhashed(&dentry->d_hash); in d_unhashed()
377 static inline int d_unlinked(const struct dentry *dentry) in d_unlinked() argument
379 return d_unhashed(dentry) && !IS_ROOT(dentry); in d_unlinked()
382 static inline int cant_mount(const struct dentry *dentry) in cant_mount() argument
384 return (dentry->d_flags & DCACHE_CANT_MOUNT); in cant_mount()
387 static inline void dont_mount(struct dentry *dentry) in dont_mount() argument
389 spin_lock(&dentry->d_lock); in dont_mount()
390 dentry->d_flags |= DCACHE_CANT_MOUNT; in dont_mount()
391 spin_unlock(&dentry->d_lock); in dont_mount()
394 extern void dput(struct dentry *);
396 static inline bool d_managed(const struct dentry *dentry) in d_managed() argument
398 return dentry->d_flags & DCACHE_MANAGED_DENTRY; in d_managed()
401 static inline bool d_mountpoint(const struct dentry *dentry) in d_mountpoint() argument
403 return dentry->d_flags & DCACHE_MOUNTED; in d_mountpoint()
409 static inline unsigned __d_entry_type(const struct dentry *dentry) in __d_entry_type() argument
411 return dentry->d_flags & DCACHE_ENTRY_TYPE; in __d_entry_type()
414 static inline bool d_is_miss(const struct dentry *dentry) in d_is_miss() argument
416 return __d_entry_type(dentry) == DCACHE_MISS_TYPE; in d_is_miss()
419 static inline bool d_is_whiteout(const struct dentry *dentry) in d_is_whiteout() argument
421 return __d_entry_type(dentry) == DCACHE_WHITEOUT_TYPE; in d_is_whiteout()
424 static inline bool d_can_lookup(const struct dentry *dentry) in d_can_lookup() argument
426 return __d_entry_type(dentry) == DCACHE_DIRECTORY_TYPE; in d_can_lookup()
429 static inline bool d_is_autodir(const struct dentry *dentry) in d_is_autodir() argument
431 return __d_entry_type(dentry) == DCACHE_AUTODIR_TYPE; in d_is_autodir()
434 static inline bool d_is_dir(const struct dentry *dentry) in d_is_dir() argument
436 return d_can_lookup(dentry) || d_is_autodir(dentry); in d_is_dir()
439 static inline bool d_is_symlink(const struct dentry *dentry) in d_is_symlink() argument
441 return __d_entry_type(dentry) == DCACHE_SYMLINK_TYPE; in d_is_symlink()
444 static inline bool d_is_reg(const struct dentry *dentry) in d_is_reg() argument
446 return __d_entry_type(dentry) == DCACHE_REGULAR_TYPE; in d_is_reg()
449 static inline bool d_is_special(const struct dentry *dentry) in d_is_special() argument
451 return __d_entry_type(dentry) == DCACHE_SPECIAL_TYPE; in d_is_special()
454 static inline bool d_is_file(const struct dentry *dentry) in d_is_file() argument
456 return d_is_reg(dentry) || d_is_special(dentry); in d_is_file()
459 static inline bool d_is_negative(const struct dentry *dentry) in d_is_negative() argument
462 return d_is_miss(dentry); in d_is_negative()
465 static inline bool d_is_positive(const struct dentry *dentry) in d_is_positive() argument
467 return !d_is_negative(dentry); in d_is_positive()
485 static inline bool d_really_is_negative(const struct dentry *dentry) in d_really_is_negative() argument
487 return dentry->d_inode == NULL; in d_really_is_negative()
503 static inline bool d_really_is_positive(const struct dentry *dentry) in d_really_is_positive() argument
505 return dentry->d_inode != NULL; in d_really_is_positive()
508 extern void d_set_fallthru(struct dentry *dentry);
510 static inline bool d_is_fallthru(const struct dentry *dentry) in d_is_fallthru() argument
512 return dentry->d_flags & DCACHE_FALLTHRU; in d_is_fallthru()
530 static inline struct inode *d_inode(const struct dentry *dentry) in d_inode() argument
532 return dentry->d_inode; in d_inode()
542 static inline struct inode *d_inode_rcu(const struct dentry *dentry) in d_inode_rcu() argument
544 return ACCESS_ONCE(dentry->d_inode); in d_inode_rcu()
557 static inline struct inode *d_backing_inode(const struct dentry *upper) in d_backing_inode()
574 static inline struct dentry *d_backing_dentry(struct dentry *upper) in d_backing_dentry()