Commit 9cd6681c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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()
parents 225d3b67 4c6bb696
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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;
}

+2 −0
Original line number Diff line number Diff line
@@ -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;
		}
	}
+4 −0
Original line number Diff line number Diff line
@@ -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;
}