diff --git a/buse.c b/buse.c index b918649..5fada2e 100644 --- a/buse.c +++ b/buse.c @@ -95,7 +95,13 @@ int buse_main(const char* dev_file, const struct buse_operations *aop, void *use assert(!err); nbd = open(dev_file, O_RDWR); - assert(nbd != -1); + if (nbd == -1) { + fprintf(stderr, + "Failed to open `%s': %s\n" + "Is kernel module `nbd' is loaded and you have permissions " + "to access the device?\n", dev_file, strerror(errno)); + return 1; + } err = ioctl(nbd, NBD_SET_SIZE, aop->size); assert(err != -1); diff --git a/busexmp.c b/busexmp.c index 5464902..d342a6e 100644 --- a/busexmp.c +++ b/busexmp.c @@ -74,7 +74,16 @@ static struct buse_operations aop = { int main(int argc, char *argv[]) { - (void)(argc); + if (argc != 2) + { + fprintf(stderr, + "Usage:\n" + " %s /dev/nbd0\n" + "Don't forget to load nbd kernel module (`modprobe nbd`) and\n" + "run example from root.\n", argv[0]); + return 1; + } + data = malloc(aop.size); return buse_main(argv[1], &aop, (void *)&xmpl_debug);