From: Stef B. <st...@gm...> - 2010-01-22 22:38:33
|
Hello, I'm trying to build the lock function in my fs, but I don not have good examples how to do this. I've found something in fusexmp_fh.c: it just calls ulockmgr_op(): static int xmp_lock(const char *path, struct fuse_file_info *fi, int cmd, struct flock *lock) { (void) path; return ulockmgr_op(fi->fh, cmd, lock, &fi->lock_owner, sizeof(fi->lock_owner)); } Is this just it? By the way, what's different with the other fusexmp.c (the letters _fh are for?) Stef |
From: Sven U. <utc...@in...> - 2010-01-25 12:36:23
|
Hello Stef, can't help with the lock, but: > By the way, what's different with the other fusexmp.c (the letters > _fh are for?) file_handle --- saved in struct fuse_file_info.fh Sven -- _ ___ ___ ___ __| |/ __|| __|/ __| The dCache File System / _` | (__ | _| \__ \ An archive file-system for PB of data \__,_|\___||_| |___/ http://www.desy.de/~utcke/Data/ |
From: Stef B. <st...@gm...> - 2010-01-26 08:01:16
|
Ok, I've looked into the code of fusexmp.fh and it's one some point different from the 'original' fusexmp. For example the xmp_open function. At fusexmp, it opens the function, remembers the result, and closes it again, not remembering the filehandle. At fusexmp_fh, it also opens the file, but does not close it! There is a seperate function to do that, xmp_release. And the function xmp_write assumes the file is already open... Can you say that the implementation of fusexmp_fh is better when it comes to handling open/write/create actions? And the lock manager ulockmgr also can set a lock on a filehandle only if it is kept in de fs. I've already used this ulockmgr in my fs, but because my fs does not set the filehandle, it just does nothing, well setting locks on filehandle 0, which is /dev/null. Stef Stef 2010/1/25 Sven Utcke <utc...@in...>: > Hello Stef, > > can't help with the lock, but: > >> By the way, what's different with the other fusexmp.c (the letters >> _fh are for?) > > file_handle --- saved in struct fuse_file_info.fh > > Sven > -- > _ ___ ___ ___ > __| |/ __|| __|/ __| The dCache File System > / _` | (__ | _| \__ \ An archive file-system for PB of data > \__,_|\___||_| |___/ http://www.desy.de/~utcke/Data/ > > ------------------------------------------------------------------------------ > Throughout its 18-year history, RSA Conference consistently attracts the > world's best and brightest in the field, creating opportunities for Conference > attendees to learn about information security's most important issues through > interactions with peers, luminaries and emerging and established companies. > http://p.sf.net/sfu/rsaconf-dev2dev > _______________________________________________ > fuse-devel mailing list > fus...@li... > https://lists.sourceforge.net/lists/listinfo/fuse-devel > |
From: Stef B. <st...@gm...> - 2010-01-26 21:08:27
|
Yes!! I've implemented the functions in fusexmp_fh in my own filesystem, and it's running successfuly! The functions I'm talking about are fgetattr, opendir, releasedir, ftruncate, creeate, fsync,lock and release. Now my filesystem is making use of the automounter as mounthelper, and this is able to mount smb shares using cifs. When I open a file, for example a document in the /home/sbon/Workspace/Network/Windows Network/BONONLINE/LFS20060812/sbon/test.odt, the command ssh 192.168.0.2 smbstatus (192.168.0.2 is ipnumber of LFS20060812) Samba version 3.4.4 PID Username Group Machine ------------------------------------------------------------------- 7330 sbon netgroup 192.168.0.11 (192.168.0.11) Service pid machine Connected at ------------------------------------------------------- sbon 7330 192.168.0.11 Tue Jan 26 21:24:17 2010 Locked files: Pid Uid DenyMode Access R/W Oplock SharePath Name Time -------------------------------------------------------------------------------------------------- 7330 4000 DENY_NONE 0x83 RDWR NONE /home/sbon test.odt Tue Jan 26 21:24:23 2010 Now this is what I wanted!! The lock is also visible on the server!! At this moment I'm also working on an utility to show the mounts, remote resources, locked files and apps: root [ ~/bin ]# ./mount.md5.status Service User Security smb://LFS20060812/sbon/ sbon private /home/sbon/Workspace/Network/Windows Network/BONONLINE/LFS20060812/sbon /test.odt /opt/openoffice-3.1.1/program/soffice.bin-writer - 3492 (sorry for the bad outlining..) Now where can I find the kind of lock, just like smbstatus in the system? Somewhere in /proc ?? Stef |