Re: Quota lockup on quotaon() with patch in 2.2.9

Jan Kara (jack@atrey.karlin.mff.cuni.cz)
Fri, 11 Jun 1999 22:02:58 +0200


--WIyZ46R2i8wDzkSu
Content-Type: text/plain; charset=us-ascii

> Hello,
>
> All of our webservers appear to be locking up right on boot when "quotaon
> -a" is called when the quota-fix-2.2.9-1.diff
> (383e761aec5aa55154e66acabd07d2ab) patch is applied. I told the person in
> the office to read me out some EIP numbers over the phone to see if it was
> in a small tight loop somewhere, but unfortunately it seems to be not very
> tight.
It was tight enough for me to find the place where it probably happened :-).
The EIPs helped a lot. Thanks. The problem was that when initializing quota for
already opened files I tried to initialize quota for devices too.. But dquot_initialize
just didn't do anything and so when I came across this file-handle again I just
though: Hmm, uninitialized handle. Propably it appeared when we blocked. So
initialize it and restart... forever. The patch is attached (2 lines :-)) and
also on ftp://atrey.karlin.mff.cuni.cz/pub/local/jack/quota-fix-2.2.9-2.diff.
Linus, please commit this patch (it is incremental on the one I send you some
time ago...).

Honza.

--WIyZ46R2i8wDzkSu
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="quota-fix-2.2.9-2.diff"

--- linux/fs/dquot.c Thu May 13 22:01:52 1999
+++ linux/fs/dquot.c Fri Jun 11 12:02:26 1999
@@ -646,6 +646,8 @@
{
int cnt;

+ if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)))
+ return 0;
if (type != -1)
return inode->i_dquot[type] == NODQUOT;
for (cnt = 0; cnt < MAXQUOTAS; cnt++)

--WIyZ46R2i8wDzkSu--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/