@@ -831,25 +831,23 @@ func (o *snapshotter) prepareDirectory(ctx context.Context, snapshotDir string,
831
831
if err := os .Mkdir (filepath .Join (td , "fs" ), 0755 ); err != nil {
832
832
return td , err
833
833
}
834
+ if err := os .Mkdir (filepath .Join (td , "block" ), 0711 ); err != nil {
835
+ return td , err
836
+ }
837
+ if err := os .Mkdir (filepath .Join (td , "block" , "mountpoint" ), 0711 ); err != nil {
838
+ return td , err
839
+ }
840
+
841
+ f , err := os .Create (filepath .Join (td , "block" , "init-debug.log" ))
842
+ f .Close ()
843
+ if err != nil {
844
+ return td , err
845
+ }
834
846
835
847
if kind == snapshots .KindActive {
836
848
if err := os .Mkdir (filepath .Join (td , "work" ), 0711 ); err != nil {
837
849
return td , err
838
850
}
839
-
840
- if err := os .Mkdir (filepath .Join (td , "block" ), 0711 ); err != nil {
841
- return td , err
842
- }
843
-
844
- if err := os .Mkdir (filepath .Join (td , "block" , "mountpoint" ), 0711 ); err != nil {
845
- return td , err
846
- }
847
-
848
- f , err := os .Create (filepath .Join (td , "block" , "init-debug.log" ))
849
- f .Close ()
850
- if err != nil {
851
- return td , err
852
- }
853
851
}
854
852
return td , nil
855
853
}
@@ -862,13 +860,18 @@ func (o *snapshotter) basedOnBlockDeviceMount(ctx context.Context, s storage.Sna
862
860
log .G (ctx ).Errorf ("basedOnBlockDeviceMount return error: %v" , err )
863
861
}
864
862
}()
863
+ rwflag := "rw"
864
+ if s .Kind == snapshots .KindView && (writeType == rwflag || writeType == rwDev ) {
865
+ log .G (ctx ).Infof ("snapshot.Kind == View, reset overlaybd as READ-ONLY." )
866
+ rwflag = "ro"
867
+ }
865
868
if writeType == rwDir {
866
869
return []mount.Mount {
867
870
{
868
871
Source : o .overlaybdMountpoint (s .ID ),
869
872
Type : "bind" ,
870
873
Options : []string {
871
- "rw" ,
874
+ rwflag ,
872
875
"rbind" ,
873
876
},
874
877
},
@@ -885,7 +888,7 @@ func (o *snapshotter) basedOnBlockDeviceMount(ctx context.Context, s storage.Sna
885
888
Source : string (devName ),
886
889
Type : "ext4" ,
887
890
Options : []string {
888
- "rw" ,
891
+ rwflag ,
889
892
"discard" ,
890
893
},
891
894
},
0 commit comments