Fix missing --readonly handling in NBD server
This commit is contained in:
@@ -301,10 +301,9 @@ const char *help_text =
|
|||||||
" --nbd_disconnect_on_close 1\n"
|
" --nbd_disconnect_on_close 1\n"
|
||||||
" Disconnect the nbd device on close by last opener.\n"
|
" Disconnect the nbd device on close by last opener.\n"
|
||||||
#endif
|
#endif
|
||||||
#ifdef NBD_FLAG_READ_ONLY
|
" --readonly\n"
|
||||||
" --nbd_ro 1\n"
|
" --nbd_ro 1\n"
|
||||||
" Set device into read only mode.\n"
|
" Set device into read only mode.\n"
|
||||||
#endif
|
|
||||||
"\n"
|
"\n"
|
||||||
"vitastor-nbd netlink-unmap /dev/nbdN\n"
|
"vitastor-nbd netlink-unmap /dev/nbdN\n"
|
||||||
" Unmap a device using netlink interface. Works with both netlink and ioctl mapped devices.\n"
|
" Unmap a device using netlink interface. Works with both netlink and ioctl mapped devices.\n"
|
||||||
@@ -582,10 +581,8 @@ help:
|
|||||||
}
|
}
|
||||||
uint64_t flags = NBD_FLAG_SEND_FLUSH;
|
uint64_t flags = NBD_FLAG_SEND_FLUSH;
|
||||||
uint64_t cflags = 0;
|
uint64_t cflags = 0;
|
||||||
#ifdef NBD_FLAG_READ_ONLY
|
if (!cfg["readonly"].is_null() || !cfg["nbd_ro"].is_null())
|
||||||
if (!cfg["nbd_ro"].is_null())
|
|
||||||
flags |= NBD_FLAG_READ_ONLY;
|
flags |= NBD_FLAG_READ_ONLY;
|
||||||
#endif
|
|
||||||
#ifdef NBD_CFLAG_DESTROY_ON_DISCONNECT
|
#ifdef NBD_CFLAG_DESTROY_ON_DISCONNECT
|
||||||
if (!cfg["nbd_destroy_on_disconnect"].is_null())
|
if (!cfg["nbd_destroy_on_disconnect"].is_null())
|
||||||
cflags |= NBD_CFLAG_DESTROY_ON_DISCONNECT;
|
cflags |= NBD_CFLAG_DESTROY_ON_DISCONNECT;
|
||||||
@@ -621,7 +618,10 @@ help:
|
|||||||
if (!cfg["dev_num"].is_null())
|
if (!cfg["dev_num"].is_null())
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
if ((r = run_nbd(sockfd, cfg["dev_num"].int64_value(), device_size, NBD_FLAG_SEND_FLUSH, nbd_timeout, bg)) != 0)
|
uint64_t flags = NBD_FLAG_SEND_FLUSH;
|
||||||
|
if (!cfg["readonly"].is_null())
|
||||||
|
flags |= NBD_FLAG_READ_ONLY;
|
||||||
|
if ((r = run_nbd(sockfd, cfg["dev_num"].int64_value(), device_size, flags, nbd_timeout, bg)) != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "run_nbd: %s\n", strerror(-r));
|
fprintf(stderr, "run_nbd: %s\n", strerror(-r));
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user