[PATCH 0/3] fs/ufs: stop using write_supers and s_dirt

From: Artem Bityutskiy
Date: Thu Jul 12 2012 - 09:26:25 EST


This patch-set makes UFS file-system stop using the VFS '->write_supers()'
call-back and the '->s_dirt' superblock field because I plan to remove them
once all users are gone.

Like some other similar patch-sets (affs, hfs, hfsplus, reiserfs), we switch to
a delayed job for writing out the superblock instead of using the 's_dirt'
flag. Additionally, this patch-set includes several clean-ups.

Note, checkpatch.pl complains about these patches, but the complaints are about
the code which is already in UFS, not my code. We really need to fix
checkpatch.pl to be smarter.

Tested using the fsstress test from the LTP project.

fs/ufs/balloc.c | 8 ++--
fs/ufs/ialloc.c | 4 +-
fs/ufs/super.c | 148 ++++++++++++++++++++++++++++++------------------------
fs/ufs/ufs.h | 5 ++
fs/ufs/ufs_fs.h | 1 +
5 files changed, 94 insertions(+), 72 deletions(-)

Reminder
========

The goal is to get rid of the 'sync_supers()' kernel thread. This kernel thread
wakes up every 5 seconds (by default) and calls '->write_super()' for all
mounted file-systems. And the bad thing is that this is done even if all the
superblocks are clean. Moreover, many file-systems do not even need this and
they do not even register the '->write_super()' method at all (e.g., btrfs).

So 'sync_supers()' mostly just generates useless wake-ups and wastes power.
I am trying to make all file-systems independent of '->write_super()' and plan
to remove 'sync_supers()' and '->write_super()' completely once there are no
more users.

Overall status
==============

1. ext4: patches submitted,
https://lkml.org/lkml/2012/7/10/195
2. ufs: these patches
3. exofs: patch submitted,
https://lkml.org/lkml/2012/6/4/211
4. sysv: patches submitted,
http://lkml.org/lkml/2012/7/3/250
5. udf: patch submitted, sits in Jan Kara's tree:
https://lkml.org/lkml/2012/6/4/233
git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs for_testing
6. affs: patches submitted, sit in Al Viro's tree:
https://lkml.org/lkml/2012/6/6/400
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs for-next
7. hfs: patches submitted, sit Andrew Morton's tree
http://lkml.org/lkml/2012/6/12/82
8. hfsplus: patches submitted, sit in Andrew Morton's tree:
https://lkml.org/lkml/2012/6/13/195
9. ext2: done, see commit f72cf5e223a28d3b3ea7dc9e40464fd534e359e8
10. vfat: done, see commit 78491189ddb6d84d4a4abae992ed891a236d0263
11. jffs2: done, see commit 208b14e507c00ff7f108e1a388dd3d8cc805a443
12. reiserfs: done, see commit 033369d1af1264abc23bea2e174aa47cdd212f6f

Thanks,
Artem.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/