diff options
author | Steven Rostedt (Red Hat) <rostedt@goodmis.org> | 2013-03-28 22:46:44 -0400 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-03-28 22:46:44 -0400 |
commit | ebbb7867d21cbc44aa5a4eac1a3736e9e6017527 (patch) | |
tree | 871e6e213571c807f12634c0190778e43a7c4027 /fs | |
parent | f41da3da4e67b25c1f3145b476117fc71b80f12d (diff) | |
parent | dbfe0858b24ca63522a8aac435fbca03d358a900 (diff) |
Merge tag 'v3.4.37' into v3.4-rt
This is the 3.4.37 stable release
Diffstat (limited to 'fs')
-rw-r--r-- | fs/block_dev.c | 4 | ||||
-rw-r--r-- | fs/btrfs/volumes.c | 6 | ||||
-rw-r--r-- | fs/ext3/super.c | 4 |
3 files changed, 11 insertions, 3 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index b3be92c980ee..a6e1e06e4bb8 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1086,7 +1086,9 @@ void bd_set_size(struct block_device *bdev, loff_t size) { unsigned bsize = bdev_logical_block_size(bdev); - bdev->bd_inode->i_size = size; + mutex_lock(&bdev->bd_inode->i_mutex); + i_size_write(bdev->bd_inode, size); + mutex_unlock(&bdev->bd_inode->i_mutex); while (bsize < PAGE_CACHE_SIZE) { if (size & bsize) break; diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 3ad7ee9538e4..06744f1e91f4 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -591,6 +591,12 @@ int btrfs_close_devices(struct btrfs_fs_devices *fs_devices) __btrfs_close_devices(fs_devices); free_fs_devices(fs_devices); } + /* + * Wait for rcu kworkers under __btrfs_close_devices + * to finish all blkdev_puts so device is really + * free when umount is done. + */ + rcu_barrier(); return ret; } diff --git a/fs/ext3/super.c b/fs/ext3/super.c index cf0b5921cf0f..ef4c812c7a63 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -364,7 +364,7 @@ static struct block_device *ext3_blkdev_get(dev_t dev, struct super_block *sb) return bdev; fail: - ext3_msg(sb, "error: failed to open journal device %s: %ld", + ext3_msg(sb, KERN_ERR, "error: failed to open journal device %s: %ld", __bdevname(dev, b), PTR_ERR(bdev)); return NULL; @@ -891,7 +891,7 @@ static ext3_fsblk_t get_sb_block(void **data, struct super_block *sb) /*todo: use simple_strtoll with >32bit ext3 */ sb_block = simple_strtoul(options, &options, 0); if (*options && *options != ',') { - ext3_msg(sb, "error: invalid sb specification: %s", + ext3_msg(sb, KERN_ERR, "error: invalid sb specification: %s", (char *) *data); return 1; } |