diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-12-17 04:51:23 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:07:28 -0500 |
commit | 3b8e83a8c8f32ca658841f1fae344399a48d66a4 (patch) | |
tree | febc6b07ebea32366b3ecc8f7b4862f7294e6798 /source4/ntvfs/posix/pvfs_mkdir.c | |
parent | 50005129ab0a5c5f2422460e6d7c19616e5e1124 (diff) | |
download | samba-3b8e83a8c8f32ca658841f1fae344399a48d66a4.tar.gz samba-3b8e83a8c8f32ca658841f1fae344399a48d66a4.tar.bz2 samba-3b8e83a8c8f32ca658841f1fae344399a48d66a4.zip |
r4243: a sniff from kukks showed that the ea_set interface in trans2 setfileinfo allows
for multiple EAs to be set at once. This fixes all the ea code to allow for that.
(This used to be commit b26828bef5d55e5eef0e34a164e76292df45e207)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_mkdir.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_mkdir.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/source4/ntvfs/posix/pvfs_mkdir.c b/source4/ntvfs/posix/pvfs_mkdir.c index b43e67faed..549f4b9780 100644 --- a/source4/ntvfs/posix/pvfs_mkdir.c +++ b/source4/ntvfs/posix/pvfs_mkdir.c @@ -32,7 +32,6 @@ static NTSTATUS pvfs_t2mkdir(struct pvfs_state *pvfs, NTSTATUS status; struct pvfs_filename *name; mode_t mode; - int i; /* resolve the cifs name to a posix name */ status = pvfs_resolve_name(pvfs, req, md->t2mkdir.in.path, 0, &name); @@ -60,12 +59,12 @@ static NTSTATUS pvfs_t2mkdir(struct pvfs_state *pvfs, } /* setup any EAs that were asked for */ - for (i=0;i<md->t2mkdir.in.num_eas;i++) { - status = pvfs_setfileinfo_ea_set(pvfs, name, -1, &md->t2mkdir.in.eas[i]); - if (!NT_STATUS_IS_OK(status)) { - rmdir(name->full_name); - return status; - } + status = pvfs_setfileinfo_ea_set(pvfs, name, -1, + md->t2mkdir.in.num_eas, + md->t2mkdir.in.eas); + if (!NT_STATUS_IS_OK(status)) { + rmdir(name->full_name); + return status; } return NT_STATUS_OK; @@ -129,6 +128,11 @@ NTSTATUS pvfs_rmdir(struct ntvfs_module_context *ntvfs, return NT_STATUS_OBJECT_NAME_NOT_FOUND; } + status = pvfs_xattr_unlink_hook(pvfs, name->full_name); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + if (rmdir(name->full_name) == -1) { return pvfs_map_errno(pvfs, errno); } |