summaryrefslogtreecommitdiffstats
path: root/fs/dquot.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1997-06-17 13:20:30 +0000
committerRalf Baechle <ralf@linux-mips.org>1997-06-17 13:20:30 +0000
commit7acb77a6e7bddd4c4c5aa975bbf976927c013798 (patch)
tree4139829ec6edb85f73774bb95cdec376758bfc73 /fs/dquot.c
parent64d58d4c8cd6a89ee218301ec0dc0ebfec91a4db (diff)
Merge with 2.1.43.
Diffstat (limited to 'fs/dquot.c')
-rw-r--r--fs/dquot.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/dquot.c b/fs/dquot.c
index dda3f642a..59d2112d9 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -237,9 +237,12 @@ static void write_dquot(struct dquot *dquot)
filp->f_pos = dqoff(dquot->dq_id);
fs = get_fs();
set_fs(KERNEL_DS);
+
if (filp->f_op->write(filp->f_inode, filp,
(char *)&dquot->dq_dqb, sizeof(struct dqblk)) == sizeof(struct dqblk))
dquot->dq_flags &= ~DQ_MOD;
+ /* inode->i_status |= ST_MODIFIED is willingly *not* done here */
+
up(&dquot->dq_mnt->mnt_sem);
set_fs(fs);
unlock_dquot(dquot);
@@ -1035,7 +1038,8 @@ asmlinkage int sys_quotactl(int cmd, const char *special, int id, caddr_t addr)
if (special == (char *)NULL && (cmds == Q_SYNC || cmds == Q_GETSTATS))
dev = 0;
else {
- if (namei(special, &ino))
+ int error = namei(NAM_FOLLOW_LINK, special, &ino);
+ if(error)
goto out;
dev = ino->i_rdev;
ret = -ENOTBLK;