static talpa_mount_struct* talpa_lookup_mnt_last(struct vfsmount *mnt, struct dentry *dentry) { #ifdef TALPA_HAVE_LOOKUP_MNT_LAST TALPA_PTR_FIX lookup_mnt_last_func lookup_mnt_last = (lookup_mnt_last_func)talpa_get_symbol("__lookup_mnt_last", (void *)TALPA__LOOKUP_MNT_LAST); return lookup_mnt_last(mnt, dentry); #endif #ifdef TALPA_HAVE_LOOKUP_MNT TALPA_PTR_FIX lookup_mnt_func lookup_mnt = (lookup_mnt_func)talpa_get_symbol("__lookup_mnt", (void *)TALPA__LOOKUP_MNT); return lookup_mnt(mnt, dentry, 0); #endif return NULL; }
/* Traverse a dentry's list of vfsmounts and return the number of non-busy mounts */ static int check_vfsmnt(struct vfsmount *mnt, struct dentry *dentry) { int ret = dentry->d_mounted; struct vfsmount *vfs = lookup_mnt(mnt, dentry); if (vfs) { mntput(vfs); if (is_vfsmnt_tree_busy(vfs)) ret--; } DPRINTK(("check_vfsmnt: ret=%d\n", ret)); return ret; }