Age | Commit message (Collapse) | Author | Files | Lines |
|
The problem was twofold:
1) irix returns 64 bit numbers in telldir(). The protocol uses a 32
bit resume key. We now cope with this properly using the code in
pvfs_list_seek_ofs().
2) irix returns 0xFFFFFFFF from telldir() for the last entry in the
directory. When added to DIR_OFFSET_BASE this became
DIR_OFFSET_DOTDOT which meant an infinite loop!
(This used to be commit 8cce9740ed0da9f08d6821beb4acaa9d28d149c2)
|
|
so we don't need them on the pvfs_file struct.
also we don't need to check is the handle has the correct session
as this is job of the frontend server
metze
(This used to be commit c83501335f245ac73b9d53c12efee3d46b8c5b05)
|
|
Commit the classic backwards compatible module which is the default one
(This used to be commit a89cc346b9296cb49929898d257a064a6c2bae86)
|
|
metze
(This used to be commit 4f1afda488f2fb5cfcf98ef6a56157f954fdccfc)
|
|
- to use a struct ntvfs_handle instead of a uint16_t fnum.
(to make it independend from the frontend protocol)
- the allocation of handles now is provided by the frontend
(smbsrv_*) via callbacks and not by each backend module
- this also makes sure that file handles are only passed
to the ntvfs subsystem when the tcon and session matches,
so modules can rely on this and need to check this.
- this allows multiple modules in the ntvfs module chain
to allocate file handles. This can be used for virtual
files like "\\$Extend\\$Quota:$Q:$INDEX_ALLOCATION"...
- also this will make SMB2 with 128 bit file handles possible
metze
(This used to be commit 287fc1c22d670f6e568014b420f7f4cb31dc7958)
|
|
per file handle and not per tree connect
metze
(This used to be commit 5d825261c0b8341f0a7f0f6d96d83807352566f4)
|
|
- make ntvfs_common a library
- create sys_notify library
metze
(This used to be commit a3e1d56cf7b688c515f5d6d4d43e0b24c2261d15)
|
|
new dependency/proto system :-)
(This used to be commit 63ae3f21e3471895ba83df1c2fdc4147090f7fdb)
|
|
- the process module subsystem should not know about smb_server.h
- the smb_server module should not know about process models
metze
(This used to be commit bac95bb8f4ad35a31ee666f5916ff9b2f292d964)
|
|
It doesn't fully work yet, and doesn't yet have all the efficiency
that is planned, but it doesn't break anything and I wanted to get the
code in the tree to minimise the chance of collisions with the work
metze is doing.
(This used to be commit 1624ea88e6eef89caacc36e7513aa79df0d579b9)
|
|
make sure file and search handles are cleaned up
before anything else in the pvfs_state struct,
as there destructors reply on a valid pvfs_state struct
metze
(This used to be commit aaa5d377b9b6145a83c0e686c7fbb7b561ae8988)
|
|
but I don't to get the commit to large, to I'll do this tomorrow...
metze
(This used to be commit 10e627032d7d04f1ebf6efed248c426614f5aa6f)
|
|
try to include just the BASENAME.h files (containing only structs)
(This used to be commit 3dd477ca5147f28a962b8437e2611a8222d706bd)
|
|
metze
(This used to be commit 5709c1c4e1a561dd9af98cfefbbbdac9b18765b7)
|
|
(for now we just do #define ntvfs_request smbsrv_request,
but it's the first step...)
- rename ntvfs_openfile() -> ntvfs_open()
- fix the talloc hierachie in some places in the ntvfs_map_*() code
metze
(This used to be commit ed9ed1f48f602354810937c0b0de850b44322191)
|
|
(This used to be commit 63917616016133c623fc6ff59454bc313ee7dd8f)
|
|
(This used to be commit 0aca5fd5130d980d07398f3291d294202aefe3c2)
|
|
(This used to be commit 87f665a1d5ba74289974bf9d8f9441c162e6f1b1)
|
|
- and make it it bit simpler, by caching the GUID struct instead of the device name
- and this also removes all compiler warnings...
metze
(This used to be commit f4f0d626e00116e85a91962bf8534c1fbb69334c)
|
|
directories open, but close search states based on an inactivity
timer, with a default of a 5 minute timeout
(This used to be commit 2e8d154e7dfb9b320a1344e957a39e96e1eefadd)
|
|
(This used to be commit 1f35642bed1129d0834906b3e94e8868992d6eb9)
|
|
Fix memory handling for blkid caches which need to be cleared when session is
done.
(This used to be commit c623cc60541f747f0a801eb77d97bb0a3bb6956f)
|
|
less likely that anyone will use pstring for new code
- got rid of winbind_client.h from includes.h. This one triggered a
huge change, as winbind_client.h was including system/filesys.h and
defining the old uint32 and uint16 types, as well as its own
pstring and fstring.
(This used to be commit 9db6c79e902ec538108d6b7d3324039aabe1704f)
|
|
pvfs_shortname
- made the mangle cache size configurable
(This used to be commit 4adbd01812a53395f175bd6d8e402ad5451f7561)
|
|
CREATOR_GROUP inheritance rules
(This used to be commit 0a29fb45c310b4b8c348d187b8ff1833deaac6c3)
|
|
attributes (streams, EAs, NT ACLs, timestamps etc) to be used on
filesystems that don't support xattrs. It also allows for large
streams, although they are very inefficient.
I won't enable this by default, as I really wrote it as a way of
testing large stream support while still using ext3, but perhaps with
a bit more work this could be generally usable.
To enable this use:
posix:eadb = /home/test/myeas.tdb
(This used to be commit 0c927d912cb65754351189d3a0442004a14aa5c6)
|
|
better default NT ACL in pvfs
(This used to be commit 9ff6ecbdb6c08528193f7958d7ea7d9a8df6defd)
|
|
- added support for sticky write times after a setfileinfo, by using a
write_time field in the DosAttrib xattr structure.
(This used to be commit 4a52fae82d8305e999f94f1947daa21dab54cdfd)
|
|
filesystem attribute reply
- pvfs passes the RAW-STREAMS test
(This used to be commit c1a48a7542a52df734b54031f405d574e4c891e3)
|
|
The trickiest part about this was getting the sharing and locking
rules right, as alternate streams are separate locking spaces from the
main file for the purposes of byte range locking, and separate for
most share violation rules.
I suspect there are still problems with delete on close with alternate
data streams. I'll look at that next.
(This used to be commit b6452c4a2068cf7e837778559da002ae191b508a)
|
|
(the IDL, and the load/save meta-data logic)
- changed pvfs_resolve_name() to default to non-wildcard, needing
PVFS_RESOLVE_WILDCARD to enable wildcards. Most callers don't want
wildcards, so defaulting this way makes more sense.
- fixed deletion of EAs
(This used to be commit e7afd4403cc1b7e0928776929f8988aa6f15640b)
|
|
BASE-DENYDOS test.
- pvfs now passes BASE-DENY1 and BASE-DENYDOS.
(This used to be commit aa09df22ee729c02552638859236d9068e9748ae)
|
|
preparation for adding code to pass the BASE-DENY1 and BASE-DENYDOS
tests, which require a shared filesystem handle for some specific
combinations of two DENY_DOS opens on the same connection.
(This used to be commit 6e4fdf01d19051e3923d7703dbf990fc1722b09a)
|
|
- added initial support for MODE_INFORMATION in setfileinfo (I have no
idea what "mode information" on a file is - it takes a value of 0,
2, 4 or 6. What could it be?)
(This used to be commit e53ec2f6b68e1d19149c36ea8fcd25a204db38fb)
|
|
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)
|
|
testing. Interestingly, w2k3 does not allow the cancel of an
outstanding async open request, whereas it does allow the cancel of an
outstanding async lock request. To support this I have changed the
pvfs_wait interface to provide a enum on why the event is happening,
so the callback can decide what to do.
(This used to be commit f23d6a28008a13588cde24b5012ec21e488ac47a)
|
|
"posix:sharedelay = usecs"
(This used to be commit c4758776491e5ed9f5b8c387226d1e75bc70eb2e)
|
|
outstanding async operation (triggering an immediate timeout).
pvfs now passes the RAW-MUX test
(This used to be commit 3423e2f41461d054067ef168b9b986f62cc8f77c)
|
|
deferred reply is short-circuited immediately when the file is
closed by another user, allowing it to be opened by the waiting user.
- added a sane set of timeval manipulation routines
- converted all the events code and code that uses it to use struct
timeval instead of time_t, which allows for microsecond resolution
instead of 1 second resolution. This was needed for doing the pvfs
deferred open code, and is why the patch is so big.
(This used to be commit 0d51511d408d91eb5f68a35e980e0875299b1831)
|
|
(This used to be commit 7c4e6ebf05790dd6e29896dd316db0fff613aa4e)
|
|
set at an arbitrary 5000)
- auto-cleanup old searches that the client forgot to close (common with old searches)
- expanded the RAW-SEARCH test to test more than 256 old searches, and
old search rewind (w2k3 fails this - it appears to not support rewind
on old style searches)
(This used to be commit bc83d823b2140a10007490bf0101843a886f99a6)
|
|
calls. This is needed to allow for "new files appear during a search"
behaviour
- pvfs now passes RAW-SEARCH
(This used to be commit 0d98f7653a1d58510a6cd4c2ac6c5e05c541109c)
|
|
backend that the underlying filesystem is case insensitive, so it can
bypass the directory search if the name is not found.
(This used to be commit d84ade90ce7e03ec749d6ae8dcdcb41de85d836e)
|
|
- added support for mandatory attributes in old style directory search
- we now pass BASE-DIR1 and BASE-DIR2
(This used to be commit efaa0eaec49e952aa515c3448246d9048a484c26)
|
|
(This used to be commit a953d4a42c8fa3fe930c319d5157fc406a1035da)
|
|
share_access support). This is enough for us to pass the BASE-DENY2
test, but is a long way from fully correct share modes.
(This used to be commit b5a6dd3cbf28a3a3b3a3656042ac8f50fca29e1c)
|
|
pvfs_open, and handle the various race conditions that are inherent in
cifs on unix, so we do the best we can when the race happens.
the ntcreatex code is really starting to take shape now
(This used to be commit 395c3815b468ae55de9a1135e478711f0e7d8cfc)
|
|
anything yet, but will soon be the core of the shares modes code.
(This used to be commit ad1edabf95c6c331aac4f0caa7d31193e26bc176)
|
|
want to expose the brl context structure outside the brlock.c
code. Instead, I now use "struct brl_context *" and rely on C being
happy to pass around pointers to unknown structures as long as they
are not dereferenced. I will be interested to see how the build farm
likes this.
(This used to be commit cb155c8ad837285c5a7f5b104968239df0b65fd2)
|
|
an extremely efficient way of mapping from an integer handle (such as
an open file handle) to a pointer (such as the structure containing
the open file information). The code is taken from lib/idr.c in the
2.6 Linux kernel, and is very fast and space efficient. By using
talloc it even has auto cleanup.
This commit converts the handling of open file handles and open
directory search handles to use the idtree routines. In combination
with talloc destructors, this simplifies the structure handling in the
pvfs backend a lot. For example, we no longer need to keep a linked
list of open directory searches at all, and we no longer need to do
linear scans of the list of open files on most operations.
The end result is that the pvfs code is now extremely scalable. You
can have 10s of thousands of open files and open searches and the code
still runs very fast.
I have also added a small optimisation into the file close path, to
avoid looking in the byte range locking database if we know that there
are no locks outstanding.
(This used to be commit 16835a0ef91a16fa01145b773aad8d43da215dbf)
|