[Ocfs2-commits] jlbec commits r1932 - trunk/fs/usysfs

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Mar 2 12:17:24 CST 2005


Author: jlbec
Signed-off-by: zab
Date: 2005-03-02 12:17:23 -0600 (Wed, 02 Mar 2005)
New Revision: 1932

Modified:
   trunk/fs/usysfs/dir.c
Log:

o Move about _register with an eye towards making _mkdir and _register
  have a shared call wrapping _create_dir and populate_dir.  Turns out
  to be more work, so I'm leaving it be for now, but it still gets rid
  of a couple gotos.

Signed-off-by: zab



Modified: trunk/fs/usysfs/dir.c
===================================================================
--- trunk/fs/usysfs/dir.c	2005-03-02 04:51:55 UTC (rev 1931)
+++ trunk/fs/usysfs/dir.c	2005-03-02 18:17:23 UTC (rev 1932)
@@ -673,29 +673,27 @@
 	if (!dentry)
 		goto out_release;
 	
+	d_add(dentry, NULL);
+
 	err = usysfs_create_dir(&k->kobj, dentry);
-	if (err)
-		goto out_dput;
+	if (!err) {
+		err = populate_dir(&k->kobj);
+		if (!err)
+			dentry = NULL;
+		else {
+			usysfs_remove_dir(&k->kobj);
+			d_delete(dentry);
+		}
+	}
 
-	d_rehash(dentry);
 	up(&usysfs_sb->s_root->d_inode->i_sem);
 
-	err = populate_dir(&k->kobj);
-	if (err) {
-		down(&usysfs_sb->s_root->d_inode->i_sem);
-		usysfs_remove_dir(&k->kobj);
-		up(&usysfs_sb->s_root->d_inode->i_sem);
-		d_delete(dentry);
-		goto out_dput;
+	if (dentry) {
+	    dput(dentry);
+out_release:
+	    usysfs_release_fs();
 	}
 
-	return 0;
-
-out_dput:
-	dput(dentry);
-out_release:
-	usysfs_release_fs();
-
 	return err;
 }
 



More information about the Ocfs2-commits mailing list