This is a patch for fs/dquot.c in 2.1.61. Is that ok?
-- H.J. Lu (hjl@gnu.ai.mit.edu)-- Index: dquot.c =================================================================== RCS file: /home/work/cvs/linux/linux/fs/dquot.c,v retrieving revision 1.1.1.9 diff -u -r1.1.1.9 dquot.c --- dquot.c 1997/10/25 04:25:29 1.1.1.9 +++ dquot.c 1997/11/01 23:52:34 @@ -229,7 +229,7 @@ lock_dquot(dquot); down(&dquot->dq_mnt->mnt_sem); if (filp->f_op->llseek) { - if (filp->f_op->llseek(filp->f_dentry->d_inode, filp, + if (filp->f_op->llseek(filp, dqoff(dquot->dq_id), 0) != dqoff(dquot->dq_id)) { up(&dquot->dq_mnt->mnt_sem); unlock_dquot(dquot); @@ -240,8 +240,8 @@ fs = get_fs(); set_fs(KERNEL_DS); - if (filp->f_op->write(filp->f_dentry->d_inode, filp, - (char *)&dquot->dq_dqb, sizeof(struct dqblk)) == sizeof(struct dqblk)) + if (filp->f_op->write(filp, (char *)&dquot->dq_dqb, + sizeof(struct dqblk), &filp->f_pos) == sizeof(struct dqblk)) dquot->dq_flags &= ~DQ_MOD; up(&dquot->dq_mnt->mnt_sem); @@ -261,7 +261,7 @@ lock_dquot(dquot); down(&dquot->dq_mnt->mnt_sem); if (filp->f_op->llseek) { - if (filp->f_op->llseek(filp->f_dentry->d_inode, filp, + if (filp->f_op->llseek(filp, dqoff(dquot->dq_id), 0) != dqoff(dquot->dq_id)) { up(&dquot->dq_mnt->mnt_sem); unlock_dquot(dquot); @@ -271,7 +271,8 @@ filp->f_pos = dqoff(dquot->dq_id); fs = get_fs(); set_fs(KERNEL_DS); - filp->f_op->read(filp->f_dentry->d_inode, filp, (char *)&dquot->dq_dqb, sizeof(struct dqblk)); + filp->f_op->read(filp, (char *)&dquot->dq_dqb, + sizeof(struct dqblk), &filp->f_pos); up(&dquot->dq_mnt->mnt_sem); set_fs(fs); if (dquot->dq_bhardlimit == 0 && dquot->dq_bsoftlimit == 0 &&