Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2003-06-13 04:19:28 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-13 04:19:28 -0700
commit97782e54f4b63ba0e4bbdbb914ff80e67a2e7a9b (patch)
tree76553baa6ba508039dcf79874f87ac4261592d37
parent6fc97fff43351e5c92bee244367e831597bebefc (diff)
parent71a1f72c2efc697f669eb23aafc6249ab5703719 (diff)
Merge bk://kernel.bkbits.net/gregkh/linux/tty-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
-rw-r--r--fs/fs-writeback.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 74e717cb5f37..8bbd871b03db 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -260,8 +260,21 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc)
struct address_space *mapping = inode->i_mapping;
struct backing_dev_info *bdi = mapping->backing_dev_info;
- if (bdi->memory_backed)
+ if (bdi->memory_backed) {
+ if (sb == blockdev_superblock) {
+ /*
+ * Dirty memory-backed blockdev: the ramdisk
+ * driver does this.
+ */
+ list_move(&inode->i_list, &sb->s_dirty);
+ continue;
+ }
+ /*
+ * Assume that all inodes on this superblock are memory
+ * backed. Skip the superblock.
+ */
break;
+ }
if (wbc->nonblocking && bdi_write_congested(bdi)) {
wbc->encountered_congestion = 1;