Opened 16 years ago
Closed 14 years ago
#206 closed defect (wontfix)
the NDFS32 file system can handle EAs, at least with SMB plugin
Reported by: | Yuri Dario | Owned by: | bird |
---|---|---|---|
Priority: | normal | Milestone: | libc-0.6.4 |
Component: | libc-backend | Version: | 0.6.2 |
Severity: | normal | Keywords: | |
Cc: |
Description
Also the NDFS32 file system driver can handle extended attributes, at least with SMB plugin. Probably also the local and ramfs plugins could too.
Unfortunately this feature depends on the plugin used and so it depends on the mounted resource. This means a NDFS32 drive can handle EAs for some directories only.
The following patch enables EAs for NDFS32 too:
Index: fs.c =================================================================== --- fs.c (revision 3650) +++ fs.c (working copy) @@ -1817,6 +1817,7 @@ strncat(pFsInfo->szName, (const char *)&pfsqb->szName[pfsqb->cbName + 1], sizeof(pFsInfo->szName) - 1); if ( !strcmp(pFsInfo->szName, "JFS") || !strcmp(pFsInfo->szName, "HPFS") + || !strcmp(pFsInfo->szName, "NDFS32") || !strcmp(pFsInfo->szName, "FAT")) { pFsInfo->fZeroNewBytes = 1;
I wonder what happens if drives are added/removed while a libc program is running, not only for netdrive but also for lvm.
Change History (4)
comment:1 by , 16 years ago
comment:2 by , 16 years ago
TVFS also supports EAs if the underlying filesystem does. I don't think the source is available for TVFS so the environment variable approach would probably allow it for both.
comment:3 by , 16 years ago
I asked about adding DosFSCtl to the local plugin but Vitali does not believe that is the right approach: No, I do not think that it is a right solution to implement the additional unix extensions interface in the local plugin.
On local resources the proposed DosFSCtl interface is identical to the EA interface. Both depends on what is actually mounted as a local resource. libc can do the same things as the local plugin.
comment:4 by , 14 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
NDFS32 is a cameleon filesystem.
NetDrive is plugin based and it cannot be trusted to deliver reliable and fast EAs support. Using EAs over SMB is too unreliable, buggy and slow. This is why libc isn't doing this on the lan requester file systems either.
The only viable option would be for the SMB plugin to expose the unix extensions to SMB via DosFSCtl (or something), so libc doesn't have to emulate anything and can quietly fall back on standard behavior when these aren't available.
An alternative would be to add an environment variable or something where you could enable unix EAs on unsupported file systems.