diff options
Diffstat (limited to 'api/src/glfs-resolve.c')
-rw-r--r-- | api/src/glfs-resolve.c | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c index efc08cde741..5efe91b8d5b 100644 --- a/api/src/glfs-resolve.c +++ b/api/src/glfs-resolve.c @@ -837,6 +837,32 @@ __glfs_active_subvol (struct glfs *fs) return new_subvol; } + +void +priv_glfs_subvol_done (struct glfs *fs, xlator_t *subvol) +{ + int ref = 0; + xlator_t *active_subvol = NULL; + + if (!subvol) + return; + + glfs_lock (fs); + { + ref = (--subvol->winds); + active_subvol = fs->active_subvol; + } + glfs_unlock (fs); + + if (ref == 0) { + assert (subvol != active_subvol); + xlator_notify (subvol, GF_EVENT_PARENT_DOWN, subvol, NULL); + } +} + +GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0); + + xlator_t * priv_glfs_active_subvol (struct glfs *fs) { @@ -866,30 +892,6 @@ priv_glfs_active_subvol (struct glfs *fs) GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_active_subvol, 3.4.0); -void -priv_glfs_subvol_done (struct glfs *fs, xlator_t *subvol) -{ - int ref = 0; - xlator_t *active_subvol = NULL; - - if (!subvol) - return; - - glfs_lock (fs); - { - ref = (--subvol->winds); - active_subvol = fs->active_subvol; - } - glfs_unlock (fs); - - if (ref == 0) { - assert (subvol != active_subvol); - xlator_notify (subvol, GF_EVENT_PARENT_DOWN, subvol, NULL); - } -} - -GFAPI_SYMVER_PRIVATE_DEFAULT(glfs_subvol_done, 3.4.0); - int __glfs_cwd_set (struct glfs *fs, inode_t *inode) { |