Re: NCPFS not returning Volume Size (???)

From: Jeff V. Merkey (jmerkey@vger.timpanogas.org)
Date: Thu Nov 16 2000 - 22:55:22 EST


On Thu, Nov 16, 2000 at 08:40:29PM -0700, Jeff V. Merkey wrote:
> Petr,
>
> NCPFS in 2.2.18-pre21 is not returning volume size via df -h. I checked
> your code and found this comment:
>
> static int ncp_statfs(struct super_block *sb, struct statfs *buf, int bufsiz)
> {
> struct statfs tmp;
>
> /* We cannot say how much disk space is left on a mounted
> NetWare Server, because free space is distributed over
> volumes, and the current user might have disk quotas. So
> free space is not that simple to determine. Our decision
> here is to err conservatively. */
>
> tmp.f_type = NCP_SUPER_MAGIC;
> tmp.f_bsize = 512;
> tmp.f_blocks = 0;
> tmp.f_bfree = 0;
> tmp.f_bavail = 0;
> tmp.f_files = -1;
> tmp.f_ffree = -1;
> tmp.f_namelen = 12;
> return copy_to_user(buf, &tmp, bufsiz) ? -EFAULT : 0;
> }
>
> NCP Code
>
> 2222/17E6 Get Object's Remaining Disk Space
>
> (I have docs on this one and can send if you need it).
>
> will return in NetWare sized blocks the space remaining for this
> user (which will be the user ID used to login). The fact that quota's
> are present for a user (user space restriction node -- in NWDIR.H)
> should be irrelevant, since from the view of a Linux client attached to
> a NetWare server, this is their assigned storage.
>
> This NCP also speaks in hardcoded blocksizes of 4096 bytes, so that's
> the factor for free space for whatever login ID was used to mount
> the NetWare Volume that can be used in ncpfs_statfs() to return
> free space.

COrrection. 3.x always reports as 4096 blocks, 4.11 > reports as
4K, 8K, 16K, 32K, and 64K. I have not checked what NSS is reporting,
but will test tonight.

Jeff

>
> I have not gone through your userspace code as of yet, but to make
> this work, you need the ObjectID for the User Account you used to
> connect to the server in order to make this work.
>
> I noticed I could not get free space from my Server with NCPFS with
> df -h, and tracked it down. Several NetWare customers migrating
> installations of NetWare to Linux pointed it out when they were
> moving Oracle databases over to Linux from NetWare.
>
> I noticed that 2.4 also is not reporting Volume free space.
>
> The current NCPFS code, like a lot of Linux code, is structured
> in a manner that's very different from Novell's internal code,
> (the names are shorter for one, which is an improvement). The
> way the NCP codes are peeled off is different and not the
> large case and switch structure employed in NetWare, so it's
> a little hard for me to follow since I am used to NCPs being
> grouped into case/switch classes. If you can point me to
> where 1) the login ID is stored and B) where NCP packet
> request/reponse headers are constructed, i.e. a skeleton
> to send/receive the requests I can grab, I'll try to
> code this for you.
>
> :-)
>
> Jeff
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:12 EST