xref: /openbmc/linux/fs/ocfs2/dcache.h (revision fa60ce2c)
1328970deSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2*fa60ce2cSMasahiro Yamada /*
3ccd979bdSMark Fasheh  * dcache.h
4ccd979bdSMark Fasheh  *
5ccd979bdSMark Fasheh  * Function prototypes
6ccd979bdSMark Fasheh  *
7ccd979bdSMark Fasheh  * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
8ccd979bdSMark Fasheh  */
9ccd979bdSMark Fasheh 
10ccd979bdSMark Fasheh #ifndef OCFS2_DCACHE_H
11ccd979bdSMark Fasheh #define OCFS2_DCACHE_H
12ccd979bdSMark Fasheh 
13d8fba0ffSAl Viro extern const struct dentry_operations ocfs2_dentry_ops;
14ccd979bdSMark Fasheh 
15d680efe9SMark Fasheh struct ocfs2_dentry_lock {
16d680efe9SMark Fasheh 	unsigned int		dl_count;
17d680efe9SMark Fasheh 	u64			dl_parent_blkno;
18d680efe9SMark Fasheh 
19d680efe9SMark Fasheh 	/*
20d680efe9SMark Fasheh 	 * The ocfs2_dentry_lock keeps an inode reference until
21d680efe9SMark Fasheh 	 * dl_lockres has been destroyed. This is usually done in
22d680efe9SMark Fasheh 	 * ->d_iput() anyway, so there should be minimal impact.
23d680efe9SMark Fasheh 	 */
24d680efe9SMark Fasheh 	struct inode		*dl_inode;
25d680efe9SMark Fasheh 	struct ocfs2_lock_res	dl_lockres;
26d680efe9SMark Fasheh };
27d680efe9SMark Fasheh 
2880c05846SMark Fasheh int ocfs2_dentry_attach_lock(struct dentry *dentry, struct inode *inode,
290027dd5bSMark Fasheh 			     u64 parent_blkno);
30d680efe9SMark Fasheh 
3180c05846SMark Fasheh void ocfs2_dentry_lock_put(struct ocfs2_super *osb,
3280c05846SMark Fasheh 			   struct ocfs2_dentry_lock *dl);
3380c05846SMark Fasheh 
3480c05846SMark Fasheh struct dentry *ocfs2_find_local_alias(struct inode *inode, u64 parent_blkno,
3580c05846SMark Fasheh 				      int skip_unhashed);
3680c05846SMark Fasheh 
3780c05846SMark Fasheh void ocfs2_dentry_move(struct dentry *dentry, struct dentry *target,
3880c05846SMark Fasheh 		       struct inode *old_dir, struct inode *new_dir);
39d680efe9SMark Fasheh 
40d680efe9SMark Fasheh extern spinlock_t dentry_attach_lock;
415e98d492SGoldwyn Rodrigues void ocfs2_dentry_attach_gen(struct dentry *dentry);
42d680efe9SMark Fasheh 
43ccd979bdSMark Fasheh #endif /* OCFS2_DCACHE_H */
44