1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

26 Commits

Author SHA1 Message Date
Tim Prouty
e129384d7c s3: Plumb smb_filename through SMB_VFS_STAT and SMB_VFS_LSTAT
This patch introduces two new temporary helper functions
vfs_stat_smb_fname and vfs_lstat_smb_fname.  They basically allowed me
to call the new smb_filename version of stat, while avoiding plumbing
it through callers that are still too inconvenient.  As the conversion
moves along, I will be able to remove callers of this, with the goal
being to remove all callers.

There was also a bug in create_synthetic_smb_fname_split (also a
temporary utility function) that caused it to incorrectly handle
filenames with ':'s in them when in posix mode.  This is now fixed.
2009-06-24 21:15:25 -07:00
Tim Prouty
4e3656b8d1 s3: Change SMB_VFS_OPEN to take an smb_filename struct
This was a little messy because of all of the vfs modules I had to
touch.  Most of them were pretty straight forward, but the streams
modules required a little attention to handle smb_filename.  Since the
use of smb_filename enables the vfs modules to access the raw,
over-the-wire stream, a little bit of the handling that was being done
by split_ntfs_stream_name has now been shifted into the individual
stream modules.  It may be a little more code, but overall it gives
more flexibility to the streams modules, while also allowing correct
stream handling.
2009-06-17 20:11:53 -07:00
Volker Lendecke
49ca690b4b Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STAT
This patch introduces

struct stat_ex {
        dev_t           st_ex_dev;
        ino_t           st_ex_ino;
        mode_t          st_ex_mode;
        nlink_t         st_ex_nlink;
        uid_t           st_ex_uid;
        gid_t           st_ex_gid;
        dev_t           st_ex_rdev;
        off_t           st_ex_size;
        struct timespec st_ex_atime;
        struct timespec st_ex_mtime;
        struct timespec st_ex_ctime;
        struct timespec st_ex_btime; /* birthtime */
        blksize_t       st_ex_blksize;
        blkcnt_t        st_ex_blocks;
};
typedef struct stat_ex SMB_STRUCT_STAT;

It is really large because due to the friendly libc headers playing macro
tricks with fields like st_ino, so I renamed them to st_ex_xxx.

Why this change? To support birthtime, we already have quite a few #ifdef's at
places where it does not really belong. With a stat struct that we control, we
can consolidate the nanosecond timestamps and the birthtime deep in the VFS
stat calls.

At this moment it is triggered by a request to support the birthtime field for
GPFS. GPFS does not extend the system level struct stat, but instead has a
separate call that gets us the additional information beyond posix. Without
being able to do that within the VFS stat calls, that support would have to be
scattered around the main smbd code.

It will very likely break all the onefs modules, but I think the changes will
be reasonably easy to do.
2009-05-26 17:48:23 +02:00
Jeremy Allison
76ca297ecf Fix use of streams modules with CIFSFS client.
Jeremy.
2009-02-25 13:46:21 -08:00
Tim Prouty
122dbbf00a s3 vfs: Add a destructor to the fsp extension data API
I'm not certain if the dummy pointer is needed in struct vfs_fsp_data,
but I added it to be consistent with the comment below.
2009-02-09 23:46:12 -08:00
Tim Prouty
b8f7cdbd79 s3: Add a new SMB_VFS_GET_ALLOC_SIZE vfs operation
This allows module implementors to customize what allocation size is
returned to the client.
2009-01-29 15:29:33 -08:00
Tim Prouty
29384794cc s3: Remove rendundant op_tuple entry in xattr streams 2009-01-09 11:50:28 -08:00
Tim Prouty
7ae992b622 s3: Remove a few unnecessary checks from the streams xattr module
Handling of error codes when renaming a file to a stream and a stream
to a file is now done in rename_internals_fsp.

The NTRENAME stream path only passes in the stream name, so the new
base can now be different from the old base.
2009-01-04 19:31:30 -08:00
Stefan Metzmacher
65169a43b3 s3:streams_xattr: fstat should do a stat on the base file
The behavior of stat and fstat should be the same.

metze
2008-12-01 14:26:58 -08:00
Stefan Metzmacher
a8004a4ef5 s3:streams_xattr: recheck fsp->fsp_name after a rename
metze
2008-12-01 14:25:20 -08:00
Stefan Metzmacher
9ae1a17c95 s3:streams_xattr: add support for renaming streams
metze
2008-12-01 13:54:53 -08:00
Jeremy Allison
338303eb37 Rever 83ff6979f5 - "Fix the logic bug that caused us to
run into kernel oplocks on an open for a stream inside a file with stream_xattr module. On
opening the base_fsp we must break existing oplocks." as it broke make test.
Jeremy.
2008-11-21 22:48:37 -08:00
Jeremy Allison
83ff6979f5 Fix the logic bug that caused us to run into kernel oplocks on an open for a stream inside a file with stream_xattr module. On opening the base_fsp we must break existing oplocks.
Jeremy.
2008-11-21 18:20:38 -08:00
Jeremy Allison
ecd8c5d307 Use fxattr calls whenever possible (trying to work around the strange Linux kernel oplock bug).
Jeremy.
2008-11-21 16:02:31 -08:00
Jeremy Allison
8d674e351a Second part of the fix for bug #5903 - vfs_streams_xattr breaks contents of the file
(also fix a bad merge of the previous patch from 3.3).
Jeremy.
2008-11-21 15:42:03 -08:00
Michael Adam
0db7aba8af Remove redundant parameter fd from SMB_VFS_CLOSE().
Now all those redundant fd's have vanished from the VFS API.

Michael
(This used to be commit 1429453551)
2008-04-21 00:22:42 +02:00
Volker Lendecke
a4c2b04a2b Hide streams from the EA API
(This used to be commit e9bb3d5067)
2008-01-22 12:29:02 +01:00
Volker Lendecke
9a22653222 Add SMB_VFS_FS_CAPABILITIES
It turns out that this is a necessary operation, separate from statvfs. statvfs
can fail during tcon, so conn->fs_capabilities would never see that we support
streams on a particular share.

James, can you check that I got the darwin variant right? Thanks!
(This used to be commit 3ad798d803)
2008-01-21 16:14:27 +01:00
Volker Lendecke
33f3eeaa00 Fix some "set but never used" warnings
(This used to be commit 4a6dadc517)
2008-01-20 17:44:40 +01:00
Volker Lendecke
bf7f13c9a7 Fix valgrind errors
(This used to be commit d7e6ec2258)
2008-01-20 15:29:58 +01:00
Volker Lendecke
fe57c149f0 Do not use an unfinished fsp in streams_xattr_open
(This used to be commit 023b313d0d)
2008-01-20 14:09:08 +01:00
Volker Lendecke
6fcbb1111d In streams_xattr_pwrite, base_fsp does not have an fd
These bugs haven't shown up when I did my tests with real xattrs, not with the
xattr_tdb backend. It worked because the stream fsp does has the base file as
fd.
(This used to be commit b7022f8f7b)
2008-01-20 14:05:36 +01:00
Volker Lendecke
4222fa62e9 Add some DEBUG
(This used to be commit 8db25aba63)
2008-01-20 13:55:27 +01:00
Volker Lendecke
a39771d3d2 For pread/pwrite we need to do the setxattr on base_fsp
(This used to be commit d481dddc81)
2008-01-20 13:51:52 +01:00
Volker Lendecke
a6fcaf73d7 Really remove the _NEXT_ from vfs_xattr_tdb.c
This must have been lost somewhere in my patch-mangling
(This used to be commit c1794375d1)
2008-01-20 13:49:38 +01:00
Volker Lendecke
4ba64fce49 vfs_streams_xattr module
Store streams in posix xattrs. A kludge, as xattrs are limited in many ways,
but it might be a help for some situations.
(This used to be commit 83a805220e)
2008-01-19 23:34:22 +01:00