dquot: cleanup dquot initialize routine
Get rid of the initialize dquot operation - it is now always called from the filesystem and if a filesystem really needs it's own (which none currently does) it can just call into it's own routine directly. Rename the now static low-level dquot_initialize helper to __dquot_initialize and vfs_dq_init to dquot_initialize to have a consistent namespace. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:

committed by
Jan Kara

parent
907f4554e2
commit
871a293155
@@ -21,6 +21,7 @@
|
||||
#include <linux/time.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/jbd.h>
|
||||
#include <linux/quotaops.h>
|
||||
#include <linux/ext3_fs.h>
|
||||
#include <linux/ext3_jbd.h>
|
||||
#include "xattr.h"
|
||||
|
@@ -123,7 +123,7 @@ void ext3_free_inode (handle_t *handle, struct inode * inode)
|
||||
* Note: we must free any quota before locking the superblock,
|
||||
* as writing the quota to disk may need the lock as well.
|
||||
*/
|
||||
vfs_dq_init(inode);
|
||||
dquot_initialize(inode);
|
||||
ext3_xattr_delete_inode(handle, inode);
|
||||
dquot_free_inode(inode);
|
||||
dquot_drop(inode);
|
||||
@@ -588,7 +588,7 @@ got:
|
||||
sizeof(struct ext3_inode) - EXT3_GOOD_OLD_INODE_SIZE : 0;
|
||||
|
||||
ret = inode;
|
||||
vfs_dq_init(inode);
|
||||
dquot_initialize(inode);
|
||||
err = dquot_alloc_inode(inode);
|
||||
if (err)
|
||||
goto fail_drop;
|
||||
|
@@ -197,7 +197,7 @@ void ext3_delete_inode (struct inode * inode)
|
||||
handle_t *handle;
|
||||
|
||||
if (!is_bad_inode(inode))
|
||||
vfs_dq_init(inode);
|
||||
dquot_initialize(inode);
|
||||
|
||||
truncate_inode_pages(&inode->i_data, 0);
|
||||
|
||||
@@ -3152,7 +3152,7 @@ int ext3_setattr(struct dentry *dentry, struct iattr *attr)
|
||||
return error;
|
||||
|
||||
if (ia_valid & ATTR_SIZE)
|
||||
vfs_dq_init(inode);
|
||||
dquot_initialize(inode);
|
||||
if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
|
||||
(ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
|
||||
handle_t *handle;
|
||||
@@ -3250,7 +3250,7 @@ static int ext3_writepage_trans_blocks(struct inode *inode)
|
||||
ret = 2 * (bpp + indirects) + 2;
|
||||
|
||||
#ifdef CONFIG_QUOTA
|
||||
/* We know that structure was already allocated during vfs_dq_init so
|
||||
/* We know that structure was already allocated during dquot_initialize so
|
||||
* we will be updating only the data blocks + inodes */
|
||||
ret += EXT3_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb);
|
||||
#endif
|
||||
|
@@ -1696,7 +1696,7 @@ static int ext3_create (struct inode * dir, struct dentry * dentry, int mode,
|
||||
struct inode * inode;
|
||||
int err, retries = 0;
|
||||
|
||||
vfs_dq_init(dir);
|
||||
dquot_initialize(dir);
|
||||
|
||||
retry:
|
||||
handle = ext3_journal_start(dir, EXT3_DATA_TRANS_BLOCKS(dir->i_sb) +
|
||||
@@ -1732,7 +1732,7 @@ static int ext3_mknod (struct inode * dir, struct dentry *dentry,
|
||||
if (!new_valid_dev(rdev))
|
||||
return -EINVAL;
|
||||
|
||||
vfs_dq_init(dir);
|
||||
dquot_initialize(dir);
|
||||
|
||||
retry:
|
||||
handle = ext3_journal_start(dir, EXT3_DATA_TRANS_BLOCKS(dir->i_sb) +
|
||||
@@ -1770,7 +1770,7 @@ static int ext3_mkdir(struct inode * dir, struct dentry * dentry, int mode)
|
||||
if (dir->i_nlink >= EXT3_LINK_MAX)
|
||||
return -EMLINK;
|
||||
|
||||
vfs_dq_init(dir);
|
||||
dquot_initialize(dir);
|
||||
|
||||
retry:
|
||||
handle = ext3_journal_start(dir, EXT3_DATA_TRANS_BLOCKS(dir->i_sb) +
|
||||
@@ -2066,8 +2066,8 @@ static int ext3_rmdir (struct inode * dir, struct dentry *dentry)
|
||||
|
||||
/* Initialize quotas before so that eventual writes go in
|
||||
* separate transaction */
|
||||
vfs_dq_init(dir);
|
||||
vfs_dq_init(dentry->d_inode);
|
||||
dquot_initialize(dir);
|
||||
dquot_initialize(dentry->d_inode);
|
||||
|
||||
handle = ext3_journal_start(dir, EXT3_DELETE_TRANS_BLOCKS(dir->i_sb));
|
||||
if (IS_ERR(handle))
|
||||
@@ -2127,8 +2127,8 @@ static int ext3_unlink(struct inode * dir, struct dentry *dentry)
|
||||
|
||||
/* Initialize quotas before so that eventual writes go
|
||||
* in separate transaction */
|
||||
vfs_dq_init(dir);
|
||||
vfs_dq_init(dentry->d_inode);
|
||||
dquot_initialize(dir);
|
||||
dquot_initialize(dentry->d_inode);
|
||||
|
||||
handle = ext3_journal_start(dir, EXT3_DELETE_TRANS_BLOCKS(dir->i_sb));
|
||||
if (IS_ERR(handle))
|
||||
@@ -2184,7 +2184,7 @@ static int ext3_symlink (struct inode * dir,
|
||||
if (l > dir->i_sb->s_blocksize)
|
||||
return -ENAMETOOLONG;
|
||||
|
||||
vfs_dq_init(dir);
|
||||
dquot_initialize(dir);
|
||||
|
||||
retry:
|
||||
handle = ext3_journal_start(dir, EXT3_DATA_TRANS_BLOCKS(dir->i_sb) +
|
||||
@@ -2241,7 +2241,7 @@ static int ext3_link (struct dentry * old_dentry,
|
||||
if (inode->i_nlink >= EXT3_LINK_MAX)
|
||||
return -EMLINK;
|
||||
|
||||
vfs_dq_init(dir);
|
||||
dquot_initialize(dir);
|
||||
|
||||
/*
|
||||
* Return -ENOENT if we've raced with unlink and i_nlink is 0. Doing
|
||||
@@ -2293,15 +2293,15 @@ static int ext3_rename (struct inode * old_dir, struct dentry *old_dentry,
|
||||
struct ext3_dir_entry_2 * old_de, * new_de;
|
||||
int retval, flush_file = 0;
|
||||
|
||||
vfs_dq_init(old_dir);
|
||||
vfs_dq_init(new_dir);
|
||||
dquot_initialize(old_dir);
|
||||
dquot_initialize(new_dir);
|
||||
|
||||
old_bh = new_bh = dir_bh = NULL;
|
||||
|
||||
/* Initialize quotas before so that eventual writes go
|
||||
* in separate transaction */
|
||||
if (new_dentry->d_inode)
|
||||
vfs_dq_init(new_dentry->d_inode);
|
||||
dquot_initialize(new_dentry->d_inode);
|
||||
handle = ext3_journal_start(old_dir, 2 *
|
||||
EXT3_DATA_TRANS_BLOCKS(old_dir->i_sb) +
|
||||
EXT3_INDEX_EXTRA_TRANS_BLOCKS + 2);
|
||||
|
@@ -752,7 +752,6 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type,
|
||||
const char *data, size_t len, loff_t off);
|
||||
|
||||
static const struct dquot_operations ext3_quota_operations = {
|
||||
.initialize = dquot_initialize,
|
||||
.write_dquot = ext3_write_dquot,
|
||||
.acquire_dquot = ext3_acquire_dquot,
|
||||
.release_dquot = ext3_release_dquot,
|
||||
@@ -1480,7 +1479,7 @@ static void ext3_orphan_cleanup (struct super_block * sb,
|
||||
}
|
||||
|
||||
list_add(&EXT3_I(inode)->i_orphan, &EXT3_SB(sb)->s_orphan);
|
||||
vfs_dq_init(inode);
|
||||
dquot_initialize(inode);
|
||||
if (inode->i_nlink) {
|
||||
printk(KERN_DEBUG
|
||||
"%s: truncating inode %lu to %Ld bytes\n",
|
||||
@@ -2736,7 +2735,7 @@ static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf)
|
||||
* Process 1 Process 2
|
||||
* ext3_create() quota_sync()
|
||||
* journal_start() write_dquot()
|
||||
* vfs_dq_init() down(dqio_mutex)
|
||||
* dquot_initialize() down(dqio_mutex)
|
||||
* down(dqio_mutex) journal_start()
|
||||
*
|
||||
*/
|
||||
|
Reference in New Issue
Block a user