mirror of
				https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux-stable.git
				synced 2025-11-04 07:44:51 +10:00 
			
		
		
		
	gfs2: Convert gfs2_quota_refresh to take a kqid
- In quota_refresh_user_store convert the user supplied uid into a kqid and pass it to gfs2_quota_refresh. - In quota_refresh_group_store convert the user supplied gid into a kqid and pass it to gfs2_quota_refresh. Cc: Steven Whitehouse <swhiteho@redhat.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
This commit is contained in:
		
							parent
							
								
									b59c8b6f9d
								
							
						
					
					
						commit
						ed87dabcc3
					
				@ -1177,13 +1177,14 @@ static int gfs2_quota_sync_timeo(struct super_block *sb, int type)
 | 
			
		||||
	return gfs2_quota_sync(sb, type);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int gfs2_quota_refresh(struct gfs2_sbd *sdp, int user, u32 id)
 | 
			
		||||
int gfs2_quota_refresh(struct gfs2_sbd *sdp, struct kqid qid)
 | 
			
		||||
{
 | 
			
		||||
	struct gfs2_quota_data *qd;
 | 
			
		||||
	struct gfs2_holder q_gh;
 | 
			
		||||
	int error;
 | 
			
		||||
 | 
			
		||||
	error = qd_get(sdp, user, id, &qd);
 | 
			
		||||
	error = qd_get(sdp, qid.type == USRQUOTA ? QUOTA_USER : QUOTA_GROUP,
 | 
			
		||||
		       from_kqid(&init_user_ns, qid), &qd);
 | 
			
		||||
	if (error)
 | 
			
		||||
		return error;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -28,7 +28,7 @@ extern void gfs2_quota_change(struct gfs2_inode *ip, s64 change,
 | 
			
		||||
			      u32 uid, u32 gid);
 | 
			
		||||
 | 
			
		||||
extern int gfs2_quota_sync(struct super_block *sb, int type);
 | 
			
		||||
extern int gfs2_quota_refresh(struct gfs2_sbd *sdp, int user, u32 id);
 | 
			
		||||
extern int gfs2_quota_refresh(struct gfs2_sbd *sdp, struct kqid qid);
 | 
			
		||||
 | 
			
		||||
extern int gfs2_quota_init(struct gfs2_sbd *sdp);
 | 
			
		||||
extern void gfs2_quota_cleanup(struct gfs2_sbd *sdp);
 | 
			
		||||
 | 
			
		||||
@ -175,6 +175,7 @@ static ssize_t quota_sync_store(struct gfs2_sbd *sdp, const char *buf,
 | 
			
		||||
static ssize_t quota_refresh_user_store(struct gfs2_sbd *sdp, const char *buf,
 | 
			
		||||
					size_t len)
 | 
			
		||||
{
 | 
			
		||||
	struct kqid qid;
 | 
			
		||||
	int error;
 | 
			
		||||
	u32 id;
 | 
			
		||||
 | 
			
		||||
@ -183,13 +184,18 @@ static ssize_t quota_refresh_user_store(struct gfs2_sbd *sdp, const char *buf,
 | 
			
		||||
 | 
			
		||||
	id = simple_strtoul(buf, NULL, 0);
 | 
			
		||||
 | 
			
		||||
	error = gfs2_quota_refresh(sdp, 1, id);
 | 
			
		||||
	qid = make_kqid(current_user_ns(), USRQUOTA, id);
 | 
			
		||||
	if (!qid_valid(qid))
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	error = gfs2_quota_refresh(sdp, qid);
 | 
			
		||||
	return error ? error : len;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static ssize_t quota_refresh_group_store(struct gfs2_sbd *sdp, const char *buf,
 | 
			
		||||
					 size_t len)
 | 
			
		||||
{
 | 
			
		||||
	struct kqid qid;
 | 
			
		||||
	int error;
 | 
			
		||||
	u32 id;
 | 
			
		||||
 | 
			
		||||
@ -198,7 +204,11 @@ static ssize_t quota_refresh_group_store(struct gfs2_sbd *sdp, const char *buf,
 | 
			
		||||
 | 
			
		||||
	id = simple_strtoul(buf, NULL, 0);
 | 
			
		||||
 | 
			
		||||
	error = gfs2_quota_refresh(sdp, 0, id);
 | 
			
		||||
	qid = make_kqid(current_user_ns(), GRPQUOTA, id);
 | 
			
		||||
	if (!qid_valid(qid))
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
 | 
			
		||||
	error = gfs2_quota_refresh(sdp, qid);
 | 
			
		||||
	return error ? error : len;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user