I'm trying to implement the FUSE filesystem. I am receiving this error:
cannot access MountDir: Transport endpoint is not connected
This the relevant parts of the program. There are two directories, MirrorDir
and MountDir
, that exist withing the same directory as all of the code. I am calling the program like this:
./myFS -o nonempty -o allow_other MirrorDir MountDir
Can anyone see what I am doing wrong?
static struct fuse_operations xmp_oper = { .getattr = xmp_getattr, .readdir = xmp_readdir, .open = xmp_open, .read = xmp_read, }; int main(int argc, char *argv[]) { int fuse_stat; char* mirrorDir; mirrorDir = malloc(sizeof(strlen(argv[argc-2]+1))); if (mirrorDir == NULL) { perror("main calloc"); abort(); } // Pull the rootdir out of the argument list and save it in my internal data mirrorDir = realpath(argv[argc-2], NULL); argv[argc-2] = argv[argc-1]; argv[argc-1] = NULL; argc--; // turn over control to fuse fprintf(stderr, "about to call fuse_main\n"); fuse_stat = fuse_main(argc, argv, &xmp_oper, mirrorDir); fprintf(stderr, "fuse_main returned %d\n", fuse_stat); return fuse_stat; }
The error message "Transport endpoint is not connected" usually means a brick is offline or otherwise unable to communicate with gluster.
This typically is caused by the mount directory being left mounted due to a crash of your filesystem. Go to the parent directory of the mount point and enter fusermount -u YOUR_MNT_DIR
.
If this doesn't do the trick, do sudo umount -l YOUR_MNT_DIR
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With