From dbbde9991d9fa12eddfa21aa7b4ddae9feb630ca Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 26 Jun 2017 13:22:20 -0700 Subject: [PATCH] test/bdev/nbd: allow building with old kernels Older kernels do not support flush or trim operations; add #ifdefs to allow the NBD test code to work on those kernels. Fixes build on older distributions (e.g. CentOS 6). Change-Id: Iae06f96b7db9a3bf4a494e2b2c2c15b37e6c1293 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/367132 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris --- test/lib/bdev/nbd/nbd.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/lib/bdev/nbd/nbd.c b/test/lib/bdev/nbd/nbd.c index 87f6a5688..106aa7734 100644 --- a/test/lib/bdev/nbd/nbd.c +++ b/test/lib/bdev/nbd/nbd.c @@ -232,14 +232,18 @@ process_request(struct nbd_disk *nbd) case NBD_CMD_DISC: nbd_shutdown(); return; +#ifdef NBD_FLAG_SEND_FLUSH case NBD_CMD_FLUSH: io->type = SPDK_BDEV_IO_TYPE_FLUSH; nbd_submit_bdev_io(nbd->bdev, nbd->ch, io); break; +#endif +#ifdef NBD_FLAG_SEND_TRIM case NBD_CMD_TRIM: io->type = SPDK_BDEV_IO_TYPE_UNMAP; nbd_submit_bdev_io(nbd->bdev, nbd->ch, io); break; +#endif } } @@ -320,11 +324,13 @@ nbd_start_kernel(int nbd_fd, int *sp) exit(-1); } +#ifdef NBD_FLAG_SEND_TRIM rc = ioctl(nbd_fd, NBD_SET_FLAGS, NBD_FLAG_SEND_TRIM); if (rc == -1) { SPDK_ERRLOG("ioctl(NBD_SET_FLAGS) failed: %s\n", strerror(errno)); exit(-1); } +#endif /* This will block in the kernel until the client disconnects. */ ioctl(nbd_fd, NBD_DO_IT);