summaryrefslogtreecommitdiff
path: root/fs/bcachefs/str_hash.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-03-17 06:28:43 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:13 +0300
commit42d237320e9817a94f3a0a2de28156523596b086 (patch)
tree23e492ebe4b8dc41afbf3fa3f1433534eccdfd4a /fs/bcachefs/str_hash.h
parenta861c7225b9e31da745c262711d625782b5d766a (diff)
downloadlinux-42d237320e9817a94f3a0a2de28156523596b086.tar.xz
bcachefs: Snapshot creation, deletion
This is the final patch in the patch series implementing snapshots. This patch implements two new ioctls that work like creation and deletion of directories, but fancier. - BCH_IOCTL_SUBVOLUME_CREATE, for creating new subvolumes and snaphots - BCH_IOCTL_SUBVOLUME_DESTROY, for deleting subvolumes and snapshots Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs/bcachefs/str_hash.h')
-rw-r--r--fs/bcachefs/str_hash.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/bcachefs/str_hash.h b/fs/bcachefs/str_hash.h
index 6418089531ad..6486e709b700 100644
--- a/fs/bcachefs/str_hash.h
+++ b/fs/bcachefs/str_hash.h
@@ -307,7 +307,8 @@ static __always_inline
int bch2_hash_delete_at(struct btree_trans *trans,
const struct bch_hash_desc desc,
const struct bch_hash_info *info,
- struct btree_iter *iter)
+ struct btree_iter *iter,
+ unsigned update_flags)
{
struct bkey_i *delete;
int ret;
@@ -325,7 +326,7 @@ int bch2_hash_delete_at(struct btree_trans *trans,
delete->k.p = iter->pos;
delete->k.type = ret ? KEY_TYPE_hash_whiteout : KEY_TYPE_deleted;
- return bch2_trans_update(trans, iter, delete, 0);
+ return bch2_trans_update(trans, iter, delete, update_flags);
}
static __always_inline
@@ -342,7 +343,7 @@ int bch2_hash_delete(struct btree_trans *trans,
if (ret)
return ret;
- ret = bch2_hash_delete_at(trans, desc, info, &iter);
+ ret = bch2_hash_delete_at(trans, desc, info, &iter, 0);
bch2_trans_iter_exit(trans, &iter);
return ret;
}