xref: /openbmc/linux/fs/ocfs2/dcache.h (revision 328970de)
1328970deSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
2ccd979bdSMark Fasheh /* -*- mode: c; c-basic-offset: 8; -*-
3ccd979bdSMark Fasheh  * vim: noexpandtab sw=8 ts=8 sts=0:
4ccd979bdSMark Fasheh  *
5ccd979bdSMark Fasheh  * dcache.h
6ccd979bdSMark Fasheh  *
7ccd979bdSMark Fasheh  * Function prototypes
8ccd979bdSMark Fasheh  *
9ccd979bdSMark Fasheh  * Copyright (C) 2002, 2004 Oracle.  All rights reserved.
10ccd979bdSMark Fasheh  */
11ccd979bdSMark Fasheh 
12ccd979bdSMark Fasheh #ifndef OCFS2_DCACHE_H
13ccd979bdSMark Fasheh #define OCFS2_DCACHE_H
14ccd979bdSMark Fasheh 
15d8fba0ffSAl Viro extern const struct dentry_operations ocfs2_dentry_ops;
16ccd979bdSMark Fasheh 
17d680efe9SMark Fasheh struct ocfs2_dentry_lock {
18d680efe9SMark Fasheh 	unsigned int		dl_count;
19d680efe9SMark Fasheh 	u64			dl_parent_blkno;
20d680efe9SMark Fasheh 
21d680efe9SMark Fasheh 	/*
22d680efe9SMark Fasheh 	 * The ocfs2_dentry_lock keeps an inode reference until
23d680efe9SMark Fasheh 	 * dl_lockres has been destroyed. This is usually done in
24d680efe9SMark Fasheh 	 * ->d_iput() anyway, so there should be minimal impact.
25d680efe9SMark Fasheh 	 */
26d680efe9SMark Fasheh 	struct inode		*dl_inode;
27d680efe9SMark Fasheh 	struct ocfs2_lock_res	dl_lockres;
28d680efe9SMark Fasheh };
29d680efe9SMark Fasheh 
3080c05846SMark Fasheh int ocfs2_dentry_attach_lock(struct dentry *dentry, struct inode *inode,
310027dd5bSMark Fasheh 			     u64 parent_blkno);
32d680efe9SMark Fasheh 
3380c05846SMark Fasheh void ocfs2_dentry_lock_put(struct ocfs2_super *osb,
3480c05846SMark Fasheh 			   struct ocfs2_dentry_lock *dl);
3580c05846SMark Fasheh 
3680c05846SMark Fasheh struct dentry *ocfs2_find_local_alias(struct inode *inode, u64 parent_blkno,
3780c05846SMark Fasheh 				      int skip_unhashed);
3880c05846SMark Fasheh 
3980c05846SMark Fasheh void ocfs2_dentry_move(struct dentry *dentry, struct dentry *target,
4080c05846SMark Fasheh 		       struct inode *old_dir, struct inode *new_dir);
41d680efe9SMark Fasheh 
42d680efe9SMark Fasheh extern spinlock_t dentry_attach_lock;
435e98d492SGoldwyn Rodrigues void ocfs2_dentry_attach_gen(struct dentry *dentry);
44d680efe9SMark Fasheh 
45ccd979bdSMark Fasheh #endif /* OCFS2_DCACHE_H */
46