lkml.org 
[lkml]   [2010]   [Sep]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 6/7 v3] overlay: hybrid overlay filesystem prototype
    On Mon, Sep 20, 2010 at 08:04:10PM +0200, Miklos Szeredi wrote:
    > From: Miklos Szeredi <mszeredi@suse.cz>
    >
    > This overlay filesystem is a hybrid of entirely filesystem based
    > (unionfs, aufs) and entierly VFS based (union mounts) solutions.

    [...]

    > +static int ovl_create_object(struct dentry *dentry, int mode, dev_t rdev,
    > + const char *link)
    > +{
    > + int err;
    > + struct dentry *newdentry;
    > + struct dentry *upperdir;
    > + struct inode *inode;
    > + struct kstat stat = {
    > + .mode = mode,
    > + .rdev = rdev,
    > + };
    > +
    > + err = -ENOMEM;
    > + inode = ovl_new_inode(dentry->d_sb, mode);
    > + if (!inode)
    > + goto out;
    > +
    > + err = ovl_copy_up(dentry->d_parent);
    > + if (err)
    > + goto out_iput;
    > +
    > + upperdir = ovl_dentry_upper(dentry->d_parent);
    > + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT);
    > +
    > + newdentry = ovl_upper_create(upperdir, dentry, &stat, link);
    > + err = PTR_ERR(newdentry);
    > + if (IS_ERR(newdentry))
    > + goto out_unlock;
    > +
    > + if (ovl_dentry_is_opaque(dentry) && S_ISDIR(mode)) {
    > + err = ovl_set_opaque(newdentry);
    > + if (err)
    > + goto out_dput;
    > + }

    Andreas Gruenbacher just convinced me that every single new directory
    created in the unioned file system should be marked opaque. "New"
    means either it replaces a whiteout or has no matching directory on
    the lower layer. The theory is that the topmost file system changes
    should take precedence and override any changes (off-line) in the
    lower file system.

    What do you think?

    -VAL


    \
     
     \ /
      Last update: 2010-09-27 20:09    [W:0.263 / U:0.308 seconds]
    ©2003-2014 Jasper Spaans. Advertise on this site