mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	dquot: cleanup dquot transfer routine
Get rid of the transfer 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_transfer helper to __dquot_transfer and vfs_dq_transfer to dquot_transfer to have a consistent namespace, and make the new dquot_transfer return a normal negative errno value which all callers expect. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
		
							parent
							
								
									759bfee658
								
							
						
					
					
						commit
						b43fa8284d
					
				
					 17 changed files with 19 additions and 29 deletions
				
			
		| 
						 | 
					@ -462,7 +462,6 @@ in sys_read() and friends.
 | 
				
			||||||
prototypes:
 | 
					prototypes:
 | 
				
			||||||
	int (*initialize) (struct inode *, int);
 | 
						int (*initialize) (struct inode *, int);
 | 
				
			||||||
	int (*drop) (struct inode *);
 | 
						int (*drop) (struct inode *);
 | 
				
			||||||
	int (*transfer) (struct inode *, struct iattr *);
 | 
					 | 
				
			||||||
	int (*write_dquot) (struct dquot *);
 | 
						int (*write_dquot) (struct dquot *);
 | 
				
			||||||
	int (*acquire_dquot) (struct dquot *);
 | 
						int (*acquire_dquot) (struct dquot *);
 | 
				
			||||||
	int (*release_dquot) (struct dquot *);
 | 
						int (*release_dquot) (struct dquot *);
 | 
				
			||||||
| 
						 | 
					@ -477,7 +476,6 @@ What filesystem should expect from the generic quota functions:
 | 
				
			||||||
		FS recursion	Held locks when called
 | 
							FS recursion	Held locks when called
 | 
				
			||||||
initialize:	yes		maybe dqonoff_sem
 | 
					initialize:	yes		maybe dqonoff_sem
 | 
				
			||||||
drop:		yes		-
 | 
					drop:		yes		-
 | 
				
			||||||
transfer:	yes		-
 | 
					 | 
				
			||||||
write_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
					write_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
				
			||||||
acquire_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
					acquire_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
				
			||||||
release_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
					release_dquot:	yes		dqonoff_sem or dqptr_sem
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -969,7 +969,7 @@ int pohmelfs_setattr_raw(struct inode *inode, struct iattr *attr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((attr->ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
 | 
						if ((attr->ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
 | 
				
			||||||
	    (attr->ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
 | 
						    (attr->ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
 | 
				
			||||||
		err = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
							err = dquot_transfer(inode, attr);
 | 
				
			||||||
		if (err)
 | 
							if (err)
 | 
				
			||||||
			goto err_out_exit;
 | 
								goto err_out_exit;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1459,7 +1459,7 @@ int ext2_setattr(struct dentry *dentry, struct iattr *iattr)
 | 
				
			||||||
		return error;
 | 
							return error;
 | 
				
			||||||
	if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
						if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
				
			||||||
	    (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
						    (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
				
			||||||
		error = vfs_dq_transfer(inode, iattr) ? -EDQUOT : 0;
 | 
							error = dquot_transfer(inode, iattr);
 | 
				
			||||||
		if (error)
 | 
							if (error)
 | 
				
			||||||
			return error;
 | 
								return error;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3160,7 +3160,7 @@ int ext3_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
			error = PTR_ERR(handle);
 | 
								error = PTR_ERR(handle);
 | 
				
			||||||
			goto err_out;
 | 
								goto err_out;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		error = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
							error = dquot_transfer(inode, attr);
 | 
				
			||||||
		if (error) {
 | 
							if (error) {
 | 
				
			||||||
			ext3_journal_stop(handle);
 | 
								ext3_journal_stop(handle);
 | 
				
			||||||
			return error;
 | 
								return error;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -752,7 +752,6 @@ static ssize_t ext3_quota_write(struct super_block *sb, int type,
 | 
				
			||||||
static const struct dquot_operations ext3_quota_operations = {
 | 
					static const struct dquot_operations ext3_quota_operations = {
 | 
				
			||||||
	.initialize	= dquot_initialize,
 | 
						.initialize	= dquot_initialize,
 | 
				
			||||||
	.drop		= dquot_drop,
 | 
						.drop		= dquot_drop,
 | 
				
			||||||
	.transfer	= dquot_transfer,
 | 
					 | 
				
			||||||
	.write_dquot	= ext3_write_dquot,
 | 
						.write_dquot	= ext3_write_dquot,
 | 
				
			||||||
	.acquire_dquot	= ext3_acquire_dquot,
 | 
						.acquire_dquot	= ext3_acquire_dquot,
 | 
				
			||||||
	.release_dquot	= ext3_release_dquot,
 | 
						.release_dquot	= ext3_release_dquot,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5263,7 +5263,7 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
			error = PTR_ERR(handle);
 | 
								error = PTR_ERR(handle);
 | 
				
			||||||
			goto err_out;
 | 
								goto err_out;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		error = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
							error = dquot_transfer(inode, attr);
 | 
				
			||||||
		if (error) {
 | 
							if (error) {
 | 
				
			||||||
			ext4_journal_stop(handle);
 | 
								ext4_journal_stop(handle);
 | 
				
			||||||
			return error;
 | 
								return error;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1017,7 +1017,6 @@ static const struct dquot_operations ext4_quota_operations = {
 | 
				
			||||||
#ifdef CONFIG_QUOTA
 | 
					#ifdef CONFIG_QUOTA
 | 
				
			||||||
	.get_reserved_space = ext4_get_reserved_space,
 | 
						.get_reserved_space = ext4_get_reserved_space,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	.transfer	= dquot_transfer,
 | 
					 | 
				
			||||||
	.write_dquot	= ext4_write_dquot,
 | 
						.write_dquot	= ext4_write_dquot,
 | 
				
			||||||
	.acquire_dquot	= ext4_acquire_dquot,
 | 
						.acquire_dquot	= ext4_acquire_dquot,
 | 
				
			||||||
	.release_dquot	= ext4_release_dquot,
 | 
						.release_dquot	= ext4_release_dquot,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -100,8 +100,9 @@ int jfs_setattr(struct dentry *dentry, struct iattr *iattr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
						if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
				
			||||||
	    (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
						    (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
				
			||||||
		if (vfs_dq_transfer(inode, iattr))
 | 
							rc = dquot_transfer(inode, iattr);
 | 
				
			||||||
			return -EDQUOT;
 | 
							if (rc)
 | 
				
			||||||
 | 
								return rc;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	rc = inode_setattr(inode, iattr);
 | 
						rc = inode_setattr(inode, iattr);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1020,7 +1020,7 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		 * Gather pointers to quota structures so that allocation /
 | 
							 * Gather pointers to quota structures so that allocation /
 | 
				
			||||||
		 * freeing of quota structures happens here and not inside
 | 
							 * freeing of quota structures happens here and not inside
 | 
				
			||||||
		 * vfs_dq_transfer() where we have problems with lock ordering
 | 
							 * dquot_transfer() where we have problems with lock ordering
 | 
				
			||||||
		 */
 | 
							 */
 | 
				
			||||||
		if (attr->ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid
 | 
							if (attr->ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid
 | 
				
			||||||
		    && OCFS2_HAS_RO_COMPAT_FEATURE(sb,
 | 
							    && OCFS2_HAS_RO_COMPAT_FEATURE(sb,
 | 
				
			||||||
| 
						 | 
					@ -1053,7 +1053,7 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
			mlog_errno(status);
 | 
								mlog_errno(status);
 | 
				
			||||||
			goto bail_unlock;
 | 
								goto bail_unlock;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		status = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
							status = dquot_transfer(inode, attr);
 | 
				
			||||||
		if (status < 0)
 | 
							if (status < 0)
 | 
				
			||||||
			goto bail_commit;
 | 
								goto bail_commit;
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -853,7 +853,6 @@ static void ocfs2_destroy_dquot(struct dquot *dquot)
 | 
				
			||||||
const struct dquot_operations ocfs2_quota_operations = {
 | 
					const struct dquot_operations ocfs2_quota_operations = {
 | 
				
			||||||
	.initialize	= dquot_initialize,
 | 
						.initialize	= dquot_initialize,
 | 
				
			||||||
	.drop		= dquot_drop,
 | 
						.drop		= dquot_drop,
 | 
				
			||||||
	.transfer	= dquot_transfer,
 | 
					 | 
				
			||||||
	.write_dquot	= ocfs2_write_dquot,
 | 
						.write_dquot	= ocfs2_write_dquot,
 | 
				
			||||||
	.acquire_dquot	= ocfs2_acquire_dquot,
 | 
						.acquire_dquot	= ocfs2_acquire_dquot,
 | 
				
			||||||
	.release_dquot	= ocfs2_release_dquot,
 | 
						.release_dquot	= ocfs2_release_dquot,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1669,7 +1669,7 @@ EXPORT_SYMBOL(dquot_free_inode);
 | 
				
			||||||
 * This operation can block, but only after everything is updated
 | 
					 * This operation can block, but only after everything is updated
 | 
				
			||||||
 * A transaction must be started when entering this function.
 | 
					 * A transaction must be started when entering this function.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask)
 | 
					static int __dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	qsize_t space, cur_space;
 | 
						qsize_t space, cur_space;
 | 
				
			||||||
	qsize_t rsv_space = 0;
 | 
						qsize_t rsv_space = 0;
 | 
				
			||||||
| 
						 | 
					@ -1766,12 +1766,11 @@ int dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask)
 | 
				
			||||||
	ret = NO_QUOTA;
 | 
						ret = NO_QUOTA;
 | 
				
			||||||
	goto warn_put_all;
 | 
						goto warn_put_all;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(dquot_transfer);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Wrapper for transferring ownership of an inode for uid/gid only
 | 
					/* Wrapper for transferring ownership of an inode for uid/gid only
 | 
				
			||||||
 * Called from FSXXX_setattr()
 | 
					 * Called from FSXXX_setattr()
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int vfs_dq_transfer(struct inode *inode, struct iattr *iattr)
 | 
					int dquot_transfer(struct inode *inode, struct iattr *iattr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	qid_t chid[MAXQUOTAS];
 | 
						qid_t chid[MAXQUOTAS];
 | 
				
			||||||
	unsigned long mask = 0;
 | 
						unsigned long mask = 0;
 | 
				
			||||||
| 
						 | 
					@ -1786,12 +1785,12 @@ int vfs_dq_transfer(struct inode *inode, struct iattr *iattr)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) {
 | 
						if (sb_any_quota_active(inode->i_sb) && !IS_NOQUOTA(inode)) {
 | 
				
			||||||
		vfs_dq_init(inode);
 | 
							vfs_dq_init(inode);
 | 
				
			||||||
		if (inode->i_sb->dq_op->transfer(inode, chid, mask) == NO_QUOTA)
 | 
							if (__dquot_transfer(inode, chid, mask) == NO_QUOTA)
 | 
				
			||||||
			return 1;
 | 
								return -EDQUOT;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
EXPORT_SYMBOL(vfs_dq_transfer);
 | 
					EXPORT_SYMBOL(dquot_transfer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Write info of quota file to disk
 | 
					 * Write info of quota file to disk
 | 
				
			||||||
| 
						 | 
					@ -1814,7 +1813,6 @@ EXPORT_SYMBOL(dquot_commit_info);
 | 
				
			||||||
const struct dquot_operations dquot_operations = {
 | 
					const struct dquot_operations dquot_operations = {
 | 
				
			||||||
	.initialize	= dquot_initialize,
 | 
						.initialize	= dquot_initialize,
 | 
				
			||||||
	.drop		= dquot_drop,
 | 
						.drop		= dquot_drop,
 | 
				
			||||||
	.transfer	= dquot_transfer,
 | 
					 | 
				
			||||||
	.write_dquot	= dquot_commit,
 | 
						.write_dquot	= dquot_commit,
 | 
				
			||||||
	.acquire_dquot	= dquot_acquire,
 | 
						.acquire_dquot	= dquot_acquire,
 | 
				
			||||||
	.release_dquot	= dquot_release,
 | 
						.release_dquot	= dquot_release,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3134,8 +3134,7 @@ int reiserfs_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
						  jbegin_count);
 | 
											  jbegin_count);
 | 
				
			||||||
				if (error)
 | 
									if (error)
 | 
				
			||||||
					goto out;
 | 
										goto out;
 | 
				
			||||||
				error =
 | 
									error = dquot_transfer(inode, attr);
 | 
				
			||||||
				    vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
					 | 
				
			||||||
				if (error) {
 | 
									if (error) {
 | 
				
			||||||
					journal_end(&th, inode->i_sb,
 | 
										journal_end(&th, inode->i_sb,
 | 
				
			||||||
						    jbegin_count);
 | 
											    jbegin_count);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -618,7 +618,6 @@ static int reiserfs_quota_on(struct super_block *, int, int, char *, int);
 | 
				
			||||||
static const struct dquot_operations reiserfs_quota_operations = {
 | 
					static const struct dquot_operations reiserfs_quota_operations = {
 | 
				
			||||||
	.initialize = dquot_initialize,
 | 
						.initialize = dquot_initialize,
 | 
				
			||||||
	.drop = dquot_drop,
 | 
						.drop = dquot_drop,
 | 
				
			||||||
	.transfer = dquot_transfer,
 | 
					 | 
				
			||||||
	.write_dquot = reiserfs_write_dquot,
 | 
						.write_dquot = reiserfs_write_dquot,
 | 
				
			||||||
	.acquire_dquot = reiserfs_acquire_dquot,
 | 
						.acquire_dquot = reiserfs_acquire_dquot,
 | 
				
			||||||
	.release_dquot = reiserfs_release_dquot,
 | 
						.release_dquot = reiserfs_release_dquot,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -229,7 +229,7 @@ static int udf_setattr(struct dentry *dentry, struct iattr *iattr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
						if ((iattr->ia_valid & ATTR_UID && iattr->ia_uid != inode->i_uid) ||
 | 
				
			||||||
            (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
					            (iattr->ia_valid & ATTR_GID && iattr->ia_gid != inode->i_gid)) {
 | 
				
			||||||
		error = vfs_dq_transfer(inode, iattr) ? -EDQUOT : 0;
 | 
							error = dquot_transfer(inode, iattr);
 | 
				
			||||||
		if (error)
 | 
							if (error)
 | 
				
			||||||
			return error;
 | 
								return error;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -520,7 +520,7 @@ static int ufs_setattr(struct dentry *dentry, struct iattr *attr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
 | 
						if ((ia_valid & ATTR_UID && attr->ia_uid != inode->i_uid) ||
 | 
				
			||||||
	    (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
 | 
						    (ia_valid & ATTR_GID && attr->ia_gid != inode->i_gid)) {
 | 
				
			||||||
		error = vfs_dq_transfer(inode, attr) ? -EDQUOT : 0;
 | 
							error = dquot_transfer(inode, attr);
 | 
				
			||||||
		if (error)
 | 
							if (error)
 | 
				
			||||||
			return error;
 | 
								return error;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -297,7 +297,6 @@ struct quota_format_ops {
 | 
				
			||||||
struct dquot_operations {
 | 
					struct dquot_operations {
 | 
				
			||||||
	int (*initialize) (struct inode *, int);
 | 
						int (*initialize) (struct inode *, int);
 | 
				
			||||||
	int (*drop) (struct inode *);
 | 
						int (*drop) (struct inode *);
 | 
				
			||||||
	int (*transfer) (struct inode *, qid_t *, unsigned long);
 | 
					 | 
				
			||||||
	int (*write_dquot) (struct dquot *);		/* Ordinary dquot write */
 | 
						int (*write_dquot) (struct dquot *);		/* Ordinary dquot write */
 | 
				
			||||||
	struct dquot *(*alloc_dquot)(struct super_block *, int);	/* Allocate memory for new dquot */
 | 
						struct dquot *(*alloc_dquot)(struct super_block *, int);	/* Allocate memory for new dquot */
 | 
				
			||||||
	void (*destroy_dquot)(struct dquot *);		/* Free memory for dquot */
 | 
						void (*destroy_dquot)(struct dquot *);		/* Free memory for dquot */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,6 @@ int dquot_alloc_inode(const struct inode *inode);
 | 
				
			||||||
int dquot_claim_space_nodirty(struct inode *inode, qsize_t number);
 | 
					int dquot_claim_space_nodirty(struct inode *inode, qsize_t number);
 | 
				
			||||||
void dquot_free_inode(const struct inode *inode);
 | 
					void dquot_free_inode(const struct inode *inode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int dquot_transfer(struct inode *inode, qid_t *chid, unsigned long mask);
 | 
					 | 
				
			||||||
int dquot_commit(struct dquot *dquot);
 | 
					int dquot_commit(struct dquot *dquot);
 | 
				
			||||||
int dquot_acquire(struct dquot *dquot);
 | 
					int dquot_acquire(struct dquot *dquot);
 | 
				
			||||||
int dquot_release(struct dquot *dquot);
 | 
					int dquot_release(struct dquot *dquot);
 | 
				
			||||||
| 
						 | 
					@ -66,7 +65,7 @@ int vfs_get_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *d
 | 
				
			||||||
int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di);
 | 
					int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, struct if_dqblk *di);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void vfs_dq_drop(struct inode *inode);
 | 
					void vfs_dq_drop(struct inode *inode);
 | 
				
			||||||
int vfs_dq_transfer(struct inode *inode, struct iattr *iattr);
 | 
					int dquot_transfer(struct inode *inode, struct iattr *iattr);
 | 
				
			||||||
int vfs_dq_quota_on_remount(struct super_block *sb);
 | 
					int vfs_dq_quota_on_remount(struct super_block *sb);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type)
 | 
					static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type)
 | 
				
			||||||
| 
						 | 
					@ -234,7 +233,7 @@ static inline int vfs_dq_quota_on_remount(struct super_block *sb)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline int vfs_dq_transfer(struct inode *inode, struct iattr *iattr)
 | 
					static inline int dquot_transfer(struct inode *inode, struct iattr *iattr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue