File tree 2 files changed +10
-0
lines changed
2 files changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -86,6 +86,12 @@ impl RebuildDescriptor {
86
86
bdev : dst_uri. to_string ( ) ,
87
87
} ) ?;
88
88
89
+ if src_descriptor. device_name ( ) == dst_descriptor. device_name ( ) {
90
+ return Err ( RebuildError :: SameBdev {
91
+ bdev : src_descriptor. device_name ( ) ,
92
+ } ) ;
93
+ }
94
+
89
95
let source_hdl = RebuildDescriptor :: io_handle ( & * src_descriptor) . await ?;
90
96
let destination_hdl =
91
97
RebuildDescriptor :: io_handle ( & * dst_descriptor) . await ?;
Original file line number Diff line number Diff line change @@ -15,6 +15,10 @@ pub enum RebuildError {
15
15
NoCopyBuffer { source : DmaError } ,
16
16
#[ snafu( display( "Failed to validate rebuild job creation parameters" ) ) ]
17
17
InvalidParameters { } ,
18
+ #[ snafu( display(
19
+ "The same device was specified for both source and destination: {bdev}"
20
+ ) ) ]
21
+ SameBdev { bdev : String } ,
18
22
#[ snafu( display( "Failed to get a handle for bdev {}" , bdev) ) ]
19
23
NoBdevHandle { source : CoreError , bdev : String } ,
20
24
#[ snafu( display( "Bdev {} not found" , bdev) ) ]
You can’t perform that action at this time.
0 commit comments