patch-2.1.79 linux/fs/coda/super.c

Next file: linux/fs/coda/symlink.c
Previous file: linux/fs/coda/psdev.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.78/linux/fs/coda/super.c linux/fs/coda/super.c
@@ -41,7 +41,7 @@
 /* VFS super_block ops */
 static struct super_block *coda_read_super(struct super_block *, void *, int);
 static void coda_read_inode(struct inode *);
-static int  coda_notify_change(struct dentry *, struct iattr *);
+static int  coda_notify_change(struct dentry *dentry, struct iattr *attr);
 static void coda_put_inode(struct inode *);
 static void coda_delete_inode(struct inode *);
 static void coda_put_super(struct super_block *);
@@ -101,6 +101,7 @@
         sbi->sbi_psdev = psdev;
 	sbi->sbi_vcomm = vc;
 	INIT_LIST_HEAD(&(sbi->sbi_cchead));
+	INIT_LIST_HEAD(&(sbi->sbi_volroothead));
 
         lock_super(sb);
         sb->u.generic_sbp = sbi;
@@ -133,7 +134,6 @@
 	printk("coda_read_super: rootinode is %ld dev %d\n", 
 	       root->i_ino, root->i_dev);
 	sbi->sbi_root = root;
-	/* N.B. check this for failure */
 	sb->s_root = d_alloc_root(root, NULL);
 	unlock_super(sb);
 	EXIT;  
@@ -141,6 +141,7 @@
 
 error:
 EXIT;  
+	MOD_DEC_USE_COUNT;
 	if (sbi) {
 		sbi->sbi_vcomm = NULL;
 		sbi->sbi_root = NULL;
@@ -154,7 +155,6 @@
                 coda_cnode_free(ITOC(root));
         }
         sb->s_dev = 0;
-	MOD_DEC_USE_COUNT;
         return NULL;
 }
 
@@ -209,6 +209,10 @@
 	}
 
         cnp = ITOC(inode);
+
+	if ( coda_fid_is_volroot(&cnp->c_fid) )
+		list_del(&cnp->c_volrootlist);
+
         open_inode = cnp->c_ovp;
         if ( open_inode ) {
                 CDEBUG(D_SUPER, "DELINO cached file: ino %ld count %d.\n",  
@@ -225,9 +229,9 @@
 	EXIT;
 }
 
-static int  coda_notify_change(struct dentry *dentry, struct iattr *iattr)
+static int  coda_notify_change(struct dentry *de, struct iattr *iattr)
 {
-	struct inode *inode = dentry->d_inode;
+	struct inode *inode = de->d_inode;
         struct cnode *cnp;
         struct coda_vattr vattr;
         int error;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov