Permalink
Browse files

Updates for weekly-2012.02.22

  • Loading branch information...
1 parent cb10e93 commit c9919744cf99477ff2c8b7db7550797355a1e854 @hanwen committed Feb 23, 2012
Showing with 23 additions and 14 deletions.
  1. +11 −1 fuse/misc.go
  2. +1 −1 fuse/misc_test.go
  3. +10 −11 fuse/mount.go
  4. +1 −1 fuse/mountstate.go
View
@@ -32,9 +32,19 @@ func (code Status) Ok() bool {
// Convert error back to Errno based errors.
func ToStatus(err error) Status {
- if err == nil {
+ switch err {
+ case nil:
return OK
+ case os.ErrPermission:
+ return EPERM
+ case os.ErrExist:
+ return Status(syscall.EEXIST)
+ case os.ErrNotExist:
+ return ENOENT
+ case os.ErrInvalid:
+ return EINVAL
}
+
switch t := err.(type) {
case syscall.Errno:
return Status(t)
View
@@ -8,7 +8,7 @@ import (
)
func TestToStatus(t *testing.T) {
- errNo := ToStatus(os.EPERM)
+ errNo := ToStatus(os.ErrPermission)
if errNo != EPERM {
t.Errorf("Wrong conversion %v != %v", errNo, syscall.EPERM)
}
View
@@ -47,11 +47,9 @@ func mount(mountPoint string, options string) (f *os.File, finalMountPoint strin
cmd := []string{fusermountBinary, mountPoint}
if options != "" {
- log.Printf("o %q", options)
cmd = append(cmd, "-o")
cmd = append(cmd, options)
}
-
proc, err := os.StartProcess(fusermountBinary,
cmd,
&os.ProcAttr{
@@ -61,12 +59,13 @@ func mount(mountPoint string, options string) (f *os.File, finalMountPoint strin
if err != nil {
return
}
- w, err := os.Wait(proc.Pid, 0)
+
+ w, err := proc.Wait()
if err != nil {
return
}
- if w.ExitStatus() != 0 {
- err = fmt.Errorf("fusermount exited with code %d\n", w.ExitStatus())
+ if !w.Success() {
+ err = fmt.Errorf("fusermount exited with code %v\n", w.Sys())
return
}
@@ -83,9 +82,9 @@ func privilegedUnmount(mountPoint string) error {
if err != nil {
return err
}
- w, err := os.Wait(proc.Pid, 0)
- if w.ExitStatus() != 0 {
- return fmt.Errorf("umount exited with code %d\n", w.ExitStatus())
+ w, err := proc.Wait()
+ if !w.Success() {
+ return fmt.Errorf("umount exited with code %v\n", w.Sys())
}
return err
}
@@ -101,12 +100,12 @@ func unmount(mountPoint string) (err error) {
if err != nil {
return
}
- w, err := os.Wait(proc.Pid, 0)
+ w, err := proc.Wait()
if err != nil {
return
}
- if w.ExitStatus() != 0 {
- return fmt.Errorf("fusermount -u exited with code %d\n", w.ExitStatus())
+ if !w.Success() {
+ return fmt.Errorf("fusermount -u exited with code %v\n", w.Sys())
}
return
}
View
@@ -111,6 +111,7 @@ func (me *MountState) Unmount() (err error) {
delay = 2*delay + 5*time.Millisecond
time.Sleep(delay)
}
+ me.mountPoint = ""
return err
}
@@ -180,7 +181,6 @@ func (me *MountState) Loop() {
me.loop()
me.mountFile.Close()
me.mountFile = nil
- me.mountPoint = ""
}
func (me *MountState) loop() {

0 comments on commit c991974

Please sign in to comment.