summaryrefslogtreecommitdiff
path: root/source3/modules/onefs_open.c
AgeCommit message (Collapse)AuthorFilesLines
2009-11-23Revert "s3: Make the implicit reference to Protocol in is_in_path() explicit"Volker Lendecke1-2/+1
This reverts commit f7b4151a64d8c6851e62255a7139fd00a5fc63a3.
2009-11-21s3: Make the implicit reference to Protocol in is_in_path() explicitVolker Lendecke1-1/+2
2009-11-17Remove "store create time" code, cause create time to be storedJeremy Allison1-1/+1
in the "user.DOSATTRIB" EA. From the docs: In Samba 3.5.0 and above the "user.DOSATTRIB" extended attribute has been extended to store the create time for a file as well as the DOS attributes. This is done in a backwards compatible way so files created by Samba 3.5.0 and above can still have the DOS attribute read from this extended attribute by earlier versions of Samba, but they will not be able to read the create time stored there. Storing the create time separately from the normal filesystem meta-data allows Samba to faithfully reproduce NTFS semantics on top of a POSIX filesystem. Passes make test but will need more testing. Jeremy.
2009-10-06s3: Add access_mask to the flock VFS callAbhidnya P Chirmule1-1/+1
2009-09-24s3 onefs: Fix 1 second share mode delay handlingSteven Danneman1-3/+33
When racing to the open and loosing we may get a share_mode violation. In this case handle the 1-second delay via a defferred open properly. This requires us to retrieve the share_mode_lock before deferring open so we don't dereference a NULL pointer assuming we already had the lck because we were the first opener.
2009-09-24s3 onefs: Fix a race condition exists in onefs_open.c between multiple opens ↵Steven Danneman1-5/+19
to the same file. Two openers can stat a file at the same time, see that it doesn't exist, and then both race to open it first. The loser will enter onefs_open_file_ntcreate believing that the file doesnt exist, and thus skip any current state lookups for that file. This includes setting the file_id, and having a valid stat buffer. Normally on first create the file_id will be set during the open, but the second opener in this scenario may fail the open (oplock/share mode) and file_id will not be set, nor will the stat buffer be valid. In the error paths of this patch, we now double check that the file_id and the stat buffer are valid before doing other operations.
2009-09-24s3 onefs: Add some debugging/asserts to give more info when there is bad ↵Zack Kirsch1-9/+24
deferred open state. Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-07-20s3: Finish plumbing the fsp->fsp_name smb_fname conversion through the modules.Tim Prouty1-8/+10
2009-07-08s3: Prepare open.c to switch fsp_name to an smb_filename structTim Prouty1-12/+15
2009-07-08s3: Change the share_mode_lock struct to store a base_name and stream_nameTim Prouty1-15/+7
2009-07-08s3: Plumb smb_filename through dos_mode() and related funtionsTim Prouty1-2/+1
2009-07-08s3: convert unix_mode to take an smb_filenameTim Prouty1-3/+3
2009-07-01s3:onefs_open: remove unused variable passed to parent_dirname()Stefan Metzmacher1-2/+1
metze
2009-06-25s3 onefs: Plumb smb_filename through onefs createfile pathTim Prouty1-176/+200
2009-06-17s3 onefs: Remove dfs resolution from create_file() now that it's being done ↵Tim Prouty1-22/+1
at a higher level
2009-06-17s3: Plumb smb_filename from create_file all of the way down to fd_openTim Prouty1-7/+2
I used the smb_filename struct everywhere that was feasible for the first pass. There are still some places in this path that need to be changed to use smb_filename, but this is a good start. I also: - Removed fname/path arguments from a few functions that weren't really using them. - Added a utility function for detecting whether an smb_filename is a stream.
2009-06-15s3 onefs: Change onefs modules to use the new createfile apiTim Prouty1-27/+13
2009-06-10s3: Remove unix_convert handling from createfile implementationsTim Prouty1-30/+4
2009-05-28s3 onefs: update the onefs module to be compliant with stat_exTim Prouty1-19/+19
2009-05-21s3 onefs: Fix invalid argument from the unix_convert smb_filename struct patchTim Prouty1-1/+1
2009-05-20s3: Change unix_convert (and its callers) to use struct smb_filenameTim Prouty1-2/+13
This is the first of a series of patches that change path based operations to operate on a struct smb_filename instead of a char *. This same concept already exists in source4. My goals for this series of patches are to eventually: 1) Solve the stream vs. posix filename that contains a colon ambiguity that currently exists. 2) Make unix_convert the only function that parses the stream name. 3) Clean up the unix_convert API. 4) Change all path based vfs operation to take a struct smb_filename. 5) Make is_ntfs_stream_name() a constant operation that can simply check the state of struct smb_filename rather than re-parse the filename. 6) Eliminate the need for split_ntfs_stream_name() to exist. My strategy is to start from the inside at unix_convert() and work my way out through the vfs layer, call by call. This first patch does just that, by changing unix_convert and all of its callers to operate on struct smb_filename. Since this is such a large change, I plan on pushing the patches in phases, where each phase keeps full compatibility and passes make test. The API of unix_convert has been simplified from: NTSTATUS unix_convert(TALLOC_CTX *ctx, connection_struct *conn, const char *orig_path, bool allow_wcard_last_component, char **pp_conv_path, char **pp_saved_last_component, SMB_STRUCT_STAT *pst) to: NTSTATUS unix_convert(TALLOC_CTX *ctx, connection_struct *conn, const char *orig_path, struct smb_filename *smb_fname, uint32_t ucf_flags) Currently the smb_filename struct looks like: struct smb_filename { char *base_name; char *stream_name; char *original_lcomp; SMB_STRUCT_STAT st; }; One key point here is the decision to break up the base_name and stream_name. I have introduced a helper function called get_full_smb_filename() that takes an smb_filename struct and allocates the full_name. I changed the callers of unix_convert() to subsequently call get_full_smb_filename() for the time being, but I plan to eventually eliminate get_full_smb_filename().
2009-05-19s3 onefs: Removing an incorrect TALLOC_FREEAravind Srinivasan1-1/+0
Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-05-12s3 onefs: Fix ignore sacl parameterTim Prouty1-5/+5
2009-04-01s3 onefs: Quiet a log message about oplocks being requested on streamsTim Prouty1-21/+16
2009-03-31s3 onefs: Add missing newlines to debug statements in the onefs moduleTim Prouty1-4/+5
2009-03-25Add missing newlines to debug statementsSteven Danneman1-2/+2
2009-03-23s3 OneFS: Remove usage of non-existant functionTim Prouty1-9/+0
The function was removed in: c16c90a1cb3b0e2ceadd3dea835a4e69acfc2fae
2009-03-04s3 OneFS: Use the public open_streams_for_deleteTim Prouty1-113/+0
2009-03-03s3 OneFS: Add parameter to ignore streamsTim Prouty1-1/+1
2009-03-01s3 OneFS: Refactor config code and cleanup includesTim Prouty1-0/+3
2009-02-18s3: Fix OneFS bug opening streams with truncating dispositionAravind Srinivasan1-1/+1
Do not attempt to delete streams on a truncating open, if the name we're opening is itself a stream
2009-02-12s3 onefs: rename custom parameter to plural to match previous usageSteven Danneman1-1/+1
2009-02-11s3 OneFS: Expand the usage of the ignore sacl parametertodd stecher1-0/+5
2009-02-09s3 OneFS: Add kernel oplocks implementationTim Prouty1-26/+129
A few functions in oplocks_onefs.c need to be accessed from the onefs vfs module. It would be ideal if oplocks were implemented at the vfs layer, but since they aren't yet, a new header is added to source3/include to make these functions available to the onefs vfs module. oplocks_onefs.o doesn't need to be linked into the onefs vfs module explicitly, since it is already linked into smbd by default.
2009-01-11s3: Add OneFS alternate data streams implementationTim Prouty1-12/+41
2009-01-11s3: General cleanup of the open path in the OneFS vfs moduleTim Prouty1-15/+2
2008-12-31s3: Fix caller of print_fsp_openTim Prouty1-3/+3
2008-12-31Rename parent_dirname_talloc() to parent_dirname()Volker Lendecke1-4/+2
2008-12-09s3: [3/3]: Fix a delete on close divergence from windows and the associated ↵Tim Prouty1-3/+2
torture test This third patch cleans up by removing all of the code that is made obsolete by the first patch. It should cause no functional changes.
2008-12-09s3: Add the OneFS SMB_VFS_CREATE_FILE implementationTim Prouty1-658/+784
This is the first pass at extending the onefs vfs module to support the CIFS-specific enhancements available on OneFS. Most of this patch is massaging the sama open path to work with ifs_createfile. ifs_createfile is a CIFS-specific syscall for opening/files and directories. It adds support for: - Full in-kernel access checks using a windows access_mask - Cluster-coherent share mode locks - Cluster-coherent oplocks - Streams - Setting security descriptors at create time - Setting dos_attributes at create time This patch does not implement the samba side of the streams support or oplocks support. Tests that expect oplocks to be granted or streams to be supported will fail. This will be remedied in upcoming patches.
2008-12-09s3: Add onefs_open.c with code copied verbatim from smbd/open.cTim Prouty1-0/+2028
This is an intermediate step that makes it much easier to see how the OneFS SMB_VFS_CREATE_FILE implementation diverges from stock samba. The goal is that more common code can be refactored into utility functions.