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