aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2/namei.c
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2009-08-17 23:44:10 -0400
committerJoel Becker <joel.becker@oracle.com>2009-09-22 23:09:47 -0400
commit19bd341f6a6c6b314bcac55bbd906bfd3603fe9e (patch)
tree2eefd82e6ae2495b4d3288dc452763eea8d2fb37 /fs/ocfs2/namei.c
parentc18b812d127a971901180188b918a7cd98ccd4d6 (diff)
ocfs2: Use proper parameter for some inode operation.
In order to make the original function more suitable for reflink, we modify the following inode operations. Both are tiny. 1. ocfs2_mknod_locked only use dentry for mlog, so move it to the caller so that reflink can use it without dentry. 2. ocfs2_prepare_orphan_dir only want inode to get its ip_blkno. So use ip_blkno instead. Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/namei.c')
-rw-r--r--fs/ocfs2/namei.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index c07217ad8796..818df582ba06 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -69,7 +69,6 @@
69static int ocfs2_mknod_locked(struct ocfs2_super *osb, 69static int ocfs2_mknod_locked(struct ocfs2_super *osb,
70 struct inode *dir, 70 struct inode *dir,
71 struct inode *inode, 71 struct inode *inode,
72 struct dentry *dentry,
73 dev_t dev, 72 dev_t dev,
74 struct buffer_head **new_fe_bh, 73 struct buffer_head **new_fe_bh,
75 struct buffer_head *parent_fe_bh, 74 struct buffer_head *parent_fe_bh,
@@ -78,7 +77,7 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,
78 77
79static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb, 78static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb,
80 struct inode **ret_orphan_dir, 79 struct inode **ret_orphan_dir,
81 struct inode *inode, 80 u64 blkno,
82 char *name, 81 char *name,
83 struct ocfs2_dir_lookup_result *lookup); 82 struct ocfs2_dir_lookup_result *lookup);
84 83
@@ -358,8 +357,12 @@ static int ocfs2_mknod(struct inode *dir,
358 } 357 }
359 did_quota_inode = 1; 358 did_quota_inode = 1;
360 359
360 mlog_entry("(0x%p, 0x%p, %d, %lu, '%.*s')\n", dir, dentry,
361 inode->i_mode, (unsigned long)dev, dentry->d_name.len,
362 dentry->d_name.name);
363
361 /* do the real work now. */ 364 /* do the real work now. */
362 status = ocfs2_mknod_locked(osb, dir, inode, dentry, dev, 365 status = ocfs2_mknod_locked(osb, dir, inode, dev,
363 &new_fe_bh, parent_fe_bh, handle, 366 &new_fe_bh, parent_fe_bh, handle,
364 inode_ac); 367 inode_ac);
365 if (status < 0) { 368 if (status < 0) {
@@ -466,7 +469,6 @@ leave:
466static int ocfs2_mknod_locked(struct ocfs2_super *osb, 469static int ocfs2_mknod_locked(struct ocfs2_super *osb,
467 struct inode *dir, 470 struct inode *dir,
468 struct inode *inode, 471 struct inode *inode,
469 struct dentry *dentry,
470 dev_t dev, 472 dev_t dev,
471 struct buffer_head **new_fe_bh, 473 struct buffer_head **new_fe_bh,
472 struct buffer_head *parent_fe_bh, 474 struct buffer_head *parent_fe_bh,
@@ -480,10 +482,6 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,
480 u16 suballoc_bit; 482 u16 suballoc_bit;
481 u16 feat; 483 u16 feat;
482 484
483 mlog_entry("(0x%p, 0x%p, %d, %lu, '%.*s')\n", dir, dentry,
484 inode->i_mode, (unsigned long)dev, dentry->d_name.len,
485 dentry->d_name.name);
486
487 *new_fe_bh = NULL; 485 *new_fe_bh = NULL;
488 486
489 status = ocfs2_claim_new_inode(osb, handle, dir, parent_fe_bh, 487 status = ocfs2_claim_new_inode(osb, handle, dir, parent_fe_bh,
@@ -852,7 +850,8 @@ static int ocfs2_unlink(struct inode *dir,
852 } 850 }
853 851
854 if (inode_is_unlinkable(inode)) { 852 if (inode_is_unlinkable(inode)) {
855 status = ocfs2_prepare_orphan_dir(osb, &orphan_dir, inode, 853 status = ocfs2_prepare_orphan_dir(osb, &orphan_dir,
854 OCFS2_I(inode)->ip_blkno,
856 orphan_name, &orphan_insert); 855 orphan_name, &orphan_insert);
857 if (status < 0) { 856 if (status < 0) {
858 mlog_errno(status); 857 mlog_errno(status);
@@ -1243,9 +1242,8 @@ static int ocfs2_rename(struct inode *old_dir,
1243 1242
1244 if (S_ISDIR(new_inode->i_mode) || (new_inode->i_nlink == 1)) { 1243 if (S_ISDIR(new_inode->i_mode) || (new_inode->i_nlink == 1)) {
1245 status = ocfs2_prepare_orphan_dir(osb, &orphan_dir, 1244 status = ocfs2_prepare_orphan_dir(osb, &orphan_dir,
1246 new_inode, 1245 OCFS2_I(new_inode)->ip_blkno,
1247 orphan_name, 1246 orphan_name, &orphan_insert);
1248 &orphan_insert);
1249 if (status < 0) { 1247 if (status < 0) {
1250 mlog_errno(status); 1248 mlog_errno(status);
1251 goto bail; 1249 goto bail;
@@ -1699,7 +1697,11 @@ static int ocfs2_symlink(struct inode *dir,
1699 } 1697 }
1700 did_quota_inode = 1; 1698 did_quota_inode = 1;
1701 1699
1702 status = ocfs2_mknod_locked(osb, dir, inode, dentry, 1700 mlog_entry("(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry,
1701 inode->i_mode, dentry->d_name.len,
1702 dentry->d_name.name);
1703
1704 status = ocfs2_mknod_locked(osb, dir, inode,
1703 0, &new_fe_bh, parent_fe_bh, handle, 1705 0, &new_fe_bh, parent_fe_bh, handle,
1704 inode_ac); 1706 inode_ac);
1705 if (status < 0) { 1707 if (status < 0) {
@@ -1849,7 +1851,7 @@ bail:
1849 1851
1850static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb, 1852static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb,
1851 struct inode **ret_orphan_dir, 1853 struct inode **ret_orphan_dir,
1852 struct inode *inode, 1854 u64 blkno,
1853 char *name, 1855 char *name,
1854 struct ocfs2_dir_lookup_result *lookup) 1856 struct ocfs2_dir_lookup_result *lookup)
1855{ 1857{
@@ -1857,7 +1859,7 @@ static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb,
1857 struct buffer_head *orphan_dir_bh = NULL; 1859 struct buffer_head *orphan_dir_bh = NULL;
1858 int status = 0; 1860 int status = 0;
1859 1861
1860 status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, name); 1862 status = ocfs2_blkno_stringify(blkno, name);
1861 if (status < 0) { 1863 if (status < 0) {
1862 mlog_errno(status); 1864 mlog_errno(status);
1863 return status; 1865 return status;