diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-02-27 14:58:04 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2021-09-21 01:19:59 -0400 |
commit | 1eb64d921b94903e77634185bb58ec01a7fb121c (patch) | |
tree | 1166366a0b378e35eae51c6e2ab14bf39bccd545 | |
parent | 0f278bd31c87e4de16aa9bbf3d42aed778031d18 (diff) |
get_parent WIPsnapshots
-rw-r--r-- | fs/bcachefs/fs.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index 2094c18cd874..ea286c563f26 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -1186,6 +1186,40 @@ static struct dentry *bch2_fh_to_parent(struct super_block *sb, struct fid *fid, } #endif +#if 0 +static struct dentry *bch_get_parent(struct dentry *child) +{ + struct bch_fs *c = child->d_sb->s_fs_info; + struct bch_inode_info *inode = to_bch_ei(dentry->d_inode); + struct bch_inode_unpacked dir_u; + struct bch_trans trans; + struct btree_iter *iter; + struct bkey_s_c k; + int ret; + + bch2_trans_init(&trans, c, 4, 0); + + iter = bch2_trans_get_iter(trans, BTREE_ID_dirents, + POS(inode->ei_inode.bi_dir, + inode->ei_inode.bi_dir_offset), 0); + k = bch2_btree_iter_peek_slot(iter); + ret = bkey_err(k); + if (ret) + goto err; + + +err: + bch2_trans_exit(&trans); + + struct inode *parent = bch2_vfs_inode_get(c, inode->ei_inode.bi_dir); + + if (IS_ERR(parent)) + return ERR_CAST(parent); + + u64 parent_inum +} +#endif + static const struct export_operations bch_export_ops = { //.fh_to_dentry = bch2_fh_to_dentry, //.fh_to_parent = bch2_fh_to_parent, |