File tree Expand file tree Collapse file tree 2 files changed +8
-10
lines changed Expand file tree Collapse file tree 2 files changed +8
-10
lines changed Original file line number Diff line number Diff line change @@ -905,9 +905,6 @@ func (parent *Inode) Create(
905905
906906 fs := parent .fs
907907
908- parent .mu .Lock ()
909- defer parent .mu .Unlock ()
910-
911908 now := time .Now ()
912909 inode = NewInode (fs , parent , & name )
913910 inode .Attributes = InodeAttributes {
@@ -948,9 +945,6 @@ func (parent *Inode) MkDir(
948945 return
949946 }
950947
951- parent .mu .Lock ()
952- defer parent .mu .Unlock ()
953-
954948 inode = NewInode (fs , parent , & name )
955949 inode .ToDir ()
956950 inode .touch ()
Original file line number Diff line number Diff line change @@ -1013,10 +1013,10 @@ func (fs *Goofys) CreateFile(
10131013 parent := fs .getInodeOrDie (op .Parent )
10141014 fs .mu .RUnlock ()
10151015
1016- inode , fh := parent .Create (op .Name , op .Metadata )
1017-
10181016 parent .mu .Lock ()
10191017
1018+ inode , fh := parent .Create (op .Name , op .Metadata )
1019+
10201020 fs .mu .Lock ()
10211021 defer fs .mu .Unlock ()
10221022 fs .insertInode (parent , inode )
@@ -1046,17 +1046,21 @@ func (fs *Goofys) MkDir(
10461046 op * fuseops.MkDirOp ) (err error ) {
10471047
10481048 fs .mu .RLock ()
1049- defer fs .mu .RUnlock ()
10501049 parent := fs .getInodeOrDie (op .Parent )
1050+ fs .mu .RUnlock ()
1051+
1052+ parent .mu .Lock ()
10511053
10521054 // ignore op.Mode for now
10531055 inode , err := parent .MkDir (op .Name )
10541056 if err != nil {
10551057 return err
10561058 }
10571059
1058- parent .mu .Lock ()
1060+ fs .mu .Lock ()
1061+ defer fs .mu .Unlock ()
10591062 fs .insertInode (parent , inode )
1063+
10601064 parent .mu .Unlock ()
10611065
10621066 op .Entry .Child = inode .Id
You can’t perform that action at this time.
0 commit comments