diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-11-15 06:57:26 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:50 -0500 |
commit | 187412f3da4fbc6feeca15bd0c2527534255964e (patch) | |
tree | bd09f3cab5515bd89233a509d2a42238894f24eb /source4/ntvfs/posix/pvfs_setfileinfo.c | |
parent | 4719461a07a5494f01b4295e6f9e0479ea8e96a0 (diff) | |
download | samba-187412f3da4fbc6feeca15bd0c2527534255964e.tar.gz samba-187412f3da4fbc6feeca15bd0c2527534255964e.tar.bz2 samba-187412f3da4fbc6feeca15bd0c2527534255964e.zip |
r3747: - added some of the infrastructure needed for streams support in pvfs
(the IDL, and the load/save meta-data logic)
- changed pvfs_resolve_name() to default to non-wildcard, needing
PVFS_RESOLVE_WILDCARD to enable wildcards. Most callers don't want
wildcards, so defaulting this way makes more sense.
- fixed deletion of EAs
(This used to be commit e7afd4403cc1b7e0928776929f8988aa6f15640b)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_setfileinfo.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_setfileinfo.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/source4/ntvfs/posix/pvfs_setfileinfo.c b/source4/ntvfs/posix/pvfs_setfileinfo.c index b9ed592bf4..7ba64979c3 100644 --- a/source4/ntvfs/posix/pvfs_setfileinfo.c +++ b/source4/ntvfs/posix/pvfs_setfileinfo.c @@ -70,7 +70,7 @@ static NTSTATUS pvfs_setfileinfo_rename(struct pvfs_state *pvfs, } /* resolve the new name */ - status = pvfs_resolve_name(pvfs, name, new_name, PVFS_RESOLVE_NO_WILDCARD, &name2); + status = pvfs_resolve_name(pvfs, name, new_name, 0, &name2); if (!NT_STATUS_IS_OK(status)) { return status; } @@ -144,6 +144,17 @@ static NTSTATUS pvfs_setfileinfo_ea_set(struct pvfs_state *pvfs, ealist->num_eas++; save: + /* pull out any null EAs */ + for (i=0;i<ealist->num_eas;i++) { + if (ealist->eas[i].value.length == 0) { + memmove(&ealist->eas[i], + &ealist->eas[i+1], + (ealist->num_eas-(i+1)) * sizeof(ealist->eas[i])); + ealist->num_eas--; + i--; + } + } + status = pvfs_doseas_save(pvfs, name, fd, ealist); if (!NT_STATUS_IS_OK(status)) { return status; @@ -348,8 +359,7 @@ NTSTATUS pvfs_setpathinfo(struct ntvfs_module_context *ntvfs, struct utimbuf unix_times; /* resolve the cifs name to a posix name */ - status = pvfs_resolve_name(pvfs, req, info->generic.file.fname, - PVFS_RESOLVE_NO_WILDCARD, &name); + status = pvfs_resolve_name(pvfs, req, info->generic.file.fname, 0, &name); if (!NT_STATUS_IS_OK(status)) { return status; } |