linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* R.I.P. pdflush
@ 2012-07-25 15:11 Artem Bityutskiy
  2012-07-25 15:11 ` [PATCH 01/16] vfs: kill write_super and sync_supers Artem Bityutskiy
                   ` (16 more replies)
  0 siblings, 17 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:11 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List

Now that all file-systems have been modified to not use the '->write_super()'
superblock method, we can kill the last pdflush leftover - the 'sync_supers'
kernel thread.

The sync_supers kernel thread does a very simple thing: wake up every 5
seconds (see [1]), iterate over all superblocks in the system and flush
dirty superblocks by calling their '->write_super()' method.

The problem is that from power-efficiency point of view it is very wasteful
to have a thread which wakes up every 5 seconds in the very core of the
Linux kernel. Indeed, most of the time this thread wakes the CPU from a deep
sleep state just to find out that there are no dirty superblocks. Besides,
modern file-systems like btrfs and ext4 (journalled mode only) do not even
register '->write_super()', so on many modern systems sync_super is completely
useless.

And as usually happens when trying to modify old code like that - removing
sync_supers was a tedious job. It required changing 12 file-systems, including
ancient ones. While changes were not that complex, testing all of them was the
most difficult part. While testing the mainstream file-systems like ext4 was
easy (just run xfstests and wait few hours), testing baroque file-systems was
problematic because they simply oopsed or errored even before I modified them.

For example, reiserfs deadlocked quickly when I tested it using xfstests with
resierfs quota support enabled. I spend several days trying to fix this, but
reiserfs is quite complex and I'd say its locking is crazy (partially because
of the BKL push-down). But I gave up after I realized that the dead-lock is
related to the quota support. I disabled quotas and xfstests passed.

I also had some adventures with affs and few other old file-systems.

The first patch of this patch-set removes the sync_supers thread and it is the
most important one. All the other patches are minor clean-ups and they simply
remove all references to 'write_super' and 'pdflush' from commentaries
and the documentation.

I suggest that all patches go in via Al's tree. However, not before the ext4,
exofs and udf changes are merged, which I expect to happen before v3.6-rc1.
The rest of the file-systems are merged already - here is the summary.

1.  ext4 - changes sit in Ted Ts'o's tree
    git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
2.  exofs - changes sit in Boaz Harrosh's tree
    git://git.open-osd.org/linux-open-osd linux-next
3.  udf - changes sit in Jan Kara's tree:
    git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs for_next
4.  sysv - merged upstream
    9d46be2 fs/sysv: stop using write_super and s_dirt
5.  ufs - merged upstream
    9e9ad5f fs/ufs: get rid of write_super
6.  affs - merged upstream:
    3dd8478 affs: get rid of affs_sync_super
7.  hfs - merged upstream:
    5687b57 hfs: get rid of hfs_sync_super
8.  hfsplus - merged upstream:
    9e6c582 hfsplus: get rid of write_super
9.  ext2 - merged upstream
    f72cf5e ext2: do not register write_super within VFS
10. vfat - merged upstream
    7849118 fat: switch to fsinfo_inode
11. jffs2 - merged upstream
    208b14e jffs2: get rid of jffs2_sync_super
12. reiserfs - merged upstream
    033369d reiserfs: get rid of resierfs_sync_super

These patches are also available here:
git://git.infradead.org/users/dedekind/linux-misc.git sync_supers

And just because this is the final pdflush removal, here is a brief historical
reference.

1. early days...2.6.31 - pdflush is the kernel daemon which periodically
   wakes-up and flushes all dirty inodes and superblocks.
2. 2.6.32 - Jens Axboe introduces per-block device BDI flusher threads which
   are now responsible to flushing dirty inodes [2]. The pdflush thread becomes
   very simple, it is re-named to sync_supers and it periodically wakes-up
   and flushes superblocks. While overall Jens' change was good, it introduced
   a regression: instead of one pdflush thread waking-up every 5 seconds [3]
   we ended up with multiple threads waking up every 5 seconds - sync_supers
   and several flusher threads.
3. 2.6.36 - Artem Bityutskiy :-) fixes the wake-ups regression (see commit
   6467716) and from now on flusher threads do not wake up unless there are
   some dirty data for the corresponding block device.

   Attempts are made to similarly optimize sync_supers, but they are vetoed
   by Al Viro who wants sync_supers to be killed altogether instead [4].
4. 3.6 - the sync_supers is hopefully finally killed. With this the last
   piece of pdflush is also gone.

I'd like to thank Intel OTC for supporting this project, Jan Kara for help
with ext[24], Andrew Morton, Al Viro, Ted Ts'o, Nick Piggin.

[1] 5 seconds is the default setting and major distributions do not change
    it. But it is tunable via /proc/sys/vm/dirty_writeback_centisecs
[2] http://lwn.net/Articles/326552/
[3] pdflush thread was forking itself if there were a lot dirty date, but it
    does not matter in this context.
[4] https://lkml.org/lkml/2010/7/22/96

--
Regards,
Artem Bityutskiy

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH 01/16] vfs: kill write_super and sync_supers
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
@ 2012-07-25 15:11 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 02/16] Documentation: get rid of write_super Artem Bityutskiy
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:11 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

Finally we can kill the 'sync_supers' kernel thread along with the
'->write_super()' superblock operation because all the users are gone.
Now every file-system is supposed to self-manage own superblock and
its dirty state.

The nice thing about killing this thread is that it improves power management.
Indeed, 'sync_supers' is a source of monotonic system wake-ups - it woke up
every 5 seconds no matter what - even if there were no dirty superblocks and
even if there were no file-systems using this service (e.g., btrfs and
journalled ext4 do not need it). So it was wasting power most of the time. And
because the thread was in the core of the kernel, all systems had to have it.
So I am quite happy to make it go away.

Interestingly, this thread is a left-over from the pdflush kernel thread which
was a self-forking kernel thread responsible for all the write-back in old
Linux kernels. It was turned into per-block device BDI threads, and
'sync_supers' was a left-over. Thus, R.I.P, pdflush as well.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---
 fs/super.c                  |   40 ---------------------------------
 include/linux/backing-dev.h |    1 -
 include/linux/fs.h          |    3 ---
 mm/backing-dev.c            |   52 -------------------------------------------
 mm/page-writeback.c         |    1 -
 5 files changed, 97 deletions(-)

diff --git a/fs/super.c b/fs/super.c
index cf00177..c8ca90c 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -484,46 +484,6 @@ void drop_super(struct super_block *sb)
 EXPORT_SYMBOL(drop_super);
 
 /**
- * sync_supers - helper for periodic superblock writeback
- *
- * Call the write_super method if present on all dirty superblocks in
- * the system.  This is for the periodic writeback used by most older
- * filesystems.  For data integrity superblock writeback use
- * sync_filesystems() instead.
- *
- * Note: check the dirty flag before waiting, so we don't
- * hold up the sync while mounting a device. (The newly
- * mounted device won't need syncing.)
- */
-void sync_supers(void)
-{
-	struct super_block *sb, *p = NULL;
-
-	spin_lock(&sb_lock);
-	list_for_each_entry(sb, &super_blocks, s_list) {
-		if (hlist_unhashed(&sb->s_instances))
-			continue;
-		if (sb->s_op->write_super && sb->s_dirt) {
-			sb->s_count++;
-			spin_unlock(&sb_lock);
-
-			down_read(&sb->s_umount);
-			if (sb->s_root && sb->s_dirt && (sb->s_flags & MS_BORN))
-				sb->s_op->write_super(sb);
-			up_read(&sb->s_umount);
-
-			spin_lock(&sb_lock);
-			if (p)
-				__put_super(p);
-			p = sb;
-		}
-	}
-	if (p)
-		__put_super(p);
-	spin_unlock(&sb_lock);
-}
-
-/**
  *	iterate_supers - call function for all active superblocks
  *	@f: function to call
  *	@arg: argument to pass to it
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index b1038bd..94143aa 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -123,7 +123,6 @@ void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages,
 void bdi_start_background_writeback(struct backing_dev_info *bdi);
 int bdi_writeback_thread(void *data);
 int bdi_has_dirty_io(struct backing_dev_info *bdi);
-void bdi_arm_supers_timer(void);
 void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi);
 void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2);
 
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 17fd887..8878410 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1453,7 +1453,6 @@ extern spinlock_t sb_lock;
 struct super_block {
 	struct list_head	s_list;		/* Keep this first */
 	dev_t			s_dev;		/* search index; _not_ kdev_t */
-	unsigned char		s_dirt;
 	unsigned char		s_blocksize_bits;
 	unsigned long		s_blocksize;
 	loff_t			s_maxbytes;	/* Max file size */
@@ -1718,7 +1717,6 @@ struct super_operations {
 	int (*drop_inode) (struct inode *);
 	void (*evict_inode) (struct inode *);
 	void (*put_super) (struct super_block *);
-	void (*write_super) (struct super_block *);
 	int (*sync_fs)(struct super_block *sb, int wait);
 	int (*freeze_fs) (struct super_block *);
 	int (*unfreeze_fs) (struct super_block *);
@@ -2241,7 +2239,6 @@ extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end,
 			   int datasync);
 extern int vfs_fsync(struct file *file, int datasync);
 extern int generic_write_sync(struct file *file, loff_t pos, loff_t count);
-extern void sync_supers(void);
 extern void emergency_sync(void);
 extern void emergency_remount(void);
 #ifdef CONFIG_BLOCK
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index dd8e2aa..f34c4ca 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -39,12 +39,6 @@ DEFINE_SPINLOCK(bdi_lock);
 LIST_HEAD(bdi_list);
 LIST_HEAD(bdi_pending_list);
 
-static struct task_struct *sync_supers_tsk;
-static struct timer_list sync_supers_timer;
-
-static int bdi_sync_supers(void *);
-static void sync_supers_timer_fn(unsigned long);
-
 void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2)
 {
 	if (wb1 < wb2) {
@@ -250,12 +244,6 @@ static int __init default_bdi_init(void)
 {
 	int err;
 
-	sync_supers_tsk = kthread_run(bdi_sync_supers, NULL, "sync_supers");
-	BUG_ON(IS_ERR(sync_supers_tsk));
-
-	setup_timer(&sync_supers_timer, sync_supers_timer_fn, 0);
-	bdi_arm_supers_timer();
-
 	err = bdi_init(&default_backing_dev_info);
 	if (!err)
 		bdi_register(&default_backing_dev_info, NULL, "default");
@@ -270,46 +258,6 @@ int bdi_has_dirty_io(struct backing_dev_info *bdi)
 	return wb_has_dirty_io(&bdi->wb);
 }
 
-/*
- * kupdated() used to do this. We cannot do it from the bdi_forker_thread()
- * or we risk deadlocking on ->s_umount. The longer term solution would be
- * to implement sync_supers_bdi() or similar and simply do it from the
- * bdi writeback thread individually.
- */
-static int bdi_sync_supers(void *unused)
-{
-	set_user_nice(current, 0);
-
-	while (!kthread_should_stop()) {
-		set_current_state(TASK_INTERRUPTIBLE);
-		schedule();
-
-		/*
-		 * Do this periodically, like kupdated() did before.
-		 */
-		sync_supers();
-	}
-
-	return 0;
-}
-
-void bdi_arm_supers_timer(void)
-{
-	unsigned long next;
-
-	if (!dirty_writeback_interval)
-		return;
-
-	next = msecs_to_jiffies(dirty_writeback_interval * 10) + jiffies;
-	mod_timer(&sync_supers_timer, round_jiffies_up(next));
-}
-
-static void sync_supers_timer_fn(unsigned long unused)
-{
-	wake_up_process(sync_supers_tsk);
-	bdi_arm_supers_timer();
-}
-
 static void wakeup_timer_fn(unsigned long data)
 {
 	struct backing_dev_info *bdi = (struct backing_dev_info *)data;
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 93d8d2f..cffc800 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1504,7 +1504,6 @@ int dirty_writeback_centisecs_handler(ctl_table *table, int write,
 	void __user *buffer, size_t *length, loff_t *ppos)
 {
 	proc_dointvec(table, write, buffer, length, ppos);
-	bdi_arm_supers_timer();
 	return 0;
 }
 
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 02/16] Documentation: get rid of write_super
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
  2012-07-25 15:11 ` [PATCH 01/16] vfs: kill write_super and sync_supers Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 03/16] Documentation: fix the VM knobs descritpion WRT pdflush Artem Bityutskiy
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Randy Dunlap

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from various pieces of the kernel documentation.

Cc: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 Documentation/DocBook/filesystems.tmpl |    4 ++--
 Documentation/filesystems/Locking      |    2 --
 Documentation/filesystems/porting      |    5 ++---
 Documentation/filesystems/vfs.txt      |    4 ----
 4 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/Documentation/DocBook/filesystems.tmpl b/Documentation/DocBook/filesystems.tmpl
index 3fca32c..25b58ef 100644
--- a/Documentation/DocBook/filesystems.tmpl
+++ b/Documentation/DocBook/filesystems.tmpl
@@ -224,8 +224,8 @@ all your transactions.
 </para>
 
 <para>
-Then at umount time , in your put_super() (2.4) or write_super() (2.5)
-you can then call journal_destroy() to clean up your in-core journal object.
+Then at umount time , in your put_super() you can then call journal_destroy()
+to clean up your in-core journal object.
 </para>
 
 <para>
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 8e2da1e..7feac7f 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -111,7 +111,6 @@ prototypes:
 	int (*drop_inode) (struct inode *);
 	void (*evict_inode) (struct inode *);
 	void (*put_super) (struct super_block *);
-	void (*write_super) (struct super_block *);
 	int (*sync_fs)(struct super_block *sb, int wait);
 	int (*freeze_fs) (struct super_block *);
 	int (*unfreeze_fs) (struct super_block *);
@@ -133,7 +132,6 @@ write_inode:
 drop_inode:				!!!inode->i_lock!!!
 evict_inode:
 put_super:		write
-write_super:		read
 sync_fs:		read
 freeze_fs:		read
 unfreeze_fs:		read
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index 8c91d10..df6cfc0 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -94,9 +94,8 @@ protected.
 ---
 [mandatory]
 
-BKL is also moved from around sb operations.  ->write_super() Is now called 
-without BKL held.  BKL should have been shifted into individual fs sb_op
-functions.  If you don't need it, remove it.  
+BKL is also moved from around sb operations. BKL should have been shifted into
+individual fs sb_op functions.  If you don't need it, remove it.
 
 ---
 [informational]
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index efd23f4..f3e9242 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -216,7 +216,6 @@ struct super_operations {
         void (*drop_inode) (struct inode *);
         void (*delete_inode) (struct inode *);
         void (*put_super) (struct super_block *);
-        void (*write_super) (struct super_block *);
         int (*sync_fs)(struct super_block *sb, int wait);
         int (*freeze_fs) (struct super_block *);
         int (*unfreeze_fs) (struct super_block *);
@@ -273,9 +272,6 @@ or bottom half).
   put_super: called when the VFS wishes to free the superblock
 	(i.e. unmount). This is called with the superblock lock held
 
-  write_super: called when the VFS superblock needs to be written to
-	disc. This method is optional
-
   sync_fs: called when VFS is writing out all dirty data associated with
   	a superblock. The second parameter indicates whether the method
 	should wait until the write out has been completed. Optional.
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 03/16] Documentation: fix the VM knobs descritpion WRT pdflush
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
  2012-07-25 15:11 ` [PATCH 01/16] vfs: kill write_super and sync_supers Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 02/16] Documentation: get rid of write_super Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 04/16] ext3: nuke write_super from comments Artem Bityutskiy
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Randy Dunlap

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, however we still mention it incorrectly in the
kernel documentation. This patch fixes the situation.

Cc: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 Documentation/laptops/laptop-mode.txt |   12 ++++++------
 Documentation/sysctl/vm.txt           |   25 ++++++++++++++-----------
 2 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/Documentation/laptops/laptop-mode.txt b/Documentation/laptops/laptop-mode.txt
index 0bf25ee..4ebbfc3 100644
--- a/Documentation/laptops/laptop-mode.txt
+++ b/Documentation/laptops/laptop-mode.txt
@@ -262,9 +262,9 @@ MINIMUM_BATTERY_MINUTES=10
 
 #
 # Allowed dirty background ratio, in percent.  Once DIRTY_RATIO has been
-# exceeded, the kernel will wake pdflush which will then reduce the amount
-# of dirty memory to dirty_background_ratio.  Set this nice and low, so once
-# some writeout has commenced, we do a lot of it.
+# exceeded, the kernel will wake flusher threads which will then reduce the
+# amount of dirty memory to dirty_background_ratio.  Set this nice and low,
+# so once some writeout has commenced, we do a lot of it.
 #
 #DIRTY_BACKGROUND_RATIO=5
 
@@ -384,9 +384,9 @@ CPU_MAXFREQ=${CPU_MAXFREQ:-'slowest'}
 
 #
 # Allowed dirty background ratio, in percent.  Once DIRTY_RATIO has been
-# exceeded, the kernel will wake pdflush which will then reduce the amount
-# of dirty memory to dirty_background_ratio.  Set this nice and low, so once
-# some writeout has commenced, we do a lot of it.
+# exceeded, the kernel will wake flusher threads which will then reduce the
+# amount of dirty memory to dirty_background_ratio.  Set this nice and low,
+# so once some writeout has commenced, we do a lot of it.
 #
 DIRTY_BACKGROUND_RATIO=${DIRTY_BACKGROUND_RATIO:-'5'}
 
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt
index 96f0ee8..cec12bb 100644
--- a/Documentation/sysctl/vm.txt
+++ b/Documentation/sysctl/vm.txt
@@ -77,8 +77,8 @@ huge pages although processes will also directly compact memory as required.
 
 dirty_background_bytes
 
-Contains the amount of dirty memory at which the pdflush background writeback
-daemon will start writeback.
+Contains the amount of dirty memory at which the background kernel
+flusher threads will start writeback.
 
 Note: dirty_background_bytes is the counterpart of dirty_background_ratio. Only
 one of them may be specified at a time. When one sysctl is written it is
@@ -90,7 +90,7 @@ other appears as 0 when read.
 dirty_background_ratio
 
 Contains, as a percentage of total system memory, the number of pages at which
-the pdflush background writeback daemon will start writing out dirty data.
+the background kernel flusher threads will start writing out dirty data.
 
 ==============================================================
 
@@ -113,9 +113,9 @@ retained.
 dirty_expire_centisecs
 
 This tunable is used to define when dirty data is old enough to be eligible
-for writeout by the pdflush daemons.  It is expressed in 100'ths of a second.
-Data which has been dirty in-memory for longer than this interval will be
-written out next time a pdflush daemon wakes up.
+for writeout by the kernel flusher threads.  It is expressed in 100'ths
+of a second.  Data which has been dirty in-memory for longer than this
+interval will be written out next time a flusher thread wakes up.
 
 ==============================================================
 
@@ -129,7 +129,7 @@ data.
 
 dirty_writeback_centisecs
 
-The pdflush writeback daemons will periodically wake up and write `old' data
+The kernel flusher threads will periodically wake up and write `old' data
 out to disk.  This tunable expresses the interval between those wakeups, in
 100'ths of a second.
 
@@ -428,11 +428,14 @@ See Documentation/vm/hugetlbpage.txt
 
 nr_pdflush_threads
 
-The current number of pdflush threads.  This value is read-only.
-The value changes according to the number of dirty pages in the system.
+This is not used by the kernel since version 2.6.32, this is read-only
+and is always set to 1.  Preserve for backward-compatibility reasons.
 
-When necessary, additional pdflush threads are created, one per second, up to
-nr_pdflush_threads_max.
+In the past, it contained the current number of pdflush threads.  The
+value changed according to the number of dirty pages in the system.
+When necessary, additional pdflush threads were created, one per second.
+However, in kernel version 2.6.32 the pdflush thread was removed in
+favour of per-block device bdi flusher threads.
 
 ==============================================================
 
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 04/16] ext3: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (2 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 03/16] Documentation: fix the VM knobs descritpion WRT pdflush Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 05/16] ext4: " Artem Bityutskiy
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Jan Kara, Andrew Morton, Andreas Dilger

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from ext3.

Cc: Jan Kara <jack@suse.cz>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/ext3/inode.c |    8 --------
 fs/ext3/super.c |   11 -----------
 2 files changed, 19 deletions(-)

diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index 9a4a5c4..a075973 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -3459,14 +3459,6 @@ ext3_reserve_inode_write(handle_t *handle, struct inode *inode,
  * inode out, but prune_icache isn't a user-visible syncing function.
  * Whenever the user wants stuff synced (sys_sync, sys_msync, sys_fsync)
  * we start and wait on commits.
- *
- * Is this efficient/effective?  Well, we're being nice to the system
- * by cleaning up our inodes proactively so they can be reaped
- * without I/O.  But we are potentially leaving up to five seconds'
- * worth of inodes floating about which prune_icache wants us to
- * write out.  One way to fix that would be to get prune_icache()
- * to do a write_super() to free up some memory.  It has the desired
- * effect.
  */
 int ext3_mark_inode_dirty(handle_t *handle, struct inode *inode)
 {
diff --git a/fs/ext3/super.c b/fs/ext3/super.c
index 8c3a44b..0794bd6 100644
--- a/fs/ext3/super.c
+++ b/fs/ext3/super.c
@@ -64,11 +64,6 @@ static int ext3_freeze(struct super_block *sb);
 
 /*
  * Wrappers for journal_start/end.
- *
- * The only special thing we need to do here is to make sure that all
- * journal_end calls result in the superblock being marked dirty, so
- * that sync() will call the filesystem's write_super callback if
- * appropriate.
  */
 handle_t *ext3_journal_start_sb(struct super_block *sb, int nblocks)
 {
@@ -90,12 +85,6 @@ handle_t *ext3_journal_start_sb(struct super_block *sb, int nblocks)
 	return journal_start(journal, nblocks);
 }
 
-/*
- * The only special thing we need to do here is to make sure that all
- * journal_stop calls result in the superblock being marked dirty, so
- * that sync() will call the filesystem's write_super callback if
- * appropriate.
- */
 int __ext3_journal_stop(const char *where, handle_t *handle)
 {
 	struct super_block *sb;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 05/16] ext4: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (3 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 04/16] ext3: nuke write_super from comments Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 06/16] ext4: nuke pdflush " Artem Bityutskiy
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Theodore Ts'o, Andreas Dilger

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from ext3.

Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/ext4/inode.c |    8 --------
 fs/ext4/super.c |   15 ---------------
 2 files changed, 23 deletions(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index b1bd96f..2ff8b9f 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4503,14 +4503,6 @@ static int ext4_expand_extra_isize(struct inode *inode,
  * inode out, but prune_icache isn't a user-visible syncing function.
  * Whenever the user wants stuff synced (sys_sync, sys_msync, sys_fsync)
  * we start and wait on commits.
- *
- * Is this efficient/effective?  Well, we're being nice to the system
- * by cleaning up our inodes proactively so they can be reaped
- * without I/O.  But we are potentially leaving up to five seconds'
- * worth of inodes floating about which prune_icache wants us to
- * write out.  One way to fix that would be to get prune_icache()
- * to do a write_super() to free up some memory.  It has the desired
- * effect.
  */
 int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode)
 {
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 622d5c7..59ae7a0 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -326,15 +326,6 @@ static void ext4_put_nojournal(handle_t *handle)
 
 /*
  * Wrappers for jbd2_journal_start/end.
- *
- * The only special thing we need to do here is to make sure that all
- * journal_end calls result in the superblock being marked dirty, so
- * that sync() will call the filesystem's write_super callback if
- * appropriate.
- *
- * To avoid j_barrier hold in userspace when a user calls freeze(),
- * ext4 prevents a new handle from being started by s_frozen, which
- * is in an upper layer.
  */
 handle_t *ext4_journal_start_sb(struct super_block *sb, int nblocks)
 {
@@ -372,12 +363,6 @@ handle_t *ext4_journal_start_sb(struct super_block *sb, int nblocks)
 	return jbd2_journal_start(journal, nblocks);
 }
 
-/*
- * The only special thing we need to do here is to make sure that all
- * jbd2_journal_stop calls result in the superblock being marked dirty, so
- * that sync() will call the filesystem's write_super callback if
- * appropriate.
- */
 int __ext4_journal_stop(const char *where, unsigned int line, handle_t *handle)
 {
 	struct super_block *sb;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 06/16] ext4: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (4 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 05/16] ext4: " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 07/16] btrfs: nuke write_super " Artem Bityutskiy
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Theodore Ts'o, Andreas Dilger

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from ext4 comments.

Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger.kernel@dilger.ca>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/ext4/inode.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 2ff8b9f..854ca17 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1941,7 +1941,7 @@ static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate);
  * This function can get called via...
  *   - ext4_da_writepages after taking page lock (have journal handle)
  *   - journal_submit_inode_data_buffers (no journal handle)
- *   - shrink_page_list via pdflush (no journal handle)
+ *   - shrink_page_list via the kswapd/direct reclaim (no journal handle)
  *   - grab_page_cache when doing write_begin (have journal handle)
  *
  * We don't do any block allocation in this function. If we have page with
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 07/16] btrfs: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (5 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 06/16] ext4: nuke pdflush " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:46   ` cwillu
  2012-07-25 15:12 ` [PATCH 08/16] btrfs: nuke pdflush " Artem Bityutskiy
                   ` (9 subsequent siblings)
  16 siblings, 1 reply; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Chris Mason, linux-btrfs

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from btrfs.

Cc: Chris Mason <chris.mason@fusionio.com>
Cc: linux-btrfs@vger.kernel.org
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/btrfs/super.c   |    4 ----
 fs/btrfs/volumes.c |    4 ----
 2 files changed, 8 deletions(-)

diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index e239915..ad31627 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -100,10 +100,6 @@ static void __save_error_info(struct btrfs_fs_info *fs_info)
 	fs_info->fs_state = BTRFS_SUPER_FLAG_ERROR;
 }
 
-/* NOTE:
- *	We move write_super stuff at umount in order to avoid deadlock
- *	for umount hold all lock.
- */
 static void save_error_info(struct btrfs_fs_info *fs_info)
 {
 	__save_error_info(fs_info);
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index ecaad40..9f2416c 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -1738,10 +1738,6 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
 
 	device->fs_devices = root->fs_info->fs_devices;
 
-	/*
-	 * we don't want write_supers to jump in here with our device
-	 * half setup
-	 */
 	mutex_lock(&root->fs_info->fs_devices->device_list_mutex);
 	list_add_rcu(&device->dev_list, &root->fs_info->fs_devices->devices);
 	list_add(&device->dev_alloc_list,
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 08/16] btrfs: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (6 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 07/16] btrfs: nuke write_super " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 09/16] jbd/jbd2: nuke write_super " Artem Bityutskiy
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Chris Mason, linux-btrfs

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from btrfs comments.

Cc: Chris Mason <chris.mason@fusionio.com>
Cc: linux-btrfs@vger.kernel.org
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/btrfs/inode.c        |    3 ++-
 fs/btrfs/ordered-data.c |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index a7d1921..ca8b759 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -324,7 +324,8 @@ static noinline int add_async_extent(struct async_cow *cow,
  * If this code finds it can't get good compression, it puts an
  * entry onto the work queue to write the uncompressed bytes.  This
  * makes sure that both compressed inodes and uncompressed inodes
- * are written in the same order that pdflush sent them down.
+ * are written in the same order that the flusher thread sent them
+ * down.
  */
 static noinline int compress_file_range(struct inode *inode,
 					struct page *locked_page,
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
index 643335a..051c7fe 100644
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -596,7 +596,7 @@ void btrfs_start_ordered_extent(struct inode *inode,
 	/*
 	 * pages in the range can be dirty, clean or writeback.  We
 	 * start IO on any dirty ones so the wait doesn't stall waiting
-	 * for pdflush to find them
+	 * for the flusher thread to find them
 	 */
 	if (!test_bit(BTRFS_ORDERED_DIRECT, &entry->flags))
 		filemap_fdatawrite_range(inode->i_mapping, start, end);
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 09/16] jbd/jbd2: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (7 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 08/16] btrfs: nuke pdflush " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 10/16] vfs: nuke pdflush " Artem Bityutskiy
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Andrew Morton, Jan Kara, Theodore Ts'o

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from various jbd and jbd2.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jan Kara <jack@suse.cz>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/jbd/journal.c  |    4 ++--
 fs/jbd2/journal.c |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
index 425c2f2..0935750 100644
--- a/fs/jbd/journal.c
+++ b/fs/jbd/journal.c
@@ -534,8 +534,8 @@ int journal_start_commit(journal_t *journal, tid_t *ptid)
 		ret = 1;
 	} else if (journal->j_committing_transaction) {
 		/*
-		 * If ext3_write_super() recently started a commit, then we
-		 * have to wait for completion of that transaction
+		 * If commit has been started, then we have to wait for
+		 * completion of that transaction.
 		 */
 		if (ptid)
 			*ptid = journal->j_committing_transaction->t_tid;
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index e9a3c4c..8625da2 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
@@ -612,8 +612,8 @@ int jbd2_journal_start_commit(journal_t *journal, tid_t *ptid)
 		ret = 1;
 	} else if (journal->j_committing_transaction) {
 		/*
-		 * If ext3_write_super() recently started a commit, then we
-		 * have to wait for completion of that transaction
+		 * If commit has been started, then we have to wait for
+		 * completion of that transaction.
 		 */
 		if (ptid)
 			*ptid = journal->j_committing_transaction->t_tid;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 10/16] vfs: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (8 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 09/16] jbd/jbd2: nuke write_super " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 11/16] hfs: nuke write_super " Artem Bityutskiy
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from vfs comments.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/bio.c                  |    2 +-
 fs/sync.c                 |    4 ++--
 include/linux/writeback.h |    8 +++-----
 3 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/fs/bio.c b/fs/bio.c
index 73922ab..5eaa70c 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1312,7 +1312,7 @@ EXPORT_SYMBOL(bio_copy_kern);
  * Note that this code is very hard to test under normal circumstances because
  * direct-io pins the pages with get_user_pages().  This makes
  * is_page_cache_freeable return false, and the VM will not clean the pages.
- * But other code (eg, pdflush) could clean the pages if they are mapped
+ * But other code (eg, flusher threads) could clean the pages if they are mapped
  * pagecache.
  *
  * Simply disabling the call to bio_set_pages_dirty() is a good way to test the
diff --git a/fs/sync.c b/fs/sync.c
index 11e3d1c..c6988a5 100644
--- a/fs/sync.c
+++ b/fs/sync.c
@@ -92,8 +92,8 @@ static void sync_filesystems(int wait)
 }
 
 /*
- * sync everything.  Start out by waking pdflush, because that writes back
- * all queues in parallel.
+ * sync everything.  Start out by waking the flusher threads, because that
+ * writes back all queues in parallel.
  */
 SYSCALL_DEFINE0(sync)
 {
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index 6d0a0fc..0faa032 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -104,6 +104,9 @@ static inline void wait_on_inode(struct inode *inode)
 	wait_on_bit(&inode->i_state, __I_NEW, inode_wait, TASK_UNINTERRUPTIBLE);
 }
 
+extern int nr_pdflush_threads;	/* Global so it can be exported to sysctl
+				   read-only. */
+
 
 /*
  * mm/page-writeback.c
@@ -189,9 +192,4 @@ void tag_pages_for_writeback(struct address_space *mapping,
 
 void account_page_redirty(struct page *page);
 
-/* pdflush.c */
-extern int nr_pdflush_threads;	/* Global so it can be exported to sysctl
-				   read-only. */
-
-
 #endif		/* WRITEBACK_H */
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 11/16] hfs: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (9 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 10/16] vfs: nuke pdflush " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 12/16] ntfs: " Artem Bityutskiy
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from hfs.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/hfs/mdb.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/hfs/mdb.c b/fs/hfs/mdb.c
index 5fd51a5..b7ec224 100644
--- a/fs/hfs/mdb.c
+++ b/fs/hfs/mdb.c
@@ -236,10 +236,10 @@ out:
  * hfs_mdb_commit()
  *
  * Description:
- *   This updates the MDB on disk (look also at hfs_write_super()).
+ *   This updates the MDB on disk.
  *   It does not check, if the superblock has been modified, or
  *   if the filesystem has been mounted read-only. It is mainly
- *   called by hfs_write_super() and hfs_btree_extend().
+ *   called by hfs_sync_fs() and flush_mdb().
  * Input Variable(s):
  *   struct hfs_mdb *mdb: Pointer to the hfs MDB
  *   int backup;
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 12/16] ntfs: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (10 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 11/16] hfs: nuke write_super " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 13/16] nilfs2: " Artem Bityutskiy
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from ntfs.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/ntfs/super.c |   17 -----------------
 1 file changed, 17 deletions(-)

diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index b341492..2bc149d 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -2660,31 +2660,14 @@ static const struct super_operations ntfs_sops = {
 	.alloc_inode	= ntfs_alloc_big_inode,	  /* VFS: Allocate new inode. */
 	.destroy_inode	= ntfs_destroy_big_inode, /* VFS: Deallocate inode. */
 #ifdef NTFS_RW
-	//.dirty_inode	= NULL,			/* VFS: Called from
-	//					   __mark_inode_dirty(). */
 	.write_inode	= ntfs_write_inode,	/* VFS: Write dirty inode to
 						   disk. */
-	//.drop_inode	= NULL,			/* VFS: Called just after the
-	//					   inode reference count has
-	//					   been decreased to zero.
-	//					   NOTE: The inode lock is
-	//					   held. See fs/inode.c::
-	//					   generic_drop_inode(). */
-	//.delete_inode	= NULL,			/* VFS: Delete inode from disk.
-	//					   Called when i_count becomes
-	//					   0 and i_nlink is also 0. */
-	//.write_super	= NULL,			/* Flush dirty super block to
-	//					   disk. */
-	//.sync_fs	= NULL,			/* ? */
-	//.write_super_lockfs	= NULL,		/* ? */
-	//.unlockfs	= NULL,			/* ? */
 #endif /* NTFS_RW */
 	.put_super	= ntfs_put_super,	/* Syscall: umount. */
 	.statfs		= ntfs_statfs,		/* Syscall: statfs */
 	.remount_fs	= ntfs_remount,		/* Syscall: mount -o remount. */
 	.evict_inode	= ntfs_evict_big_inode,	/* VFS: Called when an inode is
 						   removed from memory. */
-	//.umount_begin	= NULL,			/* Forced umount. */
 	.show_options	= ntfs_show_options,	/* Show mount options in
 						   proc. */
 };
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 13/16] nilfs2: nuke write_super from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (11 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 12/16] ntfs: " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 14/16] drbd: nuke pdflush " Artem Bityutskiy
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	KONISHI Ryusuke

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The '->write_super' superblock method is gone, and this patch removes all the
references to 'write_super' from ntfs.

Cc: KONISHI Ryusuke <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/nilfs2/super.c     |    7 -------
 fs/nilfs2/the_nilfs.h |    2 --
 2 files changed, 9 deletions(-)

diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
index 1099a76..19ffcc6 100644
--- a/fs/nilfs2/super.c
+++ b/fs/nilfs2/super.c
@@ -676,20 +676,13 @@ static const struct super_operations nilfs_sops = {
 	.alloc_inode    = nilfs_alloc_inode,
 	.destroy_inode  = nilfs_destroy_inode,
 	.dirty_inode    = nilfs_dirty_inode,
-	/* .write_inode    = nilfs_write_inode, */
-	/* .put_inode      = nilfs_put_inode, */
-	/* .drop_inode	  = nilfs_drop_inode, */
 	.evict_inode    = nilfs_evict_inode,
 	.put_super      = nilfs_put_super,
-	/* .write_super    = nilfs_write_super, */
 	.sync_fs        = nilfs_sync_fs,
 	.freeze_fs	= nilfs_freeze,
 	.unfreeze_fs	= nilfs_unfreeze,
-	/* .write_super_lockfs */
-	/* .unlockfs */
 	.statfs         = nilfs_statfs,
 	.remount_fs     = nilfs_remount,
-	/* .umount_begin */
 	.show_options = nilfs_show_options
 };
 
diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h
index 9992b11..0722043 100644
--- a/fs/nilfs2/the_nilfs.h
+++ b/fs/nilfs2/the_nilfs.h
@@ -104,8 +104,6 @@ struct the_nilfs {
 	 * used for
 	 * - loading the latest checkpoint exclusively.
 	 * - allocating a new full segment.
-	 * - protecting s_dirt in the super_block struct
-	 *   (see nilfs_write_super) and the following fields.
 	 */
 	struct buffer_head     *ns_sbh[2];
 	struct nilfs_super_block *ns_sbp[2];
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 14/16] drbd: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (12 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 13/16] nilfs2: " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:12 ` [PATCH 15/16] gfs2: " Artem Bityutskiy
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	drbd-dev

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from drbd comments.

Cc: drbd-dev@lists.linbit.com
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 drivers/block/drbd/drbd_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
index 920ede2..974f2b6 100644
--- a/drivers/block/drbd/drbd_main.c
+++ b/drivers/block/drbd/drbd_main.c
@@ -3521,9 +3521,9 @@ static void drbd_cleanup(void)
 }
 
 /**
- * drbd_congested() - Callback for pdflush
+ * drbd_congested() - Callback for the flusher thread
  * @congested_data:	User data
- * @bdi_bits:		Bits pdflush is currently interested in
+ * @bdi_bits:		Bits the BDI flusher thread is currently interested in
  *
  * Returns 1<<BDI_async_congested and/or 1<<BDI_sync_congested if we are congested.
  */
-- 
1.7.10


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 15/16] gfs2: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (13 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 14/16] drbd: nuke pdflush " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-07-25 15:16   ` Bob Peterson
  2012-07-25 15:12 ` [PATCH 16/16] UBIFS: " Artem Bityutskiy
  2012-08-02 21:27 ` R.I.P. pdflush Jeff Mahoney
  16 siblings, 1 reply; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro
  Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy,
	Steven Whitehouse

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from gfs comments.

Cc: Steven Whitehouse <swhiteho@redhat.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/gfs2/meta_io.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
index 6c1e5d1..cdfe84c 100644
--- a/fs/gfs2/meta_io.c
+++ b/fs/gfs2/meta_io.c
@@ -52,7 +52,7 @@ static int gfs2_aspace_writepage(struct page *page, struct writeback_control *wb
 		/*
 		 * If it's a fully non-blocking write attempt and we cannot
 		 * lock the buffer then redirty the page.  Note that this can
-		 * potentially cause a busy-wait loop from pdflush and kswapd
+		 * potentially cause a busy-wait loop from flusher thread and kswapd
 		 * activity, but those code paths have their own higher-level
 		 * throttling.
 		 */
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 16/16] UBIFS: nuke pdflush from comments
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (14 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 15/16] gfs2: " Artem Bityutskiy
@ 2012-07-25 15:12 ` Artem Bityutskiy
  2012-08-02 21:27 ` R.I.P. pdflush Jeff Mahoney
  16 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 15:12 UTC (permalink / raw)
  To: Al Viro; +Cc: Linux Kernel Maling List, Linux FS Maling List, Artem Bityutskiy

From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>

The pdflush thread is long gone, so this patch removes references to pdflush
from UBIFS comments.

Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
---

I expect this patch to be merged via Al Viro's VFS tree.

 fs/ubifs/file.c  |   10 +++++-----
 fs/ubifs/super.c |    2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 35389ca..7bd6e72 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -37,11 +37,11 @@
  *
  * A thing to keep in mind: inode @i_mutex is locked in most VFS operations we
  * implement. However, this is not true for 'ubifs_writepage()', which may be
- * called with @i_mutex unlocked. For example, when pdflush is doing background
- * write-back, it calls 'ubifs_writepage()' with unlocked @i_mutex. At "normal"
- * work-paths the @i_mutex is locked in 'ubifs_writepage()', e.g. in the
- * "sys_write -> alloc_pages -> direct reclaim path". So, in 'ubifs_writepage()'
- * we are only guaranteed that the page is locked.
+ * called with @i_mutex unlocked. For example, when flusher thread is doing
+ * background write-back, it calls 'ubifs_writepage()' with unlocked @i_mutex.
+ * At "normal" work-paths the @i_mutex is locked in 'ubifs_writepage()', e.g.
+ * in the "sys_write -> alloc_pages -> direct reclaim path". So, in
+ * 'ubifs_writepage()' we are only guaranteed that the page is locked.
  *
  * Similarly, @i_mutex is not always locked in 'ubifs_readpage()', e.g., the
  * read-ahead path does not lock it ("sys_read -> generic_file_aio_read ->
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index 5862dd9..e924dbf 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -303,7 +303,7 @@ static int ubifs_write_inode(struct inode *inode, struct writeback_control *wbc)
 	mutex_lock(&ui->ui_mutex);
 	/*
 	 * Due to races between write-back forced by budgeting
-	 * (see 'sync_some_inodes()') and pdflush write-back, the inode may
+	 * (see 'sync_some_inodes()') and background write-back, the inode may
 	 * have already been synchronized, do not do this again. This might
 	 * also happen if it was synchronized in an VFS operation, e.g.
 	 * 'ubifs_link()'.
-- 
1.7.10

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 15/16] gfs2: nuke pdflush from comments
  2012-07-25 15:12 ` [PATCH 15/16] gfs2: " Artem Bityutskiy
@ 2012-07-25 15:16   ` Bob Peterson
  2012-07-26  9:10     ` Steven Whitehouse
  0 siblings, 1 reply; 24+ messages in thread
From: Bob Peterson @ 2012-07-25 15:16 UTC (permalink / raw)
  To: Artem Bityutskiy
  Cc: Linux Kernel Maling List, Linux FS Maling List, Steven Whitehouse,
	Al Viro

----- Original Message -----
| From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
| 
| The pdflush thread is long gone, so this patch removes references to
| pdflush
| from gfs comments.
| 
(snip)
| -		 * potentially cause a busy-wait loop from pdflush and kswapd
| +		 * potentially cause a busy-wait loop from flusher thread and

Hi,

ACK,

Just FYI: Steve Whitehouse is on holiday today.
You may want to send this patch to cluster-devel@redhat.com as well,
which is often where we send and review GFS2 patches.

Regards,

Bob Peterson
Red Hat File Systems

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 07/16] btrfs: nuke write_super from comments
  2012-07-25 15:12 ` [PATCH 07/16] btrfs: nuke write_super " Artem Bityutskiy
@ 2012-07-25 15:46   ` cwillu
  2012-07-25 16:06     ` Artem Bityutskiy
  0 siblings, 1 reply; 24+ messages in thread
From: cwillu @ 2012-07-25 15:46 UTC (permalink / raw)
  To: Artem Bityutskiy
  Cc: Al Viro, Linux Kernel Maling List, Linux FS Maling List,
	Chris Mason, linux-btrfs

> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
> index ecaad40..9f2416c 100644
> --- a/fs/btrfs/volumes.c
> +++ b/fs/btrfs/volumes.c
> @@ -1738,10 +1738,6 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path)
>
>         device->fs_devices = root->fs_info->fs_devices;
>
> -       /*
> -        * we don't want write_supers to jump in here with our device
> -        * half setup
> -        */
>         mutex_lock(&root->fs_info->fs_devices->device_list_mutex);
>         list_add_rcu(&device->dev_list, &root->fs_info->fs_devices->devices);
>         list_add(&device->dev_alloc_list,

Is the locking still required for approximately the same reason?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 07/16] btrfs: nuke write_super from comments
  2012-07-25 15:46   ` cwillu
@ 2012-07-25 16:06     ` Artem Bityutskiy
  0 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-25 16:06 UTC (permalink / raw)
  To: cwillu
  Cc: Al Viro, Linux Kernel Maling List, Linux FS Maling List,
	Chris Mason, linux-btrfs

[-- Attachment #1: Type: text/plain, Size: 415 bytes --]

On Wed, 2012-07-25 at 09:46 -0600, cwillu wrote:
> >         mutex_lock(&root->fs_info->fs_devices->device_list_mutex);
> >         list_add_rcu(&device->dev_list, &root->fs_info->fs_devices->devices);
> >         list_add(&device->dev_alloc_list,
> 
> Is the locking still required for approximately the same reason?

I do not know, I assume Chris would check that.

-- 
Best Regards,
Artem Bityutskiy

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 15/16] gfs2: nuke pdflush from comments
  2012-07-25 15:16   ` Bob Peterson
@ 2012-07-26  9:10     ` Steven Whitehouse
  2012-07-26  9:24       ` Artem Bityutskiy
  0 siblings, 1 reply; 24+ messages in thread
From: Steven Whitehouse @ 2012-07-26  9:10 UTC (permalink / raw)
  To: Bob Peterson
  Cc: Artem Bityutskiy, Linux Kernel Maling List, Linux FS Maling List,
	Al Viro

Hi,

On Wed, 2012-07-25 at 11:16 -0400, Bob Peterson wrote:
> ----- Original Message -----
> | From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> | 
> | The pdflush thread is long gone, so this patch removes references to
> | pdflush
> | from gfs comments.
> | 
> (snip)
> | -		 * potentially cause a busy-wait loop from pdflush and kswapd
> | +		 * potentially cause a busy-wait loop from flusher thread and
> 
> Hi,
> 
> ACK,
> 
> Just FYI: Steve Whitehouse is on holiday today.
> You may want to send this patch to cluster-devel@redhat.com as well,
> which is often where we send and review GFS2 patches.
> 
> Regards,
> 
> Bob Peterson
> Red Hat File Systems

That ok, I spotted it anyway and it is fairly minor as patches go.
Artem, do you want to keep this patch in your series or should I queue
it up for the GFS2 tree? I don't mind which and it has my ack anyway,

Steve.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 15/16] gfs2: nuke pdflush from comments
  2012-07-26  9:10     ` Steven Whitehouse
@ 2012-07-26  9:24       ` Artem Bityutskiy
  0 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-07-26  9:24 UTC (permalink / raw)
  To: Steven Whitehouse
  Cc: Bob Peterson, Linux Kernel Maling List, Linux FS Maling List,
	Al Viro

[-- Attachment #1: Type: text/plain, Size: 415 bytes --]

On Thu, 2012-07-26 at 10:10 +0100, Steven Whitehouse wrote:
> That ok, I spotted it anyway and it is fairly minor as patches go.
> Artem, do you want to keep this patch in your series or should I queue
> it up for the GFS2 tree? I don't mind which and it has my ack anyway,

Hi Steven, thanks, I think it is better if the whole patch-set goes in
via Al Viro's tree.
> 
-- 
Best Regards,
Artem Bityutskiy

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: R.I.P. pdflush
  2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
                   ` (15 preceding siblings ...)
  2012-07-25 15:12 ` [PATCH 16/16] UBIFS: " Artem Bityutskiy
@ 2012-08-02 21:27 ` Jeff Mahoney
  2012-08-03  6:53   ` Artem Bityutskiy
  16 siblings, 1 reply; 24+ messages in thread
From: Jeff Mahoney @ 2012-08-02 21:27 UTC (permalink / raw)
  To: Artem Bityutskiy; +Cc: Al Viro, Linux Kernel Maling List, Linux FS Maling List

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 7/25/12 11:11 AM, Artem Bityutskiy wrote:
> For example, reiserfs deadlocked quickly when I tested it using
> xfstests with resierfs quota support enabled. I spend several days
> trying to fix this, but reiserfs is quite complex and I'd say its
> locking is crazy (partially because of the BKL push-down). But I
> gave up after I realized that the dead-lock is related to the quota
> support. I disabled quotas and xfstests passed.

Thanks for mentioning this. This is due to both reiserfs_write_dquot
and reiserfs_evict_inode taking the reiserfs_write_lock. The old
reiserfs locking code depended on the recursive locking ability of the
BKL and the push-down made that a special case. This case isn't
handled so even though the write lock is supposed to be dropped to
take the journal lock safely, it's not and we end up with an ABBA case
there.

I'll work up a fix.

- -Jeff

- -- 
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBAgAGBQJQGvDMAAoJEB57S2MheeWy+zMQAKUwXaF7O2WyDfl3B3/2tL6b
f+Q1BPkgD7UIgjJ9wnakb4F72+k79gLGq11V39MXfrBKnzQAgprb5Ll9eUNl1f9x
9KgAkeKQTYowYpUXfuLZUzevAX5Ys6dB3+XOWhgTaVc/L0TTgKc7aET5JotDTJM4
V6SiKcb2uqDrEk5IAo/t3pfxaSe1gOYkZWfxSOzG1l3Kp5HHJ5B6Ya4Nx5Qw2llM
Vt6fK0KLjN2kqmv80SlHRy7vOnhM1EAOrkzNuzGmdDPgAk1nBJnB8oO9W3x6WFO+
Tsc5KbiJss6Nf0dHbyNNX1hJpnyJr9kBGrVADLMZEXIqGp3eIgIy04W/QV2fvWOz
650aogYvY44mEC+55jV5RD2ubBfBhROazJsrLN4ACKIjo3KE6P/50vD8Pi9gH/F+
rq15ytztlroF3M6ejVVjfTK5BOlx+H1bIrat06aBHsyWXTcNoLpa32z6BVhldrc6
a/XdKP0CwKtIRcvr8f8zg4PHLoejaTXULJnNSQyDrIzXLz08kkEK6nxe3q1+Mp+a
uH9y6y9SToaCPcLZUT9vInnmvxL/qV/uvspPDXFsZDAMAmfFVycpwGybiuTt5Y2T
vCzOJVcCodX1cONiYfMrlNfqRGFewi0GCYTtMaz9Z1zOE9C1fwLeBorkUigxzIzT
M6uA+edSRUBjg45r1EaR
=oelZ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: R.I.P. pdflush
  2012-08-02 21:27 ` R.I.P. pdflush Jeff Mahoney
@ 2012-08-03  6:53   ` Artem Bityutskiy
  0 siblings, 0 replies; 24+ messages in thread
From: Artem Bityutskiy @ 2012-08-03  6:53 UTC (permalink / raw)
  To: Jeff Mahoney; +Cc: Al Viro, Linux Kernel Maling List, Linux FS Maling List

[-- Attachment #1: Type: text/plain, Size: 1139 bytes --]

On Thu, 2012-08-02 at 17:27 -0400, Jeff Mahoney wrote:
> On 7/25/12 11:11 AM, Artem Bityutskiy wrote:
> > For example, reiserfs deadlocked quickly when I tested it using
> > xfstests with resierfs quota support enabled. I spend several days
> > trying to fix this, but reiserfs is quite complex and I'd say its
> > locking is crazy (partially because of the BKL push-down). But I
> > gave up after I realized that the dead-lock is related to the quota
> > support. I disabled quotas and xfstests passed.
> 
> Thanks for mentioning this. This is due to both reiserfs_write_dquot
> and reiserfs_evict_inode taking the reiserfs_write_lock. The old
> reiserfs locking code depended on the recursive locking ability of the
> BKL and the push-down made that a special case. This case isn't
> handled so even though the write lock is supposed to be dropped to
> take the journal lock safely, it's not and we end up with an ABBA case
> there.
> 
> I'll work up a fix.

Thanks Jeff. Note, I sent the bug-report as well:
http://thread.gmane.org/gmane.linux.file-systems/64794/focus=23910

-- 
Best Regards,
Artem Bityutskiy

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2012-08-03  6:49 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-25 15:11 R.I.P. pdflush Artem Bityutskiy
2012-07-25 15:11 ` [PATCH 01/16] vfs: kill write_super and sync_supers Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 02/16] Documentation: get rid of write_super Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 03/16] Documentation: fix the VM knobs descritpion WRT pdflush Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 04/16] ext3: nuke write_super from comments Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 05/16] ext4: " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 06/16] ext4: nuke pdflush " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 07/16] btrfs: nuke write_super " Artem Bityutskiy
2012-07-25 15:46   ` cwillu
2012-07-25 16:06     ` Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 08/16] btrfs: nuke pdflush " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 09/16] jbd/jbd2: nuke write_super " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 10/16] vfs: nuke pdflush " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 11/16] hfs: nuke write_super " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 12/16] ntfs: " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 13/16] nilfs2: " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 14/16] drbd: nuke pdflush " Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 15/16] gfs2: " Artem Bityutskiy
2012-07-25 15:16   ` Bob Peterson
2012-07-26  9:10     ` Steven Whitehouse
2012-07-26  9:24       ` Artem Bityutskiy
2012-07-25 15:12 ` [PATCH 16/16] UBIFS: " Artem Bityutskiy
2012-08-02 21:27 ` R.I.P. pdflush Jeff Mahoney
2012-08-03  6:53   ` Artem Bityutskiy

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).