@@ -7814,33 +7814,35 @@ static int resv_release(int argc, char **argv, struct command *acmd, struct plug
78147814 "the issuing controller are notified." ;
78157815 const char * rrela = "reservation release action" ;
78167816
7817- _cleanup_nvme_global_ctx_ struct nvme_global_ctx * ctx = NULL ;
78187817 _cleanup_nvme_transport_handle_ struct nvme_transport_handle * hdl = NULL ;
7819- int err ;
7818+ _cleanup_nvme_global_ctx_ struct nvme_global_ctx * ctx = NULL ;
7819+ struct nvme_passthru_cmd cmd ;
78207820 nvme_print_flags_t flags ;
7821+ __le64 payload [1 ];
7822+ int err ;
78217823
78227824 struct config {
7823- __u32 namespace_id ;
7825+ __u32 nsid ;
78247826 __u64 crkey ;
78257827 __u8 rtype ;
78267828 __u8 rrela ;
78277829 __u8 iekey ;
78287830 };
78297831
78307832 struct config cfg = {
7831- .namespace_id = 0 ,
7833+ .nsid = 0 ,
78327834 .crkey = 0 ,
78337835 .rtype = 0 ,
78347836 .rrela = 0 ,
78357837 .iekey = 0 ,
78367838 };
78377839
78387840 NVME_ARGS (opts ,
7839- OPT_UINT ("namespace-id" , 'n' , & cfg .namespace_id , namespace_desired ),
7840- OPT_SUFFIX ("crkey" , 'c' , & cfg .crkey , crkey ),
7841- OPT_BYTE ("rtype" , 't' , & cfg .rtype , rtype ),
7842- OPT_BYTE ("rrela" , 'a' , & cfg .rrela , rrela ),
7843- OPT_FLAG ("iekey" , 'i' , & cfg .iekey , iekey ));
7841+ OPT_UINT ("namespace-id" , 'n' , & cfg .nsid , namespace_desired ),
7842+ OPT_SUFFIX ("crkey" , 'c' , & cfg .crkey , crkey ),
7843+ OPT_BYTE ("rtype" , 't' , & cfg .rtype , rtype ),
7844+ OPT_BYTE ("rrela" , 'a' , & cfg .rrela , rrela ),
7845+ OPT_FLAG ("iekey" , 'i' , & cfg .iekey , iekey ));
78447846
78457847 err = parse_and_open (& ctx , & hdl , argc , argv , desc , opts );
78467848 if (err )
@@ -7852,8 +7854,8 @@ static int resv_release(int argc, char **argv, struct command *acmd, struct plug
78527854 return err ;
78537855 }
78547856
7855- if (!cfg .namespace_id ) {
7856- err = nvme_get_nsid (hdl , & cfg .namespace_id );
7857+ if (!cfg .nsid ) {
7858+ err = nvme_get_nsid (hdl , & cfg .nsid );
78577859 if (err < 0 ) {
78587860 nvme_show_error ("get-namespace-id: %s" , nvme_strerror (- err ));
78597861 return err ;
@@ -7864,17 +7866,9 @@ static int resv_release(int argc, char **argv, struct command *acmd, struct plug
78647866 return - EINVAL ;
78657867 }
78667868
7867- struct nvme_resv_release_args args = {
7868- .args_size = sizeof (args ),
7869- .nsid = cfg .namespace_id ,
7870- .rtype = cfg .rtype ,
7871- .rrela = cfg .rrela ,
7872- .iekey = !!cfg .iekey ,
7873- .crkey = cfg .crkey ,
7874- .timeout = nvme_cfg .timeout ,
7875- .result = NULL ,
7876- };
7877- err = nvme_resv_release (hdl , & args );
7869+ nvme_init_resv_release (& cmd , cfg .nsid , cfg .rrela , cfg .iekey , false,
7870+ cfg .rtype , cfg .crkey , payload );
7871+ err = nvme_submit_io_passthru (hdl , & cmd , NULL );
78787872 if (err < 0 )
78797873 nvme_show_error ("reservation release: %s" , nvme_strerror (- err ));
78807874 else if (err != 0 )
0 commit comments