summaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/namei.h
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-08-18 11:44:14 +0800
committerJoel Becker <joel.becker@oracle.com>2009-09-22 20:09:48 -0700
commitbc13d347574fc0a8a666bc0f4cc2b635d202e372 (patch)
tree47eb9a764d3689ddd860d96f6cd80cf26a84bcc2 /fs/ocfs2/namei.h
parent19bd341f6a6c6b314bcac55bbd906bfd3603fe9e (diff)
downloadlinux-bc13d347574fc0a8a666bc0f4cc2b635d202e372.tar.gz
linux-bc13d347574fc0a8a666bc0f4cc2b635d202e372.tar.bz2
linux-bc13d347574fc0a8a666bc0f4cc2b635d202e372.zip
ocfs2: Create reflinked file in orphan dir.
reflink is a very complicated process, so it can't be integrated into one transaction. So if the system panic in the operation, we may leave a unfinished inode in the destication directory. So we will try to create an inode in orphan_dir first, reflink it to the src file and then move it to the destication file in the end. In that way we won't be afraid of any corruption during the reflink. This patch adds 2 functions for orphan_dir operation: 1. Create a new inode in orphand dir. 2. Move an inode to a target dir. Note: fsck.ocfs2 should work for us to remove the unfinished file in the orphan_dir. Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/namei.h')
-rw-r--r--fs/ocfs2/namei.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/ocfs2/namei.h b/fs/ocfs2/namei.h
index 688aef64c879..e5d059d4f115 100644
--- a/fs/ocfs2/namei.h
+++ b/fs/ocfs2/namei.h
@@ -35,5 +35,11 @@ int ocfs2_orphan_del(struct ocfs2_super *osb,
struct inode *orphan_dir_inode,
struct inode *inode,
struct buffer_head *orphan_dir_bh);
+int ocfs2_create_inode_in_orphan(struct inode *dir,
+ int mode,
+ struct inode **new_inode);
+int ocfs2_mv_orphaned_inode_to_new(struct inode *dir,
+ struct inode *new_inode,
+ struct dentry *new_dentry);
#endif /* OCFS2_NAMEI_H */