Commit 8278f60e authored by Han-Wen Nienhuys's avatar Han-Wen Nienhuys

Run gofmt.

parent 336fe3bc
...@@ -30,7 +30,7 @@ func main() { ...@@ -30,7 +30,7 @@ func main() {
var nodeFs fuse.NodeFileSystem var nodeFs fuse.NodeFileSystem
if *mem { if *mem {
nodeFs = unionfs.NewMemUnionFs( nodeFs = unionfs.NewMemUnionFs(
flag.Arg(1) + "/", &fuse.LoopbackFileSystem{Root: flag.Arg(2)}) flag.Arg(1)+"/", &fuse.LoopbackFileSystem{Root: flag.Arg(2)})
} else { } else {
ufsOptions := unionfs.UnionFsOptions{ ufsOptions := unionfs.UnionFsOptions{
DeletionCacheTTLSecs: *delcache_ttl, DeletionCacheTTLSecs: *delcache_ttl,
......
...@@ -59,7 +59,6 @@ func (me *DevNullFile) String() string { ...@@ -59,7 +59,6 @@ func (me *DevNullFile) String() string {
return "DevNullFile" return "DevNullFile"
} }
func (me *DevNullFile) Read(input *ReadIn, bp BufferPool) ([]byte, Status) { func (me *DevNullFile) Read(input *ReadIn, bp BufferPool) ([]byte, Status) {
return []byte{}, OK return []byte{}, OK
} }
......
...@@ -192,7 +192,7 @@ func (me *FileSystemConnector) Node(parent *Inode, fullPath string) (*Inode, []s ...@@ -192,7 +192,7 @@ func (me *FileSystemConnector) Node(parent *Inode, fullPath string) (*Inode, []s
node.treeLock.RLock() node.treeLock.RLock()
defer node.treeLock.RUnlock() defer node.treeLock.RUnlock()
} }
for i, component := range comps { for i, component := range comps {
if len(component) == 0 { if len(component) == 0 {
continue continue
......
...@@ -66,7 +66,7 @@ func (me *FileSystemConnector) Lookup(header *InHeader, name string) (out *Entry ...@@ -66,7 +66,7 @@ func (me *FileSystemConnector) Lookup(header *InHeader, name string) (out *Entry
out.NodeId = me.lookupUpdate(child) out.NodeId = me.lookupUpdate(child)
out.Generation = 1 out.Generation = 1
out.Ino = out.NodeId out.Ino = out.NodeId
return out, OK return out, OK
} }
......
...@@ -714,14 +714,14 @@ func TestFStatFs(t *testing.T) { ...@@ -714,14 +714,14 @@ func TestFStatFs(t *testing.T) {
fOrig, err := os.OpenFile(ts.orig+"/file", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0644) fOrig, err := os.OpenFile(ts.orig+"/file", os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0644)
CheckSuccess(err) CheckSuccess(err)
defer fOrig.Close() defer fOrig.Close()
empty := syscall.Statfs_t{} empty := syscall.Statfs_t{}
s1 := empty s1 := empty
errno := syscall.Fstatfs(fOrig.Fd(), &s1) errno := syscall.Fstatfs(fOrig.Fd(), &s1)
if errno != 0 { if errno != 0 {
t.Fatal("statfs orig", err) t.Fatal("statfs orig", err)
} }
fMnt, err := os.OpenFile(ts.mnt+"/file", os.O_RDWR, 0644) fMnt, err := os.OpenFile(ts.mnt+"/file", os.O_RDWR, 0644)
CheckSuccess(err) CheckSuccess(err)
defer fMnt.Close() defer fMnt.Close()
...@@ -731,7 +731,7 @@ func TestFStatFs(t *testing.T) { ...@@ -731,7 +731,7 @@ func TestFStatFs(t *testing.T) {
if errno != 0 { if errno != 0 {
t.Fatal("statfs mnt", err) t.Fatal("statfs mnt", err)
} }
clearStatfs(&s1) clearStatfs(&s1)
clearStatfs(&s2) clearStatfs(&s2)
if fmt.Sprintf("%v", s2) != fmt.Sprintf("%v", s1) { if fmt.Sprintf("%v", s2) != fmt.Sprintf("%v", s1) {
......
...@@ -13,7 +13,7 @@ var _ = log.Println ...@@ -13,7 +13,7 @@ var _ = log.Println
type MemNodeFs struct { type MemNodeFs struct {
DefaultNodeFileSystem DefaultNodeFileSystem
backingStorePrefix string backingStorePrefix string
root *memNode root *memNode
mutex sync.Mutex mutex sync.Mutex
nextFree int nextFree int
......
...@@ -302,13 +302,13 @@ type operationFunc func(*MountState, *request) ...@@ -302,13 +302,13 @@ type operationFunc func(*MountState, *request)
type castPointerFunc func(unsafe.Pointer) interface{} type castPointerFunc func(unsafe.Pointer) interface{}
type operationHandler struct { type operationHandler struct {
Name string Name string
Func operationFunc Func operationFunc
InputSize uintptr InputSize uintptr
OutputSize uintptr OutputSize uintptr
DecodeIn castPointerFunc DecodeIn castPointerFunc
DecodeOut castPointerFunc DecodeOut castPointerFunc
FileNames int FileNames int
FileNameOut bool FileNameOut bool
} }
...@@ -339,11 +339,11 @@ func init() { ...@@ -339,11 +339,11 @@ func init() {
operationHandlers[i] = &operationHandler{Name: "UNKNOWN"} operationHandlers[i] = &operationHandler{Name: "UNKNOWN"}
} }
fileOps := []opcode{_OP_READLINK, _OP_NOTIFY_ENTRY} fileOps := []opcode{_OP_READLINK, _OP_NOTIFY_ENTRY}
for _, op := range fileOps { for _, op := range fileOps {
operationHandlers[op].FileNameOut = true operationHandlers[op].FileNameOut = true
} }
for op, sz := range map[opcode]uintptr{ for op, sz := range map[opcode]uintptr{
_OP_FORGET: unsafe.Sizeof(ForgetIn{}), _OP_FORGET: unsafe.Sizeof(ForgetIn{}),
_OP_GETATTR: unsafe.Sizeof(GetAttrIn{}), _OP_GETATTR: unsafe.Sizeof(GetAttrIn{}),
......
...@@ -14,7 +14,7 @@ type PrefixFileSystem struct { ...@@ -14,7 +14,7 @@ type PrefixFileSystem struct {
func (me *PrefixFileSystem) prefixed(n string) string { func (me *PrefixFileSystem) prefixed(n string) string {
return filepath.Join(me.Prefix, n) return filepath.Join(me.Prefix, n)
} }
func (me *PrefixFileSystem) GetAttr(name string, context *Context) (*os.FileInfo, Status) { func (me *PrefixFileSystem) GetAttr(name string, context *Context) (*os.FileInfo, Status) {
return me.FileSystem.GetAttr(me.prefixed(name), context) return me.FileSystem.GetAttr(me.prefixed(name), context)
......
...@@ -20,9 +20,9 @@ type MemUnionFs struct { ...@@ -20,9 +20,9 @@ type MemUnionFs struct {
backingStore string backingStore string
root *memNode root *memNode
connector *fuse.FileSystemConnector connector *fuse.FileSystemConnector
mutex sync.RWMutex mutex sync.RWMutex
cond *sync.Cond cond *sync.Cond
nextFree int nextFree int
readonly fuse.FileSystem readonly fuse.FileSystem
...@@ -31,7 +31,7 @@ type MemUnionFs struct { ...@@ -31,7 +31,7 @@ type MemUnionFs struct {
// All paths that have been renamed or deleted will be marked // All paths that have been renamed or deleted will be marked
// here. After deletion, entries may be recreated, but they // here. After deletion, entries may be recreated, but they
// will be treated as new. // will be treated as new.
deleted map[string]bool deleted map[string]bool
} }
type memNode struct { type memNode struct {
...@@ -87,7 +87,7 @@ func (me *MemUnionFs) Reap() map[string]*Result { ...@@ -87,7 +87,7 @@ func (me *MemUnionFs) Reap() map[string]*Result {
todo := []string{name} todo := []string{name}
for len(todo) > 0 { for len(todo) > 0 {
l := len(todo)-1 l := len(todo) - 1
n := todo[l] n := todo[l]
todo = todo[:l] todo = todo[:l]
...@@ -95,7 +95,7 @@ func (me *MemUnionFs) Reap() map[string]*Result { ...@@ -95,7 +95,7 @@ func (me *MemUnionFs) Reap() map[string]*Result {
for e := range s { for e := range s {
full := filepath.Join(n, e.Name) full := filepath.Join(n, e.Name)
m[full] = &Result{} m[full] = &Result{}
if e.Mode & fuse.S_IFDIR != 0 { if e.Mode&fuse.S_IFDIR != 0 {
todo = append(todo, full) todo = append(todo, full)
} }
} }
...@@ -137,7 +137,7 @@ func (me *MemUnionFs) Update(results map[string]*Result) { ...@@ -137,7 +137,7 @@ func (me *MemUnionFs) Update(results map[string]*Result) {
} }
sort.Strings(del) sort.Strings(del)
for i := len(del)-1; i >= 0; i-- { for i := len(del) - 1; i >= 0; i-- {
n := del[i] n := del[i]
dir, base := filepath.Split(n) dir, base := filepath.Split(n)
dir = strings.TrimRight(dir, "/") dir = strings.TrimRight(dir, "/")
...@@ -600,7 +600,7 @@ func (me *memNode) Reap(path string, results map[string]*Result) { ...@@ -600,7 +600,7 @@ func (me *memNode) Reap(path string, results map[string]*Result) {
if me.changed { if me.changed {
info := me.info info := me.info
results[path] = &Result{ results[path] = &Result{
FileInfo: &info, FileInfo: &info,
Link: me.link, Link: me.link,
Backing: me.backing, Backing: me.backing,
Original: me.original, Original: me.original,
...@@ -633,4 +633,3 @@ func (me *memNode) Clear(path string) { ...@@ -633,4 +633,3 @@ func (me *memNode) Clear(path string) {
mn.Clear(p) mn.Clear(p)
} }
} }
...@@ -32,7 +32,7 @@ func setupMemUfs(t *testing.T) (workdir string, ufs *MemUnionFs, cleanup func()) ...@@ -32,7 +32,7 @@ func setupMemUfs(t *testing.T) (workdir string, ufs *MemUnionFs, cleanup func())
os.Mkdir(wd+"/ro", 0700) os.Mkdir(wd+"/ro", 0700)
fuse.CheckSuccess(err) fuse.CheckSuccess(err)
roFs := fuse.NewLoopbackFileSystem(wd+"/ro") roFs := fuse.NewLoopbackFileSystem(wd + "/ro")
memFs := NewMemUnionFs(wd+"/backing", roFs) memFs := NewMemUnionFs(wd+"/backing", roFs)
// We configure timeouts are smaller, so we can check for // We configure timeouts are smaller, so we can check for
...@@ -84,7 +84,7 @@ func TestMemUnionFsSymlinkPromote(t *testing.T) { ...@@ -84,7 +84,7 @@ func TestMemUnionFsSymlinkPromote(t *testing.T) {
err = os.Symlink("/foobar", wd+"/mount/subdir/link") err = os.Symlink("/foobar", wd+"/mount/subdir/link")
CheckSuccess(err) CheckSuccess(err)
r := ufs.Reap() r := ufs.Reap()
if len(r) != 2 || r["subdir"] == nil || r["subdir/link"] == nil || r["subdir/link"].Link != "/foobar" { if len(r) != 2 || r["subdir"] == nil || r["subdir/link"] == nil || r["subdir/link"].Link != "/foobar" {
t.Errorf("expect 1 symlink reap result: %v", r) t.Errorf("expect 1 symlink reap result: %v", r)
...@@ -231,7 +231,7 @@ func TestMemUnionFsSubdirCreate(t *testing.T) { ...@@ -231,7 +231,7 @@ func TestMemUnionFsSubdirCreate(t *testing.T) {
writeToFile(wd+"/mount/subdir/sub2/file", "other-content") writeToFile(wd+"/mount/subdir/sub2/file", "other-content")
_, err = os.Lstat(wd + "/mount/subdir/sub2/file") _, err = os.Lstat(wd + "/mount/subdir/sub2/file")
CheckSuccess(err) CheckSuccess(err)
r := ufs.Reap() r := ufs.Reap()
if r["subdir/sub2/file"] == nil || r["subdir/sub2/file"].Backing == "" { if r["subdir/sub2/file"] == nil || r["subdir/sub2/file"].Backing == "" {
t.Errorf("expect 1 file reap result: %v", r) t.Errorf("expect 1 file reap result: %v", r)
...@@ -245,7 +245,7 @@ func TestMemUnionFsCreate(t *testing.T) { ...@@ -245,7 +245,7 @@ func TestMemUnionFsCreate(t *testing.T) {
writeToFile(wd+"/mount/file.txt", "hello") writeToFile(wd+"/mount/file.txt", "hello")
_, err := os.Lstat(wd + "/mount/file.txt") _, err := os.Lstat(wd + "/mount/file.txt")
CheckSuccess(err) CheckSuccess(err)
r := ufs.Reap() r := ufs.Reap()
if r["file.txt"] == nil || r["file.txt"].Backing == "" { if r["file.txt"] == nil || r["file.txt"].Backing == "" {
t.Errorf("expect 1 file reap result: %v", r) t.Errorf("expect 1 file reap result: %v", r)
...@@ -292,7 +292,7 @@ func TestMemUnionFsMkdirPromote(t *testing.T) { ...@@ -292,7 +292,7 @@ func TestMemUnionFsMkdirPromote(t *testing.T) {
CheckSuccess(err) CheckSuccess(err)
r := ufs.Reap() r := ufs.Reap()
if r["subdir/subdir2/dir3"] == nil || r["subdir/subdir2/dir3"].FileInfo.Mode & fuse.S_IFDIR == 0 { if r["subdir/subdir2/dir3"] == nil || r["subdir/subdir2/dir3"].FileInfo.Mode&fuse.S_IFDIR == 0 {
t.Errorf("expect 1 file reap result: %v", r) t.Errorf("expect 1 file reap result: %v", r)
} }
} }
...@@ -504,7 +504,7 @@ func TestMemUnionFsDoubleOpen(t *testing.T) { ...@@ -504,7 +504,7 @@ func TestMemUnionFsDoubleOpen(t *testing.T) {
func TestMemUnionFsUpdate(t *testing.T) { func TestMemUnionFsUpdate(t *testing.T) {
wd, ufs, clean := setupMemUfs(t) wd, ufs, clean := setupMemUfs(t)
defer clean() defer clean()
err := ioutil.WriteFile(wd+"/ro/file1", []byte("blablabla"), 0644) err := ioutil.WriteFile(wd+"/ro/file1", []byte("blablabla"), 0644)
CheckSuccess(err) CheckSuccess(err)
...@@ -516,14 +516,14 @@ func TestMemUnionFsUpdate(t *testing.T) { ...@@ -516,14 +516,14 @@ func TestMemUnionFsUpdate(t *testing.T) {
if fi, _ := os.Lstat(wd + "/mount/symlink"); fi != nil { if fi, _ := os.Lstat(wd + "/mount/symlink"); fi != nil {
t.Fatal("symlink should not exist", fi) t.Fatal("symlink should not exist", fi)
} }
err = os.Remove(wd+"/ro/file1") err = os.Remove(wd + "/ro/file1")
CheckSuccess(err) CheckSuccess(err)
err = ioutil.WriteFile(wd+"/ro/file2", []byte("foobar"), 0644) err = ioutil.WriteFile(wd+"/ro/file2", []byte("foobar"), 0644)
CheckSuccess(err) CheckSuccess(err)
err = os.Symlink("target", wd + "/ro/symlink") err = os.Symlink("target", wd+"/ro/symlink")
CheckSuccess(err) CheckSuccess(err)
// Still have cached attributes. // Still have cached attributes.
fi, err := os.Lstat(wd + "/mount/file1") fi, err := os.Lstat(wd + "/mount/file1")
CheckSuccess(err) CheckSuccess(err)
...@@ -538,7 +538,7 @@ func TestMemUnionFsUpdate(t *testing.T) { ...@@ -538,7 +538,7 @@ func TestMemUnionFsUpdate(t *testing.T) {
CheckSuccess(err) CheckSuccess(err)
roSymlinkFi, err := os.Lstat(wd + "/ro/symlink") roSymlinkFi, err := os.Lstat(wd + "/ro/symlink")
CheckSuccess(err) CheckSuccess(err)
updates := map[string]*Result{ updates := map[string]*Result{
"file1": &Result{ "file1": &Result{
nil, "", "", "", nil, "", "", "",
...@@ -702,7 +702,7 @@ func TestMemUnionFsRenameDirBasic(t *testing.T) { ...@@ -702,7 +702,7 @@ func TestMemUnionFsRenameDirBasic(t *testing.T) {
if r["dir"] == nil || r["dir"].FileInfo != nil || r["renamed/subdir"] == nil || !r["renamed/subdir"].FileInfo.IsDirectory() { if r["dir"] == nil || r["dir"].FileInfo != nil || r["renamed/subdir"] == nil || !r["renamed/subdir"].FileInfo.IsDirectory() {
t.Errorf("Reap should del dir, and add renamed/subdir: %v", r) t.Errorf("Reap should del dir, and add renamed/subdir: %v", r)
} }
if err = os.Mkdir(wd+"/mount/dir", 0755); err != nil { if err = os.Mkdir(wd+"/mount/dir", 0755); err != nil {
t.Errorf("mkdir should succeed %v", err) t.Errorf("mkdir should succeed %v", err)
} }
...@@ -782,11 +782,11 @@ func TestMemUnionGc(t *testing.T) { ...@@ -782,11 +782,11 @@ func TestMemUnionGc(t *testing.T) {
writeToFile(wd+"/mount/file1", "other-content") writeToFile(wd+"/mount/file1", "other-content")
writeToFile(wd+"/mount/file2", "other-content") writeToFile(wd+"/mount/file2", "other-content")
err := os.Remove(wd+"/mount/file1") err := os.Remove(wd + "/mount/file1")
CheckSuccess(err) CheckSuccess(err)
ufs.Clear() ufs.Clear()
entries, err := ioutil.ReadDir(wd+"/backing") entries, err := ioutil.ReadDir(wd + "/backing")
CheckSuccess(err) CheckSuccess(err)
if len(entries) != 0 { if len(entries) != 0 {
t.Fatalf("should have 1 file after backing store gc: %v", entries) t.Fatalf("should have 1 file after backing store gc: %v", entries)
......
...@@ -280,7 +280,7 @@ func (me *UnionFs) Promote(name string, srcResult branchResult, context *fuse.Co ...@@ -280,7 +280,7 @@ func (me *UnionFs) Promote(name string, srcResult branchResult, context *fuse.Co
code = fuse.CopyFile(sourceFs, writable, name, name, context) code = fuse.CopyFile(sourceFs, writable, name, name, context)
if code.Ok() { if code.Ok() {
code = writable.Chmod(name, srcResult.attr.Mode & 07777 | 0200, context) code = writable.Chmod(name, srcResult.attr.Mode&07777|0200, context)
} }
if code.Ok() { if code.Ok() {
code = writable.Utimens(name, uint64(srcResult.attr.Atime_ns), code = writable.Utimens(name, uint64(srcResult.attr.Atime_ns),
...@@ -321,13 +321,12 @@ func (me *UnionFs) Promote(name string, srcResult branchResult, context *fuse.Co ...@@ -321,13 +321,12 @@ func (me *UnionFs) Promote(name string, srcResult branchResult, context *fuse.Co
code = writable.Symlink(link, name, context) code = writable.Symlink(link, name, context)
} }
} else if srcResult.attr.IsDirectory() { } else if srcResult.attr.IsDirectory() {
code = writable.Mkdir(name, srcResult.attr.Mode & 07777 | 0200, context) code = writable.Mkdir(name, srcResult.attr.Mode&07777|0200, context)
} else { } else {
log.Println("Unknown file type:", srcResult.attr) log.Println("Unknown file type:", srcResult.attr)
return fuse.ENOSYS return fuse.ENOSYS
} }
if !code.Ok() { if !code.Ok() {
me.branchCache.GetFresh(name) me.branchCache.GetFresh(name)
return code return code
...@@ -635,7 +634,7 @@ func (me *UnionFs) promoteDirsTo(filename string) fuse.Status { ...@@ -635,7 +634,7 @@ func (me *UnionFs) promoteDirsTo(filename string) fuse.Status {
j := len(todo) - i - 1 j := len(todo) - i - 1
d := todo[j] d := todo[j]
r := results[j] r := results[j]
code := me.fileSystems[0].Mkdir(d, r.attr.Mode&07777 | 0200, nil) code := me.fileSystems[0].Mkdir(d, r.attr.Mode&07777|0200, nil)
if code != fuse.OK { if code != fuse.OK {
log.Println("Error creating dir leading to path", d, code, me.fileSystems[0]) log.Println("Error creating dir leading to path", d, code, me.fileSystems[0])
return fuse.EPERM return fuse.EPERM
......
...@@ -31,8 +31,8 @@ func freezeRo(dir string) { ...@@ -31,8 +31,8 @@ func freezeRo(dir string) {
err := filepath.Walk( err := filepath.Walk(
dir, dir,
func(path string, fi *os.FileInfo, err os.Error) os.Error { func(path string, fi *os.FileInfo, err os.Error) os.Error {
return os.Chmod(path, (fi.Mode & 0777) &^ 0222) return os.Chmod(path, (fi.Mode&0777)&^0222)
}) })
CheckSuccess(err) CheckSuccess(err)
} }
...@@ -493,7 +493,7 @@ func TestUnionFsRenameDirAllSourcesGone(t *testing.T) { ...@@ -493,7 +493,7 @@ func TestUnionFsRenameDirAllSourcesGone(t *testing.T) {
err = ioutil.WriteFile(wd+"/ro/dir/file.txt", []byte{42}, 0644) err = ioutil.WriteFile(wd+"/ro/dir/file.txt", []byte{42}, 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
err = os.Rename(wd+"/mount/dir", wd+"/mount/renamed") err = os.Rename(wd+"/mount/dir", wd+"/mount/renamed")
CheckSuccess(err) CheckSuccess(err)
...@@ -515,7 +515,7 @@ func TestUnionFsRenameDirWithDeletions(t *testing.T) { ...@@ -515,7 +515,7 @@ func TestUnionFsRenameDirWithDeletions(t *testing.T) {
err = ioutil.WriteFile(wd+"/ro/dir/subdir/file.txt", []byte{42}, 0644) err = ioutil.WriteFile(wd+"/ro/dir/subdir/file.txt", []byte{42}, 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
if fi, _ := os.Lstat(wd + "/mount/dir/subdir/file.txt"); fi == nil || !fi.IsRegular() { if fi, _ := os.Lstat(wd + "/mount/dir/subdir/file.txt"); fi == nil || !fi.IsRegular() {
t.Fatalf("%s/mount/dir/subdir/file.txt should be file: %v", wd, fi) t.Fatalf("%s/mount/dir/subdir/file.txt should be file: %v", wd, fi)
...@@ -582,7 +582,7 @@ func TestUnionFsWritableDir(t *testing.T) { ...@@ -582,7 +582,7 @@ func TestUnionFsWritableDir(t *testing.T) {
dirname := wd + "/ro/subdir" dirname := wd + "/ro/subdir"
err := os.Mkdir(dirname, 0555) err := os.Mkdir(dirname, 0555)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
fi, err := os.Lstat(wd + "/mount/subdir") fi, err := os.Lstat(wd + "/mount/subdir")
CheckSuccess(err) CheckSuccess(err)
...@@ -599,7 +599,7 @@ func TestUnionFsWriteAccess(t *testing.T) { ...@@ -599,7 +599,7 @@ func TestUnionFsWriteAccess(t *testing.T) {
// No write perms. // No write perms.
err := ioutil.WriteFile(fn, []byte("foo"), 0444) err := ioutil.WriteFile(fn, []byte("foo"), 0444)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
errno := syscall.Access(wd+"/mount/file", fuse.W_OK) errno := syscall.Access(wd+"/mount/file", fuse.W_OK)
if errno != 0 { if errno != 0 {
...@@ -616,7 +616,7 @@ func TestUnionFsLink(t *testing.T) { ...@@ -616,7 +616,7 @@ func TestUnionFsLink(t *testing.T) {
fn := wd + "/ro/file" fn := wd + "/ro/file"
err := ioutil.WriteFile(fn, []byte(content), 0666) err := ioutil.WriteFile(fn, []byte(content), 0666)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
err = os.Link(wd+"/mount/file", wd+"/mount/linked") err = os.Link(wd+"/mount/file", wd+"/mount/linked")
CheckSuccess(err) CheckSuccess(err)
...@@ -640,7 +640,7 @@ func TestUnionFsTruncate(t *testing.T) { ...@@ -640,7 +640,7 @@ func TestUnionFsTruncate(t *testing.T) {
defer clean() defer clean()
writeToFile(wd+"/ro/file", "hello") writeToFile(wd+"/ro/file", "hello")
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
os.Truncate(wd+"/mount/file", 2) os.Truncate(wd+"/mount/file", 2)
content := readFromFile(wd + "/mount/file") content := readFromFile(wd + "/mount/file")
...@@ -718,7 +718,7 @@ func TestUnionFsRemoveAll(t *testing.T) { ...@@ -718,7 +718,7 @@ func TestUnionFsRemoveAll(t *testing.T) {
fn := wd + "/ro/dir/subdir/y" fn := wd + "/ro/dir/subdir/y"
err = ioutil.WriteFile(fn, []byte(contents), 0644) err = ioutil.WriteFile(fn, []byte(contents), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
err = os.RemoveAll(wd + "/mount/dir") err = os.RemoveAll(wd + "/mount/dir")
if err != nil { if err != nil {
...@@ -749,7 +749,7 @@ func TestUnionFsRmRf(t *testing.T) { ...@@ -749,7 +749,7 @@ func TestUnionFsRmRf(t *testing.T) {
fn := wd + "/ro/dir/subdir/y" fn := wd + "/ro/dir/subdir/y"
err = ioutil.WriteFile(fn, []byte(contents), 0644) err = ioutil.WriteFile(fn, []byte(contents), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
bin, err := exec.LookPath("rm") bin, err := exec.LookPath("rm")
CheckSuccess(err) CheckSuccess(err)
...@@ -788,7 +788,7 @@ func TestUnionFsDropDeletionCache(t *testing.T) { ...@@ -788,7 +788,7 @@ func TestUnionFsDropDeletionCache(t *testing.T) {
err := ioutil.WriteFile(wd+"/ro/file", []byte("bla"), 0644) err := ioutil.WriteFile(wd+"/ro/file", []byte("bla"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
_, err = os.Lstat(wd + "/mount/file") _, err = os.Lstat(wd + "/mount/file")
CheckSuccess(err) CheckSuccess(err)
...@@ -887,7 +887,7 @@ func TestUnionFsDisappearing(t *testing.T) { ...@@ -887,7 +887,7 @@ func TestUnionFsDisappearing(t *testing.T) {
err = ioutil.WriteFile(wd+"/ro/file", []byte("blabla"), 0644) err = ioutil.WriteFile(wd+"/ro/file", []byte("blabla"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
err = os.Remove(wd + "/mount/file") err = os.Remove(wd + "/mount/file")
CheckSuccess(err) CheckSuccess(err)
...@@ -928,7 +928,7 @@ func TestUnionFsDeletedGetAttr(t *testing.T) { ...@@ -928,7 +928,7 @@ func TestUnionFsDeletedGetAttr(t *testing.T) {
err := ioutil.WriteFile(wd+"/ro/file", []byte("blabla"), 0644) err := ioutil.WriteFile(wd+"/ro/file", []byte("blabla"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
f, err := os.Open(wd + "/mount/file") f, err := os.Open(wd + "/mount/file")
CheckSuccess(err) CheckSuccess(err)
...@@ -947,7 +947,7 @@ func TestUnionFsDoubleOpen(t *testing.T) { ...@@ -947,7 +947,7 @@ func TestUnionFsDoubleOpen(t *testing.T) {
defer clean() defer clean()
err := ioutil.WriteFile(wd+"/ro/file", []byte("blablabla"), 0644) err := ioutil.WriteFile(wd+"/ro/file", []byte("blablabla"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
roFile, err := os.Open(wd + "/mount/file") roFile, err := os.Open(wd + "/mount/file")
CheckSuccess(err) CheckSuccess(err)
...@@ -985,7 +985,7 @@ func TestUnionFsFdLeak(t *testing.T) { ...@@ -985,7 +985,7 @@ func TestUnionFsFdLeak(t *testing.T) {
wd, clean := setupUfs(t) wd, clean := setupUfs(t)
err = ioutil.WriteFile(wd+"/ro/file", []byte("blablabla"), 0644) err = ioutil.WriteFile(wd+"/ro/file", []byte("blablabla"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
contents, err := ioutil.ReadFile(wd + "/mount/file") contents, err := ioutil.ReadFile(wd + "/mount/file")
CheckSuccess(err) CheckSuccess(err)
...@@ -1091,7 +1091,7 @@ func TestUnionFsPromoteDirTimeStamp(t *testing.T) { ...@@ -1091,7 +1091,7 @@ func TestUnionFsPromoteDirTimeStamp(t *testing.T) {
CheckSuccess(err) CheckSuccess(err)
err = ioutil.WriteFile(wd+"/ro/subdir/file", []byte("hello"), 0644) err = ioutil.WriteFile(wd+"/ro/subdir/file", []byte("hello"), 0644)
CheckSuccess(err) CheckSuccess(err)
freezeRo(wd+"/ro") freezeRo(wd + "/ro")
err = os.Chmod(wd+"/mount/subdir/file", 0060) err = os.Chmod(wd+"/mount/subdir/file", 0060)
CheckSuccess(err) CheckSuccess(err)
...@@ -1107,7 +1107,7 @@ func TestUnionFsPromoteDirTimeStamp(t *testing.T) { ...@@ -1107,7 +1107,7 @@ func TestUnionFsPromoteDirTimeStamp(t *testing.T) {
t.Errorf("Changed timestamps on promoted subdir: ro %d rw %d", fRo.Mtime_ns, fRw.Mtime_ns) t.Errorf("Changed timestamps on promoted subdir: ro %d rw %d", fRo.Mtime_ns, fRw.Mtime_ns)
} }
if fRo.Mode | 0200 != fRw.Mode { if fRo.Mode|0200 != fRw.Mode {
t.Errorf("Changed mode ro: %o, rw: %o", fRo.Mode, fRw.Mode) t.Errorf("Changed mode ro: %o, rw: %o", fRo.Mode, fRw.Mode)
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment