diff options
Diffstat (limited to 'fs/reiserfs/super.c')
| -rw-r--r-- | fs/reiserfs/super.c | 17 | 
1 files changed, 6 insertions, 11 deletions
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c index 2575682a9ea..0aab04f4682 100644 --- a/fs/reiserfs/super.c +++ b/fs/reiserfs/super.c @@ -632,7 +632,7 @@ static int reiserfs_acquire_dquot(struct dquot *);  static int reiserfs_release_dquot(struct dquot *);  static int reiserfs_mark_dquot_dirty(struct dquot *);  static int reiserfs_write_info(struct super_block *, int); -static int reiserfs_quota_on(struct super_block *, int, int, char *); +static int reiserfs_quota_on(struct super_block *, int, int, struct path *);  static const struct dquot_operations reiserfs_quota_operations = {  	.write_dquot = reiserfs_write_dquot, @@ -2048,25 +2048,21 @@ static int reiserfs_quota_on_mount(struct super_block *sb, int type)   * Standard function to be called on quota_on   */  static int reiserfs_quota_on(struct super_block *sb, int type, int format_id, -			     char *name) +			     struct path *path)  {  	int err; -	struct path path;  	struct inode *inode;  	struct reiserfs_transaction_handle th;  	if (!(REISERFS_SB(sb)->s_mount_opt & (1 << REISERFS_QUOTA)))  		return -EINVAL; -	err = kern_path(name, LOOKUP_FOLLOW, &path); -	if (err) -		return err;  	/* Quotafile not on the same filesystem? */ -	if (path.mnt->mnt_sb != sb) { +	if (path->mnt->mnt_sb != sb) {  		err = -EXDEV;  		goto out;  	} -	inode = path.dentry->d_inode; +	inode = path->dentry->d_inode;  	/* We must not pack tails for quota files on reiserfs for quota IO to work */  	if (!(REISERFS_I(inode)->i_flags & i_nopack_mask)) {  		err = reiserfs_unpack(inode, NULL); @@ -2082,7 +2078,7 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,  	/* Journaling quota? */  	if (REISERFS_SB(sb)->s_qf_names[type]) {  		/* Quotafile not of fs root? */ -		if (path.dentry->d_parent != sb->s_root) +		if (path->dentry->d_parent != sb->s_root)  			reiserfs_warning(sb, "super-6521",  				 "Quota file not on filesystem root. "  				 "Journalled quota will not work."); @@ -2101,9 +2097,8 @@ static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,  		if (err)  			goto out;  	} -	err = dquot_quota_on_path(sb, type, format_id, &path); +	err = dquot_quota_on(sb, type, format_id, path);  out: -	path_put(&path);  	return err;  }  |