Bug 48251 - Sorting directory entries
Summary: Sorting directory entries
Status: CLOSED INVALID
Alias: None
Product: File System
Classification: Unclassified
Component: ext3 (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: fs_ext3@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-03 15:46 UTC by Pavel Samsonov
Modified: 2012-10-03 16:53 UTC (History)
1 user (show)

See Also:
Kernel Version:
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Pavel Samsonov 2012-10-03 15:46:09 UTC
Good day!
Why the directory entries in directory not listed (without sorting) in same order that been created? I mean that directory like file with append writing mode.
I have some tasks, when this is important.
Thanks!
Comment 1 Theodore Tso 2012-10-03 16:29:50 UTC
There is never a guarantee that directory entries are listed in the same order that they are created.  If you are writing a program where you are making this assumption --- don't.  It's something which has never been true, for any file system.

With ext3 if the directory hashing feature is enabled (which it is by default), the directory entries are returned in hash order.  This was needed so we could meet POSIX requirements for how readdir() behaves in the face of telldir() and seekdir(), as well as files being created while iterating through the directory entries using readdir().  (The short version is once you use a tree, if you do a node split due to a file being created, and where half of the directory entries in the node are copied to a new leaf block, it still must be the case that each directory entry which was created before starting the readdir() pass must be returned once and only once.   In order to guarantee this, we traverse the tree in hash order.)

If you disable the directory hashing feature, then the files will be returned _roughly_ in creation order; however, once you start deleting directory entries, new files can get inserted into the unallocated portion of the directory, which means readdir() won't be returning the files in creation order, even though previously it would appear to be returning files in creation order before any files had been deleted.
Comment 2 Pavel Samsonov 2012-10-03 16:53:26 UTC
Thanks, I give with you help needed result.

Note You need to log in before you can comment on or make changes to this bug.