diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 18:39:39 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-04 18:39:39 -0400 |
| commit | 24e7ea3bea94fe05eae5019f5f12bcdc98fc5157 (patch) | |
| tree | 6e527053ad73b737b5450c52d14ddf53ad4ba9a2 | |
| parent | 8e343c8b5c2e3c93d9eebea7702c89d81753c495 (diff) | |
| parent | ad6599ab3ac98a4474544086e048ce86ec15a4d1 (diff) | |
Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
Pull ext4 updates from Ted Ts'o:
"Major changes for 3.14 include support for the newly added ZERO_RANGE
and COLLAPSE_RANGE fallocate operations, and scalability improvements
in the jbd2 layer and in xattr handling when the extended attributes
spill over into an external block.
Other than that, the usual clean ups and minor bug fixes"
* tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (42 commits)
ext4: fix premature freeing of partial clusters split across leaf blocks
ext4: remove unneeded test of ret variable
ext4: fix comment typo
ext4: make ext4_block_zero_page_range static
ext4: atomically set inode->i_flags in ext4_set_inode_flags()
ext4: optimize Hurd tests when reading/writing inodes
ext4: kill i_version support for Hurd-castrated file systems
ext4: each filesystem creates and uses its own mb_cache
fs/mbcache.c: doucple the locking of local from global data
fs/mbcache.c: change block and index hash chain to hlist_bl_node
ext4: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate
ext4: refactor ext4_fallocate code
ext4: Update inode i_size after the preallocation
ext4: fix partial cluster handling for bigalloc file systems
ext4: delete path dealloc code in ext4_ext_handle_uninitialized_extents
ext4: only call sync_filesystm() when remounting read-only
fs: push sync_filesystem() down to the file system's remount_fs()
jbd2: improve error messages for inconsistent journal heads
jbd2: minimize region locked by j_list_lock in jbd2_journal_forget()
jbd2: minimize region locked by j_list_lock in journal_get_create_access()
...
64 files changed, 1514 insertions, 501 deletions
diff --git a/fs/adfs/super.c b/fs/adfs/super.c index 7b3003cb6f1b..952aeb048349 100644 --- a/fs/adfs/super.c +++ b/fs/adfs/super.c | |||
| @@ -212,6 +212,7 @@ static int parse_options(struct super_block *sb, char *options) | |||
| 212 | 212 | ||
| 213 | static int adfs_remount(struct super_block *sb, int *flags, char *data) | 213 | static int adfs_remount(struct super_block *sb, int *flags, char *data) |
| 214 | { | 214 | { |
| 215 | sync_filesystem(sb); | ||
| 215 | *flags |= MS_NODIRATIME; | 216 | *flags |= MS_NODIRATIME; |
| 216 | return parse_options(sb, data); | 217 | return parse_options(sb, data); |
| 217 | } | 218 | } |
diff --git a/fs/affs/super.c b/fs/affs/super.c index d098731b82ff..307453086c3f 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c | |||
| @@ -530,6 +530,7 @@ affs_remount(struct super_block *sb, int *flags, char *data) | |||
| 530 | 530 | ||
| 531 | pr_debug("AFFS: remount(flags=0x%x,opts=\"%s\")\n",*flags,data); | 531 | pr_debug("AFFS: remount(flags=0x%x,opts=\"%s\")\n",*flags,data); |
| 532 | 532 | ||
| 533 | sync_filesystem(sb); | ||
| 533 | *flags |= MS_NODIRATIME; | 534 | *flags |= MS_NODIRATIME; |
| 534 | 535 | ||
| 535 | memcpy(volume, sbi->s_volume, 32); | 536 | memcpy(volume, sbi->s_volume, 32); |
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index 5188f1222987..d626756ff721 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c | |||
| @@ -913,6 +913,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent) | |||
| 913 | static int | 913 | static int |
| 914 | befs_remount(struct super_block *sb, int *flags, char *data) | 914 | befs_remount(struct super_block *sb, int *flags, char *data) |
| 915 | { | 915 | { |
| 916 | sync_filesystem(sb); | ||
| 916 | if (!(*flags & MS_RDONLY)) | 917 | if (!(*flags & MS_RDONLY)) |
| 917 | return -EINVAL; | 918 | return -EINVAL; |
| 918 | return 0; | 919 | return 0; |
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index d4878ddba87a..9dbf42395153 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
| @@ -1380,6 +1380,7 @@ static int btrfs_remount(struct super_block *sb, int *flags, char *data) | |||
| 1380 | unsigned int old_metadata_ratio = fs_info->metadata_ratio; | 1380 | unsigned int old_metadata_ratio = fs_info->metadata_ratio; |
| 1381 | int ret; | 1381 | int ret; |
| 1382 | 1382 | ||
| 1383 | sync_filesystem(sb); | ||
| 1383 | btrfs_remount_prepare(fs_info); | 1384 | btrfs_remount_prepare(fs_info); |
| 1384 | 1385 | ||
| 1385 | ret = btrfs_parse_options(root, data); | 1386 | ret = btrfs_parse_options(root, data); |
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index ab8ad2546c3e..2c70cbe35d39 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c | |||
| @@ -541,6 +541,7 @@ static int cifs_show_stats(struct seq_file *s, struct dentry *root) | |||
| 541 | 541 | ||
| 542 | static int cifs_remount(struct super_block *sb, int *flags, char *data) | 542 | static int cifs_remount(struct super_block *sb, int *flags, char *data) |
| 543 | { | 543 | { |
| 544 | sync_filesystem(sb); | ||
| 544 | *flags |= MS_NODIRATIME; | 545 | *flags |= MS_NODIRATIME; |
| 545 | return 0; | 546 | return 0; |
| 546 | } | 547 | } |
diff --git a/fs/coda/inode.c b/fs/coda/inode.c index 626abc02b694..d9c7751f10ac 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c | |||
| @@ -96,6 +96,7 @@ void coda_destroy_inodecache(void) | |||
| 96 | 96 | ||
| 97 | static int coda_remount(struct super_block *sb, int *flags, char *data) | 97 | static int coda_remount(struct super_block *sb, int *flags, char *data) |
| 98 | { | 98 | { |
| 99 | sync_filesystem(sb); | ||
| 99 | *flags |= MS_NOATIME; | 100 | *flags |= MS_NOATIME; |
| 100 | return 0; | 101 | return 0; |
| 101 | } | 102 | } |
diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index a1f801c14fbc..ddcfe590b8a8 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c | |||
| @@ -243,6 +243,7 @@ static void cramfs_kill_sb(struct super_block *sb) | |||
| 243 | 243 | ||
| 244 | static int cramfs_remount(struct super_block *sb, int *flags, char *data) | 244 | static int cramfs_remount(struct super_block *sb, int *flags, char *data) |
| 245 | { | 245 | { |
| 246 | sync_filesystem(sb); | ||
| 246 | *flags |= MS_RDONLY; | 247 | *flags |= MS_RDONLY; |
| 247 | return 0; | 248 | return 0; |
| 248 | } | 249 | } |
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index ca4a08f38374..8c41b52da358 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
| @@ -218,6 +218,7 @@ static int debugfs_remount(struct super_block *sb, int *flags, char *data) | |||
| 218 | int err; | 218 | int err; |
| 219 | struct debugfs_fs_info *fsi = sb->s_fs_info; | 219 | struct debugfs_fs_info *fsi = sb->s_fs_info; |
| 220 | 220 | ||
| 221 | sync_filesystem(sb); | ||
| 221 | err = debugfs_parse_options(data, &fsi->mount_opts); | 222 | err = debugfs_parse_options(data, &fsi->mount_opts); |
| 222 | if (err) | 223 | if (err) |
