Thomas Gleixner | 328970d | 2019-05-24 12:04:05 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
Masahiro Yamada | fa60ce2 | 2021-05-06 18:06:44 -0700 | [diff] [blame] | 2 | /* |
Mark Fasheh | ccd979b | 2005-12-15 14:31:24 -0800 | [diff] [blame] | 3 | * dcache.h |
| 4 | * |
| 5 | * Function prototypes |
| 6 | * |
| 7 | * Copyright (C) 2002, 2004 Oracle. All rights reserved. |
Mark Fasheh | ccd979b | 2005-12-15 14:31:24 -0800 | [diff] [blame] | 8 | */ |
| 9 | |
| 10 | #ifndef OCFS2_DCACHE_H |
| 11 | #define OCFS2_DCACHE_H |
| 12 | |
Al Viro | d8fba0f | 2009-02-20 06:00:26 +0000 | [diff] [blame] | 13 | extern const struct dentry_operations ocfs2_dentry_ops; |
Mark Fasheh | ccd979b | 2005-12-15 14:31:24 -0800 | [diff] [blame] | 14 | |
Mark Fasheh | d680efe | 2006-09-08 14:14:34 -0700 | [diff] [blame] | 15 | struct ocfs2_dentry_lock { |
| 16 | unsigned int dl_count; |
Goldwyn Rodrigues | 8ed6b23 | 2014-04-03 14:46:59 -0700 | [diff] [blame] | 17 | u64 dl_parent_blkno; |
Mark Fasheh | d680efe | 2006-09-08 14:14:34 -0700 | [diff] [blame] | 18 | |
| 19 | /* |
| 20 | * The ocfs2_dentry_lock keeps an inode reference until |
| 21 | * dl_lockres has been destroyed. This is usually done in |
| 22 | * ->d_iput() anyway, so there should be minimal impact. |
| 23 | */ |
| 24 | struct inode *dl_inode; |
| 25 | struct ocfs2_lock_res dl_lockres; |
| 26 | }; |
| 27 | |
Mark Fasheh | 80c0584 | 2006-09-08 14:43:18 -0700 | [diff] [blame] | 28 | int ocfs2_dentry_attach_lock(struct dentry *dentry, struct inode *inode, |
Mark Fasheh | 0027dd5 | 2006-09-21 16:51:28 -0700 | [diff] [blame] | 29 | u64 parent_blkno); |
Mark Fasheh | d680efe | 2006-09-08 14:14:34 -0700 | [diff] [blame] | 30 | |
Mark Fasheh | 80c0584 | 2006-09-08 14:43:18 -0700 | [diff] [blame] | 31 | void ocfs2_dentry_lock_put(struct ocfs2_super *osb, |
| 32 | struct ocfs2_dentry_lock *dl); |
| 33 | |
| 34 | struct dentry *ocfs2_find_local_alias(struct inode *inode, u64 parent_blkno, |
| 35 | int skip_unhashed); |
| 36 | |
| 37 | void ocfs2_dentry_move(struct dentry *dentry, struct dentry *target, |
| 38 | struct inode *old_dir, struct inode *new_dir); |
Mark Fasheh | d680efe | 2006-09-08 14:14:34 -0700 | [diff] [blame] | 39 | |
| 40 | extern spinlock_t dentry_attach_lock; |
Goldwyn Rodrigues | 5e98d49 | 2010-06-28 10:04:32 -0500 | [diff] [blame] | 41 | void ocfs2_dentry_attach_gen(struct dentry *dentry); |
Mark Fasheh | d680efe | 2006-09-08 14:14:34 -0700 | [diff] [blame] | 42 | |
Mark Fasheh | ccd979b | 2005-12-15 14:31:24 -0800 | [diff] [blame] | 43 | #endif /* OCFS2_DCACHE_H */ |