Commit ea14b57f authored by David Sterba's avatar David Sterba

btrfs: fix spelling of snapshotting

Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent e38ae7a0
...@@ -1258,7 +1258,7 @@ struct btrfs_root { ...@@ -1258,7 +1258,7 @@ struct btrfs_root {
*/ */
int send_in_progress; int send_in_progress;
struct btrfs_subvolume_writers *subv_writers; struct btrfs_subvolume_writers *subv_writers;
atomic_t will_be_snapshoted; atomic_t will_be_snapshotted;
/* For qgroup metadata space reserve */ /* For qgroup metadata space reserve */
atomic64_t qgroup_meta_rsv; atomic64_t qgroup_meta_rsv;
...@@ -2773,8 +2773,8 @@ int btrfs_init_space_info(struct btrfs_fs_info *fs_info); ...@@ -2773,8 +2773,8 @@ int btrfs_init_space_info(struct btrfs_fs_info *fs_info);
int btrfs_delayed_refs_qgroup_accounting(struct btrfs_trans_handle *trans, int btrfs_delayed_refs_qgroup_accounting(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info); struct btrfs_fs_info *fs_info);
int __get_raid_index(u64 flags); int __get_raid_index(u64 flags);
int btrfs_start_write_no_snapshoting(struct btrfs_root *root); int btrfs_start_write_no_snapshotting(struct btrfs_root *root);
void btrfs_end_write_no_snapshoting(struct btrfs_root *root); void btrfs_end_write_no_snapshotting(struct btrfs_root *root);
void btrfs_wait_for_snapshot_creation(struct btrfs_root *root); void btrfs_wait_for_snapshot_creation(struct btrfs_root *root);
void check_system_chunk(struct btrfs_trans_handle *trans, void check_system_chunk(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info, const u64 type); struct btrfs_fs_info *fs_info, const u64 type);
......
...@@ -1343,7 +1343,7 @@ static void __setup_root(struct btrfs_root *root, struct btrfs_fs_info *fs_info, ...@@ -1343,7 +1343,7 @@ static void __setup_root(struct btrfs_root *root, struct btrfs_fs_info *fs_info,
atomic_set(&root->log_batch, 0); atomic_set(&root->log_batch, 0);
atomic_set(&root->orphan_inodes, 0); atomic_set(&root->orphan_inodes, 0);
refcount_set(&root->refs, 1); refcount_set(&root->refs, 1);
atomic_set(&root->will_be_snapshoted, 0); atomic_set(&root->will_be_snapshotted, 0);
atomic64_set(&root->qgroup_meta_rsv, 0); atomic64_set(&root->qgroup_meta_rsv, 0);
root->log_transid = 0; root->log_transid = 0;
root->log_transid_committed = -1; root->log_transid_committed = -1;
......
...@@ -10989,14 +10989,14 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range) ...@@ -10989,14 +10989,14 @@ int btrfs_trim_fs(struct btrfs_fs_info *fs_info, struct fstrim_range *range)
} }
/* /*
* btrfs_{start,end}_write_no_snapshoting() are similar to * btrfs_{start,end}_write_no_snapshotting() are similar to
* mnt_{want,drop}_write(), they are used to prevent some tasks from writing * mnt_{want,drop}_write(), they are used to prevent some tasks from writing
* data into the page cache through nocow before the subvolume is snapshoted, * data into the page cache through nocow before the subvolume is snapshoted,
* but flush the data into disk after the snapshot creation, or to prevent * but flush the data into disk after the snapshot creation, or to prevent
* operations while snapshoting is ongoing and that cause the snapshot to be * operations while snapshotting is ongoing and that cause the snapshot to be
* inconsistent (writes followed by expanding truncates for example). * inconsistent (writes followed by expanding truncates for example).
*/ */
void btrfs_end_write_no_snapshoting(struct btrfs_root *root) void btrfs_end_write_no_snapshotting(struct btrfs_root *root)
{ {
percpu_counter_dec(&root->subv_writers->counter); percpu_counter_dec(&root->subv_writers->counter);
/* /*
...@@ -11007,9 +11007,9 @@ void btrfs_end_write_no_snapshoting(struct btrfs_root *root) ...@@ -11007,9 +11007,9 @@ void btrfs_end_write_no_snapshoting(struct btrfs_root *root)
wake_up(&root->subv_writers->wait); wake_up(&root->subv_writers->wait);
} }
int btrfs_start_write_no_snapshoting(struct btrfs_root *root) int btrfs_start_write_no_snapshotting(struct btrfs_root *root)
{ {
if (atomic_read(&root->will_be_snapshoted)) if (atomic_read(&root->will_be_snapshotted))
return 0; return 0;
percpu_counter_inc(&root->subv_writers->counter); percpu_counter_inc(&root->subv_writers->counter);
...@@ -11017,14 +11017,14 @@ int btrfs_start_write_no_snapshoting(struct btrfs_root *root) ...@@ -11017,14 +11017,14 @@ int btrfs_start_write_no_snapshoting(struct btrfs_root *root)
* Make sure counter is updated before we check for snapshot creation. * Make sure counter is updated before we check for snapshot creation.
*/ */
smp_mb(); smp_mb();
if (atomic_read(&root->will_be_snapshoted)) { if (atomic_read(&root->will_be_snapshotted)) {
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
return 0; return 0;
} }
return 1; return 1;
} }
static int wait_snapshoting_atomic_t(atomic_t *a) static int wait_snapshotting_atomic_t(atomic_t *a)
{ {
schedule(); schedule();
return 0; return 0;
...@@ -11035,11 +11035,11 @@ void btrfs_wait_for_snapshot_creation(struct btrfs_root *root) ...@@ -11035,11 +11035,11 @@ void btrfs_wait_for_snapshot_creation(struct btrfs_root *root)
while (true) { while (true) {
int ret; int ret;
ret = btrfs_start_write_no_snapshoting(root); ret = btrfs_start_write_no_snapshotting(root);
if (ret) if (ret)
break; break;
wait_on_atomic_t(&root->will_be_snapshoted, wait_on_atomic_t(&root->will_be_snapshotted,
wait_snapshoting_atomic_t, wait_snapshotting_atomic_t,
TASK_UNINTERRUPTIBLE); TASK_UNINTERRUPTIBLE);
} }
} }
...@@ -1536,7 +1536,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos, ...@@ -1536,7 +1536,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos,
u64 num_bytes; u64 num_bytes;
int ret; int ret;
ret = btrfs_start_write_no_snapshoting(root); ret = btrfs_start_write_no_snapshotting(root);
if (!ret) if (!ret)
return -ENOSPC; return -ENOSPC;
...@@ -1561,7 +1561,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos, ...@@ -1561,7 +1561,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos,
NULL, NULL, NULL); NULL, NULL, NULL);
if (ret <= 0) { if (ret <= 0) {
ret = 0; ret = 0;
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
} else { } else {
*write_bytes = min_t(size_t, *write_bytes , *write_bytes = min_t(size_t, *write_bytes ,
num_bytes - pos + lockstart); num_bytes - pos + lockstart);
...@@ -1664,7 +1664,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file, ...@@ -1664,7 +1664,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
data_reserved, pos, data_reserved, pos,
write_bytes); write_bytes);
else else
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
break; break;
} }
...@@ -1767,7 +1767,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file, ...@@ -1767,7 +1767,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
release_bytes = 0; release_bytes = 0;
if (only_release_metadata) if (only_release_metadata)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
if (only_release_metadata && copied > 0) { if (only_release_metadata && copied > 0) {
lockstart = round_down(pos, lockstart = round_down(pos,
...@@ -1797,7 +1797,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file, ...@@ -1797,7 +1797,7 @@ static noinline ssize_t __btrfs_buffered_write(struct file *file,
if (release_bytes) { if (release_bytes) {
if (only_release_metadata) { if (only_release_metadata) {
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
btrfs_delalloc_release_metadata(BTRFS_I(inode), btrfs_delalloc_release_metadata(BTRFS_I(inode),
release_bytes); release_bytes);
} else { } else {
......
...@@ -1381,7 +1381,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1381,7 +1381,7 @@ static noinline int run_delalloc_nocow(struct inode *inode,
* we fall into common COW way. * we fall into common COW way.
*/ */
if (!nolock) { if (!nolock) {
err = btrfs_start_write_no_snapshoting(root); err = btrfs_start_write_no_snapshotting(root);
if (!err) if (!err)
goto out_check; goto out_check;
} }
...@@ -1393,12 +1393,12 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1393,12 +1393,12 @@ static noinline int run_delalloc_nocow(struct inode *inode,
if (csum_exist_in_range(fs_info, disk_bytenr, if (csum_exist_in_range(fs_info, disk_bytenr,
num_bytes)) { num_bytes)) {
if (!nolock) if (!nolock)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
goto out_check; goto out_check;
} }
if (!btrfs_inc_nocow_writers(fs_info, disk_bytenr)) { if (!btrfs_inc_nocow_writers(fs_info, disk_bytenr)) {
if (!nolock) if (!nolock)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
goto out_check; goto out_check;
} }
nocow = 1; nocow = 1;
...@@ -1415,7 +1415,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1415,7 +1415,7 @@ static noinline int run_delalloc_nocow(struct inode *inode,
if (extent_end <= start) { if (extent_end <= start) {
path->slots[0]++; path->slots[0]++;
if (!nolock && nocow) if (!nolock && nocow)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
if (nocow) if (nocow)
btrfs_dec_nocow_writers(fs_info, disk_bytenr); btrfs_dec_nocow_writers(fs_info, disk_bytenr);
goto next_slot; goto next_slot;
...@@ -1438,7 +1438,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1438,7 +1438,7 @@ static noinline int run_delalloc_nocow(struct inode *inode,
NULL); NULL);
if (ret) { if (ret) {
if (!nolock && nocow) if (!nolock && nocow)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
if (nocow) if (nocow)
btrfs_dec_nocow_writers(fs_info, btrfs_dec_nocow_writers(fs_info,
disk_bytenr); disk_bytenr);
...@@ -1459,7 +1459,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1459,7 +1459,7 @@ static noinline int run_delalloc_nocow(struct inode *inode,
BTRFS_ORDERED_PREALLOC); BTRFS_ORDERED_PREALLOC);
if (IS_ERR(em)) { if (IS_ERR(em)) {
if (!nolock && nocow) if (!nolock && nocow)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
if (nocow) if (nocow)
btrfs_dec_nocow_writers(fs_info, btrfs_dec_nocow_writers(fs_info,
disk_bytenr); disk_bytenr);
...@@ -1499,7 +1499,7 @@ static noinline int run_delalloc_nocow(struct inode *inode, ...@@ -1499,7 +1499,7 @@ static noinline int run_delalloc_nocow(struct inode *inode,
PAGE_UNLOCK | PAGE_SET_PRIVATE2); PAGE_UNLOCK | PAGE_SET_PRIVATE2);
if (!nolock && nocow) if (!nolock && nocow)
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
cur_offset = extent_end; cur_offset = extent_end;
/* /*
...@@ -5053,7 +5053,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr) ...@@ -5053,7 +5053,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
if (newsize > oldsize) { if (newsize > oldsize) {
/* /*
* Don't do an expanding truncate while snapshoting is ongoing. * Don't do an expanding truncate while snapshotting is ongoing.
* This is to ensure the snapshot captures a fully consistent * This is to ensure the snapshot captures a fully consistent
* state of this file - if the snapshot captures this expanding * state of this file - if the snapshot captures this expanding
* truncation, it must capture all writes that happened before * truncation, it must capture all writes that happened before
...@@ -5062,13 +5062,13 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr) ...@@ -5062,13 +5062,13 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
btrfs_wait_for_snapshot_creation(root); btrfs_wait_for_snapshot_creation(root);
ret = btrfs_cont_expand(inode, oldsize, newsize); ret = btrfs_cont_expand(inode, oldsize, newsize);
if (ret) { if (ret) {
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
return ret; return ret;
} }
trans = btrfs_start_transaction(root, 1); trans = btrfs_start_transaction(root, 1);
if (IS_ERR(trans)) { if (IS_ERR(trans)) {
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
return PTR_ERR(trans); return PTR_ERR(trans);
} }
...@@ -5076,7 +5076,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr) ...@@ -5076,7 +5076,7 @@ static int btrfs_setsize(struct inode *inode, struct iattr *attr)
btrfs_ordered_update_i_size(inode, i_size_read(inode), NULL); btrfs_ordered_update_i_size(inode, i_size_read(inode), NULL);
pagecache_isize_extended(inode, oldsize, newsize); pagecache_isize_extended(inode, oldsize, newsize);
ret = btrfs_update_inode(trans, root, inode); ret = btrfs_update_inode(trans, root, inode);
btrfs_end_write_no_snapshoting(root); btrfs_end_write_no_snapshotting(root);
btrfs_end_transaction(trans); btrfs_end_transaction(trans);
} else { } else {
......
...@@ -607,7 +607,7 @@ static noinline int create_subvol(struct inode *dir, ...@@ -607,7 +607,7 @@ static noinline int create_subvol(struct inode *dir,
return ret; return ret;
} }
static void btrfs_wait_for_no_snapshoting_writes(struct btrfs_root *root) static void btrfs_wait_for_no_snapshotting_writes(struct btrfs_root *root)
{ {
s64 writers; s64 writers;
DEFINE_WAIT(wait); DEFINE_WAIT(wait);
...@@ -650,9 +650,9 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir, ...@@ -650,9 +650,9 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
goto free_pending; goto free_pending;
} }
atomic_inc(&root->will_be_snapshoted); atomic_inc(&root->will_be_snapshotted);
smp_mb__after_atomic(); smp_mb__after_atomic();
btrfs_wait_for_no_snapshoting_writes(root); btrfs_wait_for_no_snapshotting_writes(root);
ret = btrfs_start_delalloc_inodes(root, 0); ret = btrfs_start_delalloc_inodes(root, 0);
if (ret) if (ret)
...@@ -723,8 +723,8 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir, ...@@ -723,8 +723,8 @@ static int create_snapshot(struct btrfs_root *root, struct inode *dir,
fail: fail:
btrfs_subvolume_release_metadata(fs_info, &pending_snapshot->block_rsv); btrfs_subvolume_release_metadata(fs_info, &pending_snapshot->block_rsv);
dec_and_free: dec_and_free:
if (atomic_dec_and_test(&root->will_be_snapshoted)) if (atomic_dec_and_test(&root->will_be_snapshotted))
wake_up_atomic_t(&root->will_be_snapshoted); wake_up_atomic_t(&root->will_be_snapshotted);
free_pending: free_pending:
kfree(pending_snapshot->root_item); kfree(pending_snapshot->root_item);
btrfs_free_path(pending_snapshot->path); btrfs_free_path(pending_snapshot->path);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment