|
|
|
Re: reiser4 patches and todo list | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] | |
On 02/08/2012 08:40 PM, Marcin Baczyński wrote:
W dniu 8 stycznia 2012 14:53 użytkownik Edward Shishkin <edward.shishkin@xxxxxxxxx> napisał:On 01/05/2012 08:33 PM, Marcin Baczyński wrote:2012/1/5 Edward Shishkin<edward.shishkin@xxxxxxxxx>:On 01/05/2012 11:51 AM, doiggl@xxxxxxxxxxxxxxxxxx wrote:Hello, Questions: - Are there any plans for a reiser4 patch for Linux kernel 3.2/3.1/3.0 series ?Maybe for 3.2, but not sure.. fs-writeback has been changed a lot and I don't have a time to adjust reiser4 to every stupid VFS change. Anybody care to? I'll provide the hints..Well, if you have patience to provide the hints for somebody with little kernel experience and who is just learning how the internals of VFS work than I think I can do it :]Ok, I think that adjusting reiser4 to 3.2 would be a good start. Unlike other file systems reiser4's ->writepages() address space operation doesn't actually write pages to disk. Instead reiser4_writepages() puts them into a transaction (actually it takes place for so-called "anonymous" pages, dirtied via mmap). So with every portion of writeback-ed inodes we also need in addition to call reiser4_writeout(). Such slight inconsistency with VFS semantic was fixed via introducing a new super operation ->writeback_inodes(), so that reiser4_writeback_inodes() makes sure that everything is written properly (see patches 0-7 for details): http://marc.info/?l=reiserfs-devel&m=126507575609892&w=2 http://marc.info/?l=reiserfs-devel&r=1&b=201002&w=2 The following 6 patches adjusts reiser4 to further changes in fs-writeback: http://marc.info/?l=reiserfs-devel&r=1&b=201007&w=2 And now (in 3.1) fs-writeback.c got changed again. Specifically, semantic of writeback_sb_inodes(), the "implicit" ->writeback_inodes() super operation, has been changed: now it writes not necessarily all inodes of a superblock. As a result It'll break reiser4_sync_fs() and reiser4's entd worker semantic, which require _all_ inodes of reiser4 superblock to be writeback-ed. So I guess we need a version of writeback_sb_inodes(), which writes (optionally) _all_ inodes of a superblock. Note, that fs-writeback is a single pain in the ass: in other bits reiser4 is perfectly coherent with VFS.Ok, so attached is my attempt to port the 2.6.39-1 path to the 3.2 kernel.
Great! I'll take a look for details a bit later..
I'm not sure if I got the writeback parts right, so please take a closer look at them and tell me if I missed or misunderstood something. The code is probably closer to ugly than to pretty around converting struct wb_writeback_work to writeback_control and back again right now. I'll clean this up if that code does what it should. Another thing I don't know what to do with are the new start and end arguments to reiser4_sync_common. Currently they are ignored, which I think results in always syncing everything.
You are right: we can not fsync specified range, at least in the current transaction model. The best we can do is figure out what atom contains specified page and commit it (that is exactly what the entd worker tries to do). Thank you, Edward.
With this patch, Reiser4 compiles as a module or builtin, and is able to do some simple operations on a filesystem. I tried copying some rather large directories to and on the filesystem, but that's pretty much all the testing I have done, so if the kconfig option was marked as 'experimental', it probably should be 'highly experimental' by now :)
-- To unsubscribe from this list: send the line "unsubscribe reiserfs-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
[Linux BTRFS] [Linux NFS] [Linux Filesystems] [Ext4 Filesystem] [Kernel Newbies] [Share Photos] [Security] [Netfilter] [Bugtraq] [Photo] [Yosemite] [Yosemite Forum] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Samba] [Video 4 Linux] [Device Mapper] [Linux Resources]
![]() |