Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 May 2011 11:11:47 GMT
From:      Ilya Putsikau <ilya@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 193907 for review
Message-ID:  <201105291111.p4TBBl0c083083@skunkworks.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@193907?ac=10

Change 193907 by ilya@ilya_triton2011 on 2011/05/29 11:10:47

	fuse_vfsops.c reduce diffs

Affected files ...

.. //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_vfsops.c#9 edit

Differences ...

==== //depot/projects/soc2011/ilya_fuse/fuse_module/fuse_vfsops.c#9 (text+ko) ====

@@ -437,106 +437,109 @@
 static int
 fuse_vfs_unmount(struct mount *mp, int mntflags)
 {
-	struct thread *td = curthread;
-	int flags = 0, err = 0;
-	struct fuse_data *data;
-	struct fuse_secondary_data *fsdat = NULL;
-	struct cdev *fdev;
+    int err   = 0;
+    int flags = 0;
+
+    struct fuse_data      *data;
+    struct cdev           *fdev;
+    struct fuse_secondary_data *fsdat = NULL;
+    struct thread *td = curthread;
+
+    fuse_trace_printf_vfsop();
 
-	GIANT_REQUIRED;
+    GIANT_REQUIRED;
 
-	DEBUG2G("mp %p: %s\n", mp, mp->mnt_stat.f_mntfromname);
-	/* Flag handling */
-	if (mntflags & MNT_FORCE)
-		flags |= FORCECLOSE;
+    /* Flag handling */
+    if (mntflags & MNT_FORCE) {
+        flags |= FORCECLOSE;
+    }
 
-	data = fusefs_get_data(mp);
-	if (! data) {
-		fsdat = fusefs_get_secdata(mp);
-		data = fsdat->master;
-	}
+    data = fusefs_get_data(mp);
+    if (!data) {
+        fsdat = fusefs_get_secdata(mp);
+        data = fsdat->master;
+    }
 
-	if (sx_try_xlock(&data->mhierlock) == 0) {
-		DEBUG2G("lock contested\n");
-		return (EBUSY);
-	}
-	if (! fsdat) {
+    if (sx_try_xlock(&data->mhierlock) == 0) {
+        DEBUG2G("lock contested\n");
+        return (EBUSY);
+    }
+    if (! fsdat) {
 #if _DEBUG
-		struct vnode *vp, *nvp;
+            struct vnode *vp, *nvp;
 #endif
 
-		if (! (mntflags & MNT_FORCE ||
-		    data->dataflag & FSESS_NEGLECT_SHARES ||
-		    LIST_EMPTY(&data->slaves_head))) {
-			err = EBUSY;
-			goto unlock;
-		}
+            if (! (mntflags & MNT_FORCE ||
+                data->dataflag & FSESS_NEGLECT_SHARES ||
+                LIST_EMPTY(&data->slaves_head))) {
+                    err = EBUSY;
+                    goto unlock;
+            }
 
 #if _DEBUG
-		MNT_ILOCK(mp);
-		DEBUG2G("vnodes:\n");
-		MNT_VNODE_FOREACH(vp, mp, nvp) {
-			DEBUG2G("\n");
-			vn_printf(vp, "...");
-		}
-		MNT_IUNLOCK(mp);
+            MNT_ILOCK(mp);
+            DEBUG2G("vnodes:\n");
+            MNT_VNODE_FOREACH(vp, mp, nvp) {
+                    DEBUG2G("\n");
+                    vn_printf(vp, "...");
+            }
+            MNT_IUNLOCK(mp);
 #endif
 
-		/* Flush files -> vflush */
-		/* There is 1 extra root vnode reference (mp->mnt_data). */
-		if ((err = vflush(mp, 1, flags, td))) {
-			DEBUG2G("err %d\n", err);
-			goto unlock;
-		}
-	}
+            /* Flush files -> vflush */
+            /* There is 1 extra root vnode reference (mp->mnt_data). */
+            if ((err = vflush(mp, 1, flags, td))) {
+                    DEBUG2G("err %d\n", err);
+                    goto unlock;
+            }
+    }
 
-	if (fsdat) {
-		LIST_REMOVE(fsdat, slaves_link);
-		free(fsdat, M_FUSEVFS);
-	} else {
+    if (fsdat) {
+            LIST_REMOVE(fsdat, slaves_link);
+            free(fsdat, M_FUSEVFS);
+    } else {
 #if FUSE_HAS_DESTROY
-		if (data->dataflag & FSESS_SYNC_UNMOUNT &&
-		    ((sync_unmount == 1 &&
-	              data->dataflag & FSESS_CAN_SYNC_UNMOUNT) ||
-		     sync_unmount == 2) &&
-		    !(mntflags & MNT_FORCE)) {
-			struct fuse_dispatcher fdi;
+            if (data->dataflag & FSESS_SYNC_UNMOUNT &&
+                ((sync_unmount == 1 &&
+                  data->dataflag & FSESS_CAN_SYNC_UNMOUNT) ||
+                 sync_unmount == 2) &&
+                !(mntflags & MNT_FORCE)) {
+                    struct fuse_dispatcher fdi;
 
-			fdisp_init(&fdi, 0);
-			fdisp_make(&fdi, mp, FUSE_DESTROY, FUSE_ROOT_ID, td,
-			           NULL);
-			fdisp_wait_answ(&fdi);
-			/* ignore return value */
-		}
+                    fdisp_init(&fdi, 0);
+                    fdisp_make(&fdi, mp, FUSE_DESTROY, FUSE_ROOT_ID, td,
+                               NULL);
+                    fdisp_wait_answ(&fdi);
+                    /* ignore return value */
+            }
 #endif
-		fdata_kick_set(data);
+            fdata_kick_set(data);
 
-		data->mpri = FM_NOMOUNTED;
-	}
+            data->mpri = FM_NOMOUNTED;
+    }
 
 unlock:
-	sx_xunlock(&data->mhierlock);
-	if (err)
-		return (err);
+    sx_xunlock(&data->mhierlock);
+    if (err)
+            return (err);
+
+    data->mntco--;
 
-	data->mntco--;
-	FUSE_LOCK;
-	fdev = data->fdev;
-	DEBUG2G("mntco %d, opened 0x%x\n",
-	        data->mntco, data->dataflag & FSESS_OPENED);
-	if (data->mntco == 0 && ! (data->dataflag & FSESS_OPENED)) {
-		data->fdev->si_drv1 = NULL;
-		fdata_destroy(data);
-	}
-	FUSE_UNLOCK;
-	dev_rel(fdev);
-	mp->mnt_data = NULL;
+    FUSE_LOCK;
+    fdev = data->fdev;
+    if (data->mntco == 0 && !(data->dataflag & FSESS_OPENED)) {
+        data->fdev->si_drv1 = NULL;
+        fdata_destroy(data);
+    }
+    FUSE_UNLOCK;
+    dev_rel(fdev);
+    mp->mnt_data = NULL;
 
-	/* Other guys do this, I don't know what it is good for... */
-	mp->mnt_flag &= ~MNT_LOCAL;
+    /* Other guys do this, I don't know what it is good for... */
+    mp->mnt_flag &= ~MNT_LOCAL;
 
-	return (0);
-}		
+    return (0);
+}        
 
 /* stolen from portalfs */
 static int



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201105291111.p4TBBl0c083083>