commit 40fe72122ec8f1712a75224750303d2e6a0a453e
Author: Yiannis Pericleous <[EMAIL PROTECTED]>
Date:   Sun Feb 4 15:09:12 2007 -0500

    initial odf mounting and somewhat persistent inodes

diff --git a/fs/unionfs/lookup.c b/fs/unionfs/lookup.c
index a246af0..9e098ee 100644
--- a/fs/unionfs/lookup.c
+++ b/fs/unionfs/lookup.c
@@ -245,6 +245,9 @@ out_positive:
        dput(first_hidden_dentry);
        unionfs_mntput(first_dentry, first_dentry_offset);
 
+       /* check odf */
+       UNIONFS_D(dentry)->dodf = odf_lookup(parent_dentry, dentry);
+
        /* Partial lookups need to reinterpose, or throw away older negs. */
        if (lookupmode == INTERPOSE_PARTIAL) {
                err = odf_lookup(parent_dentry, dentry, 0);
diff --git a/fs/unionfs/main.c b/fs/unionfs/main.c
index 4a6f81a..b7d9ead 100644
--- a/fs/unionfs/main.c
+++ b/fs/unionfs/main.c
@@ -452,7 +452,7 @@ static struct unionfs_dentry_info 
*unionfs_parse_options(struct super_block *sb,
                        }
                        err = parse_dirs_option(sb, hidden_root_info, optarg);
                        if (err)
-                               goto out_error;
+                               dirsfound--; //goto out_error;
                        continue;
                }
 
@@ -547,6 +547,10 @@ static int unionfs_read_super(struct super_block *sb, void 
*raw_data,
                         * and will be put by s_root. put_ns decides if we got
                         * the ns dentry but not yet assigned it to s_root */
 
+       /* this ofcourse would need to get odf file from options 1st*/
+       if ( !raw_data )
+               raw_data = odf_getoptions();
+       
        if (!raw_data) {
                printk(KERN_WARNING
                       "unionfs_read_super: missing data argument\n");
@@ -562,6 +566,7 @@ static int unionfs_read_super(struct super_block *sb, void 
*raw_data,
                goto out;
        }
 
+
        UNIONFS_SB(sb)->bend = -1;
        atomic_set(&UNIONFS_SB(sb)->generation, 1);
        init_rwsem(&UNIONFS_SB(sb)->rwsem);
@@ -598,6 +603,7 @@ static int unionfs_read_super(struct super_block *sb, void 
*raw_data,
        }
 
        hidden_root_info = unionfs_parse_options(sb, raw_data);
+
        if (IS_ERR(hidden_root_info)) {
                printk(KERN_WARNING
                       "unionfs_read_super: error while parsing options "
_______________________________________________
unionfs-cvs mailing list: http://unionfs.filesystems.org/
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs

Reply via email to