xrgtn / nullfs Goto Github PK
View Code? Open in Web Editor NEWFUSE nullfs drivers
FUSE nullfs drivers
Some trackers require a minimum download traffic for a certain time.
So far I have always been able to download torrents to nullfs. I have used qBittorrent or Deluge to do this. Strangely recently I am no longer able to do this. What happens:
The torrent client starts downloading, gets about 10-15Mb of data and shows an error message about the local file.
I tried recompiling nullfs, thinking that it might have become incompatible with newer system libs. Unfortunately, that didn't help and the issue remains.
What could be the reason?
How come so far this worked but not any more?
alec@greenlane:~/nullfs$ make nulnfs
cc "-lfuse" nulnfs.c -o nulnfs
nulnfs.c: In function ‘alloc_dirent’:
nulnfs.c:118:13: warning: format ‘%i’ expects argument of type ‘int’, but argument 5 has type ‘__off64_t’ [-Wformat]
nulnfs.c: In function ‘nullfs_ll_opendir’:
nulnfs.c:222:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
nulnfs.c:224:9: warning: format ‘%i’ expects argument of type ‘int’, but argument 3 has type ‘fuse_ino_t’ [-Wformat]
nulnfs.c: In function ‘nullfs_ll_readdir’:
nulnfs.c:284:9: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 5 has type ‘uint64_t’ [-Wformat]
/tmp/ccCcyBFJ.o: In function nullfs_ll_lookup': nulnfs.c:(.text+0x610): undefined reference to
fuse_reply_err'
nulnfs.c:(.text+0x75c): undefined reference to fuse_reply_entry' /tmp/ccCcyBFJ.o: In function
nullfs_ll_opendir':
nulnfs.c:(.text+0x798): undefined reference to fuse_reply_err' nulnfs.c:(.text+0x7b0): undefined reference to
fuse_reply_err'
nulnfs.c:(.text+0x7f7): undefined reference to fuse_reply_err' nulnfs.c:(.text+0x847): undefined reference to
fuse_reply_open'
/tmp/ccCcyBFJ.o: In function calculate_ls_buf': nulnfs.c:(.text+0x8fd): undefined reference to
fuse_dirent_size'
/tmp/ccCcyBFJ.o: In function nullfs_ll_readdir': nulnfs.c:(.text+0x9b2): undefined reference to
fuse_reply_err'
nulnfs.c:(.text+0x9ca): undefined reference to fuse_reply_err' nulnfs.c:(.text+0xa11): undefined reference to
fuse_reply_err'
nulnfs.c:(.text+0xa7f): undefined reference to fuse_reply_err' nulnfs.c:(.text+0xb36): undefined reference to
fuse_reply_buf'
nulnfs.c:(.text+0xb5e): undefined reference to fuse_reply_err' nulnfs.c:(.text+0xbd8): undefined reference to
fuse_add_direntry'
nulnfs.c:(.text+0xc4b): undefined reference to fuse_reply_buf' /tmp/ccCcyBFJ.o: In function
nullfs_ll_getattr':
nulnfs.c:(.text+0xc93): undefined reference to fuse_reply_err' nulnfs.c:(.text+0xccc): undefined reference to
fuse_reply_attr'
/tmp/ccCcyBFJ.o: In function main': nulnfs.c:(.text+0x10dc): undefined reference to
fuse_parse_cmdline'
nulnfs.c:(.text+0x10fb): undefined reference to fuse_mount' nulnfs.c:(.text+0x1125): undefined reference to
fuse_lowlevel_new'
nulnfs.c:(.text+0x113c): undefined reference to fuse_set_signal_handlers' nulnfs.c:(.text+0x1154): undefined reference to
fuse_session_add_chan'
nulnfs.c:(.text+0x1160): undefined reference to fuse_session_loop' nulnfs.c:(.text+0x116f): undefined reference to
fuse_remove_signal_handlers'
nulnfs.c:(.text+0x117b): undefined reference to fuse_session_remove_chan' nulnfs.c:(.text+0x1187): undefined reference to
fuse_session_destroy'
nulnfs.c:(.text+0x11a6): undefined reference to fuse_unmount' nulnfs.c:(.text+0x11b2): undefined reference to
fuse_opt_free_args'
collect2: error: ld returned 1 exit status
make: *** [nulnfs] Error 1
alec@greenlane:~/nullfs$ make nul1fs
cc "-lfuse" nul1fs.c -o nul1fs
/tmp/ccY5WKz3.o: In function main': nul1fs.c:(.text+0x3c3): undefined reference to
fuse_main_real'
collect2: error: ld returned 1 exit status
make: *** [nul1fs] Error 1
Imagine that we have user "user" with uid=500 in group "group" with gid 500.
One can mount nul1fs to some place with uid and gid options. There is no problems here.
[root@host nullfs]# ./nul1fs -o uid=500,gid=500 /tmp/nul1fs
[root@host nullfs]# ls -lad /tmp/nul1fs
drwxrwxrwx 2 user group 0 Мар 6 16:43 /tmp/nul1fs
But later when we want to read or write something to this directory we will get "Permission denied"
[root@host nullfs]# su - user
[user@host ~]$ touch /tmp/nul1fs/sdf
touch: cannot touch `/tmp/nul1fs/sdf': Permission denied
[user@host ~]$ ls /tmp/nul1fs
ls: /tmp/nul1fs: Permission denied
But from "root" account we still can read and write as usual. And it returns us file with user:group ownerships.
[user@host nullfs]# ls -la /tmp/nul1fs/sdfdsf
-rw-rw-rw- 1 user group 0 Мар 6 17:04 /tmp/nul1fs/sdfdsf
I've installed libfuse-dev, downloaded zip, extracted it and ran make nul1fs, result is below:
gendalph@namo:~/nullfs-master$ make nul1fs
cc "-lfuse" nul1fs.c -o nul1fs
/tmp/ccKSs0Ur.o: In function `main':
nul1fs.c:(.text+0x4ae): undefined reference to `fuse_main_real'
collect2: ld returned 1 exit status
make: *** [nul1fs] Error 1
Workaround was to install pkg-config and compiling manually.
gcc -Wall -o nul1fs nul1fs.c $(pkg-config fuse --cflags --libs)
My workaround: adding these to Makefile
CFLAGS = -Wall `pkg-config fuse --cflags --libs`
nul1fs:
gcc -o nul1fs nul1fs.c $(CFLAGS)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.