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