mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jeremy Allison <jra@samba.org>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Samuel Thibault <samuel.thibault@ens-lyon.org>,
	Jeremy Allison <jra@samba.org>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [2.6] smbfs & "du" illness
Date: Sat, 25 Sep 2004 10:11:04 -0700	[thread overview]
Message-ID: <20040925171104.GN580@jeremy1> (raw)
In-Reply-To: <Pine.LNX.4.58.0409250929030.2317@ppc970.osdl.org>

On Sat, Sep 25, 2004 at 09:41:59AM -0700, Linus Torvalds wrote:
> 
> I hate to say so, but Jeremy is a git in this case.

Thanks, I prefer POSIX fascist myself :-).

> And yes, that's a _fixed_ blocksize. When you use "stat()", and you look 
> at "st_blocks", it's ALWAYS in 512-byte entities. It doesn't matter that 
> "st_blksize" might be something else - when UNIX counts blocks, it counts 
> them in 512-byte chunks.

st_blocks and st_blksize are not in the POSIX spec
(I have one on my desk, and stroke it occasionally :-)
Besides which, on HPUX (which these extensions were
first created for) it returns st_blocks in 8192 byte
units, not 512, so your claim is incorrect.

That's why I got so pissed with the extensions spec
as it didn't specify a unit size. Rather an assume
"all the world is 512" which is plainly wrong, I
decided to make it a unit of bytes on the wire.
The client can then return in the correct blocksize
for it's own system.

> I'm claiming that samba is broken, and we should not try to fix it on the
> client side.  We should ask the samba people to get their act together.  
> They've apparently been able to put _two_ bugs in one single integer:  
> both messing up the block size _and_ then using a totally illogical
> minimum value for the thing.

Well the minimum value is for Windows clients. They go a *lot*
faster with the minimum value as it tweaks some of their internal
buffers when they allocate. You can parameterize it (admittedly at
compile time, not runtime). I can make it runtime parameterized
in a later smbd if you want.

The CIFS client needs to divide the value returned by 512, or
whatever blocksize is being used on the UNIX clients. When
we have a 64-bit space it makes sense to return the absolute
bytes and let the client return it to userspace in whatever blocksize
it wants.

> I bet the minimum value comes from the fact that all files end up using 
> "n" bytes for things like inodes etc. Let's make up some numbers, and 
> assume that somebody thought that the minimum disk-space used was 2kB. 
> Instead of dividing that by 512, and coming up with the value "4", they 
> multiplied it by the block size and came up with the value 1Mb.

Nope. We have strange reasons for things, but they're usually
not *that* strange.

> Whatever the reason, the minimum size is clearly a samba bug, even if you 
> were to (incorrectly, Jeremy) claim that there is no standard blocksize.

It's a Samba *feature* :-). But I agree for UNIX/Linux clients
it doesn't make much sense.

Jeremy.

  reply	other threads:[~2004-09-25 17:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-17 20:54 Samuel Thibault
2004-09-25 16:41 ` Linus Torvalds
2004-09-25 17:11   ` Jeremy Allison [this message]
2004-09-25 17:14     ` Jeremy Allison
2004-09-25 17:41     ` YOSHIFUJI Hideaki / 吉藤英明
     [not found]       ` <20040925174406.GP580@jeremy1>
2004-09-25 18:06         ` Linus Torvalds
2004-09-25 18:12           ` Linus Torvalds
2004-09-25 18:20             ` Jeremy Allison
2004-09-25 18:25               ` Samuel Thibault
2004-09-25 18:32                 ` Jeremy Allison
2004-09-25 19:16               ` Linus Torvalds
2004-09-25 19:22                 ` Jeremy Allison
2004-09-25 19:27                   ` Samuel Thibault
2004-09-25 18:29           ` Jeremy Allison
2004-09-25 18:31             ` Jeremy Allison
2004-09-25 19:20             ` Linus Torvalds
2004-09-25 19:25               ` Jeremy Allison
2004-09-25 19:52               ` Jeremy Allison
2004-09-25 20:21                 ` Linus Torvalds
2004-09-25 21:10                   ` Jeremy Allison
2004-09-25 21:59                     ` Linus Torvalds
2004-09-25 22:08                       ` Jeremy Allison
2004-09-25 22:18                         ` Linus Torvalds
2004-09-25 22:23                           ` Jeremy Allison
2004-09-25 22:40                           ` Samuel Thibault
2004-09-26  0:41             ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040925171104.GN580@jeremy1 \
    --to=jra@samba.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=samuel.thibault@ens-lyon.org \
    --cc=torvalds@osdl.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®