Andrew Morton [Thu, 26 Feb 2004 14:51:58 +0000 (06:51 -0800)]
[PATCH] Add a MODULE_VERSION macro
From: Rusty Russell <rusty@au1.ibm.com>
The way it works is that the .mod file contains the name of the module (as
before), but succeeding lines are the constituent parts (assumed to be .c
files, which usually works: if they use MODULE_VERSION in a file for which
this isn't true we'll get a warning).
As we postprocess modules, we look in the .modinfo section for a
"version=", which is placed by the MODULE_VERSION() macro. This will be of
form "version=<macroarg>" "\0" [24 chars] "\0". The 24 chars are replaced
by the md4 sum of the .c files and any files they #include using '#include
"file"' which are found in the current directory. Whitespace is collapsed
outside strings, and comments are ignored for purposes of the sum.
At the kernel summit, various people asked for a MODULE_VERSION macro to
store module strings (for later access through sysfs). A simple md4 is
needed to identify changes in modules which, inevitably, do not update the
version. It skips whitespace and comments, and includes #includes which
are in the same dir.
The module versions should be set according to this definition, based on
the RPM one, or CVS Revision tags. Violators will be shot.
[<epoch>`:']<version>[`-'<extraversion>]
<epoch>: A (small) unsigned integer which allows you to start versions
anew. If not mentioned, it's zero. eg. "2:1.0" is after
"1:2.0".
<version>: The <version> may contain only alphanumerics.
<extraversion>: Like <version>, but inserted for local
customizations, eg "rh3" or "rusty1".
Comparison of two versions (assuming same epoch):
Split each into all-digit and all-alphabetical parts. Compare each one one
at a time: digit parts numerically, alphabetical in ASCII order. So 0.10
comes after 0.9.
Andrew Morton [Thu, 26 Feb 2004 14:51:46 +0000 (06:51 -0800)]
[PATCH] kNFSd: return more than one page of directory entries.
From: NeilBrown <neilb@cse.unsw.edu.au>
From: Bruce Allan <bwa@us.ibm.com>
This requires checking if the entry will fit in the current page and, if it
doesn't, encoding it into the next page, and then copying it back to lie
across the boundary between two pages.
Andrew Morton [Thu, 26 Feb 2004 14:50:27 +0000 (06:50 -0800)]
[PATCH] kNFSd: Enforce open_downgrade requirement
From: NeilBrown <neilb@cse.unsw.edu.au>
The spec requires that the access and deny bits requested in open_downgrade
represent the union of the bits for some subset of the OPENS for the given
open_owner and file. Enforce that requirement.
Andrew Morton [Thu, 26 Feb 2004 14:49:20 +0000 (06:49 -0800)]
[PATCH] kNFSd: move fh_dup2 and fix it
From: NeilBrown <neilb@cse.unsw.edu.au>
fh_dup2 duplicates an entire svc_fh structure, so in addition to dget()'ing
the dentry, it also needs to bump the reference count on fh_export.
Moved it out of the header file into nfsfh.c for the simple reason that I
couldn't figure out how to reorganize the headers files right so that the
fh_dup2 could use the definition of svc_fh. Since fh_dup2 is never actually
used outside of nfs4proc.c, it could just as well be moved there....
Andrew Morton [Thu, 26 Feb 2004 14:48:26 +0000 (06:48 -0800)]
[PATCH] kNFSd: correct symlink related error returns.
From: NeilBrown <neilb@cse.unsw.edu.au>
unlike v2/v3, nfsv4 returns nfserr_inval when attempting to read, write,
commit or test lock a symlink. nfsv4 does return nfserr_symlink on lookup
and open, so a simple fix in fh_verify() will not work.
Andrew Morton [Thu, 26 Feb 2004 14:47:08 +0000 (06:47 -0800)]
[PATCH] kNFSd: Use only the uid when deciding whether a setclientid is being done with the "same principal".
From: NeilBrown <neilb@cse.unsw.edu.au>
I would have assumed that we should also check for the same security
(pseudo)flavor, but that doesn't seem to be how Solaris does it, and since
the spec doesn't suggest including such information in the clientid, that
would make it impossible to switch pseudoflavors.
Andrew Morton [Thu, 26 Feb 2004 14:46:54 +0000 (06:46 -0800)]
[PATCH] kNFSd: NFSdV4 fixes for replaying open requests.
From: NeilBrown <neilb@cse.unsw.edu.au>
Since the open op changes the current filehandle, we can't correctly replay
compounds containing opens unless we save the filehandle resulting from the
open as well as the encoded reply.
Andrew Morton [Thu, 26 Feb 2004 14:46:20 +0000 (06:46 -0800)]
[PATCH] kNFSd: v4 exclusive open fix.
From: NeilBrown <neilb@cse.unsw.edu.au>
Exclusive creates were failing with permission errors, because they don't set
the mode on the newly created file, and the permission check in fh_verify
(called at the end of do_open_lookup) was failing. So pass in the
MAY_OWNER_OVERRIDE flag to allow the owner of the file to override the
permission check.
Andrew Morton [Thu, 26 Feb 2004 14:46:09 +0000 (06:46 -0800)]
[PATCH] kNFSd: NFSv4 locking state fix
From: NeilBrown <neilb@cse.unsw.edu.au>
It's OK for the find_lockstateowner_str to fail; that just means we haven't
seen the lockowner, and will compare the request range to all locks on the
file.
Andrew Morton [Thu, 26 Feb 2004 14:45:47 +0000 (06:45 -0800)]
[PATCH] kNFSd: IDmap support for the NFSv4 server.
From: NeilBrown <neilb@cse.unsw.edu.au>
Updated version which uses ascii-encoding of messages, from
http://www.citi.umich.edu/u/marius/linux-2.5.70-idmap-server-new.diff as of
October 14, 2003.
Andrew Morton [Thu, 26 Feb 2004 14:45:35 +0000 (06:45 -0800)]
[PATCH] kNFSd: gss api changes for integrity checking.
From: NeilBrown <neilb@cse.unsw.edu.au>
Doesn't actually add integrity support on the server yet; just adapts
server-side code to the gss api changes necessary to get integrity working on
the client.
Andrew Morton [Thu, 26 Feb 2004 14:45:25 +0000 (06:45 -0800)]
[PATCH] kNFSd: Add minimal server-side support for rpcsec_gss.
From: NeilBrown <neilb@cse.unsw.edu.au>
From: "J. Bruce Fields" <bfields@fieldses.org>
Note that the user (or exportfs, on the user's behalf) allows a gss
pseudoflavor to be used to access an export by exporting to a special client
named "gss/pseudoflavor-name", e.g., "gss/krb5" or "gss/lipkey-i".
Andrew Morton [Thu, 26 Feb 2004 14:44:54 +0000 (06:44 -0800)]
[PATCH] ppc64: Fix a sleeping with spinlock bug in ioremap
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
ppc64 uses its own range allocator for ioremap (in order to allocate
things in a different space than normal vmalloc). This is historic stuff,
we may get rid of it, but in the meantime, here's a patch turning the
spinlock in there into a semaphore so it doesn't blow up when doing
kmallocs.
Marcelo Tosatti [Thu, 26 Feb 2004 04:57:26 +0000 (20:57 -0800)]
[PATCH] cyclades async driver update
This patch is the first of several planned fixes for the cyclades
multiserial cards driver.
Its mostly a sync with in-house driver:
- Prevent users from opening non-existing Z ports
- Implement special XON/XOFF character handling in Z cards
- Prevent data-loss on Z cards
- Throttling fix for Z card
- Only throttle if CTS/RTS are set
- Fix accounting of received data
PRD_ENTRIES is specified to be precisely 256; on platforms where
PAGE_SIZE varies from 4KB the calculation in the current expression
defining it is inaccurate, which may cause crashes. This patch changes
it to the constant literal 256.
[PATCH] fix ide_system_bus_speed() causing "Badness in pci_find_subsys..."
Noticed by Marcel Cotta <mc123@mail.ru>.
ide_init() always initializes system_bus_speed variable
so system_bus_clock() should never call ide_system_bus_speed()
and no driver is calling ide_system_bus_speed() directly.
Bug was that if no IDE kernel parameter was given during boot
system_bus_speed will be zeroed in init_ide_data().
This patch should fix the problem
(as a bonus -> no need to zero these variables they are static).
Jakub Bogusz [Thu, 26 Feb 2004 04:11:08 +0000 (20:11 -0800)]
[PATCH] switch alpha to use drivers/Kconfig
This switches alpha to use drivers/Kconfig instead of including most of
files included by drivers/Kconfig, thus enabling previously omitted i2c
(already used in some drivers available on alpha) and telephony drivers.
Because drivers/message/fusion/Kconfig was included only conditionally
("if PCI"), this patch also changes CONFIG_FUSION to depend on PCI.
(these changes were consulted with Christoph Hellwig in "i2c on alpha
- used but not available in 2.6.3" thread on LKML)
Alexander Viro [Thu, 26 Feb 2004 02:07:47 +0000 (18:07 -0800)]
[PATCH] Clean up __cacheline_aligned
arm-26, ppc, sparc, sparc64 and sh have per-arch definitions of
__cacheline_aligned that are identical to default. And yes, removal is
safe - all users of __cacheline_aligned actually pull linux/cache.h in.
Rusty Russell [Thu, 26 Feb 2004 02:07:36 +0000 (18:07 -0800)]
[PATCH] Always put cache aligned code in own section, even for modules
We put ____cacheline_aligned things in their own section, simply
because we waste less space that way. Otherwise we end up padding
innocent variables to the next cacheline to get the required
alignment.
Alexander Viro [Thu, 26 Feb 2004 01:38:31 +0000 (17:38 -0800)]
[PATCH] removal of ifdef MODULE from fs/openpromfs
Removes gratitious ifdefs - get_nodes() is only called from __init
and by itself, check_space() is only called by get_nodes(), so they can
be made unconditionally __init.