diff options
Diffstat (limited to 'internal/fusefrontend_reverse')
| -rw-r--r-- | internal/fusefrontend_reverse/rfile.go | 18 | 
1 files changed, 6 insertions, 12 deletions
| diff --git a/internal/fusefrontend_reverse/rfile.go b/internal/fusefrontend_reverse/rfile.go index b19ad5e..530547a 100644 --- a/internal/fusefrontend_reverse/rfile.go +++ b/internal/fusefrontend_reverse/rfile.go @@ -33,11 +33,6 @@ type reverseFile struct {  var inodeTable syncmap.Map -type derivedIVContainer struct { -	id       []byte -	block0IV []byte -} -  func (rfs *ReverseFS) newFile(relPath string, flags uint32) (nodefs.File, fuse.Status) {  	absPath, err := rfs.abs(rfs.decryptPath(relPath))  	if err != nil { @@ -55,14 +50,13 @@ func (rfs *ReverseFS) newFile(relPath string, flags uint32) (nodefs.File, fuse.S  	}  	// See if we have that inode number already in the table  	// (even if Nlink has dropped to 1) -	var derivedIVs derivedIVContainer +	var derivedIVs pathiv.FileIVs  	v, found := inodeTable.Load(st.Ino)  	if found {  		tlog.Debug.Printf("ino%d: newFile: found in the inode table", st.Ino) -		derivedIVs = v.(derivedIVContainer) +		derivedIVs = v.(pathiv.FileIVs)  	} else { -		derivedIVs.id = pathiv.Derive(relPath, pathiv.PurposeFileID) -		derivedIVs.block0IV = pathiv.Derive(relPath, pathiv.PurposeBlock0IV) +		derivedIVs = pathiv.DeriveFile(relPath)  		// Nlink > 1 means there is more than one path to this file.  		// Store the derived values so we always return the same data,  		// regardless of the path that is used to access the file. @@ -71,7 +65,7 @@ func (rfs *ReverseFS) newFile(relPath string, flags uint32) (nodefs.File, fuse.S  			v, found = inodeTable.LoadOrStore(st.Ino, derivedIVs)  			if found {  				// Another thread has stored a different value before we could. -				derivedIVs = v.(derivedIVContainer) +				derivedIVs = v.(pathiv.FileIVs)  			} else {  				tlog.Debug.Printf("ino%d: newFile: Nlink=%d, stored in the inode table", st.Ino, st.Nlink)  			} @@ -79,13 +73,13 @@ func (rfs *ReverseFS) newFile(relPath string, flags uint32) (nodefs.File, fuse.S  	}  	header := contentenc.FileHeader{  		Version: contentenc.CurrentVersion, -		ID:      derivedIVs.id, +		ID:      derivedIVs.ID,  	}  	return &reverseFile{  		File:       nodefs.NewDefaultFile(),  		fd:         fd,  		header:     header, -		block0IV:   derivedIVs.block0IV, +		block0IV:   derivedIVs.Block0IV,  		contentEnc: rfs.contentEnc,  	}, fuse.OK  } | 
