++/*
++ * - top down parent
++ * - most free space with parent
++ * - most free space round-robin regardless parent
++ */
++static int au_wbr_create_pmfsrr(struct dentry *dentry, unsigned int flags)
++{
++ int err;
++ unsigned long long watermark;
++ struct super_block *sb;
++ struct au_branch *br;
++ struct au_wbr_mfs *mfs;
++
++ err = au_wbr_create_pmfs(dentry, flags | AuWbr_PARENT);
++ if (unlikely(err < 0))
++ goto out;
++
++ sb = dentry->d_sb;
++ br = au_sbr(sb, err);
++ mfs = &au_sbi(sb)->si_wbr_mfs;
++ mutex_lock(&mfs->mfs_lock);
++ watermark = mfs->mfsrr_watermark;
++ mutex_unlock(&mfs->mfs_lock);
++ if (br->br_wbr->wbr_bytes < watermark)
++ /* regardless the parent dir */
++ err = au_wbr_create_mfsrr(dentry, flags);
++
++out:
++ AuDbg("b%d\n", err);
++ return err;
++}
++
++/* ---------------------------------------------------------------------- */
++