diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-11-05 07:29:02 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:05:30 -0500 |
commit | 9fe5fa11d637252f1fbe79c7baf778e2d3cdade2 (patch) | |
tree | 40f628c02dcc23d3ec4724e43cb9a6fcdeb5c548 /source4/ntvfs/posix/pvfs_open.c | |
parent | 0a8dff9e475aea5312ecc4bc283e8007ee653185 (diff) | |
download | samba-9fe5fa11d637252f1fbe79c7baf778e2d3cdade2.tar.gz samba-9fe5fa11d637252f1fbe79c7baf778e2d3cdade2.tar.bz2 samba-9fe5fa11d637252f1fbe79c7baf778e2d3cdade2.zip |
r3545: initial support for using extended attributes to hold extended dos attributes of files.
I decided to use IDL/NDR to encode the attribute, as it gives us a
simple way to describe and extend the saved attributes.
The xattr code needs to hook into quite a few more places in the pvfs
code, but this at least gets the basics done. I will start encoding
alternate data streams streams, DOS EAs etc soon using the same basic
mechanism.
I'll probably stick to "version 1" for the xattr.idl for quite a while
even though it will be changing, as I don't expect anyone to be
deploying this in production just yet. Once we have production users
we will need to keep compatibility by supporting all the old version
numbers in xattr.idl.
(This used to be commit c54253ed1b7dce1d14f43e747da61089aea87094)
Diffstat (limited to 'source4/ntvfs/posix/pvfs_open.c')
-rw-r--r-- | source4/ntvfs/posix/pvfs_open.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c index c8f96849ec..ed6da83e73 100644 --- a/source4/ntvfs/posix/pvfs_open.c +++ b/source4/ntvfs/posix/pvfs_open.c @@ -20,7 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include "include/includes.h" +#include "includes.h" #include "vfs_posix.h" #include "system/time.h" #include "system/filesys.h" @@ -330,6 +330,14 @@ static NTSTATUS pvfs_create_file(struct pvfs_state *pvfs, return status; } + +#if HAVE_XATTR_SUPPORT + name->dos.attrib = io->ntcreatex.in.file_attr; + if (pvfs->flags & PVFS_FLAG_XATTR_ENABLE) { + status = pvfs_xattr_save(pvfs, name, fd); + } +#endif + /* form the lock context used for byte range locking and opendb locking */ status = pvfs_locking_key(name, f, &f->locking_key); @@ -472,6 +480,10 @@ static void pvfs_open_retry(void *private, enum pvfs_wait_notice reason) return; } + /* re-mark it async, just in case someone up the chain does + paranoid checking */ + req->async_states->state |= NTVFS_ASYNC_STATE_ASYNC; + /* send the reply up the chain */ req->async_states->status = status; req->async_states->send_fn(req); |