18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* -*- mode: c; c-basic-offset: 8; -*- 38c2ecf20Sopenharmony_ci * vim: noexpandtab sw=8 ts=8 sts=0: 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * dcache.h 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Function prototypes 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * Copyright (C) 2002, 2004 Oracle. All rights reserved. 108c2ecf20Sopenharmony_ci */ 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#ifndef OCFS2_DCACHE_H 138c2ecf20Sopenharmony_ci#define OCFS2_DCACHE_H 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciextern const struct dentry_operations ocfs2_dentry_ops; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct ocfs2_dentry_lock { 188c2ecf20Sopenharmony_ci unsigned int dl_count; 198c2ecf20Sopenharmony_ci u64 dl_parent_blkno; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci /* 228c2ecf20Sopenharmony_ci * The ocfs2_dentry_lock keeps an inode reference until 238c2ecf20Sopenharmony_ci * dl_lockres has been destroyed. This is usually done in 248c2ecf20Sopenharmony_ci * ->d_iput() anyway, so there should be minimal impact. 258c2ecf20Sopenharmony_ci */ 268c2ecf20Sopenharmony_ci struct inode *dl_inode; 278c2ecf20Sopenharmony_ci struct ocfs2_lock_res dl_lockres; 288c2ecf20Sopenharmony_ci}; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciint ocfs2_dentry_attach_lock(struct dentry *dentry, struct inode *inode, 318c2ecf20Sopenharmony_ci u64 parent_blkno); 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_civoid ocfs2_dentry_lock_put(struct ocfs2_super *osb, 348c2ecf20Sopenharmony_ci struct ocfs2_dentry_lock *dl); 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cistruct dentry *ocfs2_find_local_alias(struct inode *inode, u64 parent_blkno, 378c2ecf20Sopenharmony_ci int skip_unhashed); 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_civoid ocfs2_dentry_move(struct dentry *dentry, struct dentry *target, 408c2ecf20Sopenharmony_ci struct inode *old_dir, struct inode *new_dir); 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciextern spinlock_t dentry_attach_lock; 438c2ecf20Sopenharmony_civoid ocfs2_dentry_attach_gen(struct dentry *dentry); 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci#endif /* OCFS2_DCACHE_H */ 46