Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2: (39 commits) Treat writes as new when holes span across page boundaries fs,ocfs2: Move o2net_get_func_run_time under CONFIG_OCFS2_FS_STATS. ocfs2/dlm: Move kmalloc() outside the spinlock ocfs2: Make the left masklogs compat. ocfs2: Remove masklog ML_AIO. ocfs2: Remove masklog ML_UPTODATE. ocfs2: Remove masklog ML_BH_IO. ocfs2: Remove masklog ML_JOURNAL. ocfs2: Remove masklog ML_EXPORT. ocfs2: Remove masklog ML_DCACHE. ocfs2: Remove masklog ML_NAMEI. ocfs2: Remove mlog(0) from fs/ocfs2/dir.c ocfs2: remove NAMEI from symlink.c ocfs2: Remove masklog ML_QUOTA. ocfs2: Remove mlog(0) from quota_local.c. ocfs2: Remove masklog ML_RESERVATIONS. ocfs2: Remove masklog ML_XATTR. ocfs2: Remove masklog ML_SUPER. ocfs2: Remove mlog(0) from fs/ocfs2/heartbeat.c ocfs2: Remove mlog(0) from fs/ocfs2/slot_map.c ... Fix up trivial conflict in fs/ocfs2/super.c
This commit is contained in:
+87
-88
@@ -42,7 +42,6 @@
|
||||
#include <linux/highmem.h>
|
||||
#include <linux/quotaops.h>
|
||||
|
||||
#define MLOG_MASK_PREFIX ML_NAMEI
|
||||
#include <cluster/masklog.h>
|
||||
|
||||
#include "ocfs2.h"
|
||||
@@ -63,6 +62,7 @@
|
||||
#include "uptodate.h"
|
||||
#include "xattr.h"
|
||||
#include "acl.h"
|
||||
#include "ocfs2_trace.h"
|
||||
|
||||
#include "buffer_head_io.h"
|
||||
|
||||
@@ -106,17 +106,15 @@ static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry,
|
||||
struct dentry *ret;
|
||||
struct ocfs2_inode_info *oi;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, '%.*s')\n", dir, dentry,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_lookup(dir, dentry, dentry->d_name.len,
|
||||
dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno, 0);
|
||||
|
||||
if (dentry->d_name.len > OCFS2_MAX_FILENAME_LEN) {
|
||||
ret = ERR_PTR(-ENAMETOOLONG);
|
||||
goto bail;
|
||||
}
|
||||
|
||||
mlog(0, "find name %.*s in directory %llu\n", dentry->d_name.len,
|
||||
dentry->d_name.name, (unsigned long long)OCFS2_I(dir)->ip_blkno);
|
||||
|
||||
status = ocfs2_inode_lock_nested(dir, NULL, 0, OI_LS_PARENT);
|
||||
if (status < 0) {
|
||||
if (status != -ENOENT)
|
||||
@@ -182,7 +180,7 @@ bail_unlock:
|
||||
|
||||
bail:
|
||||
|
||||
mlog_exit_ptr(ret);
|
||||
trace_ocfs2_lookup_ret(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -235,9 +233,9 @@ static int ocfs2_mknod(struct inode *dir,
|
||||
sigset_t oldset;
|
||||
int did_block_signals = 0;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, %d, %lu, '%.*s')\n", dir, dentry, mode,
|
||||
(unsigned long)dev, dentry->d_name.len,
|
||||
dentry->d_name.name);
|
||||
trace_ocfs2_mknod(dir, dentry, dentry->d_name.len, dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno,
|
||||
(unsigned long)dev, mode);
|
||||
|
||||
dquot_initialize(dir);
|
||||
|
||||
@@ -354,10 +352,6 @@ static int ocfs2_mknod(struct inode *dir,
|
||||
goto leave;
|
||||
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, dev,
|
||||
&new_fe_bh, parent_fe_bh, handle,
|
||||
@@ -436,9 +430,6 @@ leave:
|
||||
if (did_block_signals)
|
||||
ocfs2_unblock_signals(&oldset);
|
||||
|
||||
if (status == -ENOSPC)
|
||||
mlog(0, "Disk is full\n");
|
||||
|
||||
brelse(new_fe_bh);
|
||||
brelse(parent_fe_bh);
|
||||
kfree(si.name);
|
||||
@@ -466,7 +457,8 @@ leave:
|
||||
iput(inode);
|
||||
}
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -577,7 +569,8 @@ leave:
|
||||
}
|
||||
}
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -615,10 +608,11 @@ static int ocfs2_mkdir(struct inode *dir,
|
||||
{
|
||||
int ret;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry, mode,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_mkdir(dir, dentry, dentry->d_name.len, dentry->d_name.name,
|
||||
OCFS2_I(dir)->ip_blkno, mode);
|
||||
ret = ocfs2_mknod(dir, dentry, mode | S_IFDIR, 0);
|
||||
mlog_exit(ret);
|
||||
if (ret)
|
||||
mlog_errno(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -630,10 +624,11 @@ static int ocfs2_create(struct inode *dir,
|
||||
{
|
||||
int ret;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry, mode,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_create(dir, dentry, dentry->d_name.len, dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno, mode);
|
||||
ret = ocfs2_mknod(dir, dentry, mode | S_IFREG, 0);
|
||||
mlog_exit(ret);
|
||||
if (ret)
|
||||
mlog_errno(ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -652,9 +647,9 @@ static int ocfs2_link(struct dentry *old_dentry,
|
||||
struct ocfs2_dir_lookup_result lookup = { NULL, };
|
||||
sigset_t oldset;
|
||||
|
||||
mlog_entry("(inode=%lu, old='%.*s' new='%.*s')\n", inode->i_ino,
|
||||
old_dentry->d_name.len, old_dentry->d_name.name,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_link((unsigned long long)OCFS2_I(inode)->ip_blkno,
|
||||
old_dentry->d_name.len, old_dentry->d_name.name,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
|
||||
if (S_ISDIR(inode->i_mode))
|
||||
return -EPERM;
|
||||
@@ -757,7 +752,8 @@ out:
|
||||
|
||||
ocfs2_free_dir_lookup_result(&lookup);
|
||||
|
||||
mlog_exit(err);
|
||||
if (err)
|
||||
mlog_errno(err);
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -809,19 +805,17 @@ static int ocfs2_unlink(struct inode *dir,
|
||||
struct ocfs2_dir_lookup_result lookup = { NULL, };
|
||||
struct ocfs2_dir_lookup_result orphan_insert = { NULL, };
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, '%.*s')\n", dir, dentry,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_unlink(dir, dentry, dentry->d_name.len,
|
||||
dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno,
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno);
|
||||
|
||||
dquot_initialize(dir);
|
||||
|
||||
BUG_ON(dentry->d_parent->d_inode != dir);
|
||||
|
||||
mlog(0, "ino = %llu\n", (unsigned long long)OCFS2_I(inode)->ip_blkno);
|
||||
|
||||
if (inode == osb->root_inode) {
|
||||
mlog(0, "Cannot delete the root directory\n");
|
||||
if (inode == osb->root_inode)
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
status = ocfs2_inode_lock_nested(dir, &parent_node_bh, 1,
|
||||
OI_LS_PARENT);
|
||||
@@ -843,9 +837,10 @@ static int ocfs2_unlink(struct inode *dir,
|
||||
if (OCFS2_I(inode)->ip_blkno != blkno) {
|
||||
status = -ENOENT;
|
||||
|
||||
mlog(0, "ip_blkno %llu != dirent blkno %llu ip_flags = %x\n",
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno,
|
||||
(unsigned long long)blkno, OCFS2_I(inode)->ip_flags);
|
||||
trace_ocfs2_unlink_noent(
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno,
|
||||
(unsigned long long)blkno,
|
||||
OCFS2_I(inode)->ip_flags);
|
||||
goto leave;
|
||||
}
|
||||
|
||||
@@ -954,7 +949,8 @@ leave:
|
||||
ocfs2_free_dir_lookup_result(&orphan_insert);
|
||||
ocfs2_free_dir_lookup_result(&lookup);
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -975,9 +971,8 @@ static int ocfs2_double_lock(struct ocfs2_super *osb,
|
||||
struct buffer_head **tmpbh;
|
||||
struct inode *tmpinode;
|
||||
|
||||
mlog_entry("(inode1 = %llu, inode2 = %llu)\n",
|
||||
(unsigned long long)oi1->ip_blkno,
|
||||
(unsigned long long)oi2->ip_blkno);
|
||||
trace_ocfs2_double_lock((unsigned long long)oi1->ip_blkno,
|
||||
(unsigned long long)oi2->ip_blkno);
|
||||
|
||||
if (*bh1)
|
||||
*bh1 = NULL;
|
||||
@@ -988,7 +983,6 @@ static int ocfs2_double_lock(struct ocfs2_super *osb,
|
||||
if (oi1->ip_blkno != oi2->ip_blkno) {
|
||||
if (oi1->ip_blkno < oi2->ip_blkno) {
|
||||
/* switch id1 and id2 around */
|
||||
mlog(0, "switching them around...\n");
|
||||
tmpbh = bh2;
|
||||
bh2 = bh1;
|
||||
bh1 = tmpbh;
|
||||
@@ -1024,8 +1018,13 @@ static int ocfs2_double_lock(struct ocfs2_super *osb,
|
||||
mlog_errno(status);
|
||||
}
|
||||
|
||||
trace_ocfs2_double_lock_end(
|
||||
(unsigned long long)OCFS2_I(inode1)->ip_blkno,
|
||||
(unsigned long long)OCFS2_I(inode2)->ip_blkno);
|
||||
|
||||
bail:
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1067,10 +1066,9 @@ static int ocfs2_rename(struct inode *old_dir,
|
||||
/* At some point it might be nice to break this function up a
|
||||
* bit. */
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, 0x%p, 0x%p, from='%.*s' to='%.*s')\n",
|
||||
old_dir, old_dentry, new_dir, new_dentry,
|
||||
old_dentry->d_name.len, old_dentry->d_name.name,
|
||||
new_dentry->d_name.len, new_dentry->d_name.name);
|
||||
trace_ocfs2_rename(old_dir, old_dentry, new_dir, new_dentry,
|
||||
old_dentry->d_name.len, old_dentry->d_name.name,
|
||||
new_dentry->d_name.len, new_dentry->d_name.name);
|
||||
|
||||
dquot_initialize(old_dir);
|
||||
dquot_initialize(new_dir);
|
||||
@@ -1227,16 +1225,15 @@ static int ocfs2_rename(struct inode *old_dir,
|
||||
if (!new_inode) {
|
||||
status = -EACCES;
|
||||
|
||||
mlog(0, "We found an inode for name %.*s but VFS "
|
||||
"didn't give us one.\n", new_dentry->d_name.len,
|
||||
new_dentry->d_name.name);
|
||||
trace_ocfs2_rename_target_exists(new_dentry->d_name.len,
|
||||
new_dentry->d_name.name);
|
||||
goto bail;
|
||||
}
|
||||
|
||||
if (OCFS2_I(new_inode)->ip_blkno != newfe_blkno) {
|
||||
status = -EACCES;
|
||||
|
||||
mlog(0, "Inode %llu and dir %llu disagree. flags = %x\n",
|
||||
trace_ocfs2_rename_disagree(
|
||||
(unsigned long long)OCFS2_I(new_inode)->ip_blkno,
|
||||
(unsigned long long)newfe_blkno,
|
||||
OCFS2_I(new_inode)->ip_flags);
|
||||
@@ -1259,8 +1256,7 @@ static int ocfs2_rename(struct inode *old_dir,
|
||||
|
||||
newfe = (struct ocfs2_dinode *) newfe_bh->b_data;
|
||||
|
||||
mlog(0, "aha rename over existing... new_blkno=%llu "
|
||||
"newfebh=%p bhblocknr=%llu\n",
|
||||
trace_ocfs2_rename_over_existing(
|
||||
(unsigned long long)newfe_blkno, newfe_bh, newfe_bh ?
|
||||
(unsigned long long)newfe_bh->b_blocknr : 0ULL);
|
||||
|
||||
@@ -1476,7 +1472,8 @@ bail:
|
||||
brelse(old_dir_bh);
|
||||
brelse(new_dir_bh);
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -1501,9 +1498,8 @@ static int ocfs2_create_symlink_data(struct ocfs2_super *osb,
|
||||
* write i_size + 1 bytes. */
|
||||
blocks = (bytes_left + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
|
||||
|
||||
mlog_entry("i_blocks = %llu, i_size = %llu, blocks = %d\n",
|
||||
(unsigned long long)inode->i_blocks,
|
||||
i_size_read(inode), blocks);
|
||||
trace_ocfs2_create_symlink_data((unsigned long long)inode->i_blocks,
|
||||
i_size_read(inode), blocks);
|
||||
|
||||
/* Sanity check -- make sure we're going to fit. */
|
||||
if (bytes_left >
|
||||
@@ -1579,7 +1575,8 @@ bail:
|
||||
kfree(bhs);
|
||||
}
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1610,8 +1607,8 @@ static int ocfs2_symlink(struct inode *dir,
|
||||
sigset_t oldset;
|
||||
int did_block_signals = 0;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, symname='%s' actual='%.*s')\n", dir,
|
||||
dentry, symname, dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_symlink_begin(dir, dentry, symname,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
|
||||
dquot_initialize(dir);
|
||||
|
||||
@@ -1713,9 +1710,10 @@ static int ocfs2_symlink(struct inode *dir,
|
||||
goto bail;
|
||||
did_quota_inode = 1;
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, %d, '%.*s')\n", dir, dentry,
|
||||
inode->i_mode, dentry->d_name.len,
|
||||
dentry->d_name.name);
|
||||
trace_ocfs2_symlink_create(dir, dentry, dentry->d_name.len,
|
||||
dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno,
|
||||
inode->i_mode);
|
||||
|
||||
status = ocfs2_mknod_locked(osb, dir, inode,
|
||||
0, &new_fe_bh, parent_fe_bh, handle,
|
||||
@@ -1835,7 +1833,8 @@ bail:
|
||||
iput(inode);
|
||||
}
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
@@ -1844,8 +1843,6 @@ static int ocfs2_blkno_stringify(u64 blkno, char *name)
|
||||
{
|
||||
int status, namelen;
|
||||
|
||||
mlog_entry_void();
|
||||
|
||||
namelen = snprintf(name, OCFS2_ORPHAN_NAMELEN + 1, "%016llx",
|
||||
(long long)blkno);
|
||||
if (namelen <= 0) {
|
||||
@@ -1862,12 +1859,12 @@ static int ocfs2_blkno_stringify(u64 blkno, char *name)
|
||||
goto bail;
|
||||
}
|
||||
|
||||
mlog(0, "built filename '%s' for orphan dir (len=%d)\n", name,
|
||||
namelen);
|
||||
trace_ocfs2_blkno_stringify(blkno, name, namelen);
|
||||
|
||||
status = 0;
|
||||
bail:
|
||||
mlog_exit(status);
|
||||
if (status < 0)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1980,7 +1977,8 @@ out:
|
||||
iput(orphan_dir_inode);
|
||||
}
|
||||
|
||||
mlog_exit(ret);
|
||||
if (ret)
|
||||
mlog_errno(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -1997,7 +1995,8 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb,
|
||||
struct ocfs2_dinode *orphan_fe;
|
||||
struct ocfs2_dinode *fe = (struct ocfs2_dinode *) fe_bh->b_data;
|
||||
|
||||
mlog_entry("(inode->i_ino = %lu)\n", inode->i_ino);
|
||||
trace_ocfs2_orphan_add_begin(
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno);
|
||||
|
||||
status = ocfs2_read_inode_block(orphan_dir_inode, &orphan_dir_bh);
|
||||
if (status < 0) {
|
||||
@@ -2056,13 +2055,14 @@ static int ocfs2_orphan_add(struct ocfs2_super *osb,
|
||||
|
||||
ocfs2_journal_dirty(handle, fe_bh);
|
||||
|
||||
mlog(0, "Inode %llu orphaned in slot %d\n",
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno, osb->slot_num);
|
||||
trace_ocfs2_orphan_add_end((unsigned long long)OCFS2_I(inode)->ip_blkno,
|
||||
osb->slot_num);
|
||||
|
||||
leave:
|
||||
brelse(orphan_dir_bh);
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -2078,17 +2078,15 @@ int ocfs2_orphan_del(struct ocfs2_super *osb,
|
||||
int status = 0;
|
||||
struct ocfs2_dir_lookup_result lookup = { NULL, };
|
||||
|
||||
mlog_entry_void();
|
||||
|
||||
status = ocfs2_blkno_stringify(OCFS2_I(inode)->ip_blkno, name);
|
||||
if (status < 0) {
|
||||
mlog_errno(status);
|
||||
goto leave;
|
||||
}
|
||||
|
||||
mlog(0, "removing '%s' from orphan dir %llu (namelen=%d)\n",
|
||||
name, (unsigned long long)OCFS2_I(orphan_dir_inode)->ip_blkno,
|
||||
OCFS2_ORPHAN_NAMELEN);
|
||||
trace_ocfs2_orphan_del(
|
||||
(unsigned long long)OCFS2_I(orphan_dir_inode)->ip_blkno,
|
||||
name, OCFS2_ORPHAN_NAMELEN);
|
||||
|
||||
/* find it's spot in the orphan directory */
|
||||
status = ocfs2_find_entry(name, OCFS2_ORPHAN_NAMELEN, orphan_dir_inode,
|
||||
@@ -2124,7 +2122,8 @@ int ocfs2_orphan_del(struct ocfs2_super *osb,
|
||||
leave:
|
||||
ocfs2_free_dir_lookup_result(&lookup);
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -2321,9 +2320,6 @@ leave:
|
||||
iput(orphan_dir);
|
||||
}
|
||||
|
||||
if (status == -ENOSPC)
|
||||
mlog(0, "Disk is full\n");
|
||||
|
||||
if ((status < 0) && inode) {
|
||||
clear_nlink(inode);
|
||||
iput(inode);
|
||||
@@ -2358,8 +2354,10 @@ int ocfs2_mv_orphaned_inode_to_new(struct inode *dir,
|
||||
struct buffer_head *di_bh = NULL;
|
||||
struct ocfs2_dir_lookup_result lookup = { NULL, };
|
||||
|
||||
mlog_entry("(0x%p, 0x%p, %.*s')\n", dir, dentry,
|
||||
dentry->d_name.len, dentry->d_name.name);
|
||||
trace_ocfs2_mv_orphaned_inode_to_new(dir, dentry,
|
||||
dentry->d_name.len, dentry->d_name.name,
|
||||
(unsigned long long)OCFS2_I(dir)->ip_blkno,
|
||||
(unsigned long long)OCFS2_I(inode)->ip_blkno);
|
||||
|
||||
status = ocfs2_inode_lock(dir, &parent_di_bh, 1);
|
||||
if (status < 0) {
|
||||
@@ -2476,7 +2474,8 @@ leave:
|
||||
|
||||
ocfs2_free_dir_lookup_result(&lookup);
|
||||
|
||||
mlog_exit(status);
|
||||
if (status)
|
||||
mlog_errno(status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user