I'd probably just do this, and to hell with helper functions...

int d_set_mounted(struct dentry *dentry)
{
        struct dentry *p;
        int ret = 0;
        write_seqlock(&rename_lock);
        for (p = dentry; !IS_ROOT(p); p = p->d_parent) {
                /* Need exclusion wrt. check_submounts_and_drop() */
                spin_lock(&p->d_lock);
                if (unlikely(d_unhashed(p))) {
                        spin_unlock(&p->d_lock);
                        ret = -ENOENT;
                        goto out;
                }
                spin_unlock(&p->d_lock);
        }
        spin_lock(&dentry->d_lock);
        dentry->d_flags |= DCACHE_MOUNTED;
        spin_unlock(&dentry->d_lock);
out:
        write_sequnlock(&rename_lock);
        return ret;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to