mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Anton Altaparmakov <aia21@cam.ac.uk>
To: Roushan Ali <roushan.ali@gmail.com>
Cc: Nathan Scott <nathans@sgi.com>, linux-kernel@vger.kernel.org
Subject: Re: file system block size
Date: Tue, 18 Oct 2005 15:36:52 +0100	[thread overview]
Message-ID: <1129646212.15136.37.camel@imp.csi.cam.ac.uk> (raw)
In-Reply-To: <20051019001218.B5830881@wobbly.melbourne.sgi.com>

On Wed, 2005-10-19 at 00:12 +1000, Nathan Scott wrote:
> On Tue, Oct 18, 2005 at 11:22:27AM +0530, Roushan Ali wrote:
> > Hi All,
> >          we want to write a new file system with block size more than
> > 4KB. Can anyone suggest us how should we proceed ?
> 
> With great difficulty. ;)

Indeed, it makes everything harder.  Have a look at ntfs in the kernel
which has to cope with file system block sizes between 512 bytes and
several hundred kiB (at least they are in powers of two thank
goodness...).  You end up not being able to use a lot of generic
functions as you for example need to lock multiple pages which needs to
be ordered correctly, etc...  If you look at the latest -mm kernel, the
ntfs driver there has file write(2) support for any cluster size and you
will see an example of the multiple page locking problem solution there.

Just one note is that I chose not to do full fs block size io in ntfs so
I avoid most of the big problems.  The only time it really hits is at
allocation time, because you can only allocate in units of fs block size
so when you write even one byte you need to lock the pages for the whole
byte range from the fs block start to block end that includes the byte
being written to.  If already allocated, ntfs simply only writes to that
one byte in the page it is in and ignores the other pages.  Makes life
much easier and faster given you save doing unnecessary writes to the
other pages.  (-:  In fact we would only write out the 512-byte block
containing the 1 written byte, so it is even faster than just page
granularity.  (-:

Best regards,

        Anton
-- 
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer / IRC: #ntfs on irc.freenode.net
WWW: http://linux-ntfs.sf.net/ & http://www-stu.christs.cam.ac.uk/~aia21/


  reply	other threads:[~2005-10-18 14:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-18  5:52 Roushan Ali
2005-10-18 14:12 ` Nathan Scott
2005-10-18 14:36   ` Anton Altaparmakov [this message]
2005-10-18 15:12     ` Bob Copeland
2005-10-18 15:30       ` Badari Pulavarty
2005-10-18 15:42         ` Bob Copeland

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=1129646212.15136.37.camel@imp.csi.cam.ac.uk \
    --to=aia21@cam.ac.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nathans@sgi.com \
    --cc=roushan.ali@gmail.com \
    /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®