1 /* -*- mode: c; c-basic-offset: 8; -*-
2 * vim: noexpandtab sw=8 ts=8 sts=0:
8 * Copyright (C) 2002, 2004 Oracle. All rights reserved.
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public
12 * License as published by the Free Software Foundation; either
13 * version 2 of the License, or (at your option) any later version.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 * General Public License for more details.
20 * You should have received a copy of the GNU General Public
21 * License along with this program; if not, write to the
22 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 * Boston, MA 021110-1307, USA.
29 struct buffer_head
*ocfs2_find_entry(const char *name
,
32 struct ocfs2_dir_entry
**res_dir
);
33 int ocfs2_delete_entry(handle_t
*handle
,
35 struct ocfs2_dir_entry
*de_del
,
36 struct buffer_head
*bh
);
37 int __ocfs2_add_entry(handle_t
*handle
,
39 const char *name
, int namelen
,
40 struct inode
*inode
, u64 blkno
,
41 struct buffer_head
*parent_fe_bh
,
42 struct buffer_head
*insert_bh
);
43 static inline int ocfs2_add_entry(handle_t
*handle
,
44 struct dentry
*dentry
,
45 struct inode
*inode
, u64 blkno
,
46 struct buffer_head
*parent_fe_bh
,
47 struct buffer_head
*insert_bh
)
49 return __ocfs2_add_entry(handle
, dentry
->d_parent
->d_inode
,
50 dentry
->d_name
.name
, dentry
->d_name
.len
,
51 inode
, blkno
, parent_fe_bh
, insert_bh
);
53 int ocfs2_update_entry(struct inode
*dir
, handle_t
*handle
,
54 struct buffer_head
*de_bh
, struct ocfs2_dir_entry
*de
,
55 struct inode
*new_entry_inode
);
57 int ocfs2_check_dir_for_entry(struct inode
*dir
,
60 int ocfs2_empty_dir(struct inode
*inode
);
61 int ocfs2_find_files_on_disk(const char *name
,
65 struct buffer_head
**dirent_bh
,
66 struct ocfs2_dir_entry
**dirent
);
67 int ocfs2_lookup_ino_from_name(struct inode
*dir
, const char *name
,
68 int namelen
, u64
*blkno
);
69 int ocfs2_readdir(struct file
*filp
, void *dirent
, filldir_t filldir
);
70 int ocfs2_dir_foreach(struct inode
*inode
, loff_t
*f_pos
, void *priv
,
72 int ocfs2_prepare_dir_for_insert(struct ocfs2_super
*osb
,
74 struct buffer_head
*parent_fe_bh
,
77 struct buffer_head
**ret_de_bh
);
78 struct ocfs2_alloc_context
;
79 int ocfs2_fill_new_dir(struct ocfs2_super
*osb
,
83 struct buffer_head
*fe_bh
,
84 struct ocfs2_alloc_context
*data_ac
);
86 struct ocfs2_dir_block_trailer
*ocfs2_dir_trailer_from_size(int blocksize
,
88 #endif /* OCFS2_DIR_H */