quotaoff OOPS (2.4.5-ac22)
After issuing quotaoff -a the kernel oopses. All filesystems which have quotas are ext2 and are using the new quota system.
Oops:
Jul 2 09:08:49 girly kernel: Unable to handle kernel NULL pointer dereference at virtual address 0000032a Jul 2 09:08:49 girly kernel: printing eip: Jul 2 09:08:49 girly kernel: c0146886 Jul 2 09:08:49 girly kernel: *pde = 00000000 Jul 2 09:08:49 girly kernel: Oops: 0000 Jul 2 09:08:49 girly kernel: CPU: 1 Jul 2 09:08:49 girly kernel: EIP: 0010:[<c0146886>] Jul 2 09:08:49 girly kernel: EFLAGS: 00010282 Jul 2 09:08:49 girly kernel: eax: d0735f4c ebx: ccdda800 ecx: 00000000 edx: d0735f4c Jul 2 09:08:49 girly kernel: esi: ccdda87c edi: 00000306 ebp: d0735fa4 esp: d0735f30 Jul 2 09:08:49 girly kernel: ds: 0018 es: 0018 ss: 0018 Jul 2 09:08:49 girly kernel: Process quotaoff (pid: 1892, stackpage=d0735000) Jul 2 09:08:49 girly kernel: Stack: ccdda800 ccdda87c 00000000 d0735fa4 00000000 d0735fa4 00005fa4 d0735f4c Jul 2 09:08:49 girly kernel: d0735f4c c014a62c 00000306 00000000 ccdda800 00000200 00000000 d0735fa4 Jul 2 09:08:49 girly kernel: ccdda894 ccdda87c 00000000 c014ab8c ccdda800 00000000 d0734000 00000000 Jul 2 09:08:49 girly kernel: Call Trace: [<c014a62c>] [<c014ab8c>] [<c0131953>] [<c0106cbb>] Jul 2 09:08:49 girly kernel: Jul 2 09:08:49 girly kernel: Code: 83 7f 24 00 0f 84 0f 01 00 00 f0 fe 0d d4 01 25 c0 0f 88 09
KSymoops:
Quoted 1 line
Quoted 1 line
EIP;
c0146886<remove_dquot_ref+22/14c> <=====
Trace; c014a62c <quota_off+cc/154>
Trace; c014ab8c <sys_quotactl+268/3bc>
Trace; c0131953 <sys_read+bf/c8>
Trace; c0106cbb <system_call+33/38>
Code; c0146886 <remove_dquot_ref+22/14c>
00000000 <_EIP>:
Code; c0146886 <remove_dquot_ref+22/14c> <=====
0: 83 7f 24 00 cmpl $0x0,0x24(%edi) <=====
Code; c014688a <remove_dquot_ref+26/14c>
4: 0f 84 0f 01 00 00 je 119 <_EIP+0x119> c014699f <remove_dquot_ref+13b/14c>
Code; c0146890 <remove_dquot_ref+2c/14c>
a: f0 fe 0d d4 01 25 c0 lock decb 0xc02501d4
Code; c0146897 <remove_dquot_ref+33/14c>
11: 0f 88 09 00 00 00 js 20 <_EIP+0x20> c01468a6 <remove_dquot_ref+42/14c>
Linux Version:
Linux girly 2.4.5-ac22 #2 SMP Sun Jul 1 12:54:40 CEST 2001 i686 unknown
Distribution:
Debian SID
Quota Version:
ii quota 3.00pre01-8 An implementation of the diskquota system.
Jul 2 09:18:40 girly kernel: VFS: Diskquotas version dquot_6.5.0 initialized
Signature · 2 lines
Cliff Albert | RIPE: CA3348-RIPE | www.oisec.net [email protected] | 6BONE: CA2-6BONE | icq 18461740
Jan Kara
reviewerHello,
Quoted 2 lines
After issuing quotaoff -a the kernel oopses. All filesystems which have quotas are ext2 and are using the new quota system.
Seems like missing part of patch from Al Viro.. Attached patch should fix
it.
Honza
--
Jan Kara <[email protected]>
SuSE Labs
fs/dquot.c +2 -2
@@ -1889,7 +1889,7 @@ }/* Function in inode.c - remove pointers to dquots in icache */ -extern void remove_dquot_ref (kdev_t ,short ); +extern void remove_dquot_ref (struct super_block *,short );/* * Turn quota off on a device. type == -1 ==> quotaoff for all types (umount)
@@ -1913,7 +1913,7 @@reset_enable_flags (dqopt, cnt);/* Note: these are blocking operations */ -remove_dquot_ref (sb->s_dev, cnt); +remove_dquot_ref (sb, cnt);invalidate_dquots (sb->s_dev, cnt);/* When invalidate is finished there are no users of any dquot of our interest... */ if (quotafile_info_dirty (sb_dqopt (sb)->info+cnt))