2003-01-06 00:29:28

by Lukas Hejtmanek

[permalink] [raw]
Subject: 2.5.54 - quota support

Hello,

Is quota support currently broken?

Under 2.5.54 I got:
# quotaon /
using //aquota.user on /dev/hda1: No such device

/dev/hda1 is ext3 and aquota.user exists on it.

My config is:
CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y

--
Luk?? Hejtm?nek


2003-01-06 01:50:44

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

Lukas Hejtmanek wrote:
>
> Hello,
>
> Is quota support currently broken?
>
> Under 2.5.54 I got:
> # quotaon /
> using //aquota.user on /dev/hda1: No such device
>
> /dev/hda1 is ext3 and aquota.user exists on it.
>
> My config is:
> CONFIG_QUOTA=y
> # CONFIG_QFMT_V1 is not set
> CONFIG_QFMT_V2=y
> CONFIG_QUOTACTL=y
>

It works for me.

grab-n-build quota-3.08 from http://sourceforge.net/projects/linuxquota
# mke2fs -j /dev/sde5
# mount /dev/sde5 /mnt/sde5 -o quota
# quotacheck -F vfsv0 /dev/sde5
# quotaon /dev/sde5
# cd /mnt/sde5
# tar xfz ~/linux-2.4.19.tar.gz
# repquota /mnt/sde5

*** Report for user quotas on device /dev/sde5
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 32828 0 0 3 0 0
akpm -- 162104 0 0 11370 0 0

2003-01-06 10:28:30

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

On Sun, Jan 05, 2003 at 05:59:12PM -0800, Andrew Morton wrote:
> grab-n-build quota-3.08 from http://sourceforge.net/projects/linuxquota

$ dpkg -l quota
ii quota 3.08-1

> # quotacheck -F vfsv0 /dev/sde5

this one works ok. quotacheck -m -F vfsv0 / seems to be working

> # quotaon /dev/sde5

quotaon / freezes process if system is up in normal mode. More over any process
cannot read nor write to disk after that. sysrq-p shows cpu in idle only.

when init=/bin/sh then it reports no such device.

under 2.5.53 and 2.4.20 quotaon works ok. Under 2.5.53 quotaoff / reports some
error - no such device or bad ioctl I cannot remember exactly but process does
not freeze.

mounts:
/dev/hda1 on / type ext3 (rw,usrquota)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hda3 on /home type ext3 (rw)
/dev/hda4 on /opt type xfs (rw,osyncisosync)
/dev/hdc2 on /opt/tmp type xfs (rw,osyncisosync)
/opt/run/usr on /usr type bind (rw,bind)
none on /dev/shm type tmpfs (rw)
automount(pid266) on /var/autofs/misc type autofs
(rw,fd=5,pgrp=266,minproto=2,maxproto=4)
automount(pid271) on /var/autofs/net type autofs
(rw,fd=5,pgrp=271,minproto=2,maxproto=4)

Here's my whole config:

CONFIG_X86=y
CONFIG_MMU=y
CONFIG_SWAP=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_EXPERIMENTAL=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_KMOD=y
CONFIG_X86_PC=y
CONFIG_MK7=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_USE_3DNOW=y
CONFIG_PREEMPT=y
CONFIG_EDD=y
CONFIG_NOHIGHMEM=y
CONFIG_MTRR=y
CONFIG_HAVE_DEC_LOCK=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_NAMES=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
CONFIG_BLK_DEV_LOOP=m
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDESCSI=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_BLK_DEV_OFFBOARD=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_PCI_WIP=y
CONFIG_BLK_DEV_ADMA=y
CONFIG_BLK_DEV_PDC202XX_OLD=y
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_IDEDMA_AUTO=y
CONFIG_BLK_DEV_PDC202XX=y
CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_NETFILTER=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_SYN_COOKIES=y
CONFIG_IP_NF_CONNTRACK=y
CONFIG_IP_NF_FTP=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_NAT_FTP=y
CONFIG_IPV6=y
CONFIG_IP6_NF_IPTABLES=y
CONFIG_IP6_NF_FILTER=y
CONFIG_IPV6_SCTP__=y
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_PCI=y
CONFIG_E100=y
CONFIG_8139TOO=y
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_RTC=y
CONFIG_AGP=y
CONFIG_AGP_VIA=y
CONFIG_QUOTA=y
CONFIG_QFMT_V2=y
CONFIG_QUOTACTL=y
CONFIG_AUTOFS4_FS=y
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_JBD=y
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_EXT2_FS=y
CONFIG_UDF_FS=y
CONFIG_XFS_FS=y
CONFIG_SMB_FS=y
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp850"
CONFIG_FS_MBCACHE=y
CONFIG_MSDOS_PARTITION=y
CONFIG_SMB_NLS=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_437=m
CONFIG_NLS_CODEPAGE_850=m
CONFIG_NLS_CODEPAGE_852=m
CONFIG_NLS_ISO8859_1=m
CONFIG_NLS_ISO8859_2=m
CONFIG_NLS_UTF8=m
CONFIG_VIDEO_SELECT=y
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_SOUND=y
CONFIG_SOUND_PRIME=y
CONFIG_SOUND_EMU10K1=y
CONFIG_MIDI_EMU10K1=y
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_UHCI_HCD=y
CONFIG_USB_STORAGE=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_KALLSYMS=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_SHA1=y
CONFIG_CRC32=y
CONFIG_X86_BIOS_REBOOT=y

--
Luk?? Hejtm?nek

2003-01-06 14:40:08

by Jan Kara

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

Hello,

> On Sun, Jan 05, 2003 at 05:59:12PM -0800, Andrew Morton wrote:
> > grab-n-build quota-3.08 from http://sourceforge.net/projects/linuxquota
>
> $ dpkg -l quota
> ii quota 3.08-1
>
> > # quotacheck -F vfsv0 /dev/sde5
>
> this one works ok. quotacheck -m -F vfsv0 / seems to be working
>
> > # quotaon /dev/sde5
>
> quotaon / freezes process if system is up in normal mode. More over any process
> cannot read nor write to disk after that. sysrq-p shows cpu in idle only.
I seems like quotaon (or better quotactl()) waits on some lock
forever... I'll try to reproduce it but in the mean time can you print
list of processes, write down a few addresses from the top of the stack
of quotaon and try to match it in the system.map to function in which
is process stuck?

> when init=/bin/sh then it reports no such device.
Hmm.. This might be helpful. Thanks.


> under 2.5.53 and 2.4.20 quotaon works ok. Under 2.5.53 quotaoff / reports some
> error - no such device or bad ioctl I cannot remember exactly but process does
> not freeze.


Thanks for report
Honza

2003-01-06 15:10:36

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

On Mon, Jan 06, 2003 at 03:48:43PM +0100, Jan Kara wrote:
> I seems like quotaon (or better quotactl()) waits on some lock
> forever... I'll try to reproduce it but in the mean time can you print
> list of processes, write down a few addresses from the top of the stack
> of quotaon and try to match it in the system.map to function in which
> is process stuck?

according to strace quotaon freezes at
quotactl(0xff800002, "/dev/hda1", 2

call trace is: (sysrq-t)
vfs_permission
__rwsem_do_wake
rwsem_down_read_failed
module_put
dqinit_needed
vfs_quota_off
resolve_dev
d_free
deny_write_access
check_quotactl_valid
d_free
scheduling_functions_start_here
do_quotactl
system_call


Btw, freeze on quotaon is not regular. After some time that system is up,
quotaon reports only no such device and terminates.

so looks like
1) freeze on quotactl
2) reports no such device

in both cases not working.

--
Luk?? Hejtm?nek

2003-01-07 16:31:53

by Jan Kara

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

> On Mon, Jan 06, 2003 at 03:48:43PM +0100, Jan Kara wrote:
> > I seems like quotaon (or better quotactl()) waits on some lock
> > forever... I'll try to reproduce it but in the mean time can you print
> > list of processes, write down a few addresses from the top of the stack
> > of quotaon and try to match it in the system.map to function in which
> > is process stuck?
>
> according to strace quotaon freezes at
> quotactl(0xff800002, "/dev/hda1", 2
>
> call trace is: (sysrq-t)
> vfs_permission
> __rwsem_do_wake
> rwsem_down_read_failed
> module_put
> dqinit_needed
> vfs_quota_off
> resolve_dev
> d_free
> deny_write_access
> check_quotactl_valid
> d_free
> scheduling_functions_start_here
> do_quotactl
> system_call
>
>
> Btw, freeze on quotaon is not regular. After some time that system is up,
> quotaon reports only no such device and terminates.
>
> so looks like
> 1) freeze on quotactl
> 2) reports no such device
>
> in both cases not working.
Reporting 'No such device' was actually bug which was introduced some
time ago but nobody probably noticed it... It was introduce when quota
code was converted from device numbers to 'bdev' structures.
I also fixed one bug in quotaon() call however I'm not sure wheter it
could cause the freeze. Anyway patch is attached, try it and tell me
about the changes.

Honza

--
Jan Kara <[email protected]>
SuSE CR Labs


Attachments:
(No filename) (1.36 kB)
quota-2.5.54-1-fix.diff (1.68 kB)
Download all attachments

2003-01-08 01:12:59

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

On Tue, Jan 07, 2003 at 05:40:28PM +0100, Jan Kara wrote:
> Reporting 'No such device' was actually bug which was introduced some
> time ago but nobody probably noticed it... It was introduce when quota
> code was converted from device numbers to 'bdev' structures.
> I also fixed one bug in quotaon() call however I'm not sure wheter it
> could cause the freeze. Anyway patch is attached, try it and tell me
> about the changes.

Hmm, quotaon / with init=/bin/sh seems to work OK, quota accounting is made and
repquota displays normal info.

However with normal startup quotaon / still freezes :-(


Btw, does anyone know why mount is failing for so long time while using with
automount? Process mount is in uninterruptible sleep for more than 10 secs until
reports no disc in cdrom. (the same for my usb camera when autofs try to mount
it while it is not connected).

--
Luk?? Hejtm?nek

2003-01-08 10:14:10

by Miquel van Smoorenburg

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

In article <[email protected]>,
Lukas Hejtmanek <[email protected]> wrote:
>On Tue, Jan 07, 2003 at 05:40:28PM +0100, Jan Kara wrote:
>> Reporting 'No such device' was actually bug which was introduced some
>> time ago but nobody probably noticed it... It was introduce when quota
>> code was converted from device numbers to 'bdev' structures.
>> I also fixed one bug in quotaon() call however I'm not sure wheter it
>> could cause the freeze. Anyway patch is attached, try it and tell me
>> about the changes.
>
>Hmm, quotaon / with init=/bin/sh seems to work OK, quota accounting is made and
>repquota displays normal info.
>
>However with normal startup quotaon / still freezes :-(

ulimit ?

Mike.
--
They all laughed when I said I wanted to build a joke-telling machine.
Well, I showed them! Nobody's laughing *now*! -- [email protected]

2003-01-08 10:47:42

by Jan Kara

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

> On Tue, Jan 07, 2003 at 05:40:28PM +0100, Jan Kara wrote:
> > Reporting 'No such device' was actually bug which was introduced some
> > time ago but nobody probably noticed it... It was introduce when quota
> > code was converted from device numbers to 'bdev' structures.
> > I also fixed one bug in quotaon() call however I'm not sure wheter it
> > could cause the freeze. Anyway patch is attached, try it and tell me
> > about the changes.
>
> Hmm, quotaon / with init=/bin/sh seems to work OK, quota accounting is made and
> repquota displays normal info.
OK, so one bug fixed.

> However with normal startup quotaon / still freezes :-(
:( So I'll search for more bugs...

> Btw, does anyone know why mount is failing for so long time while using with
> automount? Process mount is in uninterruptible sleep for more than 10 secs until
> reports no disc in cdrom. (the same for my usb camera when autofs try to mount
> it while it is not connected).


Honza

--
Jan Kara <[email protected]>
SuSE CR Labs

2003-01-10 19:24:05

by Jan Kara

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

> On Tue, Jan 07, 2003 at 05:40:28PM +0100, Jan Kara wrote:
> > Reporting 'No such device' was actually bug which was introduced some
> > time ago but nobody probably noticed it... It was introduce when quota
> > code was converted from device numbers to 'bdev' structures.
> > I also fixed one bug in quotaon() call however I'm not sure wheter it
> > could cause the freeze. Anyway patch is attached, try it and tell me
> > about the changes.
>
> Hmm, quotaon / with init=/bin/sh seems to work OK, quota accounting is made and
> repquota displays normal info.
>
> However with normal startup quotaon / still freezes :-(
Ok. So I found the bug. Fix was a bit nontrivial (at one path we tried
to acquire one lock twice) but know it should work. The patch also
contain fix in ext2 - at some time ext2_setattr was written and call of
DQUOT_TRANSFER was missing so no quota was being transferred.
Please test whether the patch works for you.

Honza

PS: First patch is the one I already sent you.
--
Jan Kara <[email protected]>
SuSE CR Labs


Attachments:
(No filename) (1.03 kB)
quota-2.5.54-1-lockfix.diff (1.68 kB)
quota-2.5.54-2-offsem.diff (12.13 kB)
Download all attachments

2003-01-12 21:11:51

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.5.54 - quota support

On Fri, Jan 10, 2003 at 08:32:06PM +0100, Jan Kara wrote:
> Ok. So I found the bug. Fix was a bit nontrivial (at one path we tried
> to acquire one lock twice) but know it should work. The patch also
> contain fix in ext2 - at some time ext2_setattr was written and call of
> DQUOT_TRANSFER was missing so no quota was being transferred.
> Please test whether the patch works for you.

Good job. This patch works for me (tested with kernel 2.5.55, successfully
patched with no errors). Thanks a lot.

--
Luk?? Hejtm?nek