From: Nikita Danilov <nikita@clusterfs.com>
To: Linux Kernel Mailing List <Linux-Kernel@Vger.Kernel.ORG>
Subject: Re: FIGETBSZ and FIBMAP for directorys
Date: Thu, 16 Jun 2005 03:15:08 +0400 [thread overview]
Message-ID: <17072.46716.96095.48409@gargle.gargle.HOWL> (raw)
Sebastian Claъen writes:
> Hi list...
>
> I'm using this little program to find out which blocks are use by a
> particular file:
> int main(int argc, char **argv) {
> int fd,
> i,
> block,
> blocksize,
> bcount;
> struct stat st;
>
> assert(argv[1] != NULL);
> assert(fd=open(argv[1], O_RDONLY));
> assert(ioctl(fd, FIGETBSZ, &blocksize) == 0);
> assert(!fstat(fd, &st));
Now, if somebody compiles this with NDEBUG? It is bad practice to put
code with side-effects into assertions.
[...]
>
> This works fine for regular files, but not for directorys. Both ioctl's,
> FIGETBSZ and FIBMAP, are implemented for regular files only.
FIBMAP is obsolete API, I believe. For certain file systems it doesn't
make sense to ask "in what block, i-th logical block of given file
lives?" for directory files, because directories do not have linear
structure, e.g., are implemented as B-trees. Not incidentally these are
the same file systems that have trouble supporting optional
seekdir/telldir API.
Moreover, for some file systems this question doesn't make a lot of
sense even for regular files, e.g., because small files can be stored in
the same block, or some blocks might be in the "unallocated state", or
file system does behind-the-back relocation to improve disk layout, etc.
Nor does it make sense to ask such questions when files are stripped
over multiple devices, or served over network, or backed up by memory...
Basically, FIBMAP is a hack.
>
> Is there a patch to make this FIGETBSZ and FIBMAP work on directorys
> too?
> Or alternativly, is there a way to find out which blocks are used by a
> directory?
>
> Thanks for answers in advance
> Sebastian.
>
>
Nikita.
next reply other threads:[~2005-06-15 23:18 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-15 23:15 Nikita Danilov [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-06-15 7:58 Sebastian Claßen
2005-06-15 22:46 ` Nathan Scott
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=17072.46716.96095.48409@gargle.gargle.HOWL \
--to=nikita@clusterfs.com \
--cc=Linux-Kernel@Vger.Kernel.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®