Skip to content

Commit

Permalink
ocfs2: Use proper parameter for some inode operation.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Tao Ma authored and Joel Becker committed Sep 23, 2009
1 parent c18b812 commit 19bd341
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions fs/ocfs2/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@
static int ocfs2_mknod_locked(struct ocfs2_super *osb,
struct inode *dir,
struct inode *inode,
struct dentry *dentry,
dev_t dev,
struct buffer_head **new_fe_bh,
struct buffer_head *parent_fe_bh,
Expand All @@ -78,7 +77,7 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,

static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb,
struct inode **ret_orphan_dir,
struct inode *inode,
u64 blkno,
char *name,
struct ocfs2_dir_lookup_result *lookup);

Expand Down Expand Up @@ -358,8 +357,12 @@ static int ocfs2_mknod(struct inode *dir,
}
did_quota_inode = 1;

mlog_entry("(0x%p, 0x%p, %d, %lu, '%.*s')\n", dir, dentry,
inode->i_mode, (unsigned long)dev, dentry->d_name.len,
dentry->d_name.name);

/* do the real work now. */
status = ocfs2_mknod_locked(osb, dir, inode, dentry, dev,
status = ocfs2_mknod_locked(osb, dir, inode, dev,
&new_fe_bh, parent_fe_bh, handle,
inode_ac);
if (status < 0) {
Expand Down Expand Up @@ -466,7 +469,6 @@ static int ocfs2_mknod(struct inode *dir,
static int ocfs2_mknod_locked(struct ocfs2_super *osb,
struct inode *dir,
struct inode *inode,
struct dentry *dentry,
dev_t dev,
struct buffer_head **new_fe_bh,
struct buffer_head *parent_fe_bh,
Expand All @@ -480,10 +482,6 @@ static int ocfs2_mknod_locked(struct ocfs2_super *osb,
u16 suballoc_bit;
u16 feat;

mlog_entry("(0x%p, 0x%p, %d, %lu, '%.*s')\n", dir, dentry,
inode->i_mode, (unsigned long)dev, dentry->d_name.len,
dentry->d_name.name);

*new_fe_bh = NULL;

status = ocfs2_claim_new_inode(osb, handle, dir, parent_fe_bh,
Expand Down Expand Up @@ -852,7 +850,8 @@ static int ocfs2_unlink(struct inode *dir,
}

if (inode_is_unlinkable(inode)) {
status = ocfs2_prepare_orphan_dir(osb, &orphan_dir, inode,
status = ocfs2_prepare_orphan_dir(osb, &orphan_dir,
OCFS2_I(inode)->ip_blkno,
orphan_name, &orphan_insert);
if (status < 0) {
mlog_errno(status);
Expand Down Expand Up @@ -1243,9 +1242,8 @@ static int ocfs2_rename(struct inode *old_dir,

if (S_ISDIR(new_inode->i_mode) || (new_inode->i_nlink == 1)) {
status = ocfs2_prepare_orphan_dir(osb, &orphan_dir,
new_inode,
orphan_name,
&orphan_insert);
OCFS2_I(new_inode)->ip_blkno,
orphan_name, &orphan_insert);
if (status < 0) {
mlog_errno(status);
goto bail;
Expand Down Expand Up @@ -1699,7 +1697,11 @@ static int ocfs2_symlink(struct inode *dir,
}
did_quota_inode = 1;

status = ocfs2_mknod_locked(osb, dir, inode, dentry,
mlog_entry("(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry,
inode->i_mode, dentry->d_name.len,
dentry->d_name.name);

status = ocfs2_mknod_locked(osb, dir, inode,
0, &new_fe_bh, parent_fe_bh, handle,
inode_ac);
if (status < 0) {
Expand Down Expand Up @@ -1849,15 +1851,15 @@ static int ocfs2_blkno_stringify(u64 blkno, char *name)

static int ocfs2_prepare_orphan_dir(struct ocfs2_super *osb,
struct inode **ret_orphan_dir,
struct inode *inode,
u64 blkno,
char *name,
struct ocfs2_dir_lookup_result *lookup)
{
struct inode *orphan_dir_inode;
struct buffer_head *orphan_dir_bh = NULL;
int status = 0;

status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, name);
status = ocfs2_blkno_stringify(blkno, name);
if (status < 0) {
mlog_errno(status);
return status;
Expand Down

0 comments on commit 19bd341

Please sign in to comment.