forked from Minki/linux
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull quota and isofs fixes from Jan Kara: "Two quota fixes (fallout of the quota locking changes) and an isofs build fix" * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: quota: Fix quota corruption with generic/232 test isofs: fix build regression quota: add missing lock into __dquot_transfer()
This commit is contained in:
commit
9cd6681cb1
@ -514,9 +514,11 @@ static int isofs_show_options(struct seq_file *m, struct dentry *root)
|
||||
if (sbi->s_fmode != ISOFS_INVALID_MODE)
|
||||
seq_printf(m, ",fmode=%o", sbi->s_fmode);
|
||||
|
||||
#ifdef CONFIG_JOLIET
|
||||
if (sbi->s_nls_iocharset &&
|
||||
strcmp(sbi->s_nls_iocharset->charset, CONFIG_NLS_DEFAULT) != 0)
|
||||
seq_printf(m, ",iocharset=%s", sbi->s_nls_iocharset->charset);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1980,7 +1980,9 @@ int __dquot_transfer(struct inode *inode, struct dquot **transfer_to)
|
||||
ret = dquot_add_space(transfer_to[cnt], cur_space, rsv_space, 0,
|
||||
&warn_to[cnt]);
|
||||
if (ret) {
|
||||
spin_lock(&transfer_to[cnt]->dq_dqb_lock);
|
||||
dquot_decr_inodes(transfer_to[cnt], inode_usage);
|
||||
spin_unlock(&transfer_to[cnt]->dq_dqb_lock);
|
||||
goto over_quota;
|
||||
}
|
||||
}
|
||||
|
@ -328,12 +328,16 @@ static int v2_write_dquot(struct dquot *dquot)
|
||||
if (!dquot->dq_off) {
|
||||
alloc = true;
|
||||
down_write(&dqopt->dqio_sem);
|
||||
} else {
|
||||
down_read(&dqopt->dqio_sem);
|
||||
}
|
||||
ret = qtree_write_dquot(
|
||||
sb_dqinfo(dquot->dq_sb, dquot->dq_id.type)->dqi_priv,
|
||||
dquot);
|
||||
if (alloc)
|
||||
up_write(&dqopt->dqio_sem);
|
||||
else
|
||||
up_read(&dqopt->dqio_sem);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user