Age | Commit message (Collapse) | Author | Files | Lines |
|
this is in preparation for other preallocation methods to be introduced.
|
|
|
|
|
|
posix_fallocate is more efficient than manual zero'ing the file. When
preallocation in kernel space is supported it's extremely fast. Support for
preallocation at fs layer via posix_fallocate and fallocate at kernel site
can be found in Linux kernel 2.6.23/glibc 2.10 with ext4, XFS and OCFS2. Other
systems that I know of which support fast preallocation in kernel space are
AIX 6.1 with JFS2 and recent Solaris versions with ZFS maybe UFS2, too.
People who have a system with preallocation in kernel space might want to set
"strict allocate = yes". This reduces file fragentation and it's also safer for
setups with quota being turned on.
As of today most systems still don't have preallocation in kernel space, and
that's why "strict allocate = no" will stay the default for now.
|
|
Step 0 to restore it as a per-share paramter
|
|
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.
|
|
Found with "dfree command" set
|
|
|
|
through functions. Will aid in making us pass RAW-SETFILEINFO.
Jeremy.
|
|
Jeremy.
|
|
to better describe what we're doing here.
Jeremy
|
|
create time from the existing timestamps (for systems
that need to do this). Once the write time is changed
via a sticky write, the create time might need to be
recalculated. To do this I needed to add a bool into
struct stat_ex to remember if the st_ex_btime field
was calculated, or read from the OS. Also fixed the
returning of modified write timestamps in the return
from NTCreateX, SMBattr and SMBattrE (which weren't
taking into account the modified timestamp stored
in the open file table). Attempting to fix an issue
with Excel 2003 and offline files. Volker and Metze,
please review.
Jeremy
|
|
Jeremy.
|
|
|
|
|
|
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.
|
|
|
|
This fixes a bug in 116ce19b, where we didn't clear the pid cache in
become_daemon() and thus the /var/run/smbd.pid didn't match the actual
pid of the parent process.
Currently S4 will clear the pid cache on fork but doesn't yet take
advantage of the pid cache by using sys_pid() instead of the direct
get_pid().
|
|
Jeremy.
|
|
|
|
|
|
Conflicts:
lib/replace/README
lib/replace/libreplace.m4
lib/replace/replace.c
source3/include/proto.h
source3/lib/system.c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Can someone with gpfs available test this ? The only codepath using this
function is the modules/gpfs.c module. The fix resolves at least the build
issues Samba has with recent kernel / libcap versions by using the portable
cap_get_proc()/cap_set_proc() interface (instead of using capget/capset).
Guenther
(This used to be commit 177955141247a4eb56ba0d82dc1add7f52175c40)
|
|
(This used to be commit 2cac1d3919a96c480f34c93d8b9b07782d46ed23)
|
|
Revert 5c347cb46d85d04bbba7c99dca7ff9628f977d84
"Choose a better default for sockaddr length.".
Jeremy.
(This used to be commit 677ac6adc38b0747f825ee597e0502277a8f74b1)
|
|
(This used to be commit 5c347cb46d85d04bbba7c99dca7ff9628f977d84)
|
|
Some systems (eg Mac OSX 10.5) require the length passed to match
the socket address family. This introduces sys_connect() that does
the right thing, and replaces all uses oc connect(2) with sys_connect().
Note that there are some LGPL callers that still call connect(2)
directly.
(This used to be commit e1bfdc17c49da582cdf907e260301ab1946b2ed3)
|
|
Remove all vestiges of pstring (except for smbctool as noted
in previous commit).
Jeremy
(This used to be commit 4c32a22ac50ada3275d2ffba3c1aa08bee7d1549)
|
|
lib/replace.
Michael
(This used to be commit a3fbb5323222334c86c0dc360df8c6a39039bbe6)
|
|
built against c90 compilers. (declaration after
statement.) Sample patch attached.
(This used to be commit 102a247df99967f25dbaf40c9be2d48a8e15c64c)
|
|
a bunch of #defines). Remove pstring from msdfs.c.
Jeremy.
(This used to be commit e203ba22275320808bc11b17361ad1f2d5b0b897)
|
|
metze
(This used to be commit fc98c1904865608509a01911afa46de74873ef41)
|
|
in any getnameinfo calls.
Jeremy
(This used to be commit 4d7badb0c44f287034f58d9a412e662c0fbecdc9)
|
|
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
|
|
We don't use gethostbyname any more except in one case where
we're looking for host aliases (I don't know how to do that
with getaddrinfo yet). New function should be getaddrinfo().
Next step will be fixing lib/access.c, and then changing
libsmb/namequery.c to cope with IPv6 address returns.
Jeremy.
(This used to be commit 4a56b697b6adcf095e25895c4a9ba3192ed34124)
|
|
under the 2 clause *BSD license for future use in IPv6 code. Original
code was from PostgreSQL and I've maintained their license even though
I've rewritten large parts of it (I probably should donate this back
to them).
Jeremy.
(This used to be commit 760d993340a966269d71acfb7a6b5e4d3776ac5d)
|
|
Jeremy.
(This used to be commit 6032fbc358c5015b2b6a23e13d978bf41ef9e5f3)
|
|
the main server code paths. We should now be able to cope with
paths up to PATH_MAX length now.
Final job will be to add the TALLOC_CTX * parameter to
unix_convert to make it explicit (for Volker).
Jeremy.
(This used to be commit 7f0db75fb0f24873577dcb758a2ecee74fdc4297)
|
|
Thanks!
(This used to be commit 4a90264d173ef5a870f2a44554c3bb9e738e98fb)
|
|
attached patches add EA support for Solaris. If no one disagrees, can
someone check this in please?
metze
(This used to be commit 81e5afc363e1f0bdc4768c0f5c696f4152fe5b44)
|
|
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
|