* Re: 2.6: marking individual directories as synchronous?
@ 2003-07-22 18:57 Carl Spalletta
0 siblings, 0 replies; 4+ messages in thread
From: Carl Spalletta @ 2003-07-22 18:57 UTC (permalink / raw)
To: linux-kernel; +Cc: dbehman
Here is further info on the use of IS_DIRSYNC in ext2.
ext2_alloc_branch() is used only in the O_DIRECT path.
ext2_commit_chunk() is called indirectly in the following paths, which provide
functionality comparable to that of ext3:
[linux-2.6.0-test1]$ fscope -func=ext2_commit_chunk
ext2_commit_chunk ext2_add_link ext2_add_nondir ext2_create
ext2_commit_chunk ext2_add_link ext2_add_nondir ext2_link
ext2_commit_chunk ext2_add_link ext2_add_nondir ext2_mknod
ext2_commit_chunk ext2_add_link ext2_add_nondir ext2_symlink
ext2_commit_chunk ext2_add_link ext2_mkdir
ext2_commit_chunk ext2_add_link ext2_rename
ext2_commit_chunk ext2_delete_entry ext2_rename
ext2_commit_chunk ext2_delete_entry ext2_unlink ext2_rmdir
ext2_commit_chunk ext2_make_empty ext2_mkdir
ext2_commit_chunk ext2_set_link ext2_rename
FOR CLARITY:
items 1-4 rotated:
ext2_create ext2_link ext2_mknod ext2_symlink
ext2_add_nondir ext2_add_nondir ext2_add_nondir ext2_add_nondir
ext2_add_link ext2_add_link ext2_add_link ext2_add_link
ext2_commit_chunk ext2_commit_chunk ext2_commit_chunk ext2_commit_chunk
items 5-8 rotated:
(null) (null) (null) ext2_rmdir
ext2_mkdir ext2_rename ext2_rename ext2_unlink
ext2_add_link ext2_add_link ext2_delete_entry ext2_delete_entry
ext2_commit_chunk ext2_commit_chunk ext2_commit_chunk ext2_commit_chunk
items 9-10 rotated:
ext2_mkdir ext2_rename
ext2_make_empty ext2_set_link
ext2_commit_chunk ext2_commit_chunk
(See this list for tool 'fscope'.)
_
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.6: marking individual directories as synchronous?
@ 2003-07-22 13:20 Carl Spalletta
0 siblings, 0 replies; 4+ messages in thread
From: Carl Spalletta @ 2003-07-22 13:20 UTC (permalink / raw)
To: linux-kernel; +Cc: dbehman
Grepping around in 2.6.0-test1 src I found:
include/linux/fs.h:
105 #define MS_DIRSYNC 128 /* Directory modifications are synchronous */
138 #define S_DIRSYNC 128 /* Directory modifications are synchronous */
Therefore, study the definitions and uses of those flags as well as
IS_DIRSYNC(), EXT3_DIRSYNC_FL, ext3_ioctl() & ext3_set_inode_flags().
For example:
[linux-2.6.0-test1]$ cscope -d -L -3 IS_DIRSYNC
...
fs/ext2/dir.c ext2_commit_chunk 71 if (IS_DIRSYNC(dir))
fs/ext3/ialloc.c ext3_new_inode 585 if (IS_DIRSYNC(inode))
fs/ext3/namei.c ext3_create 1638 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_mknod 1665 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_mkdir 1697 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_rmdir 1981 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_unlink 2033 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_symlink 2089 if (IS_DIRSYNC(dir))
fs/ext3/namei.c ext3_link 2139 if (IS_DIRSYNC(dir))
fs/minix/dir.c dir_commit_chunk 53 if (IS_DIRSYNC(dir))
fs/sysv/dir.c dir_commit_chunk 46 if (IS_DIRSYNC(dir))
fs/ufs/dir.c ufs_set_link 359 if (IS_DIRSYNC(dir))
fs/ufs/dir.c ufs_add_link 458 if (IS_DIRSYNC(dir))
fs/ufs/dir.c ufs_delete_entry 507 if (IS_DIRSYNC(inode))
...
I haven't actually played with the application of this, but it would appear
to be some combination of ioctl's and/or mount flags. Check the source for
chattr(1) to see if and how it uses the ioctl.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: 2.6: marking individual directories as synchronous?
2003-07-17 20:59 Dan Behman
@ 2003-07-20 0:31 ` Theodore Ts'o
0 siblings, 0 replies; 4+ messages in thread
From: Theodore Ts'o @ 2003-07-20 0:31 UTC (permalink / raw)
To: Dan Behman; +Cc: linux-kernel
On Thu, Jul 17, 2003 at 04:59:20PM -0400, Dan Behman wrote:
> Hi,
>
> I'm reading through Joseph Pranevich's great document "Wonderful World of
> Linux 2.6" and I came across something that I'd love to learn more about.
> In the "Block Device Support" -> "Filesystems" section, reference is made
> to "Individual directories can now be marked as synchronous so that all
> changes (additional files, etc.) will be atomic". I searched through the
> update info at kernelnewbies but
> couldn't find any more information on this - could someone please elaborate
> on this? What is it and how does it work? Is there any design
> documentation for this?
He is is probably referring to "chattr +S". See the man page for
chattr for more information. Note that strictly speaking this does
not necessarily give you "atomic changes". It does mean that changes
are scheduled to be immediately written to disk, but that does not
guarantee atomicity, at least not for all filesystems and for all
operations. You *can* be guaranteed that system calls will not return
until the changes are on disk; note though that this does have has
some significant performance impacts.
- Ted
^ permalink raw reply [flat|nested] 4+ messages in thread
* 2.6: marking individual directories as synchronous?
@ 2003-07-17 20:59 Dan Behman
2003-07-20 0:31 ` Theodore Ts'o
0 siblings, 1 reply; 4+ messages in thread
From: Dan Behman @ 2003-07-17 20:59 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm reading through Joseph Pranevich's great document "Wonderful World of
Linux 2.6" and I came across something that I'd love to learn more about.
In the "Block Device Support" -> "Filesystems" section, reference is made to
"Individual directories can now be marked as synchronous so that all changes
(additional files, etc.) will be atomic". I searched through the update
info at kernelnewbies but
couldn't find any more information on this - could someone please elaborate
on this? What is it and how does it work? Is there any design
documentation for this?
Thanks!
Dan Behman...
_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*
http://join.msn.com/?page=features/virus
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-07-22 18:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-22 18:57 2.6: marking individual directories as synchronous? Carl Spalletta
-- strict thread matches above, loose matches on Subject: below --
2003-07-22 13:20 Carl Spalletta
2003-07-17 20:59 Dan Behman
2003-07-20 0:31 ` Theodore Ts'o
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).