Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Jens Axboe <jens.axboe <at> oracle.com>
Subject: [PATCH 0/13] Per-bdi writeback flusher threads #3
Newsgroups: gmane.linux.kernel
Date: Wednesday 8th April 2009 12:00:03 UTC (over 7 years ago)
Hi,

This is the third version of the patchset. Changes since v2:

- Dropped some of the prep patches, since they are now in mainline.
  Unfortunately we grew another pdflush_operation() user (emergency thaw),
  so I had to introduce a new prep patch for that.

- Fix the data consistency issue in generic_sync_sb_inodes() with
  WB_SYNC_ALL that Jan Kara pointed out. I had to switch bdi_list
  to SRCU protection for this. I pondered using a mutex for bdi_lock,
  but that does not work with the pending list <-> active list
  RCU callback scheme.

- Fix race in bdi task removal, we need to synchronize_rcu() before
  doing the wb task kill, not after. This ensures that once we do the
  task kill, nobody is accessing our bdi anymore.

- Separate default wb task creation from filesystem initiated task
  additions. The former can be racy and should check the pending bit
  only to see whether it should proceed, the latter should block waiting
  for previous task additions to finish.

- Move the bdi_cap_flusher_forker() back in the series to where the
  BDI_CAP_FLUSH_FORKER flag was introduced.

- Fix a problem where the first incremental step ended up writing back
  all the dirty inodes on a bdi, not just the ones belonging to a
  specific super_block. Only a problem after the first patch, the 2nd
  patch in the series got it right again. (Thanks Jan Kara).

- Allow writeback tasks to exit, if the bdi has been idle for a certain
  period of time. The lazy create will recreate them if we see dirty
  inodes on the bdi later on.

- btrfs must register its fs_info bdi, or direct writeback will not work
  as intended. Also kill capabilities inherit from
  default_backing_dev_info and fix failure to check bdi_init() return
  value.

The branch can be pulled from:

git://git.kernel.dk/linux-2.6-block.git
writeback

Or these patches can be applied directly to 2.6.30-rc1.

-- 
Jens Axboe


--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
CD: 3ms